Linux 網橋配置命令: brctl

Linux網關模式下將有線LAN和無線LAN共享網段實現局域網內互聯:

思路其實很簡單:就是將虛擬出一個bridge口,將對應的有線LAN和無線LAN都綁定在這個虛擬bridge口上,並給這個bridge口分配一個地址,其他子網微機配置網關爲bridge口的地址便可以了。當然,因爲是設備是網關模式,路由和nat也是必須的了。如果設備本身便是網橋模式,那麼路由和nat便可以省掉了。

    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

    將有線和無線都設置爲10.0.0.*網段,即可通過網上鄰居進行訪問

 

當然了,要是Linux可以工作在網橋模式,必須安裝網橋工具bridge-utils,運行命令:

yum install -y bridge-utils

或者下載bridge-utils-1.4.tar.gz進行安裝,步驟如下:

編譯安裝bridge-utils

(1)進入到/usr/src 目錄下,下載bridge-utils-1.4.tar.gz :

#cd /usr/src

#wget http://launchpad.net/bridgeutils/

main/1.4/+download/bridge-utils-

1.4.tar.gz

(2)解壓縮:

#tar zxvf bridge-utils-1.4.tar.gz

進入bridge-utils-1.4目錄:

 

#cd bridge-utils-1.4

(3)編譯安裝:

#autoconf

生成configure文件:

#./configure

#make

#make install

編譯安裝完成。最後將命令brctl複製到/sbin下:

#cp/usr/local/sbin/brctl/sbin

 

=========================================================================


 

下面是參考的一片文章:

 

有五臺主機。其中一臺主機裝有linux ,安裝了網橋模塊,而且有四塊物理網卡,分別連接同一網段的其他主機。我們希望其成爲一


個網橋,爲其他四臺主機(IP分別爲192.168.1.2 ,192.168.1.3,192.168.1.4,192.168.1.5) 之間轉發數據包。同時,爲了方便管


理,希望網橋能夠有一個IP(192.168.1.1),那樣管理員就可以在192.168.1.0/24網段內的主機上telnet到網橋,對其進行配置,


實現遠程管理。

前一節中提到,網橋在同一個邏輯網段轉發數據包。針對上面的拓撲,這個邏輯網段就是192.168.1.0/24網段。我們爲這個邏輯網段一個名稱,br0。首先需要配置這樣一個邏輯網段。

 

# brctl addbr br0                    (建立一個邏輯網段,名稱爲br0)

實際上,我們可以把邏輯網段192.168.1.0/24看作使一個VLAN ,而br0則是這個VLAN的名稱。

 

建立一個邏輯網段之後,我們還需要爲這個網段分配特定的端口。在Linux中,一個端口實際上就是一個物理網卡。而每個物理網卡


的名稱則分別爲eth0,eth1,eth2,eth3。我們需要把每個網卡一一和br0這個網段聯繫起來,作爲br0中的一個端口。

 

# brctl addif br0 eth0               (讓eth0成爲br0的一個端口)

# brctl addif br0 eth1               (讓eth1成爲br0的一個端口)

# brctl addif br0 eth0               (讓eth2成爲br0的一個端口)

# brctl addif br0 eth3               (讓eth3成爲br0的一個端口)

 

網橋的每個物理網卡作爲一個端口,運行於混雜模式,而且是在鏈路層工作,所以就不需要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的虛擬網卡配置IP:192.168.1.1。那樣就能遠程管理網橋。

 

# ifconfig br0 192.168.1.1

 

給br0配置了IP之後,網橋就能夠工作了。192.168.1.0/24網段內的主機都可以telnet到網橋上對其進行配置。

 

以上配置的是一個邏輯網段,實際上Linux網橋也能配置成多個邏輯網段(相當於交換機中劃分多個VLAN)。

 

 

 

另外一篇有助理解的文章:http://www.2cto.com/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的名稱時間     #設置老化時間,即生存週期

        setbridgeprio bridge的名稱 優先級#設置bridge的優先級

        setfd bridge的名稱時間         #設置bridge轉發延遲時間

        sethello bridge的名稱時間      #設置hello時間

        setmaxage bridge的名稱時間     #設置消息的最大生命週期

        setpathcost bridge的名稱 端口 權重#設置路徑的權值

        setportprio bridge的名稱 端口 優先級#設置端口的優先級

        show     #顯示bridge列表

        showmacs bridge的名稱  #顯示MAC地址

        showstp  bridge的名稱           #顯示bridge的stp信息

        stp bridge的名稱{on|off}       #開/關stp

 

設置linux讓網橋運行    配置網橋

1.我們需要讓linux知道網橋,首先告訴它,我們想要一個虛擬的以太網橋接口:(這將在主機bridge上執行,不清楚的看看測試場景)

root@bridge:~> brctl addbr br0

2.其次,我們不需要STP(生成樹協議)等。因爲我們只有一個路由器,是絕對不可能形成一個環的。我們可以關閉這個功能。(這樣也可以減少網絡環境的數據包污染):

root@bridge:~> brctl stp br0 off

3.經過這些準備工作後,我們終於可以做一些立竿見影的事了。我們添加兩個(或更多)以太網物理接口,意思是:我們將他們附加到剛生成的邏輯(虛擬)網橋接口br0上。

root@bridge:~> brctl addif br0 eth0

root@bridge:~> brctl addif br0 eth1

4.現在,原來我們的兩個以太網物理接口變成了網橋上的兩個邏輯端口。那兩個物理接口過去存在,未來也不會消失。要不信的話,去看看好了。.現在他們成了邏輯網橋設備的一部分了,所以不再需要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

 

好了!我們現在有了一個任何IP地址都沒有的box w/o了。好了,這下如果你想通過TP配置你的防火牆或路由器的話,你就只能通過本地的控制端口了。你不會告訴我你的機器上連串行端口都沒有吧?

注:上面紅色部分其實是可選的,在試驗中,我發現,就算不把原有的網卡地址釋放掉,網橋也能工作!但是,爲了更規範,或者說


爲了避免有什幺莫名其妙的問題,最好還是按要求做,執行這四步吧!

 

5.最後,啓用網橋root@bridge:~> ifconfig br0 up

可選:    我們給這個新的橋接口分配一個IP地址

root@bridge:~> ifconfig br0 10.0.3.129

或者把最後這兩步合成一步:

root@bridge:~> ifconfig br0 10.0.3.129 up

就是多一個up!

 

這下我們做完了 。

 

關閉網橋命令

 

     brctl delif ena eth1;

     brctl delif ena eth0;

     ifconfig ena down;

     brctl delbr ena;

 

 

摘自 zjl_1026_2001的專欄

 

什麼是網橋

網橋是一種在鏈路層實現中繼,對幀進行轉發的技術,根據MAC分區塊,可隔離碰撞,將網絡的多個網段在數據鏈路層連接起來的網絡設備。

Linux 網橋配置命令:brctl

在Linux中配置網絡一般使用 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模塊和開啓內核轉發。

[inbi@debian~]#brctl

#直接輸入brctl命令將顯示幫助信息!

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

 

增加網橋

 

[inbi@debian~]#brctl addbr br0

#增加一個網橋

[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

#將兩塊已有的網卡添加到網橋,此時這兩個網卡工作於混雜模式,所以不需要IP了,因爲網橋是工作在鏈路層的。

[inbi@debian~]#brctl show

#查看已有網橋

 

你也可以爲 br0 設置一個IP,已訪問這臺機器。

[inbi@debian~]#ifconfig br0 10.10.1.1 netmask 255.255.0.0 up

刪除網橋

[inbi@debian~]#brctl delif br0 eth0 eth1

#增加網橋中的接口

[inbi@debian~]#brctl delbr br0

#刪除網橋

關閉生成樹

 

[inbi@debian~]#brctl stp br0 off

#關閉生成樹協議,減少數據包污染,因爲我這裏只有一個路由器哦!

配置橋開機激活

 

[inbi@debian~]#echo "modprobe bridge">>/etc/rc.local

#開機加載 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開機啓動,eth0,eth1未設置IP信息,在啓動br0網卡時,開啓了eth0,eth1的混雜模式,並橋接了它們。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章