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