消失的MAC地址
用戶:工程師,我家使用兩個路由器用的無線中繼,現在想主路由器上看看都有哪些終端,但是在ARP列表中,怎麼看到很多同樣的MAC對應不同IP地址啊?是不是有ARP攻擊了?
工程師:您好,不用擔心,你這種情況啊不是ARP欺騙,而是無線中繼使用了三地址通信,導致終端的MAC地址消失了。
用戶:什麼是三地址通信?
工程師:簡單的說就是無線終端像手機、筆記本類的如果是通過中繼設備(也可以叫副路由器)上網,他們的地址都會被中繼設備替換為自身的MAC,接下來的中繼相關的知識您也可以了解下。
我們通常所說的中繼,一般使用在有線鏈路不通的場景,無線路由器B上行通過無線和無線路由器A互聯從而達到擴展覆蓋範圍的目的。我們就以我司消費類產品MAGIC為例介紹下我司無線中繼的三地址通信。
一、工作原理
無線中繼通過無線網路作為數據橋樑來將網路數據從本地網路傳送到另外一個網路,但在這同時並不影響所有設備本身的無線覆蓋的功能。常見的拓撲如下圖:
圖中,R2+中繼到B1,此時可以通俗的理解為R2+是連接到B1上的一個終端,然後R2+再發射出自己的一個無線信號,所以呢R2+本身關聯了哪些終端設備,對B1是未知的,看到的也是R2+的MAC地址。
二、通信機制
在一個基本無線網路中,無線數據包的傳輸,需要3個地址:DA--目的MAC地址;SA--源MAC地址;BSSID--無線設備MAC地址。
例如上圖中,R2+中繼到B1上後PC A訪問PC B時,發出的無線數據包目的的MAC地址即為PC B的MAC地址,源MAC地址即為PC A的MAC,BSSID是無線路由器的無線MAC地址。
那PC A和PC B之間的通信如下:
上述過程中,可以看出從R2+發出的數據包,其源MAC地址會被替換成R2+的MAC地址,PC B收到該數據包進行響應,目的地址也是R2+的無線MAC地址,所以B1上不能直接學習到PC B的MAC地址,只能學習到R2+的MAC地址。
當R2+收到從B1轉發過來的數據包時,它將該數據包中的IP地址取出,然後從自己的列表中找到該IP地址對應的是哪個終端的MAC地址,然後將其填入該無線數據包的目的MAC地址中,組成一個發往真正目的主機的數據包。
因此呢主路由器即B1上看到的ARP列表中有很多同樣的MAC對應不同的IP地址。
但是使用我們小巧可愛的F1設備在中繼後就可以在主路由器上看到正常的ARP呢,這是為了增強使用體驗,在F1和這些設備之間通信時使用了隧道,可以將表象同步。
推薦閱讀: