brctl 簡單用法


Linux brctl 的以太網橋命令例子

原文鏈接
我的博客
Linux 中,這個命令用來創建、操作以太網橋。通常在你的服務器上具有多個以太網,且你希望對它們進行組合,呈現某種邏輯網絡時,使用 brctl 命令。

比如,你有一個 eth0 以及 eth1,你可以組合它們,讓他們呈現為 br0,那么在處理網絡流量時,會同時使用 eth0 以及 eth1

在本文檔中,會有如下內容:

  1. 使用 addbr 創建新的以太網橋
  2. 使用 show 展示可用的以太網橋
  3. 使用 delbr 刪除現有的以太網橋
  4. 添加接口到現有的橋
  5. 添加多個接口到現有的橋
  6. 跟蹤橋的 MAC 地址
  7. 對橋上的 MAC 地址設置老化時間

使用 addbr 創建新的以太網橋

下面的例子,我們創建了 devstage 以及 prod 三個以太網橋:

$ brctl addbr dev
$ brctl addbr stage
$ brctl addbr prod

注意: 在本階段,這幾個以太網橋還是空白的橋,沒有其他的以太網依附在上面。

使用 show 展示可用的以太網橋

使用 brctl show,可以看到當前服務器上可用的以太網橋:

$ brctl show
bridge name     bridge id           STP enabled     interfaces
dev             8000.000000000000   no                 
prod            8000.000000000000   no
stage           8000.000000000000   no

可以看到,現在在 interfaces 下面內容為空,這意味着這些橋現在沒有以太網設備。

使用 delbr 刪除以太網橋

下面刪除以太網橋 stage:

$ brctl delbr stage

$ brctl show
bridge name     bridge id           STP enabled     interfaces
dev             8000.000000000000   no                 
prod            8000.000000000000   no

要注意,如果橋處於 up 狀態,那么首先需要 down 掉橋,才能刪除它。

添加接口到現有的橋

下面的例子將會添加以太網 eth0 到橋 dev:

brctl addif dev eth0

注意: 不要在任何實際的機器上執行這個命令,因為你可能會使這個設備的網絡鏈接斷開。如果你能夠通過終端訪問時,以這個作為一個測試用例。

這個例子中:

  • 將會使 eth0 成為 dev 橋設備的一個端口
  • 因此所有到達 eth0 的數據幀將會認為是到達這個橋上
  • 同時,當有數據幀從 dev 橋發出時,它將會使用 eth0,當 dev 具有多個接口時,eth0 將會是一個潛在的候選者來將數據幀從橋上發送出去

在添加 eth0 到橋后, brctl show 展示如下:

$ brctl show
bridge name     bridge id           STP enabled     interfaces
dev             8000.000000000000   no              eth0
prod            8000.000000000000   no

如果在添加接口之后,機器出現了問題,執行下面的命令恢復:

$ brctl delbr dev

注意: 如果你嘗試添加一個回環接口到橋,會有如下無效語句提示: # brctl addif dev lo can't add to bridge dev: Invalid argument

同樣,你也不能夠添加系統中不存在的接口到橋:

$ brctl addif dev eth123
interface eth123 does not exist!

添加多個接口

下面的例子添加多個接口到 dev:

brctl addif dev eth0 eth1

再次執行 brctl show 可以看到這些接口:

$ brctl show
bridge name     bridge id           STP enabled     interfaces
dev             8000.000000000000   no              eth0
                                                    eth1
prod            8000.000000000000   no

注意: 如果一個以太網接口已經是一個橋的一部分,那么你不能添加它到另一個橋。一個網絡只能是單個橋的一部分:

$ brctl addif prod eth1
device eth1 is already a member of a bridge; can't enslave it to bridge prod

跟蹤橋的 MAC 地址

使用 brctl showmacs,我們可以查看橋學到的所有 MAC 地址。

設置橋的 MAC 地址的老化時間

下面的例子,設置 dev 橋的 MAC 地址老化時間為120秒:

$ brctl setaging dev 120

設置完上面的語句后,如果一個數據幀 dev 橋超過120秒沒有看到,那么 dev 將會從轉發數據庫中刪除該 MAC 地址。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM