網(wǎng)橋工作原理
????網(wǎng)橋是一種兩端口的二層網(wǎng)絡(luò)設(shè)備,用來實(shí)現(xiàn)同一個(gè)IP網(wǎng)段的不同物理子網(wǎng)段之間的互聯(lián)互通。網(wǎng)橋所溝通的那些機(jī)器都是屬于同一個(gè)IP網(wǎng)段,但是這些機(jī)器可能又在物理上分成了多個(gè)部分,比如一部分連接到某個(gè)集線器,另一部分連接到另外一個(gè)集線器。
????網(wǎng)橋與集線器相比具有可以隔離沖突域的優(yōu)勢(shì):集線器是所有的網(wǎng)口共享背板帶寬,數(shù)據(jù)包在各個(gè)網(wǎng)口之間廣播;而網(wǎng)橋可以做到只有數(shù)據(jù)包的目的地址位于另一邊的物理網(wǎng)絡(luò)上,才轉(zhuǎn)發(fā)到另一邊網(wǎng)口,從而隔離沖突域。后來網(wǎng)橋被具有更多端口、同時(shí)也可以隔離沖突域的交換機(jī)取代。
????網(wǎng)橋有兩個(gè)端口,一個(gè)端口連接一個(gè)網(wǎng)絡(luò)設(shè)備,比如主機(jī)或者集線器,它將兩個(gè)端口所連接的兩部分網(wǎng)絡(luò)進(jìn)行溝通,具體做法是:
????網(wǎng)橋內(nèi)部維護(hù)MAC地址表,MAC地址表保存MAC地址和該MAC地址的機(jī)器所在的物理網(wǎng)絡(luò)連接的網(wǎng)橋口。
????當(dāng)數(shù)據(jù)包到達(dá)網(wǎng)橋口A的時(shí)候,根據(jù)數(shù)據(jù)包的目的MAC地址查找MAC地址表,如果該數(shù)據(jù)包的目的MAC對(duì)應(yīng)的網(wǎng)橋口為A,則網(wǎng)橋不進(jìn)行轉(zhuǎn)發(fā)處理;如果該數(shù)據(jù)包的目的MAC對(duì)應(yīng)的網(wǎng)橋口為B,則網(wǎng)橋?qū)⒃摂?shù)據(jù)包轉(zhuǎn)發(fā)到B口;如果在MAC地址表中找不到表項(xiàng),則也轉(zhuǎn)發(fā)到口B,進(jìn)行學(xué)習(xí)。
那么,網(wǎng)橋的MAC地址表是如何建立起來的呢?和交換機(jī)等網(wǎng)絡(luò)設(shè)備類似,網(wǎng)橋也可以對(duì)地址進(jìn)行學(xué)習(xí)。網(wǎng)橋啟動(dòng)時(shí),內(nèi)部的MAC地址表為空;之后進(jìn)入如下學(xué)習(xí)過程:
當(dāng)有機(jī)器C1發(fā)的數(shù)據(jù)包到達(dá)網(wǎng)橋口A時(shí),說明C1的MAC地址對(duì)應(yīng)的網(wǎng)橋口為A,如果該數(shù)據(jù)包的源MAC地址不在MAC地址表中,則插入一條新的C1的MAC地址對(duì)應(yīng)網(wǎng)橋口A的記錄;然后網(wǎng)橋根據(jù)目的MAC地址進(jìn)行轉(zhuǎn)發(fā)或者不處理。每當(dāng)有數(shù)據(jù)包到達(dá)網(wǎng)橋口時(shí),網(wǎng)橋都會(huì)進(jìn)行更新數(shù)據(jù)包源MAC地址對(duì)應(yīng)的網(wǎng)橋口,這樣一段時(shí)間之后,網(wǎng)絡(luò)里所有的機(jī)器MAC地址都會(huì)被學(xué)習(xí)到。
linux下網(wǎng)橋設(shè)置
linux系統(tǒng)支持軟件方式搭建網(wǎng)橋,且網(wǎng)橋可以連接不止兩個(gè)機(jī)器的網(wǎng)卡設(shè)備,但是連接到同一個(gè)網(wǎng)橋的那些網(wǎng)卡設(shè)備的IP地址必須在同一個(gè)網(wǎng)段!
????首先安裝網(wǎng)橋管理軟件 brctl
brctl addbr br0 ( 建立一個(gè)邏輯網(wǎng)段,名稱為br0)
brctl delbr br0 刪除網(wǎng)橋
brctl addif br0 eth0 (讓eth0 成為br0 的一個(gè)端口)
brctl addif br0 eth1 ( 讓eth1 成為br0 的一個(gè)端口)
brctl addif br0 eth0 ( 讓eth2 成為br0 的一個(gè)端口)
brctl addif br0 eth3 ( 讓eth3 成為br0 的一個(gè)端口)
brctl delif br0 eth0