題 當交換機知道MAC地址但發送PC不知道目的MAC的MAC時,如何工作


4台PC連接到交換機,此交換機知道其MAC地址(所有4台PC)。計算機A和計算機D之前沒有通信,因此他們都沒有將ARP表更新為彼此的MAC地址。

計算機A想要與計算機D通信,因此它發出計算機D的MAC地址的ARP請求。該ARP將是廣播消息(具有FF:FF:FF:FF:FF:FF作為ARP分組中的目的地MAC)。

我想了解交換機將如何處理,因為它已經知道計算機D的MAC但計算機A不是。交換機是否允許計算機D響應ARP混亂(廣播)或丟棄該ARP請求並直接將計算機A的數據包路由到計算機D(因為交換機已經知道計算機D的MAC)?


12
2017-08-08 05:18


起源


除了答案之外,我現在所知道的所有操作系統都會在鏈接啟動時發出免費ARP。 - AbraCadaver
@AbraCadaver這不是真的相關。免費ARP應該只有現有的ARP緩存條目,而不是創建新的。這意味著在IP移動或更換NIC時強制淘汰過時的條目,而不是預加載緩存。 - Barmar
@Barmar:No。Bridge / switch看到幀,記錄源MAC和端口。這是它的工作原理。 - AbraCadaver
@AbraCadaver這與如何處理無償ARP有什麼關係? - Barmar
@Barmar:交換機不處理免費ARP。它看到一個帶有源MAC的以太網幀進入特定端口,就是這樣...... - AbraCadaver


答案:


ARP請求當然會通過。

交換機不知道ARP。它只知道以太網(即以太網幀上的MAC地址),而不是它上面的協議。 (有些交換機提供IGMP Snooping等高級功能,但這與此無關。)

因為它是廣播消息,所以必須將其傳送到所有(連接的)端口。這就是所有開關關心的問題。它無法知道它真的注定要用於計算機D.


24
2017-08-08 05:28



以太網是一種協議。但是,簡單的交換機只關注某些協議(如以太網),而不關注其他協議(如Internet協議版本4或傳輸控制協議)。 - TOOGAM
ARP請求詢問:“192.168.0.1在哪裡?”交換機對此一無所知。 - Michael Hampton


ARP請求只是一條消息,上面寫著“你在那裡IP 隨你!什麼是你的MAC地址?“即使ARP處理髮現第2層地址,它本身也是第3層請求,因為它被發送到IP地址。交換機不在第3層運行。

在你給出的例子中,你知道交換機沒有的東西; ARP請求中的IP地址屬於計算機D.目標MAC地址是廣播,這是所有交換機都知道或關心的。如果交換機看到廣播MAC,那麼它將廣播該數據包簡單明了。

是的,那裡有第3層交換機,並且學生會指出ARP在技術上不是第3層協議,但這對於這個例子都不重要。


11
2017-08-08 08:40



真正的學生會指出它是“迂腐”而非“吊墜”。除了這個小細節,答案似乎是正確的。 - Cronax
哈哈!甚至沒有看到那裡的拼寫錯誤。謝謝你的追趕。 - Wes Sayeed