二層交換機工作在鏈路層,負責數據楨的轉發,一個數據楨包含來源MAC,目標MAC,(ARP楨目標MAC不指定)
交換機負責將一個端口(物理上的)上收到的楨轉發給另外的端口,由於一個端口對應一或多個MAC(對應多個MAC是交換機級連時出現的情況)所以交換機實現了MAC->MAC的數據包轉發,
MAC表學習過程:
任何楨發送到交換機上時至少包含源MAC,因此交換機就可以記錄一條(端口,MAC)記錄到“端口MAC映射表”,針對那些交換機無法找到目標端口的目標MAC地址(可能是ARP楨的6字節全0目標MAC),交換機則將該楨轉發到除接收端口外的其他全部端口,該過程叫泛洪,而目標主機收到后就會回復該楨,而交換機就可以記錄該回復楨的源MAC(即上面的目標MAC)跟端口的對應關系以備下次使用
廣播風暴:
交換機級連時如果出現回路,會形成網絡風暴,如ARP楨,只有源MAC(目標MAC為全為0)對交換機來說一旦存在回路就會兩個交換機之間來回發,從而占用信道。同時回路也會造成MAC地址表不穩定。
參考:http://wenku.baidu.com/view/c7b041768e9951e79b8927c6.html
//=================================================
參考:
文檔編號:514
瀏覽:1241 評分:22
用戶問題:
交換機是否會受到
ARP欺騙?
問題答案:
交換機是不會受到
ARP欺騙的,ARP攻擊也無法對交換機造成任何后果
問題原理:
無論交換機在收到主機或者路由器發過來的數據時,都有責任對這些數據進行轉發,當它從某個端口收到數據包后,讀取數據包中的源
MAC地址,從而就得到了此端口和MAC地址的映射表,當它在映射表中還找不到目標MAC地址來確定應該將數據發向哪個端口時,它就會在除源端口之外的其它所有端口進行泛洪(類似廣播),這時,因為是泛洪,所以真正的目標主機能夠收到這些數據包,也因為交換機在轉發數據包的時候,即使ARP緩存表是空的,它也不需要發ARP廣播來請求MAC地址,所以也根本不存在ARP欺騙,如果下面繼續有其它端口的數據要轉發,交換機再使用上面同樣的方法,來學習到每個端口對應的MAC地址,就是因為通過這樣向其它端口泛洪來學習到端口和MAC地址的映射表,所以交換機從來沒有收到過任何關於MAC地址到IP地址的ARP數據包,況且交換機也從來不讀取數據包中的IP地址.
問題結論:
1.交換機任何時候都不關心IP地址,因為交換機是二層設備,(三層交換機除外,三層交換 機就當路由器來對待了)。
2.交換機中的ARP緩存是端口號到MAC地址的映射,與IP地址無關。
3.交換機中的ARP緩存表是通過在轉發數據包時讀取源端口和源MAC時記錄下來的,而不是通過ARP廣播去詢問的。
4.當交換機的緩存表不能反應出目標MAC和端口的映射時,就會向除源端口外的每個端口發一份(泛洪),以保證真正的目標主機能夠收到數據。
5.因為ARP緩存中找不到端口號和MAC地址的映射時,就會泛洪,所以人工地綁定端口和MAC地址只是解決泛洪,讓交換機不要因為找不到目標MAC地址而向每個端口都復制數據,這種方法與解決ARP欺騙沒有任何關系!
問題結論:
1.交換機任何時候都不關心IP地址,因為交換機是二層設備,(三層交換機除外,三層交換 機就當路由器來對待了)。
2.交換機中的ARP緩存是端口號到MAC地址的映射,與IP地址無關。
3.交換機中的ARP緩存表是通過在轉發數據包時讀取源端口和源MAC時記錄下來的,而不是通過ARP廣播去詢問的。
4.當交換機的緩存表不能反應出目標MAC和端口的映射時,就會向除源端口外的每個端口發一份(泛洪),以保證真正的目標主機能夠收到數據。
5.因為ARP緩存中找不到端口號和MAC地址的映射時,就會泛洪,所以人工地綁定端口和MAC地址只是解決泛洪,讓交換機不要因為找不到目標MAC地址而向每個端口都復制數據,這種方法與解決ARP欺騙沒有任何關系!
附理解交換機的工作原理:
交換機是根據自己的
ARP緩存表來提供數據轉發的,ARP緩存中記錄着端口號對應的MAC地址,當收到數據需要轉發時,先讀取數據中的源MAC地址,再看來自哪個端口,然后記錄下來寫入ARP緩存表,最后交換機查找ARP緩存表以確定該把數據發向哪個端口,如果ARP緩存中沒有找到答應,那么這時交換機便決定把數據向除了向源端口之外其它所有端口都復制一份,這樣便可以萬無一失地把數據送到目的地,除非根本沒有這個目的地,所以交換機的ARP緩存表是通過讀取需要轉發的數據的源MAC和源端口來學習到的,不是通過ARP詢問來更新的!