我正在对已设置的 PXE 服务器进行故障排除。它基于 Cent OS 5.5。我们在相对简单的 Cent OS 安装上安装了以下组件:
- tftp 服务器 (xinetd)
- 系统Linux
我们不需要在此框上运行 DHCP、DNS 或 DNSMasq,因为这些服务已由我们网络上的另一组服务器处理。此框主要用于处理 PXE 启动所需的 TFTP 功能、显示 PXE 启动菜单以及存储可用于 PXE 启动的一些 ISO。我们已经对在其中测试的 VLAN 的 DHCP 服务器进行了以下更改:
filename "pxelinux.0";
next-server xxx.xxx.xxx.xxx;
我们还更新了此 VLAN 交换机上的 DHCP Helper 地址,使其指向我们的 PXE 服务器。最后,我们允许 PXE 引导客户端的 IP 范围通过 PXE 服务器上的 IPTABLES 防火墙,端口为 69。下面列出了尝试连接到 PXE 服务器的客户端的 tcpdump 输出。客户端尝试连接,然后失败,提示 TFTP-OPEN 已超时。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:40:33.700465 IP <IP REMOVED>.ah-esp-encap > <IP REMOVED>.tftp: 28 RRQ "/pxelinux.0" octet tsize 0
11:40:35.678042 IP <IP REMOVED>.acp-port > <IP REMOVED>.tftp: 28 RRQ "/pxelinux.0" octet tsize 0
11:40:39.687397 IP <IP REMOVED>.msync > <IP REMOVED>.tftp: 28 RRQ "/pxelinux.0" octet tsize 0
11:40:45.674107 IP <IP REMOVED>.gxs-data-port > <IP REMOVED>.tftp: 28 RRQ "/pxelinux.0" octet tsize 0
11:40:53.638246 IP <IP REMOVED>.vrtl-vmf-sa > <IP REMOVED>.tftp: 28 RRQ "/pxelinux.0" octet tsize 0
11:41:03.581136 IP <IP REMOVED>.newlixengine > <IP REMOVED>.tftp: 33 RRQ "/pxelinux.0" octet blksize 1456
1830 packets captured
1830 packets received by filter
0 packets dropped by kernel
我已经使用以下命令验证了 xinetd 正在运行并监听端口 69:
netstat -nulp | grep 69
我按照 CentOS wiki 上列出的教程进行操作这里大部分内容是设置所需的文件和 PXE 布局的结构。但是,我们没有看到我们设置的 PXE 启动菜单,而且机器似乎从未正确进行 PXE 启动。
我不确定从这里开始如何进行,并且好奇是否有人熟悉 PXE 故障排除,可能能够帮助我启动并运行它。
提前感谢您的帮助。
答案1
tftp 使用的端口多于 69。您需要允许 udp >1023 往返于 tftp 服务器。
答案2
您是否可能通过 /etc/hosts.deny 阻止访问?
服务器是否为多宿主服务器(2 个或更多网络接口)?rpcbind 是否只绑定到一个接口,而不是正确的接口?尝试使用 -h IP1 -h IP2 启动 rpcbind。
查看
man rpcbind
如果您还在服务器上执行 tcpdump,您是否看到有任何数据包到达那里?
/etc/xinetd.d/tftp 中的“only_from”设置可能错误?“server_args = -s /tftpboot”?