在CentOS中对PXE Boot进行故障排除

我正在解决我们已经安装使用的PXE服务器问题。 它基于Cent OS 5.5。 我们在Cent OS的相对安装上安装了以下组件:

  • tftp-server(xinetd)
  • SYSLINUX

我们不需要在这个盒子上运行DHCP,DNS或DNSMasq,因为这些服务已经在我们的networking上由另一组服务器处理了。 此框主要用于处理PXE启动所需的TFTPfunction,提供PXE启动菜单以及存储一些可用于PXE启动的ISO。 已经在我们正在testing的VLAN中对DHCP服务器进行了以下更改:

filename "pxelinux.0"; next-server xxx.xxx.xxx.xxx; 

我们还更新了此VLAN上交换机的DHCP Helper地址,以指向我们的PXE服务器。 最后,我们通过PXE服务器上的IPTABLES防火墙允许PXE引导客户端的IP范围为端口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 

我已经validationxinetd正在运行并使用以下命令在端口69上侦听:

 netstat -nulp | grep 69 

我从这里学习 CentOS维基上列出的教程,大部分是设置PXE布局所需的文件和结构。 但是,我们没有提供我们安装的PXE启动菜单,看来机器永远不会正确的PXE启动。

我不知道如何从这里开始,并且很好奇,如果有人熟悉PXE故障排除,可能会帮助我启动和运行。

预先感谢您的帮助。

tftp使用比69更多的端口。你需要允许udp> 1023进出tftp服务器。

你可能阻止通过/etc/hosts.deny访问?

服务器是多宿主服务器(2个或更多networking接口)吗? rpcbind也许只能绑定一个接口而不是正确的接口? 尝试用-h IP1 -h IP2启动rpcbind。

检查

 man rpcbind 

如果您也在服务器上执行tcpdump,您是否看到有数据包到达?

在/etc/xinetd.d/tftp的“only_from”中可能是错误的设置? “server_args = -s / tftpboot”?