Linux網(wǎng)關(guān)模式下將有線LAN和無線LAN共享網(wǎng)段實(shí)現(xiàn)局域網(wǎng)內(nèi)互聯(lián): brctl addbr bridge brctl addif bridge eth0 brctl addif bridge ath0 ifconfig eth0 0.0.0.0 ifconfig bridge 10.0.0.1 netmask 255.255.255.0 up 添加iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 192.168.2.173 將有線和無線都設(shè)置為10.0.0.*網(wǎng)段,即可通過網(wǎng)上鄰居進(jìn)行訪問
當(dāng)然了,要是Linux可以工作在網(wǎng)橋模式,必須安裝網(wǎng)橋工具bridge-utils,運(yùn)行命令: yum install bridge-utils 或者下載bridge-utils-1.4.tar.gz進(jìn)行安裝,步驟如下: 編譯安裝bridge-utils (1)進(jìn)入到/usr/src 目錄下,下載bridge-utils-1.4.tar.gz : #cd /usr/src #wget http:///bridgeutils/ main/1.4/+download/bridge-utils- 1.4.tar.gz (2)解壓縮: #tar zxvf bridge-utils-1.4.tar.gz 進(jìn)入bridge-utils-1.4目錄:
#cd bridge-utils-1.4 (3)編譯安裝: #autoconf 生成configure文件: #./configure #make #make install 編譯安裝完成。最后將命令brctl復(fù)制到/sbin下: #cp/usr/local/sbin/brctl/sbin
=========================================================================
下面是參考的一片文章:
有五臺(tái)主機(jī)。其中一臺(tái)主機(jī)裝有l(wèi)inux ,安裝了網(wǎng)橋模塊,而且有四塊物理網(wǎng)卡,分別連接同一網(wǎng)段的其他主機(jī)。我們希望其成為一 個(gè)網(wǎng)橋,為其他四臺(tái)主機(jī)(IP分別為192.168.1.2 ,192.168.1.3,192.168.1.4,192.168.1.5) 之間轉(zhuǎn)發(fā)數(shù)據(jù)包。同時(shí),為了方便管 理,希望網(wǎng)橋能夠有一個(gè)IP(192.168.1.1),那樣管理員就可以在192.168.1.0/24網(wǎng)段內(nèi)的主機(jī)上telnet到網(wǎng)橋,對(duì)其進(jìn)行配置, 實(shí)現(xiàn)遠(yuǎn)程管理。 前一節(jié)中提到,網(wǎng)橋在同一個(gè)邏輯網(wǎng)段轉(zhuǎn)發(fā)數(shù)據(jù)包。針對(duì)上面的拓?fù)洌@個(gè)邏輯網(wǎng)段就是192.168.1.0/24網(wǎng)段。我們?yōu)檫@個(gè)邏輯網(wǎng)段一個(gè)名稱,br0。首先需要配置這樣一個(gè)邏輯網(wǎng)段。
# brctl addbr br0 (建立一個(gè)邏輯網(wǎng)段,名稱為br0) 實(shí)際上,我們可以把邏輯網(wǎng)段192.168.1.0/24看作使一個(gè)VLAN ,而br0則是這個(gè)VLAN的名稱。
建立一個(gè)邏輯網(wǎng)段之后,我們還需要為這個(gè)網(wǎng)段分配特定的端口。在Linux中,一個(gè)端口實(shí)際上就是一個(gè)物理網(wǎng)卡。而每個(gè)物理網(wǎng)卡 的名稱則分別為eth0,eth1,eth2,eth3。我們需要把每個(gè)網(wǎng)卡一一和br0這個(gè)網(wǎng)段聯(lián)系起來,作為br0中的一個(gè)端口。
# 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è)端口)
網(wǎng)橋的每個(gè)物理網(wǎng)卡作為一個(gè)端口,運(yùn)行于混雜模式,而且是在鏈路層工作,所以就不需要IP了。
# ifconfig eth0 0.0.0.0 # ifconfig eth1 0.0.0.0 # ifconfig eth2 0.0.0.0 # ifconfig eth3 0.0.0.0
然后給br0的虛擬網(wǎng)卡配置IP:192.168.1.1。那樣就能遠(yuǎn)程管理網(wǎng)橋。
# ifconfig br0 192.168.1.1
給br0配置了IP之后,網(wǎng)橋就能夠工作了。192.168.1.0/24網(wǎng)段內(nèi)的主機(jī)都可以telnet到網(wǎng)橋上對(duì)其進(jìn)行配置。
以上配置的是一個(gè)邏輯網(wǎng)段,實(shí)際上Linux網(wǎng)橋也能配置成多個(gè)邏輯網(wǎng)段(相當(dāng)于交換機(jī)中劃分多個(gè)VLAN)。
另外一篇有助理解的文章:http://www./os/201202/118320.html ===================================================================== [root@xenserver ~]# brctl --help Usage: brctl [commands] commands: addbr <bridge> add bridge delbr <bridge> delete bridge addif <bridge> <device> add interface to bridge delif <bridge> <device> delete interface from bridge setageing <bridge> <time> set ageing time setbridgeprio <bridge> <prio> set bridge priority setfd <bridge> <time> set bridge forward delay sethello <bridge> <time> set hello time setmaxage <bridge> <time> set max message age setpathcost <bridge> <port> <cost> set path cost setportprio <bridge> <port> <prio> set port priority show show a list of bridges showmacs <bridge> show a list of mac addrs showstp <bridge> show bridge stp info stp <bridge> {on|off} turn stp on/off
==================================================================== addbr bridge的名稱 #添加bridge; delbr bridge的名稱 #刪除bridge; addif bridge的名稱device的名稱#添加接口到bridge; delif bridge的名稱device的名稱#從bridge中刪除接口 setageing bridge的名稱時(shí)間 #設(shè)置老化時(shí)間,即生存周期 setbridgeprio bridge的名稱 優(yōu)先級(jí)#設(shè)置bridge的優(yōu)先級(jí) setfd bridge的名稱時(shí)間 #設(shè)置bridge轉(zhuǎn)發(fā)延遲時(shí)間 sethello bridge的名稱時(shí)間 #設(shè)置hello時(shí)間 setmaxage bridge的名稱時(shí)間 #設(shè)置消息的最大生命周期 setpathcost bridge的名稱 端口 權(quán)重#設(shè)置路徑的權(quán)值 setportprio bridge的名稱 端口 優(yōu)先級(jí)#設(shè)置端口的優(yōu)先級(jí) show #顯示bridge列表 showmacs bridge的名稱 #顯示MAC地址 showstp bridge的名稱 #顯示bridge的stp信息 stp bridge的名稱{on|off} #開/關(guān)stp
設(shè)置linux讓網(wǎng)橋運(yùn)行 配置網(wǎng)橋 1.我們需要讓linux知道網(wǎng)橋,首先告訴它,我們想要一個(gè)虛擬的以太網(wǎng)橋接口:(這將在主機(jī)bridge上執(zhí)行,不清楚的看看測(cè)試場(chǎng)景) root@bridge:~> brctl addbr br0 2.其次,我們不需要STP(生成樹協(xié)議)等。因?yàn)槲覀冎挥幸粋€(gè)路由器,是絕對(duì)不可能形成一個(gè)環(huán)的。我們可以關(guān)閉這個(gè)功能。(這樣也可以減少網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)包污染): root@bridge:~> brctl stp br0 off 3.經(jīng)過這些準(zhǔn)備工作后,我們終于可以做一些立竿見影的事了。我們添加兩個(gè)(或更多)以太網(wǎng)物理接口,意思是:我們將他們附加到剛生成的邏輯(虛擬)網(wǎng)橋接口br0上。 root@bridge:~> brctl addif br0 eth0 root@bridge:~> brctl addif br0 eth1 4.現(xiàn)在,原來我們的兩個(gè)以太網(wǎng)物理接口變成了網(wǎng)橋上的兩個(gè)邏輯端口。那兩個(gè)物理接口過去存在,未來也不會(huì)消失。要不信的話,去看看好了。.現(xiàn)在他們成了邏輯網(wǎng)橋設(shè)備的一部分了,所以不再需要IP地址。下面我們將這些IP地址釋放掉 root@bridge:~> ifconfig eth0 down root@bridge:~> ifconfig eth1 down root@bridge:~> ifconfig eth0 0.0.0.0 up root@bridge:~> ifconfig eth1 0.0.0.0 up
好了!我們現(xiàn)在有了一個(gè)任何IP地址都沒有的box w/o了。好了,這下如果你想通過TP配置你的防火墻或路由器的話,你就只能通過本地的控制端口了。你不會(huì)告訴我你的機(jī)器上連串行端口都沒有吧? 注:上面紅色部分其實(shí)是可選的,在試驗(yàn)中,我發(fā)現(xiàn),就算不把原有的網(wǎng)卡地址釋放掉,網(wǎng)橋也能工作!但是,為了更規(guī)范,或者說 為了避免有什幺莫名其妙的問題,最好還是按要求做,執(zhí)行這四步吧!
5.最后,啟用網(wǎng)橋root@bridge:~> ifconfig br0 up 可選: 我們給這個(gè)新的橋接口分配一個(gè)IP地址 root@bridge:~> ifconfig br0 10.0.3.129 或者把最后這兩步合成一步: root@bridge:~> ifconfig br0 10.0.3.129 up 就是多一個(gè)up!
這下我們做完了 。
關(guān)閉網(wǎng)橋命令
brctl delif ena eth1; brctl delif ena eth0; ifconfig ena down; brctl delbr ena;
摘自 zjl_1026_2001的專欄
什么是網(wǎng)橋 網(wǎng)橋是一種在鏈路層實(shí)現(xiàn)中繼,對(duì)幀進(jìn)行轉(zhuǎn)發(fā)的技術(shù),根據(jù)MAC分區(qū)塊,可隔離碰撞,將網(wǎng)絡(luò)的多個(gè)網(wǎng)段在數(shù)據(jù)鏈路層連接起來的網(wǎng)絡(luò)設(shè)備。 Linux 網(wǎng)橋配置命令:brctl 在Linux中配置網(wǎng)絡(luò)一般使用 brctl 命令,使用此命令首先要安裝:bridge-utils軟件包。 [inbi@debian~]#apt-get install bridge-utils [inbi@debian~]#modprobe bridge [inbi@debian~]#echo "1">/proc/sys/net/ipv4/ip_forward #安裝bridge-utils軟件包,并加載bridge模塊和開啟內(nèi)核轉(zhuǎn)發(fā)。 [inbi@debian~]#brctl #直接輸入brctl命令將顯示幫助信息! Usage: brctl [commands] commands:
[inbi@debian~]#brctl addbr br0 #增加一個(gè)網(wǎng)橋 [inbi@debian~]#ifconfig eth0 0.0.0.0 promisc [inbi@debian~]#ifconfig eth1 0.0.0.0 promisc [inbi@debian~]#brctl addif br0 eth0 eth1 #將兩塊已有的網(wǎng)卡添加到網(wǎng)橋,此時(shí)這兩個(gè)網(wǎng)卡工作于混雜模式,所以不需要IP了,因?yàn)榫W(wǎng)橋是工作在鏈路層的。 [inbi@debian~]#brctl show #查看已有網(wǎng)橋
你也可以為 br0 設(shè)置一個(gè)IP,已訪問這臺(tái)機(jī)器。 [inbi@debian~]#ifconfig br0 10.10.1.1 netmask 255.255.0.0 up [inbi@debian~]#brctl delif br0 eth0 eth1 #增加網(wǎng)橋中的接口 [inbi@debian~]#brctl delbr br0 #刪除網(wǎng)橋
[inbi@debian~]#brctl stp br0 off #關(guān)閉生成樹協(xié)議,減少數(shù)據(jù)包污染,因?yàn)槲疫@里只有一個(gè)路由器哦!
[inbi@debian~]#echo "modprobe bridge">>/etc/rc.local #開機(jī)加載 bridge 模塊,或者echo "bridge">>/etc/modules [inbi@debian~]#cp /etc/network/interfaces /etc/network/interfaces.default #備份下,方便以后使用啊! [inbi@debian~]#vim /etc/network/interfaces auto lo eth0 eth1 br0 iface lo inet loopback iface br0 inet static address 10.10.10.1 netmask 255.255.0.0 gateway 10.10.10.254 pre-up ip link set eth0 promisc on pre-up ip link set eth1 promisc on pre-up echo "1">/proc/sys/net/ipv4/ip_forward bridge_ports eth0 eth1 #配置eth0 eth1 br0開機(jī)啟動(dòng),eth0,eth1未設(shè)置IP信息,在啟動(dòng)br0網(wǎng)卡時(shí),開啟了eth0,eth1的混雜模式,并橋接了它們。
|
|