[測試]在一個區域網路下,如果有雙DHCP Server會如何?
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
正式測試
測試方式如下:將兩台DHCP Server 與兩台PC 連接到同一個Switch下,相關設定如下:
GateWay 1:192.168.1.1
GateWay 2:192.168.2.1Subnet 1:192.168.1.0/24
Subnet 2:192.168.2.0/24DHCP 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)。
在同一個LAN中,測試兩個DHCP Server發送IP
到了本測試中的重頭戲,測試架構圖如圖D。從左上至右下分別為:DHCP Server 1 、DHCP Server 2、Switch、Windows Laptop 與Linux Desktop。
依照此測試方式後,發現在同一個區網下,你是不會拿到兩個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相關的書籍才知道其原理吧。
結論
透過此次實驗中,發現真的可以在同一個區網中有兩種以上不同網段的封包。當然,以實務上來說是不建議這樣做的,只是透過此次實驗,才有辦法去時做後續如果到此情形該如何解決。
另外,在此次實驗中,才發現一些自己不足的地方,例如一開始我以為我同時有兩個IP是因為兩個DHCP Server的關係,後來才發現是因為我有兩張實體USB網卡 OTZ...
還有當初PC的IP是192.168.1.2/24,一直想要連上192.168.2.1的Gateway,試了兩次後才發現我到底在幹嘛…
※註記:一張網卡上,可以綁定多個IP