路由式ARP代理:
實驗拓撲:
實驗需求:
- IP規劃如圖所示:
- PC1和PC2屬于同一網段,需要PC1可以與PC2互通,
實驗步驟:
- 配置IP位址,并檢驗直連連通性,(略)
這裡的話,因為是pc和路由器的掩碼不一樣,是以PC1 ping 10.1.10.3的位址時,會使用對端的24位的掩碼來跟自己作比較,用于判斷是否在同一網段。
- 在R1的接口上開啟ARP代理:
# interface GigabitEthernet0/0/0 ip address 10.1.10.3 255.255.255.0 arp-proxy enable # interface GigabitEthernet0/0/1 ip address 10.1.20.3 255.255.255.0 arp-proxy enable
- 在PC1上 ping PC2進行驗證:
PC>ping 10.1.20.2 Ping 10.1.20.2: 32 data bytes, Press Ctrl_C to break Request timeout! From 10.1.20.2: bytes=32 seq=2 ttl=127 time=16 ms From 10.1.20.2: bytes=32 seq=3 ttl=127 time=16 ms From 10.1.20.2: bytes=32 seq=4 ttl=127 time=31 ms From 10.1.20.2: bytes=32 seq=5 ttl=127 time=16 ms --- 10.1.20.2 ping statistics --- 5 packet(s) transmitted 4 packet(s) received 20.00% packet loss round-trip min/avg/max = 0/19/31 ms PC>
實驗分析:
- 在PC1上 ping PC2,發現跟自己的同一網段,PC會通過IGMP發送一個回應要求給對方,進行二層封裝,發現不知道 PC2的mac位址,查找本地ARP快取記錄,發現為空,于是發起ARP請求,
- 但是由于PC跟PC2屬于同一網段,不同廣播域,路由器是不會轉發廣播包的,是以PC2是收不到該ARP請求的,是以就不能進行互訪,這樣就可以在路由器上配置ARP代理,當路由器收到ARP請求之後,會将自己接收端口的MAC位址發送給PC1,讓PC1誤認為路由器接口的mac位址就是PC2的mac位址,之後的所有封裝都會以此MAC作為目的MAC進行封裝,這樣路由器就可以識别了,
[R1]dis in g0/0/0 GigabitEthernet0/0/0 current state : UP Line protocol current state : UP Last line protocol up time : 2019-05-13 18:22:37 UTC-08:00 Description:HUAWEI, AR Series, GigabitEthernet0/0/0 Interface Route Port,The Maximum Transmit Unit is 1500 Internet Address is 10.1.10.3/24 IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 00e0-fcbf-1790 Last physical up time : 2019-05-13 18:20:45 UTC-08:00 Last physical down time : 2019-05-13 18:20:39 UTC-08:00 # Hardware address 的值就是接口的MAC位址 #發現與上圖中ARP應答的MAC位址相同
- 路由器收到該比特流後,進行逐層階層,解封二層資料幀,發現目的MAC為自己,接收。繼續解封三層資料包,發現目的ip不是自己,然後路由器根據目的IP進行查表。根據到達目的IP下一跳的出接口進行轉發,三層封裝不變,并将源MAC位址封裝為該出接口的MAC位址,但是發現不知道目的IP的MAC,無法進行二層封裝,于是對IP 10.1.20.2發起ARP請求。
- 得到MAC位址之後,将重新封裝好的資料發送給PC 2
-
[R1]dis interface g0/0/1 GigabitEthernet0/0/1 current state : UP Line protocol current state : UP Last line protocol up time : 2019-05-13 19:33:03 UTC-08:00 Description:HUAWEI, AR Series, GigabitEthernet0/0/1 Interface Route Port,The Maximum Transmit Unit is 1500 Internet Address is 10.1.20.3/24 IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 00e0-fcbf-1791 #g0/0/1的MAC位址為00e0-fcbf-1791
- PC2收到ICMP回應要求之後,會回複一個回應答覆給PC1
- 源MAC為自己,目的MAC路由器接口MAC