[測試]在一個區域網路下,如果有雙DHCP Server會如何?

Lau Dai He
7 min readAug 25, 2020

--

What happens if there is two DHCP Server in a LAN ?

Author:Lau Dai

Date:2020/08/18

之前有多多少少聽過辦公室網路封包混亂的問題,某天在找文章時,看到一篇很有趣的文章

解决同一个局域网两个DHCP冲突问题 — 涉及到局域网IP扫描,主机操作系统扫描,mac地址查询

在此篇文章中,該作者的辦公室網路有兩台DHCP Server同時在發送IP,造成該網路設備會拿到不對的IP。

因此,燃起了我想測試此情境,以及透過此情境來學習網路概念。

測試環境

圖示說明

發送DHCP機器:

兩台Dray Tek Vigor 2110

Switch機器:

一台Switch TL-SG1005D

DTE設備:

一台Linux桌電、一台Windows筆電

先行測試:測試網路設備是否正常

因為是第一次使用該台居易的設備,在還不清楚設定的情況下,想先行測試該設備是否正常,以及筆者的設定內容是否正確。

測試方式:重製居易的AP後(Vigor 2110),設定兩台在同一個網段,並發送不同範圍的IP,透過USB網卡來測試網路是否正常,下列是當時的設定:

GateWay:192.168.1.1
Subnet:192.168.1.0/24
DHCP Server 1:192.168.1.2~192.168.1.51 (共50個IP)
DHCP Server 2:192.168.1.100~192.168.1.149 (共50個IP)

透過圖A與圖1,表示我們的DHCP Server 1設定無誤;

透過圖B與圖2,表示我們的DHCP Server 2設定無誤;

而圖C與圖3,則是當兩台DHCP Server與電腦連接後,同時顯示的兩個IP。

因此,我們可以推定這兩台設備是可以正常運作且設定正確。

※註記:圖C中,從左至右依序為:DHCP Server 1、筆電、DHCP Server 2

從左至右依序分別為:圖A、圖B、圖C
從左至右依序分別為:圖1、圖2
圖3

正式測試

測試方式如下:將兩台DHCP Server 與兩台PC 連接到同一個Switch下,相關設定如下:

GateWay 1:192.168.1.1
GateWay 2:192.168.2.1
Subnet 1:192.168.1.0/24
Subnet 2:192.168.2.0/24
DHCP Server 1:192.168.1.2~192.168.1.51 (共50個IP)
DHCP Server 2:192.168.2.2~192.168.2.51 (共50個IP)

USB網卡測試

當設定好網段後,依照圖C的架構,連接設備,不同之處在於測試ping時,將桌電分別連接到兩台DHCP Server的Lan Port。

透過圖A與圖4,表示我們的DHCP Server 1設定無誤;(IP 192.168.1.2)

透過圖B與圖5,表示我們的DHCP Server 2設定無誤;(IP 192.168.2.2)

而圖6中,以圖C方式連接後,稍有不同之處在於測試ICMP封包時,有將Linux桌電分別插入DHCP Server 1與2的Lan Port,因此在圖4、圖5中,才會有兩個同一個Mac Address的IP(192.168.1.3與192.168.2.3)。

從左至右依序分別為:圖4、圖5
圖6

在同一個LAN中,測試兩個DHCP Server發送IP

到了本測試中的重頭戲,測試架構圖如圖D。從左上至右下分別為:DHCP Server 1 、DHCP Server 2、Switch、Windows Laptop 與Linux Desktop。

圖D

依照此測試方式後,發現在同一個區網下,你是不會拿到兩個IP的,在兩台DTE設備中,都只會拿到一個IP,而拿到IP的依據目前還不清楚,不過很有趣的一件事是當如果你最後拿到的是DHCP Server 1的IP,那你連上此架構後,你就會拿到原本該機器發放的IP。

在此證實了,在區域網路中,如果有人無意的製造了DHCP網路迴圈(Loop),就會產生此情況,至於如何解決該問題,就是各網管人員大顯神通的時刻啦!

其它

在撰寫此測試中,有去看每台機器的ARP表,圖E、7、8為一組;圖F、9、10為另外一組,架構如下圖E、F所展示。

當我把桌機(192.168.1.3)分別插入圖E、圖F的Switch後,意外的ARP會分別捕捉到另外一台的AP(192.168.1.1與192.168.1.100),這個我到現在還是無法想到為什麼會這樣,或許要多讀一些ARP相關的書籍才知道其原理吧。

從左至右依序分別為:圖E、圖F
從左至右依序分別為:圖7、圖8
從左至右依序分別為:圖9、圖10

結論

透過此次實驗中,發現真的可以在同一個區網中有兩種以上不同網段的封包。當然,以實務上來說是不建議這樣做的,只是透過此次實驗,才有辦法去時做後續如果到此情形該如何解決。

另外,在此次實驗中,才發現一些自己不足的地方,例如一開始我以為我同時有兩個IP是因為兩個DHCP Server的關係,後來才發現是因為我有兩張實體USB網卡 OTZ...

還有當初PC的IP是192.168.1.2/24,一直想要連上192.168.2.1的Gateway,試了兩次後才發現我到底在幹嘛…

※註記:一張網卡上,可以綁定多個IP

延伸閱讀:

Can I have multiple DHCP servers on one network?

--

--

Lau Dai He

Less is more. 2021/08/01起,主要會紀錄各種技術的精華重點文章,方向可能是Pyhton, Linux, WIndows等都有可能。文章內容精簡為主,搭配少部份的個人情感抒發等。(inspired by 路人甲的世界​-知乎作者)