Cisco

思科小型 LAN 上的 ARP 連接

  • May 12, 2012

我覺得有這個疑問很蹩腳,所以有一個問題:為什麼我沒有連接?

案例很簡單,我已經配置了拓撲,並在每台 PC 和各自的網關之間建立了連接。

問題是當我嘗試將另一個網路中的設備(如 PC1 到 PC0)ping 通時,會發生下一個事件

  1. PC1廣播arp知道R0的MAC網關
  2. R0 回复 arp 到 PC1
  3. PC1 發送 icmp 數據包 R0
  4. R0廣播arp知道PC0的MAC
  5. PC0 不回复,因為“ARP 請求的發送方 IP 地址與接收埠位於不同的網路中。”

所以我想知道為什麼PC0不回复?這是 ARP 的基本功能嗎?

顯然,我已經配置了 2 個靜態路由(每個路由器上一個)將數據包路由到同一介面上的另一個網路。

on R1 : ip route 192.168.1.0 255.255.255.0 FastEthernet0/0
on R0 : ip route 172.16.200.0 255.255.255.0 FastEthernet0/0

非常感謝您的回答!

=========================(編輯)更新/答案================== ==============

在我閱讀了 RFC 之後,我明白了為什麼這是行不通的。很簡單,ARP 還沒有被開發/設計來響應(回复)來自另一個網路的請求。在這種情況下,我強制轉發(通過靜態路由)到路由器不屬於的網路。在一些文件中,他們說這個協議介於第 2 層和第 3 層(layer2.5 LOL)之間,但實際上他從未跨過第 3 層,它只在一個幀中發送有關第 3 層的資訊。因此,當設備從另一個網路接收到 ARP 請求時,他會處理該幀(要轉換的幀中是她的 IP)並看到另一個網路中的 ARP 請求發送方 IP 自動丟棄該幀。要在另一個網路中進行 arp 請求,我們需要一個設備 Layer3 作為 ARP 代理,他只需中繼 arp 的請求並回复,顯然每個網路都有連接。這是一個奇怪的設計,有點愚蠢,但對了解更多關於 ARP / LAN 的資訊很有趣。我想對那些回應並試圖提供幫助的人說聲謝謝。

如果您在中間有一個路由器,那麼您正在跨廣播域工作。ARP/Layer-2 通信在 mac 地址之間顯式完成。

在典型情況下會發生什麼:

PC 1 (ip XXXX, mac XX:XX:XX:XX:XX:XX) 想要連接到 PC 2 (ip YYYY, mac YY:YY:YY:YY:YY:YY) PC 1 注意到 IP YYYY 不是“本地可路由”,因此它將數據包發送到路由器(ip ZZZZ,mac ZZ:ZZ:ZZ:ZZ:ZZ:ZZ)

此時離開PC1的包長這樣 src ip = XXXX src mac = XX:XX:XX:XX:XX:XX, dst ip = YYYY, dst mac = ZZ:ZZ:ZZ:ZZ:ZZ:ZZ

交換機將數據包“切換”到路由器(因為它已經知道插入了哪個埠 ZZ:ZZ:ZZ:ZZ:ZZ:ZZ)路由器知道 IP YYYY 在它的另一個介面上,並將數據包路由到PC2 相應地。

此時,離開路由器的數據包如下所示: src ip = XXXX src mac = ZZ:ZZ:ZZ:ZZ:ZZ:ZZ, dst ip = YYYY, dst mac = YY:YY:YY:YY:YY: YY

PC2 接受其 MAC 地址上的數據包……並且還注意到該 IP 是發給自己的……然後對數據包執行任何操作。

PC1 在任何時候都不知道 MAC 地址。沒有直接的方法可以知道不在同一廣播域中的設備的 MAC 地址……因為“物理地址”(或 MAC)僅用於與本地連接的設備進行本地通信。

引用自:https://serverfault.com/questions/387255