Как компьютер получает IP-адрес через DHCP?


27

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

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

Ответы:


41

Он не знает, какое устройство запрашивать. Таким образом, он передает свой запрос всей подсети. Сервер DHCP прослушивает определенный тип связи, и когда он слышит эту конкретную передачу, он начинает диалог DHCP с устройством, которое передало его запрос. Посмотрите на процесс DORA для получения дополнительной информации.

ДОРА означает:

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

Что касается резервных DHCP-серверов, вам нужно хранить их в одной подсети и, вероятно, использовать правило 80/20 . Вы можете настроить аварийное переключение, если вы используете CentOS в качестве DHCP-сервера .


17
+1 ДОРА исследователь Dhcp? Я предполагаю, что это был бы больше DORA, который обнаружил
Nixphoe

3
@Nixphoe Me Густа.
Уэсли

Здесь возникает вопрос: обычно существует широковещательный адрес, связанный с каждой подсетью, не зная ничего о сети, как сетевая карта формулирует сообщение так, чтобы его получал DHCP-сервер (и любые промежуточные коммутаторы)?
авария

2
@crasic - верно, в этом случае он вещает 255.255.255.255
Марк Хендерсон

1
@Mark D'oh, большая часть этого объяснена в ссылке в ответе, в следующий раз я должен RTFA
авария

3

DHCP (как правило) является протоколом широковещания, поэтому клиенту не нужно ничего знать о сети, он просто передает запрос.

DHCP-серверы в сети увидят этот запрос и ответят на него.

Конечно, это намного сложнее, из-за маршрутизации и других сетевых устройств. Страница Википедии - отличный источник .

И соответствующий RFC охватывает детали.


3

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

Во-первых, я приветствую ваш интерес узнать больше о протоколе. Это хороший план.

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

Напоследок мой ответ:

Для любого DHCP-сервера, который вы выберете, скорее всего, существует конфигурация аварийного переключения / резервирования, которая позволяет вам настроить резервный DHCP-сервер, который может вступать во владение автоматически (я полагаю, что Windows имеет такой, и я знаю, что DHCP-сервер ISC может). Это был бы мой первый выбор, поскольку он обычно решает проблемы с арендой, выданной основным DHCP-сервером до его отказа, и потому что он восстанавливается автоматически и быстро.

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


Я вижу смысл правила 80/20 ... если сервер 80 выходит из строя, тогда еще есть сервер 20, который выдаст IP-адреса. Но это не обеспечивает какой-либо поддержки для продолжительного простоя, поскольку в конечном итоге все клиенты захотят возобновить аренду, но только с 20% доступного предыдущего диапазона адресов. Мне нравится ваше предложение "реальной" избыточности, но использование второго компьютера с Windows не будет вариантом в моем сценарии (аппаратный брандмауэр будет другим DHCP-сервером). Я думаю, я мог бы вручную перенастроить сервер 20 на сервер 100? ;)
Bigbio2002

2

Несколько шагов участвуют в получении IP-адреса от сервера DHCP.

  1. Сообщение об обнаружении, это сообщение передается для поиска dchp-сервера

  2. DHCP-серверы в сети отвечают сообщением предложения.

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

  4. Сообщение подтверждения DHCP отправляется для подтверждения сервером.


1
Upvote для простоты. Было бы здорово, если бы вы могли включить это в принятый ответ
Bigbio2002

@ Bigbio2002 Это твой вопрос. Вы сами решаете, какой ответ следует принять.
Майкл Хэмптон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.