Использование в большой (или плохо контролируемой) сети DHCP-сервера для настройки протокола IP на узлах — это постоянный источник головных болей для системного администратора. По иронии зачастую эти проблемы связаны не с действиями злоумышленника, а с деятельностью неуправляемых пользователей.
Классика: самовольное подключение к сети устройства с включенным DHCP, который наперегонки с вашим сервером начинает раздавать IP-адреса рабочим станциям. Чей DHCP-ответ дойдет до клиента быстрее, того и адрес он себе поставит.
Функция коммутатора, которая предназначена для защиты от DHCP-атак, называется DHCP snooping. В ее основе классификация всех портов на доверенные (trust) и не доверенные (untrust). Принципиальная разница в том, что с первых транслируются ответы DHCP-сервера, а со вторых — нет.
Итак, можно упростить себе жизнь, включив DHCP snooping на коммутаторе и объявив доверенным тот порт, к которому подключен DHCP-сервер. Для этого нужно в режиме глобальной конфигурации выполнить следующую команду:
(config)# ip dhcp snoofing
Или если необходимо это сделать для конкретных VLAN:
(config)# ip dhcp-snooping vlan 10
А в настройках порта, к которому подключен DHCP-сервер, указать:
(config-if)# ip dhcp snooping trust
Ненадежные порты настраивать не надо. Они таковыми считаются по-умолчанию.
Кстати, в качестве бонуса сразу после активизации DHCP snooping включается проверка MAC-адреса источника на untrust-портах (verify mac-address): если адреса в заголовке кадра и DHCP-сообщении не совпадают, то кадр отбрасывается.
Еще можно ограничить количество DHCP-сообщений (в секунду) для данного порта:
(config-if)# ip dhcp snooping limit rate 150