具有多个 VLAN 和子网的 dhcpd、重复的 MAC

具有多个 VLAN 和子网的 dhcpd、重复的 MAC

我有 dhcpd 与多个子网一起运行。我有重复的 MAC 地址,但位于不同的子网中,并且配置为不同的 VLAN。这个MAC会给DHCP带来一些问题吗?

DHCP 如何知道租约请求来自不同的 VLAN?它会正确给出地址吗?

答案1

你的问题的答案是肯定的,这非常有效。

在启动期间,isc dhcpd 服务器将首先读取其配置文件中的子网块。此后,守护程序根据匹配的子网确定要使用哪些接口。服务器一启动,客户端 DHCP 请求就会得到应答。这些是根据请求所针对的接口进行处理的。在此过程中,服务器接口的 MAC 地址无关紧要。

假设您有两个可用的 VLAN。 VLAN 通常从其父接口派生 MAC 地址,因此很可能有重复的 MAC 地址:

[test@testrouter ~]$ ip addr show enp3s0.2

2: enp3s0.2@enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue    state UP group default qlen 1000
link/ether 02:00:00:00:00:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global enp3s0.20 valid_lft forever preferred_lft forever

[test@testrouter ~]$ ip addr show enp3s0.3

3: enp3s0.3@enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 02:00:00:00:00:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.1/24 brd 192.168.3.255 scope global enp3s0.20 valid_lft forever preferred_lft forever

现在,我们在 dhcpd.conf 文件中创建两个子网,如下所示:

subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.101 192.168.2.151;
 option subnet-mask 255.255.255.0;
  option routers 192.168.2.1;
}

 subnet 192.168.3.0 netmask 255.255.255.0 {
  range 192.168.3.101 192.168.3.151;
  option subnet-mask 255.255.255.0;
  option routers 192.168.3.1;
}

在 dhcpd 服务器启动期间,日志文件中会出现以下消息:

[test@testrouter ~]$ journalctl -u dhcpd | grep LPF

dhcpd[1263]: Listening on LPF/enp3s0.2/02:00:00:00:00:20/192.168.2.0/24
 dhcpd[1263]: Sending on   LPF/enp3s0.2/02:00:00:00:00:20/192.168.2.0/24
 dhcpd[1263]: Listening on LPF/enp3s0.3/02:00:00:00:00:20/192.168.3.0/24
 dhcpd[1263]: Sending on   LPF/enp3s0.3/02:00:00:00:00:20/192.168.3.0/24

正如您所看到的,正确的接口已匹配。 192.168.3.0/24 子网通过该接口提供服务enp3s0.3,尽管两个接口的 MAC 地址相同。

最后但并非最不重要的一点是:可以更改 VLAN 接口的 MAC 地址。请使用ip这样的命令:

ip link set dev enp3s0.3 address 02:00:00:00:00:20

答案2

在正确的 VLAN 实施中,每个 VLAN 都有一个唯一的子网。

正如您所说,您的 DHCP 服务器知道 MAC 地址与不同的子网关联。从这个意义上说,DHCP 间接知道它们与不同的 VLAN 关联。

相关内容