LINUX.ORG.RU
решено ФорумAdmin

Нестабильно работает отправка загрузчика ipxe по tftp (tftp open timeout)

 , , , ,


0

2

Здравствуйте! Я практикуюсь с созданием бездисковых клиентов и столкнулся с проблемой отправки файла загрузчика от tftp-сервера (на нём же крутится раздача адресов по dhcp). Между бездисковым клиентом и сервером пролегают два промежуточных устройства, выполняющие функции маршрутизаторов (ospf) и файрволлов. ВСЕ устройства работают на Centos 8, поверх VirtualBox. Клиент и сервер работают в разных подсетях, в то же время клиент без проблем получает ip-адрес по dhcp через dhcp-relay. Если клиента размещать в одной подсети с сервером, то отправка загрузчика работает без проблем. Мне же нужно обеспечить стабильную работу устройств при условии их нахождения в разных подсетях. Или же, если это возможно (что сомнительно), сменить загрузку с tftp на http или ftp.

Пробовал менять dhcp-сервера (с dhcp-server на dnsmasq), вырубать selinux и firewalld, менять tftp-сервера (tftp-server, xinetd, dnsmasq) с выставлением разных флагов. При просмотре трафика через tcpdump, примерно в 1 из 20 случаев загрузки клиента тот отправлял запросы на скачивание загрузчиков (пробовал работать с pxe и ipxe). В остальных случаях трафика не было, а клиент показывал tftp open timeout.

https://i.imgur.com/54s4V77.png - tftp open timeout на клиенте

https://i.imgur.com/ffwEMVZ.png - показания tcpdump на пограничном интерфейсе маршрутизатора с клиентом.

https://pastebin.com/DCVek4Af - конфиг dhcp- tftp-сервера на dnsmasq.

Скажите, если каких-то выхлопов не будет достаточно.



Последнее исправление: Serpentary (всего исправлений: 1)

Попробуй получить файл по tftp загрузившить с live-cd.

Если проблема не воспроизводится, значит проблема в прошивке, а не в сети.

Если есть управляемый коммутатор, то можно через port-mirror посмотреть передаются ли пакеты от pxe

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)

ipxe прекрасно умеет в http, зачем тебе tftp?

anonymous
()
Ответ на: комментарий от FireFighter

@FireFighter

https://i.imgur.com/LLtNRu4.png - удачный запрос на загрузчик.

@vel

Благодаря твоему совету я, кажись, понял, в чём дело. У моих машин на virtualbox было и есть очень поганое свойство не отправлять пинги, если их перед этим не пропинговали, не сообщили о других устройствах. То есть, запущенный клиент не будет выполнять команду ping и tftp get, если с ним через маршрутизатор или сервер не связались (в то же время, адрес по dhcp клиент почему-то может принимать). Я хз, с чем это связано и как это лечить. На vmware что ли переходить…

С live-cd я как раз попробовал вручную запросить файл по tftp и получил tftp: timeout. Пинг до сервера не работал. После пинга от сервера до клиента — проблема свелась на нет.

@anonymous

Пробовал настроить, но то ли из-за кривизны рук, то ли из-за обобщения проблемы выше, клиент не показывал даже полученные адреса по dhcp.

https://controlc.com/5de1c96a - конфиг dhcp-сервера с типо настроенной загрузкой по http.

https://controlc.com/680a5ae7 - каталог с файлами, на который ссылается dhcpd и httpd.

https://controlc.com/b76c0475 - конфиг httpd.

https://i.imgur.com/oHkwEnH.png - ответ клиента.

Serpentary
() автор топика

поставь tftpd-hpa.

укажи next-server внешний-адрес; в конфиге, где у тебя доступен tftpd-hpa. не локалхост. локалхост относительно qemu это его хост.

grub-mknetdir --net-directory /var/lib/ipxeboot/

в dhcpd.conf укажи filename "boot/grub/i386-pc/core.0";

по необходимости редактируй файл /var/lib/ipxeboot/boot/grub/grub.cfg чтобы управлять параметрами загрузки.

iPXE и прочую голубую луну оставь смуззи-хлёбам.

вот в этом треде всё чётко и по делу :: Почему ОС всё ещё не загружаются по сети?

Spoofing ★★★★★
()
Ответ на: комментарий от Spoofing

спуфи, чем тебе iPXE не мил?! там столько удобств!

или это как Эдди и кои8? если я угадал, можешь не отвечать, я пойму ;)

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от aol

хотя бы потому, что топикстартер не может с ним разобраться и завести. тогда как классический метод с tftp-hpa + grub просто работает.

во-вторых, тут https://ipxe.org/howto/dhcpd в качестве эталонной реализации предложен вариант загрузки filename http://, далее два обычных filename загружающих файлы ...откуда? правильно, с tftp сервера. т.е. получается tftp сервер нам нужен при любом раскладе. а если так, то зачем вообще эта лишняя прослойка сущности в виде iPXE? естественно, я выбираю тогда tftp сервер + grub2 с которым уже знаком, как любой другой пользователь.

в третьих, загрузка со стороннего http ресурса это не нужные накладные расходы +время к загрузке +трафик туда-сюда гонять. это плохой пример молодому поколению. так делать не стоит. вот есть локалхост — запускай на локалхосте. неча в интернет ходить, по небезопасному http:// протоколу выкачивать ядро+рамдиск. верно ж говорю?

серьёзно, я даже сам задумался о том, что сейчас возьму, укажу filename https://....ipxe и не буду поднимать tftp сервер, ведь ipxe уже есть в qemu. как удобно! но погодите-ка. http? не https? мне ради одного файлика работу сайта/домена ломать? а если я хочу efi? что? мне всё равно tftp придётся ставить ради передачи efi-загрузчика? ..... ясно понятно. спасибо я не голодный.

немного не по теме, но этот вопрос для меня актуален. я пишу свой хостинг с нуля, и тоже вот решил настроить PXE загрузку, так сказать, чтобы QEMU загружался всегда, даже если у пользователя отсутствует ОС на диске. и смотря на всю эту порнографию с iPXE, в принципе я просто тогда оставляю всё по-классике и вообще ничего не потеряю. а на скриншоте уже загруженный grub с tftp висит. просто работает.

Spoofing ★★★★★
()
Ответ на: комментарий от Spoofing

Ну чо ты к хттп прицепился? Там есть и другие методы. К тому же, этот сегмент сети не предназначается в публичный доступ.

Посмотри лучше на автопровиженинг типа matchbox и не городи костылей )

aol ★★★★★
()

Проблема решена. Перенёс все виртуалки с VirtualBox на VMware. На последнем такой дичи с неустановкой соединения не наблюдается. Клиенты чуть ли не мгновенно коннектятся к dhcp- и tftp-серверу.

Serpentary
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.