Назад | Перейти на главную страницу

PXE зависает при запуске через мост маршрутизатора (tftp-сервер)

Я запускаю tftp-сервер через xinetd. Когда я подключаю клиентское устройство напрямую или через коммутатор, оно загружается правильно. Однако я не могу полностью загрузиться с клиентского устройства, подключенного через маршрутизатор в режиме моста. Он получает договор аренды DHCP и начинает загрузку файлов, но затем истекает время ожидания. Мне не ясно, какой шаг должен выполняться по истечении времени ожидания. На самом деле кажется, что "время ожидания истекло" в ту же секунду, когда клиент завершил загрузку start.elf.

Когда я подключаю свой ноутбук к маршрутизатору с мостовым подключением и запускаю traceroute на адресе tftp-сервера, у него есть доступ:

Traceroute has started…

traceroute to 192.168.10.1 (192.168.10.1), 64 hops max, 72 byte packets
 1  192.168.10.1 (192.168.10.1)  10.906 ms  5.274 ms  4.500 ms

Есть ли способ лучше регистрировать и знать, какой шаг истекает, чтобы я знал, где отлаживать? Я уже запускаю -v -v в исполняемом файле tftp, но не могу найти там дополнительной информации о дополнительном журналировании.

Это результат в / var / log / messages:

Apr  8 23:01:25 shepherd dnsmasq-dhcp[19671]: DHCPDISCOVER(eno1) da:0d:17:d4:30:3b
Apr  8 23:01:25 shepherd dnsmasq-dhcp[19671]: DHCPOFFER(eno1) 192.168.10.133 da:0d:17:d4:30:3b
Apr  8 23:01:25 shepherd in.tftpd[19022]: RRQ from 192.168.10.133 filename bootcode.bin
Apr  8 23:01:26 shepherd in.tftpd[19022]: Client 192.168.10.133 finished bootcode.bin
Apr  8 23:01:26 shepherd in.tftpd[19027]: RRQ from 192.168.10.133 filename bootsig.bin
Apr  8 23:01:26 shepherd in.tftpd[19027]: Client 192.168.10.133 File not found bootsig.bin
Apr  8 23:01:26 shepherd in.tftpd[19027]: sending NAK (1, File not found) to 192.168.10.133
Apr  8 23:01:26 shepherd dnsmasq-dhcp[19671]: DHCPDISCOVER(eno1) da:0d:17:d4:30:3b
Apr  8 23:01:26 shepherd dnsmasq-dhcp[19671]: DHCPOFFER(eno1) 192.168.10.133 da:0d:17:d4:30:3b
Apr  8 23:01:26 shepherd in.tftpd[19029]: RRQ from 192.168.10.133 filename 69d4303b/start.elf
Apr  8 23:01:26 shepherd in.tftpd[19029]: Client 192.168.10.133 File not found 69d4303b/start.elf
Apr  8 23:01:26 shepherd in.tftpd[19029]: sending NAK (1, File not found) to 192.168.10.133
Apr  8 23:01:26 shepherd in.tftpd[19030]: RRQ from 192.168.10.133 filename autoboot.txt
Apr  8 23:01:26 shepherd in.tftpd[19030]: Client 192.168.10.133 File not found autoboot.txt
Apr  8 23:01:26 shepherd in.tftpd[19030]: sending NAK (1, File not found) to 192.168.10.133
Apr  8 23:01:26 shepherd in.tftpd[19031]: RRQ from 192.168.10.133 filename config.txt
Apr  8 23:01:26 shepherd in.tftpd[19031]: Client 192.168.10.133 finished config.txt
Apr  8 23:01:26 shepherd in.tftpd[19032]: RRQ from 192.168.10.133 filename recovery.elf
Apr  8 23:01:26 shepherd in.tftpd[19032]: Client 192.168.10.133 File not found recovery.elf
Apr  8 23:01:26 shepherd in.tftpd[19032]: sending NAK (1, File not found) to 192.168.10.133
Apr  8 23:01:26 shepherd in.tftpd[19033]: RRQ from 192.168.10.133 filename start.elf
Apr  8 23:01:32 shepherd in.tftpd[19040]: RRQ from 192.168.10.133 filename fixup.dat
Apr  8 23:01:32 shepherd in.tftpd[19040]: Client 192.168.10.133 finished fixup.dat
Apr  8 23:01:37 shepherd in.tftpd[19033]: Client 192.168.10.133 finished start.elf
Apr  8 23:01:37 shepherd in.tftpd[19033]: Client 192.168.10.133 timed out
[adam@shepherd ~]$ cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#   protocol.  The tftp protocol is often used to boot diskless \
#   workstations, download configuration files to network-aware printers, \
#   and to start the installation process for some operating systems.
service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -v -v -s /tftpboot
    disable         = no
    per_source      = 11
    cps         = 100 2
    flags           = IPv4
}

Чтобы отследить эту проблему, вам понадобится захват трафика Wireshark (то есть на сервере TFTP), чтобы действительно знать, что происходит на уровне пакетов.