我有一台安装了CoreOS 1800(或1855)的计算机,其磁盘上装有以下systemd-networkd config(该计算机中只有一个网络接口):
$ cat /etc/systemd/network/zz-default.network
[Network]
DHCP=yes
[DHCP]
ClientIdentifier=mac
UseMTU=true
UseDomains=true
另一个值得注意的事情是,该计算机还配置了PXE引导,但是PXE服务器将拒绝引导,因此我最终将从磁盘引导。
当我重新启动计算机时,将为它分配两个DHCP IP,我通过在DHCP服务器中检查/var/lib/dhcpd.leases来确认它:
lease 100.79.223.152 {
starts 5 2018/09/28 02:34:00; ends 6 2018/09/29 02:33:59; tstp 6 2018/09/29 02:33:59; cltt 5 2018/09/28 02:34:00;
binding state active; next binding state free; rewind binding state free;
hardware ethernet 08:9e:01:d9:28:64;
option agent.circuit-id 0:5:8:b9:1:0:29;
}
lease 100.79.223.150 {
starts 5 2018/09/28 02:34:29; ends 6 2018/09/29 02:34:28; tstp 6 2018/09/29 02:34:28; cltt 5 2018/09/28 02:34:29;
binding state active; next binding state free; rewind binding state free;
hardware ethernet 08:9e:01:d9:28:64; uid "001010236001331(d";
option agent.circuit-id 0:5:8:b9:1:0:29;
}
systemctl restart
systemd-networkd
进行确认,并观看租约文件)一切似乎都很好,但是PXE租约记录100.79.223.152引起了其他问题(当真正的PXE启动计算机并向其部署另一个操作系统时,它将获得100.79.223.152而不是150,然后导致其他私有问题)。
如果我安装了其他不使用systemd-networkd的操作系统,那么重新启动只会导致1条租约记录。
您可以看到租约100.79.223.150的字段uid为“ 001010236001331(d)”,这表示让DHCP服务器通过uid(客户端标识符)分配IP,当前它实际上是mac地址的内容,只是打印为八位字节。
这是两个IP的根本原因。
为防止出现这两个IP问题,我尝试在DHCP服务器的/etc/dhcp/dhcpd.conf中设置deny duplicates
,但没有任何变化。
我在徘徊,如果有可能告诉systemd-networkd不发送uid(客户端标识符)。根据{{3}},它有意实现为“始终发送客户端标识符”,
在这种情况下,如何防止systemd-networkd发送客户端标识符?
编辑2019/02/17:我发现我误解了deny duplicates
的含义,它没有帮助解决此问题。
我记得我曾经首先测试过另一个选项,但是没有用。
ignore-client-uids on;
ignore-client-uids语句
ignore-client-uids标志;
如果ignore-client-uids语句存在并且值为true 或开启时,不会记录客户端的UID。如果这句话是 不存在或值为false或off,则客户端UID为 记录。
DHCP服务器版本为isc-dhcpd-4.2.4
编辑2019-03-12:我弄错了,发现了一些东西,所以自己回答了这个问题。简单的答案是服务器端的ignore-client-uids true;
运作良好,客户端的ClientIdentifier=mac
不能正常运作。
答案 0 :(得分:1)
您是否尝试过将客户端标识符设置为(空)?
$ cat /etc/systemd/network/zz-default.network
[Network]
DHCP=yes
[DHCP]
ClientIdentifier=
UseMTU=true
UseDomains=true