DHCP через PXE не работает, но в ОС он работает - с настроенным (R)STP

Я пытаюсь установить настольную машину с PXE-загрузкой, чтобы установить новую ОС по сети, но во время загрузки она не получает IP-адрес через DHCP. Когда ОС уже загружена на машине, она работает нормально. В прошлом у меня были некоторые проблемы с этим из-за неправильно настроенного RSTP. Но с spanning-tree [PORT] admin-edge-port на коммутаторах HP (эквивалентно ciscos portfast я думаю) я думал, что решил это. Теперь он вернулся, с точно такими же симптомами... PXE-Boot:

Client -> Server: DHCP-Discover
Server -> Client: DHCP-Offer
Client -> Server: DHCP-Discover
Server -> Client: DHCP-Offer
.... looping...

Я попробовал несколько вещей:

  • продление времени загрузки (проверка памяти на клиенте)
  • отключение RSTP
  • отключить автосогласование между коммутатором и клиентом

Я в конце своего остроумия. У кого-то есть идея?

3 ответа

Решение

Если DHCP работает через операционную систему, но не через PXE, вероятно, что-то не так с прошивкой / конфигурацией самой сетевой платы.

Зайдите в прошивку сетевого адаптера во время загрузки (обычно это последовательность клавиш Cntl или вы получаете доступ к BIOS, если он встроен) и посмотрите, какие варианты доступны для настройки.

Убедитесь, что интерфейс, с которого работает ОС DHCP, действительно тот же интерфейс, что и при PXE. С настольным компьютером у вас может быть только один интерфейс, но если их несколько, возникают обычные проблемы, когда перечисление устройств ОС не соответствует вашим ожиданиям.

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

Многие из ответов на эту проблему заканчиваются STP и необходимостью использовать PortFast. Это так часто, что мало информации, чтобы помочь с тем, что делать, как только вы исключаете STP.

Я столкнулся с этой проблемой и никогда бы не решил ее без использования tcpdump с опцией "-vv" со старой машины в том же сегменте сети, что и клиент с проблемой. Беспорядочный режим не нужен.

Когда загружается стандартный клиент PXE, он запрашивает у DHCP-сервера обычные элементы: IP; подсети; шлюз; и т.д. Однако, он также запрашивает имя сервера tftp и имя boofile. Это все часть одного запроса. Я всегда ошибался, думая, что запрос на жизненно важные функции PXE-сервера был вторым запросом, когда машина получила информацию об IP-адресе и могла общаться в сети. Если эти элементы PXE отсутствуют, как это было в моем случае из-за ошибки файла конфигурации, клиент, кажется, не может получить IP-адрес, который отображается как повторяющиеся DHCP-Discover и DHCP-Offer, без DHCP-запроса. В моем случае клиент действительно получил ответ с информацией IP, только ответ был неполным, основываясь на том, что было задано... поэтому клиент спрашивал снова и снова, пока не истекло время ожидания. Я потерял много времени, думая, что клиент не получал "предложение", когда оно было. Клиент просто не был доволен предложением. Я настраивал vlan's, ip-helpers и stp config. Я искал не в том месте.

Разница между хорошим и плохим ответом заключалась в том, что неправильно сформированное "предложение" не имело имени загрузочного файла, поэтому клиент продолжал спрашивать. Once the config file was fixed the "offer" did contain the tftp server name and bootfile name. The client was satisfied with the content if the "offer" so it then issued a Request, then used the PXE info to contact the TFTP server.

У нас была похожая проблема с нашими серверами HP, подключенными к C4948. Процесс загрузки PXE останавливается после предложения dhcp. Сервер HP не ответит ответным пакетом DHCP.

Решение # мы остановили все широковещательные пакеты UDP на VLAN, настроив ACL на порту доступа, и он начал работать как чудо. Надеюсь, поможет.

Другие вопросы по тегам