Расскажу вам немного про то, как работает протокол DHCP. Он на первый взгляд простой. Какой админ не знает, что такое DHCP? Но если его специально не изучал, то многие нюансы могут быть непонятны или неизвестны.
Мне почему-то запомнился вопрос по DHCP, который я получил на одном из первых собеседований после института. Меня спросили, что такое DHCP и для чего он нужен. Я ответил, что с помощью него компьютеры получают IP адреса. Мой ответ не удовлетворил вопрошающего. В итоге он мне пояснил, что этот протокол нужен для выдачи сетевых настроек, а не только IP адресов. Туда меня на работу не взяли.
🔹Клиент, получающий настройки от сервера DHCP, должен быть с ним в одном широковещательном домене, так как запрос от клиента выполняется широковещательный. Исключение — использование DHCP-relay для пересылки запросов и ответов из одного домена в другой.
🔹По умолчанию сервер использует 67-й, а клиент 68-й порт UDP.
🔹Как я уже сказал, DHCP сервер может выдавать не только базовые настройки IP адреса, маски, шлюза по умолчанию и DNS сервера. С его помощью можно передать большое количество других параметров: маршруты, адрес TFTP сервера для загрузки по сети, MTU, часовой пояс, список NTP серверов и т.д.
🔹После выдачи аренды с сетевыми настройками на определённое время, клиент через половину этого времени начинает пытаться обновить аренду. Если получается — аренда продлевается, если нет, то использует её до окончания времени аренды, а потом снова начинает слать запросы к DHCP серверу.
🔹Сервер может привязывать IP адрес клиента не только по MAC адресу, но и по ClietnID (Machine-id). Причём последний часто имеет приоритет.
🔹Для получения сетевых настроек, клиент сначала отправляет запрос на поиск сервера DHCPDISCOVER, получает ответ от сервера DHCPOFFER с предлагаемыми настройками. После этого клиент отправляет запрос на установку предложенных настроек DHCPREQUEST и получает подтверждение от сервера DHCPACK.
🔹Наличие DHCP сервера не гарантирует отсутствие проблем с дублированием IP адресов. У него есть некоторые возможности по разрешению конфликтов, но на 100% возможностями только DHCP сервера их не разрешить.
🔹Защититься от конфликтов, возникающих из-за посторонних DHCP серверов в сети можно с помощью функционала коммутаторов DHCP Snooping. Коммутатор может отбрасывать трафик DHCP, определенный как неприемлемый. Например, идущий с недоверенного для этого порта.
DHCP Snooping очень полезный функционал. Сам не раз сталкивался с ситуацией, когда кто-то приносит роутер с DHCP сервером и подключает его в общую сеть. В итоге часть клиентов перестают работать и начинаются звонки в поддержку. Если у вас нет никакой защиты, то решить проблему можно только обходя все точки подключения клиентов, либо отключая поочерёдно свитчи, пытаясь локализовать проблему. Если сеть большая, то это серьезная проблема, требующая много ручной работы. Лучше подумать об этом заранее.
#network #dhcp