Вопрос: Могу ли я иметь несколько серверов DHCP в одной сети?


Это Канонический вопрос о резервных серверах DHCP.

Возможно ли иметь более одного DHCP-сервера в одной локальной сети? Каковы последствия этого?

  1. Что произойдет, если доступно более одного DHCP-сервера? Как мои клиенты знают, какой из них использовать?
  2. Как я могу настроить DHCP-серверы для адресов более чем в одном сегменте сети / сети?
  3. Как настроить несколько DHCP-серверов для предоставления адресов для тоже самое подсети.

70
2018-03-11 11:01


Источник


Идея этого вопроса состоит в том, чтобы дать окончательный ответ на все вопросы «Как я могу иметь более одного DHCP-сервера», которые приводят к тому, что наши более обычные пользователи сходят с ума. Это, мы надеемся, станет одним из наших канонических ответов (meta.serverfault.com/questions/1986/...) - Rob Moir
RTFM? tools.ietf.org/html/draft-ietf-dhc-failover-12#section-5.3 (и rfc 3074) уже определяют это поведение, а linux dhcpd реализует его manpages.ubuntu.com/manpages/precise/en/man5/... - Dani_l
@Dani_l, возможно, вам следует следовать ссылке «канонический вопрос» в вопросе, а также, возможно, рассмотреть авторов ответов на мой вопрос здесь, прежде чем сообщить мне, что мне нужно RTFM. - Rob Moir
Я не говорю вам читать руководство. Я просто указываю, что есть руководство. Вопрос канонический, но, когда это применимо, я считаю, что он должен включать ссылку на «официальные» процедуры, если таковые существуют. В этом случае существует IETF / RFC, и это так же официально, как и получается. - Dani_l


Ответы:


Я беру на себя базовые знания о том, что делает DHCP, и как настроить ваш DHCP-сервер в этом ответе, но прежде чем говорить о нескольких DHCP-серверах в одной сети, давайте прежде всего быстро закроем, как клиенты получают IP-адреса от DHCP на самом базовом уровне.

DHCP на простой сети работает с использованием принципа DORA.

  • Discovery - клиент передает сообщение в сегменте локальной сети, к которому он подключен, для обнаружения доступных серверов DHCP.

  • Предложение - подходящий DHCP-сервер получает запрос от клиента и предлагает ему адрес из своего пула доступных адресов.

  • Запрос. Клиент отвечает на предложение, запрашивая адрес, полученный в Оферте.

  • Подтверждение. Сервер подтверждает запрос, маркируя адрес, используемый в пуле адресов, и информирует клиента о том, как долго действителен адресный адрес и какая-либо другая информация необходима.

Любое устройство в сегменте сети может быть DHCP-сервером; он не должен быть маршрутизатором или контроллером домена или любым другим «специальным» устройством в сети.

Когда устройства в вашей сети сначала запрашивают IP-адрес или доходят до конца их аренды (или вы вынуждаете их проверить, что их аренда по-прежнему действительна), они просто транслируют запрос для DHCP-сервера и будут принимать предложение от первый DHCP-сервер для ответа, Это важно помнить, поскольку мы рассмотрим варианты для нескольких DHCP-серверов ниже.

Несколько серверов DHCP PT 1: объединение нескольких подсетей.

Если у вас несколько VLAN или физических сегментов сети, которые разделены на разные подсети, и вы хотите предоставить DHCP-сервис для устройств во всех этих подсетях, тогда есть два способа сделать это.

  1. Если разделитель маршрутизатора / уровня 3, разделяющий их, может действовать как агент ретрансляции BOOTP / DHCP, вы можете продолжать хранить все ваши DHCP-серверы в одной или двух центральных частях вашей сети и настраивать DHCP-сервер (ы) поддержка нескольких диапазонов адресов. Чтобы поддержать это, коммутатор маршрутизатора или уровня 3 должен поддерживать спецификацию агента ретрансляции BOOTP, охватываемую раздел 4 RFC 1542,

  2. Если ваш маршрутизатор не поддерживает ретрансляторы RFC 1542 BOOTP, или если некоторые из ваших сетевых сегментов географически распределены по медленным ссылкам, вам нужно будет поместить один или несколько DHCP-серверов в каждую подсеть. Этот «локальный» DHCP-сервер будет удовлетворять только требованиям своего локального сегмента, и между ним и другими серверами DHCP нет никакого взаимодействия. Если это то, что вам нужно, вы можете просто настроить каждый DHCP-сервер как автономный сервер с подробными сведениями о пуле адресов для собственной подсети и не беспокоиться о каких-либо других серверах DHCP в других частях сети. Это самый простой пример наличия нескольких DHCP-серверов в одной сети.

Несколько DHCP-серверов PT 2: DHCP-серверы, обслуживающие один и тот же сегмент сети.

Когда большинство людей спрашивают о «нескольких DHCP-серверах в одной сети», то, что они обычно просят, это; они хотят, чтобы более одного DHCP-сервера выдавали один и тот же диапазон сетевых адресов клиентам, чтобы разделить нагрузку между несколькими серверами или обеспечить избыточность, если один сервер отключен.

Это вполне возможно, хотя это требует некоторой мысли и планирования.

С точки зрения «сетевого трафика» процесс DORA, описанный в начале этого ответа, объясняет, как может присутствовать более одного DHCP-сервера в сегменте сети; клиент просто транслирует запрос на обнаружение, и первым сервером DHCP, чтобы отвечать предложением, является «победителем».

С точки зрения сервера, каждый сервер будет иметь пул адресов, которые он может выдавать клиентам, известный своей областью адресов. DHCP-серверы, обслуживающие одну и ту же подсеть, не должны иметь единую «общую» область, но они должны иметь «разделяемую» область.

Другими словами, если у вас есть диапазон адресов DHCP для выдачи клиентам с 192.168.1.100 по 192.168.1.200, то оба сервера должны быть настроены для обслуживания отдельных частей этого диапазона, поэтому первый сервер может использовать части этой области из 192.168.1.100 - 192.168.1.150, а второй сервер затем выдаст 192.168.1.151 - 192.168.1.200.

Split DHCP scope, showing exclusions

В более поздних версиях Microsoft DHCP есть мастер, позволяющий разделить вашу область, как это легко сделать, описанную в Техническая статья на которые стоит обратить внимание, даже если вы не используете реализацию Microsoft DHCP, так как она хорошо иллюстрирует принципы, о которых здесь говорили, и этот ответ уже достаточно длинный.

Разделение области - лучшая практика

Одна из замечаний, которые вы услышите в качестве лучшей практики, - это правило 80/20 для разделения области DHCP, а это означает, что один сервер будет обслуживать 80% адресов в этой области, а другой DHCP-сервер, который фактически «находится в резерве», будет обслуживать 20% адресов.

Идея расщепления адресов 80/20 заключается в том, что 80% доступных адресов должны, мы надеемся, быть адекватными для всех адресов, необходимых в подсети, а аренды DHCP обычно выдаются на несколько дней; поэтому, если ваш основной сервер DHCP снизится в течение нескольких часов, маловероятно, что более 20% компьютеров в этой подсети должны будут обновить свои адреса во время простоя, что сделает достаточным 20% -ный пул адресов.

Это по-прежнему разумный совет, но он предполагает две вещи:

  1. Чтобы вы могли решить любую проблему с вашим «основным» DHCP-сервером достаточно быстро, чтобы избежать исчерпания небольшого пула адресов на резервном DHCP-сервере.
  2. Что вас не интересует балансировка нагрузки.

В эти дни (как вы можете видеть из моих примеров) я предпочитаю 50/50 расколов, которые я считаю более реалистичным ответом на вышеупомянутые моменты.

Еще одна вещь, которую следует учитывать при создании областей на серверах DHCP, - это настройка полной области на каждый сервер и исключение диапазона, выданного другим сервером DHCP. Это дает возможность «самодокументировать» информацию DHCP для всей подсети на каждом DHCP-сервере, что улучшит ясность для всех, кто пытается понять, что происходит, а также в случае, если один из ваших DHCP-серверов находится в автономном режиме для некоторое время вы можете временно перенастроить диапазон исключения на другом сервере, чтобы позволить ему забрать слабину.

Сочетание этих идей

Наконец, стоит вспомнить, что вы можете объединить принципы, описанные выше, - вы можете поместить все ваши DHCP-серверы в одну или несколько VLAN с центральным сервером и использовать ретрансляционные агенты BOOTP на всех ваших маршрутизаторах для отправки всех запросов DHCP из очень большой и сегментированной сети к централизованной службе DHCP (что я и делаю, см. ниже). Или вы можете иметь DHCP-серверы, распределенные по всей вашей сети, с «основным» DHCP-сервером в своей локальной подсети и «резервным» DHCP-сервером в «ближайшем» сегменте сети, обеспечивающим небольшое количество адресов в качестве резервной копии - вы могли бы даже два DHCP-сервера в своих собственных сегментах сети, настроенных для предоставления адресов адресов 80/20 друг для друга. Наиболее разумный выбор будет зависеть от того, как ваши физические и логические сети будут сопоставляться друг с другом.

DHCP servers serving split scopes to multiple subnets


85
2018-03-11 11:15



В случае разделяющих областей: Пожалуйста, имейте в виду, что резервирование DHCP должно быть настроено на обе половины. Хранение их синхронизации может быть довольно сложным, если вам нужно регулярно получать обновления. - Tonny
Можете ли вы рассказать о методах обеспечения того, чтобы резервный DHCP-сервер не попал, пока работает основной сервер DHCP? Из того, что я могу прочитать, если есть равная вероятность получения ответа от любого из серверов, резервный сервер будет статистически исчерпан адресов, как только общее количество договоров аренды превысит вдвое больше резервного пула. Это, по-видимому, делает резервный сервер бесполезным для новых клиентов, когда главный сервер DHCP не работает ... правильно? - Niels B.
@NielsB. если вы делаете что-то вроде разделения 80/20, вы можете установить задержку в ответе резервного сервера ( blogs.technet.com/b/teamdhcp/archive/2009/01/22/... ). Я не беспокоюсь об этом, поскольку сам использую 50/50 раскол, но он будет работать. - Rob Moir


Я принял этот подход несколько лет назад для сети малого и среднего размера (500 пользователей) со значительными преимуществами. DHCP перестала быть единственной точкой отказа. Постоянно связывая MAC и IP-адреса, мы гарантировали, что оба DHCP-сервера дали одинаковый ответ на каждый запрос DHCP. Знание IP-адреса каждого сетевого актива также упростило администрирование сети, а DNS мог работать с одной и той же базой данных. Система использовала Internet Software Corporation BIND и DNS, а связанные скрипты можно скачать по адресу http://www.pearbright.com/index.php/download/25-dns-dhcp-download Поскольку сценарий в настоящее время отключен от сети, альтернативой будет использование истинного отказа ISC DHCPD: https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html


12
2018-06-05 09:50



ОП специально попросил дать пояснительный ответ на этот вопрос. Вы можете пересмотреть свой ответ, чтобы расширить его. - Brent Pabst
fwiw, в то время как этот ответ короткий, и я никогда не откажусь более подробно в каноническом вопросе и наборе ответов, я подумал, что это неплохо, поскольку в нем упоминается несколько иной метод выполнения резервирования DHCP. - Rob Moir
@DJ Pon3 Я согласен: я запускаю аналогичную настройку, как ваш большой многосайтовый DHCP (тем не менее, VLAN), и я использую тот же подход, что и Peter Talbot для 3/4 этих VLAN. - Tonny
Ссылка сейчас не работает :( - Sergey Vlasov