mac地址分類
昨天課程中,老師給的一個11-22-33-44-55-66的mac地址,用來模擬arp表中的網關ip映射到錯誤的mac,從而無法通信,但實際上設置完成后依然能通信,這就很奇怪,抓包發(fā)現,交換機首先將這個未知目的mac地址的幀泛洪發(fā)送,按理來說路由器發(fā)現mac地址不是自己接口的就應該丟棄才對,結果路由器卻能響應,這就很奇怪。
開始我以為是我對路由器的了解太淺,以為路由器會對未知mac地址的網絡層進行檢查,所以發(fā)現ip是自己的就響應了,但后來又想了想,這樣的話路由器就負擔太大了,每個幀都處理工作量太大,所以應該是其他問題。
那能是什么問題使路由器能接收一個非本接口mac的目的mac幀呢?我嘗試將主機mac改成11-22-33-44-55-66,路由器發(fā)起通信,抓包如下

結果,arp廣播和響應都正常,但路由器不會把主機的mac保存進arp表中,還是一直在發(fā)送arp廣播,這就說明這個mac地址應該是一種特殊分類的mac地址,而不是一個單播地址,百度一下,翻翻計算機網絡,很快就找到問題了。
48位mac地址,一般用6組兩位16進制數表示,規(guī)定:mac地址第一字節(jié)最低位表示組播/單播地址,即一般表示方法的前兩位如上面的11,用二進制表示就是00010001,而最低位在這里就是最右邊這一位,這一位為1,則是組播,為0,則為單播,而組播地址所有主機都應該接收,這是規(guī)定,所以路由器也會接收處理,因此,就會出現配置非網關真實mac地址的映射,網關也會響應,解決這個問題只要保證第一字節(jié)最后一位設置成0就行,如10-22-33-44-55-66,把組播變單播就能行了。
還有,arp廣播在局域網內,實際上完完全全是用mac通信的,用不到ip地址,目的主機接收到arp廣播后,也是把幀中的目的/源mac、目的/源ip換一下位置,而交換機只按mac轉發(fā),所以,只要mac地址不沖突,arp廣播總能被正確響應,和ip是否沖突無關。ip沖突的影響在于路由器中的arp表中只能建立一條ip/mac映射記錄,ip沖突的話由于只能填入一個mac,也就只有一個主機能和外網通信,因為另一個主機就算能將數據送出網關,返回的數據也不會到自己手里,而會到ip沖突的另一個主機手里。