10個用於以太網橋接的Linux brctl命令示例

brctl代表網橋控制。

在Linux上,此命令用於創建和管理以太網橋。

當您的服務器上有多個以太網網絡,並且想要將它們組合起來並作為一個邏輯網絡顯示時,通常使用此方法。

例如,如果您有eth0和eth1,則可以將它們組合在一起並將它們表示為br0,它將使用eth0和eth1進行網絡通信。

在本文中,我們將介紹以下內容:

  1. 用addbr創建一個新的以太網橋
  2. 使用show顯示可用的以太網橋
  3. 使用delbr刪除現有的以太網橋
  4. 將接口添加到現有網橋
  5. 將多個接口添加到現有網橋
  6. 橋接MAC地址跟蹤
  7. 設置網橋上Mac地址的老化時間
  8. 在以太網橋上配置生成樹
  9. 顯示網橋的STP參數值
  10. 更改網橋參數值

1.使用addbr創建一個新的以太網橋

使用brctl addbr,我們可以創建一個新的以太網橋。

在以下示例中,我們在此服務器上創建了三個網橋:dev,stage和prod。

brctl addbr dev

brctl addbr stage

brctl addbr prod

請注意,在此階段,它只是一個空的以太網橋,沒有其他以太網。

2.使用show顯示可用的以太網橋

使用brctl show,我們可以查看服務器上所有可用的網橋。

以下示例將顯示我們剛剛創建的三個橋的所有當前實例。

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

如果您注意到最後一欄“接口”沒有意義。 這意味着這些網橋當前都沒有與之關聯的以太網設備。

3.使用delbr刪除現有的以太網橋

使用brctl delbr,我們可以刪除現有的以太網橋。

下面的示例刪除以太網橋的“ stage”實例。

brctl delbr stage

從show命令可以看到,我們不再看到以太網橋的“階段”。

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

請注意,當橋處於活動狀態(即升高)時,可以將其卸下。 首先,您需要拆除橋,然後將其卸下。

還要注意,brctl命令以前稱為brcfg。

4.將接口添加到現有網橋

使用brctl addif,我們可以將接口添加到現有的以太網橋。

以下示例將以太網eth0添加到我們剛剛創建的“ dev”網橋中。

警告。 不要嘗試在任何關鍵計算機上使用此功能,因為出問題時可能會失去與該計算機的網絡連接。 僅在具有控制台訪問權限的測試實例上嘗試此操作。

brctl addif dev eth0

在上面:

  • 實際上,這將使eth0成為“ dev”橋接端口。
  • 這樣,所有到達eth0的數據包都將被視為實際上已到達網橋。
  • 同樣,將數據包發送到“ dev”網橋時,它將使用eth0。 當多個接口屬於“開發”網橋的一部分時,eth0將是從網橋發送傳出幀的潛在候選者。

將eth0網橋添加到“ dev”後,brctl show命令將顯示以下內容。

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.0050568954bc       no              eth0
prod            8000.000000000000       no

從上面的輸出中可以看到,最後一個列“ interfaces”是網橋“ dev”的eth0。

筆記。 如果通過將eth0添加到“ dev”橋而出了問題,請從控制台運行以下命令以刪除dev橋。

# brctl delbr dev

請注意,如果您嘗試將Loopback接口添加到網橋,則會收到以下帶有無效參數的命令。

# brctl addif dev lo
can’t add lo to bridge dev: Invalid argument

可以想象,您無法為網橋添加系統上不存在的接口。

# brctl addif dev eth2
interface eth2 does not exist!

5.將多個接口添加到現有網橋。

在上面的示例中,我們僅將一個以太網設備(eth0)添加到了網橋。

但是使用網橋的整個想法是向網橋添加其他接口。

在下面的示例中,我們將eth0和eth1都添加到“ dev”橋中。

# brctl addif dev eth0 eth1

從下面的輸出中可以看到,我們看到了dev橋的兩行。 在最後一列“接口”中,我們看到“ dev”以太網橋的eth0和eth1。

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.0050568954bc       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

6.跟蹤網橋的MAC地址

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

在下面的示例中,現在,以下是連接到“產品”以太網橋的兩個mac地址。 該數據將根據與網橋關聯的當前狀態而變化。

# brctl showmacs prod
port no mac addr                is local?       ageing timer
1       00:50:56:89:54:bc       yes                0.00
2       00:60:50:46:bc:40       no                 0.00

7.設置網橋上Mac地址的老化時間

在以下示例中,我們在“ dev”調製解調器上將mac地址的老化時間設置為120秒。

brctl setaging dev 120

在上面:

  • dev是我們在其中設置此值的橋的名稱
  • 120秒
  • 因此,如果在120​​秒內沒有出現“ dev”網橋的數據包​​,則“ dev”網橋將從轉發數據庫中刪除mac地址。

8.在以太網橋上安裝生成樹

使用brctl stp,我們可以在以太網橋上設置生成樹。

但是默認情況下,當我們創建網橋時,不會啟用生成樹。

當您的網絡上有多個網橋並且它們都可以一起工作以找到兩個以太網之間的最短路徑時,生成樹很有用。

在以下示例中,我們在“ dev”以太網橋上啟用生成樹。

我們可以使用on或yes來啟用生成樹。 因此,以下兩個命令將執行相同的操作。

brctl stp dev on

brctl stp dev yes

從下面的屏幕輸出中可以看到,“dev”網橋的“啟用STP”列中的值現在為“是”。

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

要在以太網橋上禁用生成樹,請按照下列步驟操作:

# brctl stp dev off

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

9.顯示網橋的STP參數值

STP代表生成樹協議。

在網橋上啟用stp之後,可以如下所示使用showstp來查看網橋的所有stp參數值。

stp參數及其“ dev”網橋的當前值如下所示。

# brctl showstp dev
dev
 bridge id              000a.000000000000
 designated root        000a.000000000000
 root port                 0       path cost                  0
 max age                  19.99    bridge max age            19.99
 hello time                1.99    bridge hello time          1.99
 forward delay            14.99    bridge forward delay      14.99
 ageing time             299.95
 hello timer               0.00    tcn timer                  0.00
 topology change timer     0.00    gc timer                   0.00
 hash elasticity           4       hash max                 512
 mc last member count      2       mc init query count        2
 mc router                 1       mc snooping                1
 mc last member timer      0.99    mc membership timer      259.96
 mc querier timer        254.96    mc query interval        124.98
 mc response interval      9.99    mc init query interval    31.24
 flags

10.更改網橋參數的值

特定於網橋的生成樹默認值可以更改。 您還可以更改所創建橋的參數的其他值。

下表中提到的所有以下所有撥號命令均以brctl開頭。 例如:

brctl setageing dev 100

下表顯示了brctl可用的撥號命令。 時間值以秒為單位。

brctl命令說明
架橋時間設置老化時間
塞布里奇普里奧橋設置網橋優先級(0到65535)
setfd橋接時間設置橋接跳線延遲
塞塞羅橋時間設定問候時間
設定最大橋接時間設置最大郵件年齡
塞特金特橋時間設置垃圾收集間隔(以秒為單位)
塞塔謝爾布里奇國際機場設置彈性哈希
sethashmax橋int設置最大哈希
setmclmc橋int設置多播的最後一個成員的計數器
setmcrouter橋int安裝多播路由器
setmcsnoop橋int配置多播跟蹤
setmcsqc橋int設置啟動多播的請求數
setmclmi橋接時間設置最後一個組播成員的時間間隔
setmcmi橋接時間設置組播成員資格間隔
setmcqpi橋接時間設置組播請求間隔
塞奇奇橋時間設置互聯網請求間隔
setmcqri橋接時間設置組播請求響應間隔
setmcqri橋接時間設置組播下載請求間隔
setpathcost橋端口成本設定路徑成本
setportprio橋Port prio設置端口優先級(0到255)
setportmcrouter橋端口int安裝多播端口路由器
塞塔謝爾布里奇國際機場設置哈希彈性值

請禁用您的廣告攔截器或將此網站列入白名單!

Sidebar