Проблема следующая, коммутаторы Cisco на доступе дропают ответы от сервера DHCP с ошибкой, что не могут разобрать опцию 82. Если отключить на Сisco проверку dhcp пакетов на валидность то пакет уходит клиенту но DHCP клиент такой пакет также не воспринимает и как следствие не может продлить аренду (RENEW).
В RFC 1542 на который ссылается RFC 2131 через обратную совместимость, сказано, что минимальный размер BOOTP заголовка (bootp header + options) = 300 байт (octets).
Мы провели эксперимент взяли ISC-DHCP и BGB-DHCP создали на них с одинаковыми настройками скопы, и посмотрели как Cisco и клиент себя ведут.
В результате с ISC-DHCP ответы проходят валидацию на Cisco и успешно воспринимаются DHCP клиентом, а пакеты BGB-DHCP не проходят валидацию на Cisco, а если отключить эту проверку на Cisco, то просто не воспринимаются клиентом, в результате чего клиенты не могут продлить аренду и чем ближе время аренды приближается к таймеру T2 (87,5% от Lease time) тем клиент чаще шлёт запросы DHCP серверу на продление аренды, но ответы не получает. Такой вот DDoS DHCP сервера получается, т.к. каждый клиент приближаясь к T2 начинает слать по 3 запроса в секунду (паника)!!!
На анализаторе пакетов видно, что ISC-DHCP выравнивает через опцию padding (0) заголовок до 300 байт, а BGB-DHCP имеет размер заголовка 298 байт, что не соответствует стандарту.
"Тестовый сегмент" из 3000 абонентов практически укладывают сеть (dhcp agent) и сервер своими "частыми" запросами на продление аренды ip адреса.
Продублировал тему в HD.
|