Вопрос: Настройка функции DHCP Local Relay

Ответ: 
Пример настройки функции DHCP Local Relay
Скачать (PDF)
 
Из определения DHCP relay-агента следует, что это узел, который настроен для передачи пакетов DHCP между клиентом и сервером, находящихся в разных сетях. Relay-агент, помимо своего IP-адреса, может добавлять в запрос клиента информацию опции 82. Предположим, что в пределах локальной сети или подсети администратору необходимо дифференцировать выдачу IP-адресов клиентам. Например, клиенту, подключённому к порту 6 коммутатора, всегда должен выдаваться строго определенный адрес, остальным клиентам — свободные адреса из какого-то диапазона.
 
Данную задачу можно решить с помощью функции DHCP Local Relay, поддерживаемой коммутаторами D-Link. Она позволяет коммутатору добавлять опцию 82 в запросы клиентов, которые находятся с DHCP-сервером в одном широковещательном домене. При этом локальный relay-агент не изменяет IP- и МАС-адреса отправителя и получателя в DHCP-сообщении, а также не добавляет свой адрес в поле Relay Agent IP address. В DHCP-сообщение клиента будет автоматически добавляться опция 82. На основании информации из опции DHCP-сервер будет определять требуемые параметры, руководствуясь настроенной на нем политикой выдачи адресов. Опция 82 не будет удаляться локальным relay-агентом из ответов DHCP-сервера.
 
Примечание к настройке
Рассматриваемый пример настройки подходит для следующих серий коммутаторов: DGS-1250, DGS-1510, DGS-1520, DGS-3130, DGS-3630, DXS-3610.
 
Задача
Необходимо чтобы DHCP-клиент А, подключенный к порту 6 коммутатора, получил IP-адрес — 192.168.1.6/24, DHCP-клиент В — любой свободный IP-адрес из диапазона 192.168.1.100–150.
 

Рис. 1
Схема подключения
 
Настройка DHCP-сервера isc-dhcp-server
  1. Настройте статический IP-адрес для сетевого интерфейса enp0s3:
$ sudo ifconfig enp0s3 192.168.1.1/24
 
Примечание
enp0s3 — это имя сетевого интерфейса. Для просмотра информации о сетевых интерфейсах в терминале введите команду:
$ ifconfig
  1. Создайте маршрут по умолчанию:
$ sudo route add default gw 192.168.1.2
  1. Посмотрите таблицу маршрутизации:
$ route
  1. Установите пакет isc-dhcp-server:
$ sudо apt-get install isc-dhcp-server
  1. Настройте DHCP-сервер так, чтобы DHCP-клиент А, подключенный к порту 6 коммутатора, получил IP-адрес — 168.1.6/24, DHCP-клиент В — любой свободный IP-адрес из диапазона 192.168.1.100–150. Конфигурационный файл /etc/dhcp/dhcpd.conf должен выглядеть следующим образом:
$ sudo gedit /etc/dhcp/dhcpd.conf
default-lease-time 120;
max-lease-time 600;
shared-network test {
subnet 192.168.1.0 netmask 255.255.255.0 {
class "port-6" {
   match if binary-to-ascii (10, 8, "", suffix (option agent.circuit-id, 1)) = "6" and binary-to-ascii (16, 8, ":", substring (option agent.remote-id, 2, 6)) = "ac:f1:df:b5:fc:0";
}
   pool {allow members of "port-6"; range 192.168.1.6;}
   pool {range 192.168.1.100 192.168.1.150;}
 
}
}
 
Примечание
В конфигурационном файле вместо ac:f1:df:b5:fc:0 введите реальный МАС‑адрес коммутатора.
  1. Имя сетевого интерфейса enp0s3, на котором запущен DHCP-сервер, передается ему в качестве аргумента при вызове. В ОС Linux аргументы и ключи вызова программ задаются в каталоге /etc/default. Укажите сетевой интерфейс, на котором сервер будет прослушивать запросы от клиентов. Для этого откройте файл /etc/default/isc-dhcp-server и введите:
$ sudo gedit /etc/default/isc-dhcp-server
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp0s3"
  1. Запустите DHCP-сервер:
$ sudo /etc/init.d/isc-dhcp-server start
 
Примечание
Каждый раз после изменения конфигурационного файла DHCP-сервера перезапускайте сервер с помощью команды:
$ sudo /etc/init.d/isc-dhcp-server restart
  1. Проверьте статус DHCP-сервера:
$ sudo service isc-dhcp-server status
 
Настройка коммутатора
  1. Создайте VLAN с именем v1000 и настройте немаркированные порты:
Switch(config)# vlan 1000
Switch(config-vlan)# name v1000
Switch(config-vlan)# exit
Switch(config)# interface range ethernet 1/0/1-24
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 1000
Switch(config-if-range)# end
  1. Включите DHCP Local Relay агент для VLAN 1000:
Switch(config)# service dhcp
Switch(config)# ip dhcp local-relay vlan 1000
 
Примечание
При включении DHCP Local Relay для VLAN эта функция автоматически включается на всех портах, входящих в этот VLAN.