明明都照其他VLAN設定了,為什麼拿不到DHCP IP?

客戶在星期一丟給我如標題的詢問,但是依我經驗,發DHCP IP是個網路的基本功,如果連這都做不好,進到業界會被嘴很久很久。

我不太相信客戶沒能力設好,沒能力搞定。

但我最近繁忙,也有排定去現場的日子,當下就沒有急著去想為什麼,到現場再說。

DHCP有四個步驟DISCOVERY、OFFER、REQUSET、ACK。剛好發起角色是Client、Server、Client、Server。(對應UDP跟Port號就不提了。

客戶問我除錯會怎麼做?

我這個人只能老實,我回答「眼見為憑」。

看了Switch設定,沒錯。

利用ip-sla去測試,拿不到DHCP。

查看dhcp-snooping,沒有擋。

後面去問客戶系統組的,客戶同仁也願意開給我看,我一看沒幾秒,就說謝謝表示不需要再看了。那設定沒問題,我也就不說什麼了。

因此整條DHCP運作中,只有中間的FW沒有看。

一般環境,DHCP不會由Core Switch發,都會Relay給DHCP Server。管理DHCP Server比管理Core Switch還更直覺明瞭與更容易設定。大多數都會給Windows Server擔任DHCP Server,圖形介面就是王道。

當說到要看防火牆時,客戶問我那防火牆要看什麼?

我就說某某IP(Core Switch VLAN IP)到某某IP(DHCP Server)這一條。

起初不相信不給直接看,為了挑戰我的論述,先用其他IP看,一個個證明,卻不小心就回到我說的,然後寫著被Deny。該規則設定許多網段能過,卻唯獨漏掉那一段,害我都不知道怎麽圓場了。

我不喜歡抓戰犯抓原因,更樂於導向解決狀況,不提誰是原因,講出來傷感情,大家都不是笨蛋,其實也都知道是誰。

在典型的DHCP發放教學中,不見得會帶入Relay的角色,但Relay卻是多數環境會用的。

如果Relay加進來會怎麼樣?

其實是一樣的,就是DHCP Server會去檢查該IP是否在其中一個Pool的Network內,如果有,就發該Pool。

送給DHCP Server的該IP就是Core Switch 該VLAN IP,我非常肯定,因為用Wireshark看過,也實作過,並不會代跟DHCP Server同網段的IP,因為這樣子就無法適用於多個VLAN網段的Relay啊。

我找到Cisco Packet Tracer實戰的文章,特定找細看到封包內容的文章,於是說你可以去LAB,我說的就跟這文章一樣。藉此佐證我的說辭。

然後在防火牆抓到設定疏漏,客戶一陣吐糟下,寫信內部反應溝通,隔天就正常了。害我費一點心力去打圓場,恢復正常才沒有我的功勞呢。

其實,最難的點,就是去舉證別人。

我也警惕我手下,說別人的錯之前,要先準備好證據,你可以懷疑,但沒來由的懷疑,別人會生氣的,為了避免公關危機,你需要是常人能明白的證據,不一定要百分之百正確,但要很好懂。

在我的除錯論述中,整個流程,Switch設定無誤、DHCP Server設定無誤,就會去看中間的設定了,剛好是FireWall。

但檢查FW的人可能跟你說沒問題,於是就需要更強力證據,去夾擠出真相。

DHCP有去無回,是可以透過DHCP Snooping看的,DHCP Snooping計數器的Client增加,但是Server回應沒增加。正也是直接往Switch之後的設備檢查的強力證據,不過沒能用上,一旦用上了,又給我一個理由去眼見為憑。

會用DHCP Snooping與IP-SLA去判斷,是到了CCNP的等級。有證照是一回事,如果沒到那等級不會很正常,於是就教客戶怎麽用這個去判斷,減少干擾Production環境。