Настройка DHCP Option 82 на базе DHCP Snooping
DHCP Snooping - это функция безопасности коммутатора, обеспечивающая получение DHCP клиентом IP-адреса только от легитимного DHCP сервера.
При настройке DHCP Snooping порт, к которому подключен легитимный DHCP сервер, назначаются в качестве доверенного (trusted). Обычно это транзитные uplink порты коммутатора. Все прочие порты считаются недоверенными (обычно это клиентские Ethernet порты коммутатора).
При получении DHCP запросов от клиентского оборудования коммутатор отправляет их только в сторону доверенного порта. При этом коммутатор блокирует DHCP ответы от “нелегальных” DHCP серверов, подключенных к недовернным портам, препятствуя тем самым получению сетевых настроек от недоверенного DHCP сервера.
Помимо этого DHCP Snooping позволяет создавать записи о соответствии выданного IP-адреса, VLAN и Ethernet порта коммутатора. Такие записи называются DHCP Snooping Binding.
Рассмотрим настройку DHCP Snooping на примере коммутатора ISCOM2608G-2GE.
К Gigabit Ethernet порту G1/1/1подключается DHCP клиент. К uplink порту G1/1/9 подключен DHCP сервер, он назначается доверенным. Схема представлена на рисунке ниже.
Первоначально необходимо создать VLAN и настроить соответствующие порты коммутатора.
Raisecom(config)# create vlan 100 active
Set successfully
Raisecom(config)#
Также лучше сначала настроить транзитные uplink порты в доверенном режиме для функции DHCP Snooping
Raisecom(config)# interface gigaethernet 1/1/9
Raisecom(config-gigaethernet1/1/9)# ip dhcp snooping trust
Set successfully
Raisecom(config-gigaethernet1/1/9)# exit
Raisecom(config)#
Далее выполняется настройка uplink порта (порта с подключенным легитимным DHCP сервером).
Raisecom(config)# interface gigaethernet 1/1/9
Raisecom(config-gigaethernet1/1/9)# switchport mode trunk
Set successfully
Raisecom(config-gigaethernet1/1/9)# switchport trunk native vlan 100
Set successfully
Raisecom(config-gigaethernet1/1/9)# exit
Raisecom(config)#
Настройка VLAN на клиентском порте в режиме VLAN Access :
Raisecom(config)# interface gigaethernet 1/1/1
Raisecom(config-gigaethernet1/1/1)# switchport mode access
Set successfully
Raisecom(config-gigaethernet1/1/1)# switchport access vlan 100
Set successfully
Raisecom(config-gigaethernet1/1/1)# exit
Raisecom(config)#
Для активации DHCP Snooping на клиентском порте используется команда «ip dhcp snooping» :
Raisecom(config)# interface gigaethernet 1/1/1
Raisecom(configgigaethernet1/1/port)# ip dhcp snooping
При необходимости выполняется настройка максимального допустимого количества записей DHCP Snooping binding. Может быть от 1 до 512 разрешенных записей на одном порте Ethernet. Если число клиентов на порте превышает заданное значение, они не смогут получить IP-адрес.
Raisecom(config-gigaethernet1/1/1)# ip dhcp snooping binding max 1
Set successfully
Raisecom(config-gigaethernet1/1/1)# exit
После этого выполняется активация DHCP Snooping на коммутаторе.
Raisecom(config)# ip dhcp snooping
При необходимости, возможно настроить коммутатор так, чтобы конкретные порты не участвовали в DHCP Snooping. Для этого на таких портах отключается DHCP Snooping:
Raisecom(config)# interface gigaethernet 1/1/10
Raisecom(config-gigaethernet1/1/10)# no ip dhcp snooping
Для проверки конфигурации используется команда:
Raisecom(config)# show ip dhcp snooping
DHCP Snooping: Enabled
DHCP Option 82: Enabled
Port vlan Enabled Status Trusted Status Option82 Vlanlist
-------------------------------------------------------------------------------------------------
gigaethernet1/1/1 -- enabled no 1-4094
gigaethernet1/1/2 -- enabled no 1-4094
gigaethernet1/1/3 -- enabled no 1-4094
gigaethernet1/1/4 -- enabled no 1-4094
gigaethernet1/1/5 -- enabled no 1-4094
gigaethernet1/1/6 -- enabled no 1-4094
gigaethernet1/1/7 -- enabled no 1-4094
gigaethernet1/1/8 -- enabled no 1-4094
gigaethernet1/1/9 -- enabled yes 1-4094
gigaethernet1/1/10 -- disabled no 1-4094
Для просмотра таблицы привязки используется команда:
Raisecom(config)# show ip dhcp snooping binding
Current Binding: 1
History Max Binding: 1
IP Address MAC Address Lease(sec) Type VLAN Port
-------------------------------------------------------------------------------------------------
192.168.100.28 00A1.AB33.0020 595 dhcp-snooping 100 gigaethernet1/1/1
Raisecom(config)#
Параллельно с DHCP Snooping на коммутаторах часто настраивают поддержку DHCP Option 82.
Опция 82 используется для того, чтобы передать дополнительную информацию о DHCP клиенте на DHCP сервер. Например, можно передать информацию о номере порта коммутатора, к которому подключен клиент, и \ или информацию о MAC адресе клиента и др.
DHCP Option 82 может применяться для идентификации абонента на сервере провайдера и \ или привязки IP-адреса к клиентскому порту коммутатора. (В этом случае необходимо настроить также DHCP сервер для выдачи IP адреса из нужного диапазона на основе информации о клиентском VLAN и \ или номере порта и \ или MAC адресе. Например, если IP-телефоны имеют только MAC адреса 00:22:33:XX:XX:XX в VLAN 111, то для таких клиентов выдается IP адрес 172.16.1.X, и для клиентов с другими MAC адресами в VLAN 888 выдается IP адрес 192.168.1.X ).
Поле Option 82 в DHCP пакете имеет две стандартные области:
- Circuit ID - идентификатор подключенного к коммутатору клиентского устройства \ номера клиентского Ethernet порта. Он может быть использован для назначения параметров, уникальных для конкретного пользователя.
- Remote ID - идентификатор коммутатора, который может быть использован для назначения сервером сетевых настроек.
Для активации добавления информации Option 82 в DHCP пакеты, передаваемые коммутатором, используется команда:
Raisecom(config)# ip dhcp snooping information option
Set successfully
Raisecom(config)#
Для настройки Circuit ID могут использоваться переменные, добавленные в пакеты с DHCP запросами от конкретного клиента :
Raisecom(config)# ip dhcp information option circuit-id format
>STRING %h-hostname %s-slot %v-svlan %c-cvlan %p-port %m-Local mac
%r-remote mac %i=ip address %u-unit %d-port description
%bd-bussiness description
Добавляем к DHCP запросу данные о коммутаторе, например hostname :
Raisecom(config)# ip dhcp information option circuit-id format %h
Set successfully
Raisecom(config)#
Включаем данные о порте, к которому подключен клиент, и его VLAN в Remote ID :
Raisecom(config)# ip dhcp information option remote-id string
>STRING String of user define(%h-hostname %s-slot %v-svlan %c-cvlan
%p-port %m-Local mac %r-remote mac %i=ip address %u-unit %d-port
description %bd-bussiness description)
Raisecom(config)# ip dhcp information option remote-id string %p_%v
Set successfully
Raisecom(config)#
При необходимости DHCP Option82 может настраиваться для каждого порта в отдельности.
Для проверки конфигурации используется команда:
Raisecom(config)# show ip dhcp information option
DHCP Option Config Information
Circuit-ID: %h
Remote-ID Mode: string
Remote-ID String: %p_%v
ipv4Global
ipv4Port
gigaethernet1/1/1:
gigaethernet1/1/2:
gigaethernet1/1/3:
gigaethernet1/1/4:
gigaethernet1/1/5:
gigaethernet1/1/6:
gigaethernet1/1/7:
gigaethernet1/1/8:
gigaethernet1/1/9:
gigaethernet1/1/10:
Raisecom(config)#
На DHCP сервере видим:
В статье была показана базовая настройка DHCP Option 82 с DHCP Snooping.