如何防止systemd-networked发送客户端标识符?

时间:2018-09-28 03:49:50

标签: client systemd identifier dhcp coreos

我有一台安装了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;
}
  • PXE加载程序请求了租约记录100.79.223.152,但被DHCP服务器拒绝了。
  • 租借记录100.79.223.150是由systemd-networked的 CoreOS。 (我可以通过运行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为   记录。

source of systemd

DHCP服务器版本为isc-dhcpd-4.2.4

编辑2019-03-12:我弄错了,发现了一些东西,所以自己回答了这个问题。简单的答案是服务器端的ignore-client-uids true;运作良好,客户端的ClientIdentifier=mac不能正常运作。

1 个答案:

答案 0 :(得分:1)

您是否尝试过将客户端标识符设置为(空)?

$ cat /etc/systemd/network/zz-default.network
[Network]
DHCP=yes

[DHCP]
ClientIdentifier=
UseMTU=true
UseDomains=true