2016年7月23日 星期六

DHCP RELAY 封包測試




這是我們的架構圖和部分設定。



我們先測試PC1,可以拿到DHCP 192.168.2.1,並且也可以上網。



PC2拿不到DHCP。





debup ip dhcp server packet



進R1看確實有發到DHCP,為什麼PC2沒有拿到呢?我們來follow the path看一下封包。



PC2用broadcast的封包來要DHCP的IP。



因為我們在DSW有設定dhcp relay,所以interface vlan3 192.168.3.254收到這個廣播封包後,帶介面IP 192.168.3.254 和 10.0.0.1(R1)透過unicast的方式要IP。



可是R1的DHCP Offer最後卻往ISP丟了,因此也被NAT轉成介面IP,難怪PC2沒有收到,所以沒有後續的回應封包。



我們看一下路由,如果是PC1帶inteface vlan2 192.168.2.254來問的話,確實有回去的路到 192.168.2.254,可是PC2帶inteface vlan3 192.168.3.254沒有路由可以回去,最後只能往預設路由丟。



我們加一條靜態路要去 192.168.3.0/24 往 10.0.0.2 DSW丟。



PC2終於可以拿到dhcp了,我們再來follow the path看一下封包。



首先PC2先發出廣播封包要dhcp。



因為我們在DSW有設定dhcp relay,所以interface vlan3 192.168.3.254收到這個廣播封包後,帶介面IP 192.168.3.254 和 10.0.0.1透過unicast的方式要IP。



由於有回去的路由,所以有看到 R1 (10.0.0.1) 和DSW(192.168.3.254)再溝通DHCP。


DSW(192.168.3.254) 確實有把DHCP 的Offer透過 Unicast 傳給 PC2。

我們也可以得知基本DHCP封包溝通方式為,Discover -> Offer -> Request -> Ack。

結論:
如果能知道協定的運作原理除錯會更方便,比方說封包從PC出來是broadcast,透過relay後轉成unicast,最後dhcp server用unicast回應給relay interface ip,如果dhcp server沒有到relay interface ip的路由的話,封包也無法傳送回去。

沒有留言:

張貼留言