具有多個 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 關聯。

相關內容