Доброго дня.
Помогите пожалуйста разобраться с DHCP флудом в сети.
Сеть построена на коммутаторах DES-3200 (ревизии B1 и C1) и DES-3028. На всех настроен DHCP relay:
Код:
enable dhcp_relay
config dhcp_relay hops 4 time 0
config dhcp_relay option_82 state enable
config dhcp_relay option_82 check disable
config dhcp_relay option_82 policy replace
config dhcp_relay option_82 remote_id default
config dhcp_relay add ipif System 1.1.1.1
Так же на портах абонентов разрешен DHCP трафик:
Код:
create access_profile ip destination_ip 255.255.255.255 udp dst_port_mask 0xFFFF profile_id 4
config access_profile profile_id 4 add access_id 1 ip destination_ip 255.255.255.255 udp dst_port 67 port 1 permit
config access_profile profile_id 4 add access_id 2 ip destination_ip 255.255.255.255 udp dst_port 67 port 2 permit
config access_profile profile_id 4 add access_id 3 ip destination_ip 255.255.255.255 udp dst_port 67 port 3 permit
config access_profile profile_id 4 add access_id 4 ip destination_ip 255.255.255.255 udp dst_port 67 port 4 permit
config access_profile profile_id 4 add access_id 5 ip destination_ip 255.255.255.255 udp dst_port 67 port 5 permit
config access_profile profile_id 4 add access_id 6 ip destination_ip 255.255.255.255 udp dst_port 67 port 6 permit
config access_profile profile_id 4 add access_id 7 ip destination_ip 255.255.255.255 udp dst_port 67 port 7 permit
config access_profile profile_id 4 add access_id 8 ip destination_ip 255.255.255.255 udp dst_port 67 port 8 permit
config access_profile profile_id 4 add access_id 9 ip destination_ip 255.255.255.255 udp dst_port 67 port 9 permit
config access_profile profile_id 4 add access_id 10 ip destination_ip 255.255.255.255 udp dst_port 67 port 10 permit
config access_profile profile_id 4 add access_id 11 ip destination_ip 255.255.255.255 udp dst_port 67 port 11 permit
config access_profile profile_id 4 add access_id 12 ip destination_ip 255.255.255.255 udp dst_port 67 port 12 permit
config access_profile profile_id 4 add access_id 13 ip destination_ip 255.255.255.255 udp dst_port 67 port 13 permit
config access_profile profile_id 4 add access_id 14 ip destination_ip 255.255.255.255 udp dst_port 67 port 14 permit
config access_profile profile_id 4 add access_id 15 ip destination_ip 255.255.255.255 udp dst_port 67 port 15 permit
config access_profile profile_id 4 add access_id 16 ip destination_ip 255.255.255.255 udp dst_port 67 port 16 permit
config access_profile profile_id 4 add access_id 17 ip destination_ip 255.255.255.255 udp dst_port 67 port 17 permit
config access_profile profile_id 4 add access_id 18 ip destination_ip 255.255.255.255 udp dst_port 67 port 18 permit
config access_profile profile_id 4 add access_id 19 ip destination_ip 255.255.255.255 udp dst_port 67 port 19 permit
config access_profile profile_id 4 add access_id 20 ip destination_ip 255.255.255.255 udp dst_port 67 port 20 permit
config access_profile profile_id 4 add access_id 21 ip destination_ip 255.255.255.255 udp dst_port 67 port 21 permit
config access_profile profile_id 4 add access_id 22 ip destination_ip 255.255.255.255 udp dst_port 67 port 22 permit
config access_profile profile_id 4 add access_id 23 ip destination_ip 255.255.255.255 udp dst_port 67 port 23 permit
config access_profile profile_id 4 add access_id 24 ip destination_ip 255.255.255.255 udp dst_port 67 port 24 permit
Все коммутаторы сидят в одной управляющей сети.
Суть проблемы в следующем. Периодически появляется флуд в сети от большого количества коммутаторов доступа (наших) с пакетами DHCP Release. Client MAC Address у всех один и тот же - абонентский. Source как уже и писал - множество, все наши коммутаторы.
Методом дедукции нашли проблемный девайс - это оказался абонентский роутер Zyxel Kenetik (вроде так называется), из свежих. Проверили - так и есть, при подключении этого роутера к сети в любом месте приводит к такому эффекту.
Что интересно, на аггрегации этот МАК валится совсем с другого порта, не с того, куда подключен абонентский коммутатор доступа. Порт каждый раз один и тот же.
Лечится отключением этого порта аггрегации на пару секунд.
Вопрос - правильно ли я понимаю хождение DHCP пакетов?
1. Коммутатор доступа получает на порту абонента DHCP запрос
2. Коммутатор доступа отправляет от своего имени DHCP запрос на DHCP сервер (отрабатывает dhcp_relay) по управляющей сетке
3. Ответ идет на коммутатор доступа (ибо он запрашивал) и он отдает его уже абоненту
Если все правильно, то нужно ли открывать доступ к DHCP на порту абонента?
Я вижу, что DHCP запросы приходят еще и по абонентским сеткам, то есть в обход dhcp_relay. Возможно это уже юникасты на renew и они не перехватываются коммутатором доступа?
В общем что-то я не совсем понимаю как оно должно быть. Расскажите пожалуйста как правильно и возможно это решит проблему. Или если это другая проблема, то может вы знаете как ее решить.
Спасибо.