Настройка DHCP Snooping и Option 82 на коммутаторах SNR

Настройка DHCP Snooping и Option 82 на коммутаторах SNR

DHCP snooping это функция безопасности DHCP которая предоставляет безопасную фильтрацию не прошедших проверку сообщений DHCP и поддержку привязки таблиц DHCP snooping.

Таблица сопоставлений DHCP snooping содержит MAC адрес, IP адрес, время аренды, тип сопоставления, номер VLAN и информацию о интерфейсе который отвечает ненадёжным локальным интерфейсам или свитчам. Не надёжные интерфейсы это интерфейсы, которые настроены на принятие сообщений от внешней сети или firewall. Надёжные интерфейсы это интерфейсы, которые настроены на принятие сообщений только от внутренней сети.

DHCP Option 82 это опция протокола DHCP, использующаяся для информирования DHCP-сервера о том, от какого DHCP-ретранслятора и через какой егго порт был получен запрос. Данная опция применяется для привязки IP-адреса к порту коммутатора.

DHCP snooping может быть задействован на свитче посредством VLAN для перехвата DHCP сообщений второго сетевого уровня.

Ниже приведены примеры минимальной конфигурации DHCP snooping и Option 82 на ethernet коммутаторах SNR.

Для сетевых коммутаторов SNR S2940-8G, S2940-8G-v2, S2950-24GS2960-24GS2960-48G, S3650G-24S, S3750G-24S-E:

service dhcp

ip dhcp snooping enable

ip dhcp snooping binding enable

ip dhcp snooping information enable

ip dhcp snooping information option subscriber-id format hex

ip dhcp snooping vlan xx

 

Для свича SNR S2970G-48S

ip dhcp-relay snooping

ip dhcp-relay snooping information option

ip dhcp-relay snooping information option hn-type

Также дополнительно рекомендуется включить функционал user-control на портах подключения абонентов, и указать максимальное количество абонентов, подключенных к порту (кроме коммутатора SNR S2970G-48S):

Interface Ethernet 1/1

 ip dhcp snooping binding user-control

 ip dhcp snooping binding user-control max-user 1

Ниже приведен пример минимального конфига DHCP-сервера ISC-DHCPD. Рассмотрим его детально:

Включаем вывод сообщений в syslog, это упростит отладку в случае каких-либо проблем

log-facility local7;

local-address 172.16.0.10;

Проверяем наличие Option 82 в пакете

if exists agent.remote-id {

Если пакет с Option 82, то пишем в syslog информацию

   log ( info, concat(

о коммутаторе и порту подключения, с которого пришел пакет

     «Switch MAC:», binary-to-ascii(16, 8, «:», option agent.remote-id),

    «Switch port:», binary-to-ascii(10, 8, «.», option agent.circuit-id)

  ));

}

Создаем класс для порта коммутатора

class «sw01-p01" {

  match if

Берем последние 6 байт agent.remote-id, делим на 8-битные числа, каждые из которых преобразуем в 16-чную систему счисления. Полученные числа объединяем между собой через «:» и проверяем соответствие полученного MAC-адреса коммутатора в agent.remote-id с необходимым

   binary-to-ascii(

    16, 8, «:», suffix(option agent.remote-id ,6)

  )=«0:3:f:19:40:6a» and

Аналогичным образом получаем порт коммутатора из agent.circuit-id и сверяем его

   binary-to-ascii(

    10, 8,»", suffix(option agent.circuit-id, 1)

  ) = «1»;

}

subnet 172.16.0.0 netmask 255.255.255.0 {

  option routers 172.16.0.1;

  option subnet-mask 255.255.255.0;

  authoritative;

Выдаем IP-адрес согласно описанному выше классу

   pool {

    range 172.16.0.121;

    allow members of «sw01-p01»;
  }
}