the*_*ive 4 dhcp linux openbsd tftp pxe-boot
我这里有一台旧机器,我正在尝试将其设置为运行 OpenBSD 的无盘客户端,从我的 Fedora 10 机器启动。
我已经设置了 tftp 和 dhcp,两者似乎都是正确的,但客户端只是在尝试加载 pxeboot 时超时。
# /etc/xinetd.d/tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -vv
per_source = 11
cps = 100 2
flags = IPv4
}
[root@blueblock ~]# ls -la /tftpboot/
total 12100
drwxrwxrwx 2 root root 4096 2009-07-25 03:12 .
drwxr-xr-x 26 root root 4096 2009-07-25 02:41 ..
-rwxrwxrwx 1 root root 6696212 2009-02-28 22:41 bsd
-rw-r--r-- 1 root root 5592688 2009-02-28 22:41 bsd.rd
-rwxrwxrwx 1 root root 53276 2009-02-28 22:41 pxeboot
# /etc/dhcpd.conf
host longshot {
hardware ethernet 00:0b:db:07:83:35;
fixed-address 10.0.2.21;
next-server 10.0.2.5;
option root-path "/tftpboot/";
filename "pxeboot";
}
Run Code Online (Sandbox Code Playgroud)
我可以从网络上的其他机器连接到 tftp 服务器并成功获取 pxeboot 文件。
客户端正在获得正确的 IP 地址设置,我可以看到它连接到 tftp 服务器。
Jul 25 04:11:51 localhost dhcpd: DHCPDISCOVER from 00:0b:db:07:83:35 via eth0
Jul 25 04:11:51 localhost dhcpd: DHCPOFFER on 10.0.2.21 to 00:0b:db:07:83:35 via eth0
Jul 25 04:11:53 localhost dhcpd: DHCPREQUEST for 10.0.2.21 (10.0.2.5) from 00:0b:db:07:83:35 via eth0
Jul 25 04:11:53 localhost dhcpd: DHCPACK on 10.0.2.21 to 00:0b:db:07:83:35 via eth0
Jul 25 04:11:53 localhost in.tftpd[1457]: RRQ from 10.0.2.21 filename pxeboot
Jul 25 04:11:53 localhost in.tftpd[1457]: tftp: client does not accept options
Jul 25 04:11:53 localhost in.tftpd[1458]: RRQ from 10.0.2.21 filename pxeboot
Run Code Online (Sandbox Code Playgroud)
我在这里错过了一些简单的东西吗?或者我还能做些什么来尝试诊断问题。
编辑:我将 pxeboot 和 bsd 文件放在我拥有的 openbsd 机器上,并将 next-server 更改为这台机器的 ipaddress,启用它的 tftp 服务器,并且客户端第一次启动。
我发现的第一件事是您在 xinetd.conf 中使用了“-s /tftpboot”并添加了 dhcpd.conf 的“root-path”选项。为 tftpd 设置“-s”选项意味着这是 tftp 客户端所见的“/”目录。所以你的 dhcpd.conf 应该只有“filename /pxeboot”,没有 root-path 选项。
来自“人 tftpd”:
-s
Change root directory on startup. This means the remote host does not need
to pass along the directory as part of the transfer, and may add security.
When -s is specified, exactly one directory should be specified on the command
line. The use of this option is recommended for security as well as compatibility
with some boot ROMs which cannot be easily made to include a directory name
in its request.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12451 次 |
| 最近记录: |