DHCPサーバー(192.168.201.2)、TFTP/NFSサーバー(192.168.201.3)、および2つから起動する他のマシンでネットワークを構築しています。すべてのマシンでUbuntu 16.04.4が実行されています。
ポスト後、1つをオンにすると、DHCPサーバーからIPを正常に受信し、TFTPサーバーに接続し、vmlinuzとinitrd.imgをロードしますが、IPを再度取得しようとすると、次のメッセージが表示されます。
IP-Config: eth0 hardware address xx:xx:xx:xx:xx:xx mtu 1500 DHCP
IP-Config: no response after 2 secs - giving up
IP-Config: eth0 hardware address xx:xx:xx:xx:xx:xx mtu 1500 DHCP
IP-Config: no response after 3 secs - giving up
等々。
私の設定
/ etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
allow booting;
allow bootp;
subnet 192.168.201.0 netmask 255.255.255.0 {
default-lease-time 3600;
max-lease-time 86400;
option routers 192.168.201.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 208.67.222.222, 8.8.8.8;
option broadcast-address 192.168.201.255;
range 192.168.201.3 192.168.201.254;
filename = "gpxelinux.0";
next-server 192.168.201.3;
}
Host tftp {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.201.3;
}
/ tftpboot/pxelinux.cfg/default
MENU LABEL Ubuntu DISKLESS
KERNEL vmlinuz-4.4.0-127-generic
APPEND boot=nfs root=/dev/nfs nfsroot=192.168.201.3:/srv/nfsroot/installer/ default,ro initrd=initrd.img-4.4.0-127-generic ipv6.disable=1 ip=dhcp net.ifnames=0 biosdevname=0
/ etc/initramfs-tools/initramfs.conf(NFSサーバー上のシステム上)
MODULES=netboot
BUSYBOX=auto
COMPCACHE_SIZE=""
COMPRESS=gzip
DEVICE=eth0
NFSROOT=auto
BOOT=nfs
this バグを見つけましたが、klibc-2.0.4-8ubuntu1.16.04.1で修正されました。これが実行中のバージョンです。
DHCPサーバーでdhcpdumpを実行してみましたが、次のようになります。
TIME: 2018-06-05 11:22:59.057
IP: 0.0.0.0 (xxx) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
Hops: 0
XID: 4dae1bf8
SECS: 4
FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: xxx
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER)
OPTION: 55 ( 36) Parameter Request List 1 (Subnet mask)
2 (Time offset)
3 (Routers)
4 (Time server)
5 (Name server)
6 (DNS server)
11 (Resource location server)
12 (Host name)
13 (Boot file size)
15 (Domainname)
16 (Swap server)
17 (Root path)
18 (Extensions path)
22 (Maximum datagram reassembly size)
23 (Default IP TTL)
28 (Broadcast address)
40 (NIS domain)
41 (NIS servers)
42 (NTP servers)
43 (Vendor specific info)
50 (Request IP address)
51 (IP address leasetime)
54 (Server identifier)
58 (T1)
59 (T2)
60 (Vendor class identifier)
66 (TFTP server name)
67 (Bootfile name)
128 (???)
129 (???)
130 (???)
131 (???)
132 (???)
133 (???)
134 (???)
135 (???)
YIADDR:0.0.0.0は、サーバーが要求を受信しているが応答していないことを意味しますか?しかし、なぜ?
私が試した他のことは、ip = dhcpをip = bootpおよびip =:192.168.201.2 ::::: eth0:dhcpに変更することですが、何も変わりません。
静的IPを手動で設定した場合:
ip=192.168.201.55:192.168.201.2:192.168.201.1:255.255.255.0:ubuntu:eth0:static
すべては機能しますが、ネットワークには多くのクライアントが存在するため、すべてを自動化する必要があります。
何が間違っているのかわかりません。
編集:
DHCPサーバーは応答しています:
TIME: 2018-06-05 11:23:24.857
IP: 192.168.201.2 (xxx) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 2 (BOOTPREPLY)
HTYPE: 1 (Ethernet)
HLEN: 6
Hops: 0
XID: 8d449854
SECS: 0
FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 192.168.201.11
SIADDR: 192.168.201.3
GIADDR: 0.0.0.0
CHADDR: xxx
SNAME: .
FNAME: gpxelinux.0.
OPTION: 53 ( 1) DHCP message type 2 (DHCPOFFER)
OPTION: 54 ( 4) Server identifier 192.168.201.2
OPTION: 51 ( 4) IP address leasetime 3164 (52m44s)
OPTION: 1 ( 4) Subnet mask 255.255.255.0
OPTION: 3 ( 4) Routers 192.168.201.1
OPTION: 6 ( 8) DNS server 208.67.222.222,8.8.8.8
OPTION: 15 ( 11) Domainname example.org
OPTION: 28 ( 4) Broadcast address 192.168.201.255
そしてすべてが私にとって正しいように見えますが、なぜクライアントはこれを受け取っていないのですか?
誰かがこれを見つけた場合、ここでそれを解決しました。
バグ 私の投稿で言及したものは実際には修正されていません。修正する最も簡単な方法は、 here からINITRD_N11.2.2.GZをダウンロードして、あなたがいるフォルダーに置くことですinitrdファイルを用意し、PXE構成で元のinitrdの後にファイル名をコンマで区切って追加します。また、ipをbootpに設定する必要があります。だから私のファイルは次のようになりました:
MENU LABEL Ubuntu DISKLESS
KERNEL vmlinuz-4.4.0-127-generic
APPEND boot=nfs root=/dev/nfs nfsroot=192.168.201.3:/srv/nfsroot/installer/ default,ro initrd=initrd.img-4.4.0-127-generic,INITRD_N11.2.2.GZ net.ifnames=0 biosdevname=0 ipv6.disable=1 ip=bootp
すべてが正常に動作します。
INITRD_N11.2.2.GZは、Ubuntu 16.04専用です。バージョンチェックが異なる場合 here 。