為什么路由器明明隔離廣播域,仍然可以全網廣播比如ARP協議?

路由器隔離廣播域,為什么ARP任然會全網廣播自己的IP地址MAC地址和目標IP地址?

在蘇州打報警電話是多少?

110,蘇州的Police出警。

在上海打報警電話是多少?

110,上海的Police出警。

在上海開往廣州的高鐵上,杭州境內撥打報警電話,依然是110,杭州police出警。

題主之所以有一種錯覺,認為路由器無法隔離廣播報文(如ARP廣播),是因為目的MAC地址都是“FF.FF.FF.FF.FF.FF”的緣故?

沒錯,每個廣播域內的廣播報文所使用的目的MAC地址都是統一的“FF.FF.FF.FF.FF.FF”

如果ARP廣播報文被接收設備接收并擴散到廣播域內,那么這臺接收設備是一個二層交換機,并不是三層的路由器。

三層路由器,一旦接收到目的MAC = “FF.FF.FF.FF.FF.FF”的廣播報文,消化吸收,到此為止,不會有任何轉發的動作。這就是三層路由器的隔離廣播報文的由來。

三層路由器,理論上只接收三種報文:

  • 目的MAC= self
  • 目的MAC = “FF.FF.FF.FF.FF.FF”
  • 目的MAC =已加入的組播MAC地址,如01.00.5e.x.x.x


只要不滿足以上三個條件,路由器接口物理層成功接收,但鏈路層會拒絕。

二層交換機,理論上工作在混雜(Hybrid)模式,無論目的MAC是啥,都會接收。如果查詢MAC地址表match,從match的端口流出。如果不match,直接在廣播域(VLAN)進行廣播擴散,接收端口除外。

所以,如果看到路由器擴散廣播報文,要么這臺設備是一個二層交換機,要么如本文開頭的故事一樣,僅僅是地址巧合而已。

如果路由器要擴散廣播報文,那么這臺路由器壓根不會有許可證在市場上丟人。

在現實網絡里,廣播報文的抑制是常見操作。比如兩臺連接在同一個AP上兩臺電腦,互相ARP對方的MAC地址,會在Wireless口擴散嗎?

一般不會,因為這樣會消耗掉空域的時間slot,降低網絡的有效傳輸率。

AP怎么會不知道各位電腦的MAC地址,直接就回復了,壓根不需要ARP廣播。

還有VXLAN的場景,site A主機ARP請求site B主機的MAC地址,site A的VXLAN網關,會直接把ARP隧道傳輸給site B吧?

很顯然不會。Vxlan的控制面已經在VXLAN網關之間分享了不同site主機的MAC地址,site A網關早已知曉site B所有主機的MAC地址,那么直接就把知曉的答案告訴了請求主機。

萬事都有例外,假如請求的主機是一個很silent的主機,VXLAN控制面無法學習到它的MAC地址,怎么辦?

好辦,只要vxlan隧道不抑制ARP廣播報文即可,該隧道傳輸就隧道傳輸。