Разбор узких мест DHCP-сервера
Проблема раз. Потеря выделенных адресов.
Протокол динамической конфигурации хоста (RFC 2131) не обновлялся с 1997 г. С точки зрения развития сети его уже можно назвать древним. Самой большой проблемой при использовании протокола является информация о выделении адресов: способ хранения этой информации не зависит от протокола — ею распоряжаются серверы, и именно в этой сфере требуются улучшения.
Если сервер DHCP теряет информацию состояния, клиентские машины продолжают использовать выделенные им IP-адреса, которые сервер уже не в состоянии опознать. В результате может получиться, что некоторые рабочие станции будут продолжать использовать выделенные им IP-адреса, в то время как сервер остается "в неведении". Рабочие станции не посылают ему DHCP-пакеты, а следовательно, они не "будут знать" о случившейся аварии. Сервер же, в свою очередь, "не будет знать", как эти станции используют адреса из общего пула.
На участке сети, в котором произошла потеря информации DHCP, конфликты адресов неизбежны. Когда клиентская машина обращается с запросом о выделении адреса сервер находит первый из доступных адресов, который, возможно, уже используется другой машиной.
На самом деле эта проблема постепенно уходит в вечность, так как современные серверы используют различные технологии сохранения этой ценной информации в случае сбоя. Сервер Win2k8R2 поддерживает протокол DHCP Failover, использование которого позволяет двум серверам синхронизировать данные об аренде адресов между собой, но на DHCP-запросы отвечает только основной сервер. Резервный подключается, когда недоступен первый. Учитывая, что он "знает" все, что выдал основной сервер, переход на резервный полностью прозрачен. Никсовый DHCP-сервер dhcpd также использует бэкап и постоянно сохраняет последние изменения информации о пуле адресов.
Проблема два. Выход из строя.
Даже в небольших сетях для раздачи IP-адресов и других сетевых настроек (DNS, WINS, gateway) клиентам на порядок удобнее использовать DHCP-сервер, чем вручную прописывать адреса в настройках каждой системы. Управление IP-адресами из одного места экономит время. Проблема в том, что теперь клиенты зависимы от работоспособности DHCP-сервера, и в случае выхода его из строя не смогут получить IP-адрес, соответственно, не смогут воспользоваться ресурсами локальной и глобальной сетей. В клиентских машинах под управлением Win2k и более поздних версий служба Client/Server была усовершенствована и теперь позволяет при отсутствии DHCP-сервера автоматически назначать себе IP-адрес. Этот процесс называется автоматическим назначением частных IP-адресов (Automatic Private IP Addressing, APIPA). В данном случае, APIPA-клиенты автоматически назначают себе IP-адрес в диапазоне 169.254.0.0/16, что дает им основные возможности связи по протоколу TCP/IP. Но адресация APIPA может вызвать большие проблемы в вашей сети, так как она выполняет назначение ip-адресов из диапазона, который обычно не входит в локальную подсеть компании. При отказе DHCP-сервера клиенты, пытающиеся обновить аренду на сервере, не смогут этого сделать и автоматически назначат себе APIPA-адрес. Даже после восстановления работоспособности DHCP-сервера эти клиенты не станут сразу же перерегистрироваться и будут отрезаны от сети. Существует два варианта отключения APIPA: через реестр (неудобный вариант, для каждого адаптера прописывается вручную. При этом необходимо знать имя адаптера) и путем использования альтернативной настройки протокола IP, которая позволяет производить назначение статического IP-адреса в случае недоступности DHCP-сервера.
Настраиваем отказоустойчивый DHCP-сервис
В небольших компаниях, чтобы организовать резервирование DHCP, часто используют второй, как правило, несильно загруженный сервер, выполняющий другую работу. В этом случае IP-адреса между серверами распределяются по схеме 80/20 (так советует Microsoft, хотя это не обязательно), то есть основной сервер берет на себя 80% адресов, оставшиеся 20 достаются второму серверу. Причем основной сервер должен находится "ближе" к клиентам, чем дополнительный. Это обусловлено простым правилом - кто первый тот и папа :)
Рассмотрим сеть класса "С": сервер DHCP1 берет на себя 192.168.1.1-200, сервер DHCP2 — 192.168.1.201-254. Во избежание конфликтов на обоих серверах настраиваются исключаемые адреса (Excluded Adresses), в которые прописываются IP-адреса, выдаваемые другим сервером. Если основной сервер выйдет из строя, резервный сможет отвечать на запросы клиентов и обслуживать их аренду. При необходимости второй сервер можно легко перестроить на полный диапазон. Тут тоже есть свои нюансы, которые в этой статье рассмотрены не будут. Так что если будете создавать нечто подобное - разберитесь и почитайте доп. литературу.
Также рекомендую следующие записи:
Понравилась статья? Подпишись на обновления по RSS, E-mail или добавляйте меня в Twitter.






Комментарии (2)