Только для исполнений «С-Терра Шлюз ST KC1», «С-Терра Шлюз ST KC2», «С‑Терра Шлюз ST KC3»
DHCP Relay на С-Терра Шлюз используется для обеспечения взаимодействия между DHCP-клиентами и DHCP-серверами, находящимися в разных подсетях. Функционал DHCP Relay предназначен для перенаправления широковещательных DHCP Discover-пакетов из одного широковещательного домена в одноадресные (unicast) DHCP Discover-пакеты в другом широковещательном домене.
Конфигурование DHCP Relay осуществляется посредством редактирования конфигурационных файлов /opt/st-dhcp-relay/etc/config.yaml и /opt/st-dhcp-relay/etc/append_options.yaml:
• config.yaml – основной файл конфигурации в формате YAML, содержащий описание DHCPv4 и DHCPv6 экземпляров ретрансляторов;
• append_options.yaml – файл конфигурации, позволяющий задать дополнительные опции запуска для DHCPv4 и DHCPv6 экземпляров ретрансляторов.
Управление сервисом:
За работу DHCP Relay отвечает сесервис st-dhcp-relay.service. По умолчанию данный сервис не добавлен в автозапуск. Для добавления сервиса в автозапуск необходимо выполнить команду:
systemctl enable st-dhcp-relay.service
При запуске сервиса systemctl start st-dhcp-relay выпоняется импорт настроек из фалов config.yaml и append_options.yaml в отдельные конфигурациооные файлы для каждого ретранслятора. В диертории /run/st-dhcp-relay/configs/ формируются файлы вида ipv4_instance_N.conf (DHCPv4 Relay) и ipv6_instance_N.conf (DHCPv6 Relay), где N – номер экземпляра ретранслятора. После для каждого сформированого файла осущевстляется запуск DHCP Relay: systemctl start dhcrelay_ipv4_instance@N.service, где N – номер DHCPv4 экземпляра ретранслятора.
При остановке сервиса systemctl start st-dhcp-relay выпоняются команды отсановки работы DHCP Relay и удаления конфигурационных файлов экземпляров ретросляторов из директории /run/st-dhcp-relay/configs/.
Описание сообщений сервиса предствалено в разделе «Описание сообщений сервиса DHCP Relay».
Описание настроек config.yaml:
Структурно файл /opt/st-dhcp-relay/etc/config.yaml содержит единственную секцию instances, которая в свою очередь содержит две секции:
• ipv4 – секция, содержащая список параметров ipv4 экземпляров ретрансляторов DCHP Relay. Секция ipv4 может отсутствовать или быть пустой только в случае, если присутствует секция ipv6, содержащая хотя бы один IPv6 экземпляр ретранслятора;
• ipv6 – секция, содержащая список параметров ipv6 экземпляров ретрансляторов DCHP Relay. Секция ipv6 может отсутствовать или быть пустой только в случае, если присутствует секция ipv6, содержащая хотя бы один IPv4 экземпляр ретранслятора.
Пример конфигурационного файла config.yaml:
instances:
ipv4:
-
instance_num: 1
helper_addresses:
- "192.168.100.10"
- "192.168.100.20"
upstream_interfaces:
- name: "gre1"
downstream_interfaces:
- name: "eth1"
- name: "eth2"
smart_relay: true
log_level: "debug"
relay_option_82:
circuit_id_insert: true
subscriber_id: "Subscriber-ID for IPv4"
remote_id:
insert: true
custom_value: "Custom Remote-ID for IPv4"
check_reply: true
policy_action: "drop"
-
instance_num: 99
helper_addresses:
- "192.168.99.10"
upstream_interfaces:
- name: "eth0"
downstream_interfaces:
- name: "eth3"
log_level: "error"
relay_option_82:
circuit_id_insert: true
subscriber_id: "Test"
remote_id:
insert: false
custom_value: "Test"
ipv6:
-
instance_num: 1
helper_addresses:
- "AAAA::192:168:100:10"
upstream_interfaces:
-
name: "eth0"
downstream_interfaces:
-
name: "eth1"
src_address: "AAAA::192:168:1:1"
-
name: "eth2"
log_level: "debug"
smart_relay: false
relay_options:
interface_id_insert: true
subscriber_id: "Subscriber-ID for IPv6"
remote_id:
insert: true
custom_value: "Custom Remote-ID for IPv6"
В таблице ниже предстваленно описание параметров конфигурационного файла config.yaml.
Таблица 5
|
Параметр (секция) |
Описание |
|
instance_num (ipv4 или ipv6) |
обязательный параметр. Целое положительное число, которое является уникальным идентификационным номером конфигурации экземпляра ретранслятора. Уникальность номера должна соблюдатся в рамках секции (ipv4 и ipv6). обязательный параметр. |
|
helper_addresses (ipv4 или ipv6) |
обязательный параметр. Содержит список адресов DHCP серверов (в зависимости от секции DHCPv4 или DHCPv6), на которые отправляются DHCP запросы клиентов. Список должен содержать хотя бы один адрес. |
|
downstream_interfaces (ipv4 или ipv6) |
обязательный параметр. Содержит список системных имент интерфейсов (в нотации Linux), на которых слушаются и перехватываются широковещательные запросы DHCP клиентов. Интерфейсы, перечисленные в списках downstream_interfaces, не дожны повторятся в рамках одной секции (ipv4 или ipv6). Список должен содержать хотя бы один интерфейс. Элемент списка состоит из параметров: • name - обязательный параметр, содержит системное имя интерфейса; • src_address (только для ipv6) – опциональный параметр. Содержит IPv6 адрес, который будет использоваться в качестве source IPv6-адреса в перенаправляемых DHCPv6 запросах клиентов. Указываемый здесь адрес должен быть глобальным IPv6 адресом (не link-local), но при этом на downstream интерфейсе должен присутствовать хотя бы один ipv6 link-local адрес. Если адреса на интерфейсе были изменены во время работы Продукта, необходимо выполнить перезапуск сервиса systemctl restart st-dhcp-relay. |
|
upstream_interfaces (ipv4 или ipv6) |
обязательный параметр. Содержит список системных имент интерфейсов (в нотации Linux), с которых отправляются запросы и принимаются ответы от DHCP сервера. Интерфейсы, перечисленные в списках upstream_interfaces, не дожны повторятся в рамках одной секции (ipv4 или ipv6). Список должен содержать хотя бы один интерфейс. Элемент списка состоит из одного параметра name, содержащего системное имя интерфейса. |
|
log_level (ipv4 или ipv6) |
опциональный параметр. Задает уровень детальности сообщений, отправляемых данным экземпляром ретранслятора в лог-файл. Параметр может принимать следующие значения: error, warning, notice, info, debug; |
|
smart_relay (ipv4 или ipv6) |
опциональный параметр. Является логическим параметром, принимающим значения true или false. Включает режим Smart Relay для экземпляра ретранслятора, при котором, при наличии нескольких адресов на downstream_interfaces, эти адреса будут поочередно использоваться в качестве source IP адреса до тех пор, пока не будет получен ответ от DHCP сервера. Использоваться будут только те адреса, которые были на интерфейсе на момент запуска Продукта. |
|
relay_option_82 (ipv4 или ipv6) |
опциональный параметр. Содержит набор параметров, относящихся к 82 опции протокола DHCP (DHCP option 82). Данная опция используется для того, чтобы проинформировать DHCP-сервер о том, от какого DHCP-ретранслятора и через какой его порт был получен запрос. В случае DHCPv6 добавляется ряд дополнительных опции. |
|
circuit_id_insert (relay_option_82в ipv4) |
опциональный параметр. Является логическим параметром, принимающим значения true или false. Включает добавление под‑опции 1 Circuit-ID (RFC 3046) в опции 82 в перенаправляемые DHCPv4 запросы клиентов. |
|
circuit_id_insert (relay_option_82в ipv6) |
опциональный параметр. Является логическим параметром, принимающим значения true или false. Включает добавление опции 18 Interface-ID в перенаправляемые DHCPv6 запросы клиентов. |
|
subscriber_id (relay_option_82в ipv4) |
опциональный параметр. Включает добавление под‑опции 6 Subscriber-ID (RFC 3993) в опции 82 в перенаправляемые DHCP запросы клиентов. Значением параметра является строка, которая используется в качестве значения Subscriber-ID. |
|
subscriber_id (relay_option_82в ipv6) |
опциональный параметр. Включает добавление опции 38 Subscriber-ID в перенаправляемые DHCPv6 запросы клиентов. Значением параметра является строка, которая используется в качестве значения Subscriber-ID. |
|
remote_id (relay_option_82в ipv4) |
опциональный параметр. Включает добавление под-опции 2 Agent Remote ID (RFC 3046) в опции 82 в перенаправляемые DHCP запросы клиентов. Параметр состоит из двух следующих параметров: • insert – обязательный параметр. Является логическим параметром (true/false). Включает или отключает добавление под-опции Agent Remote ID; • custom_value – опциональный параметр. Параметр игнорируется, если параметру insert выставлено значение false. Значением параметра является строка, которая используется в качестве значения опции Agent Remote ID. Если параметр не задан, то в качестве значения Agent Remote ID будет использоваться MAC адрес downstream интерфейса (downstream_interfaces). |
|
remote_id (relay_option_82в ipv6) |
опциональный параметр. Включает добавление опции 37 Remote-ID в перенаправляемые DHCPv6 запросы клиентов. Параметр состоит из двух следующих параметров: • insert – обязательный параметр. Является логическим параметром (True/False). Включает или отключает добавление под-опции Agent Remote ID; • custom_value – опциональный параметр. Параметр игнорируется, если параметру insert выставлено значение false. Значением параметра является строка, которая используется в качестве значения опции Agent Remote ID. Если параметр не задан, то в качестве значения Agent Remote ID будет использоваться MAC адрес downstream интерфейса (downstream_interfaces). |
|
check_reply (relay_option_82в ipv4) |
опциональный параметр. Является логическим параметром, принимающим значения true или false. Включает или выключает проверку входящих пакетов BOOTREPLY на upstream интерфейсах (upstream_interfaces), в таком случае пакеты, которые не предназначены данному экземпляр ретранслятора DHCP Relay, будут отброшены. Параметр может быть задан только в том случае, если задан хотя бы один из параметров: circuit_id_insert, subscriber_id, remote_id. |
|
policy_action (relay_option_82в ipv4) |
опциональный параметр. Задает политику обработки пришедших на downstream интерфейсах (downstream_interfaces) пакетов DHCP запросов, в которых уже присутствует опция 82. Параметр может принимать следующие значения: drop, keep, replace, append. Параметр может быть задан только в том случае, если задан хотя бы один из параметров: circuit_id_insert, subscriber_id, remote_id. |
Описание настроек append_options.yaml:
Структурно файл /opt/st-dhcp-relay/etc/append_options.yaml содержит единственную секцию append_options, которая в свою очередь содержит два параметра – ipv4 и ipv6.
Пример конфигурационного файла append_options.yaml:
append_options:
ipv4: "-A -B"
ipv6: ""
В таблице ниже предстваленно описание парамтров конфигурационного файла append_options.yaml.
Таблица 6
|
Параметр (секция) |
Описание |
|
ipv4 (append_options) |
Принимает строковое значение, заданная строка будет добавляться к опциям утилиты dhcrelay, используемой при запуске всех DHCPv4 экземпляров ретрансляторов (systemctl start dhcrelay_ipv4_instance@N.service), обнаруженных в директории /run/st-dhcp-relay/configs/.
Является обязательным параметром. Может быть пустым. |
|
ipv6 (append_options) |
Принимает строковое значение, заданная строка будет добавляться к опциям утилиты dhcrelay, используемой при запуске всех DHCPv6 экземпляров ретрансляторов (systemctl start dhcrelay_ipv6_instance@N.service), обнаруженных в директории /run/st-dhcp-relay/configs/.
Является обязательным параметром. Может быть пустым. |