原文:http://zhumeng8337797.blog.163.com/blog/static/1007689142011643834429/
先裝好網卡,連上網線,這是廢話,不用說了。
然后開始!
設置linux讓網橋運行 配置網橋
我們需要讓linux知道網橋,首先告訴它,我們想要一個虛擬的以太網橋接口:(這將在主機bridge上執行,不清楚的看看測試場景)
root@bridge:~> brctl addbr br0
其次,我們不需要STP(生成樹協議)等。因為我們只有一個路由器,是絕對不可能形成一個環的。我們可以關閉這個功能。(這樣也可以減少網絡環境的數據包污染):
root@bridge:~> brctl stp br0 off
經過這些准備工作后,我們終於可以做一些立竿見影的事了。我們添加兩個(或更多)以太網物理接口,意思是:我們將他們附加到剛生成的邏輯(虛擬)網橋接口br0上。
root@bridge:~> brctl addif br0 eth0
root@bridge:~> brctl addif br0 eth1
現在,原來我們的兩個以太網物理接口變成了網橋上的兩個邏輯端口。那兩個物理接口過去存在,未來也不會消失。要不信的話,去看看好了。 .現在他們成了邏輯網橋設備的一部分了,所以不再需要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配置你的防火牆或路由器的話,你就只能通過本地的控制端口了。你不會告訴我你的機器上連串行端口都沒有吧?
注:上面紅色部分其實是可選的,在試驗中,我發現,就算不把原有的網卡地址釋放掉,網橋也能工作!但是,為了更規范,或者說為了避免有什幺莫名其妙的問題,最好還是按要求做,執行這四步吧!
最后,啟用網橋 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;
ALinux網橋的實現分析與使用
一、什么是橋接
路由器主要有路徑選擇和數據轉發兩個基本功能,但在很多場景下,路由器一般都承擔着網關的角色。在國內,我們通常都是采用PPPOE撥號或者靜態路由兩種方式實現局域網共享上網。這時,路由器主要的功能是實現局域網和廣域網之間的協議轉換,這同樣也是網關的主要用途。
三、 brctl 的使用方法
有五台主機。其中一台主機裝有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)
# brctl delbr 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 的一個端口)
# brctl delif br0 eth0 |
網橋的每個物理網卡作為一個端口,運行於混雜模式,而且是在鏈路層工作,所以就不需要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 # ip addr add 127.0.0.1/8 dev lo brd + (ip 是iproute2 軟件包里面的一個強大的網絡配置工具,它能夠替代一些傳統的網絡管理工具。例如:ifconfig 、route 等。這個手冊將分章節介紹ip 命令及其選項。) |
然后給br0 的虛擬網卡配置IP :192.168.1.1 。那樣就能遠程管理網橋。
# ifconfig br0 192.168.1.1
|
給br0 配置了IP 之后,網橋就能夠工作了。192.168.1.0/24 網段內的主機都可以telnet 到網橋上對其進行配置。
以上配置的是一個邏輯網段,實際上Linux 網橋也能配置成多個邏輯網段( 相當於交換機中划分多個VLAN) 。
四、 brctl 命令詳細分析
增加橋接過程
( 1 ) # brctl addbr br0
( 2 ) # brctl addif br0 eth0
( 3 ) # ip addr add 172.16.12.43/8 dev br0 brd +
( 4 ) # ifconfig br0 up
刪除橋接過程
( 1 ) # ip addr del 172.16.12.43/8 dev br0 brd +
( 2 ) # ifconfig br0 down
( 3 ) # brctl delif br0 eth0
( 4 ) # brctl delbr br0