GNU/Linux >> Linux の 問題 >  >> Linux

10 イーサネット ネットワーク ブリッジの Linux brctl コマンドの例

brctl は Bridge Control の略です。

Linux では、このコマンドはイーサネット ブリッジの作成と操作に使用されます。

これは通常、サーバーに複数のイーサネット ネットワークがあり、それらを組み合わせて 1 つの論理ネットワークとして提示する場合に使用されます。

たとえば、eth0 と eth1 がある場合、それらを組み合わせて br0 として表示できます。これにより、ネットワーク トラフィックに eth0 と eth1 の両方が使用されます。

このチュートリアルでは、以下について説明しました:

<オール>
  • addbr を使用して新しいイーサネット ブリッジを作成する
  • show を使用して利用可能なイーサネット ブリッジを表示
  • delbr を使用して既存のイーサネット ブリッジを削除する
  • 既存のブリッジにインターフェースを追加する
  • 既存のブリッジに複数のインターフェースを追加
  • Bridge の MAC アドレスの追跡
  • ブリッジの Mac アドレスのエージング タイムを設定する
  • イーサネット ブリッジでスパニング ツリーをセットアップする
  • ブリッジの STP パラメータ値を表示する
  • ブリッジ パラメータの値を変更する
  • 1. addbr を使用して新しいイーサネット ブリッジを作成します

    brctl addbr を使用して、新しいイーサネット ブリッジを作成できます。

    次の例では、このサーバーに 3 つのイーサネット ブリッジを作成しました:dev、stage、prod。

    brctl addbr dev
    
    brctl addbr stage
    
    brctl addbr prod
    

    この段階では、これは他のイーサネット ネットワークを持たない単なる空のイーサネット ブリッジであることに注意してください。

    この brctl は、以前に説明した Linux EtherChannel NIC ボンディングとは少し異なることに注意してください。

    2. show を使用して利用可能なイーサネット ブリッジを表示

    brctl show を使用すると、サーバーで利用可能なすべてのイーサネット ブリッジを表示できます。

    次の例は、作成したばかりの 3 つのブリッジの現在のインスタンスをすべて表示します。

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

    最後の列「インターフェース」に何もないことに気付いた場合。これは、現在、このブリッジにはイーサネット デバイスが関連付けられていないことを意味します。

    関連ノート:イーサネット カードを操作する 9 つの Linux ethtool の例

    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 を使用して、既存のイーサネット ブリッジにインターフェイスを追加できます。

    次の例では、先ほど作成したブリッジ「dev」にイーサネット ネットワーク eth0 を追加します。

    警告:何か問題が発生した場合、そのマシンへのネットワーク接続が失われる可能性があるため、重要なマシンではこれを試さないでください。これは、コンソールにアクセスできるテスト インスタンスでのみ試してください。

    brctl addif dev eth0
    

    上記では:

    • これにより、本当に eth0 がブリッジ「dev」のポートになります。
    • したがって、eth0 に到着するすべてのフレームは、実際にブリッジに到着したかのように処理されます。
    • また、フレームが「dev」ブリッジで送信される場合、eth0 が使用されます。複数のインターフェースが「dev」ブリッジの一部である場合、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
    

    また、ループバック インターフェイスをブリッジに追加しようとすると、次の無効な引数コマンドが返されることに注意してください。# brctl addif dev lo
    ブリッジ dev に lo を追加できません:無効な引数

    ご想像のとおり、システムに存在しないインターフェイスをブリッジに追加することはできません。

    # brctl addif dev eth2
    interface eth2 does not exist!
    

    5.複数のインターフェースを既存のブリッジに追加

    上記の例では、イーサネット デバイス (eth0) を 1 つだけブリッジに追加しました。

    しかし、ブリッジを使用するという全体的な考え方は、ブリッジにインターフェースを追加することです。

    次の例では、eth0 と eth1 の両方をブリッジ「dev」に追加しています。

    # brctl addif dev eth0 eth1
    

    次の出力からわかるように、開発ブリッジには 2 つの行が表示されます。最後の列「インターフェイス」には、「dev」イーサネット ブリッジの eth0 と eth1 の両方が表示されます。

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

    注:特定のイーサネット インターフェイスがすでにブリッジの一部である場合、それを別のブリッジに追加することはできません。

    基本的に、1 つのネットワークは 1 つのブリッジのみに属することができます。そうでない場合、別のブリッジに追加しようとすると、次のエラー メッセージが表示されます。

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

    6. Bridge の MAC アドレスの追跡

    brctl showmacs を使用すると、ブリッジのすべての学習済み MAC アドレスを確認できます。

    次の例では、現時点で、イーサネット ブリッジ「prod」に接続されている 2 つの 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 秒
    • したがって、「dev」ブリッジのフレームが 120 秒以内に表示されない場合、「dev」ブリッジは転送データベースから MAC アドレスを削除します。

    8.イーサネット ブリッジでのスパニング ツリーのセットアップ

    brctl stp を使用して、イーサネット ブリッジにスパニング ツリーをセットアップできます。

    ただし、デフォルトでは、ブリッジを作成するときにスパニング ツリーは有効になっていません。

    スパニング ツリーは、ネットワーク上に複数のブリッジがある場合に役立ちます。それらはすべて協力して、2 つのイーサネット間の最短パスを見つけることができます。

    次の例では、「dev」イーサネット ブリッジでスパニング ツリーを有効にしています。

    on または yes を使用して、スパニング ツリーを有効にできます。したがって、次のコマンドは両方ともまったく同じことを行います。

    brctl stp dev on
    
    brctl stp dev yes
    

    次の show 出力からわかるように、「dev」ブリッジの「STP 有効」列の値は「yes」になりました。

    # 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 パラメータ値を表示できます。

    以下は、「dev」ブリッジの stp パラメータとその現在の値を表示します。

    # 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.ブリッジ パラメータ値の変更

    特定のブリッジのスパニング ツリー パラメータのデフォルト値を変更できます。作成したブリッジの他のパラメータ値も変更できます。

    以下の表に記載されている set コマンドはすべて、brctl で始まります。例:

    brctl setageing dev 100
    

    次の表に、brctl で使用できる set コマンドを示します。時間の値は秒単位です。

    brctl コマンド 説明
    ブリッジ時間の設定 熟成時間を設定
    setbridgeprio ブリッジ プリオ ブリッジの優先度を設定します (0 から 65535 の間)
    setfd ブリッジ時間 ブリッジ転送遅延の設定
    セテロ橋時間 ハロータイムを設定
    setmaxage ブリッジ時間 メッセージの最大有効期間を設定する
    setgcint ブリッジ時間 ガベージ コレクションの間隔を秒単位で設定
    セサシェル ブリッジ int ハッシュの弾力性の設定
    sethashmax ブリッジ int ハッシュの最大値を設定
    setmclmc ブリッジ int マルチキャストの最終メンバー数を設定する
    setmcrouter ブリッジ int マルチキャスト ルーターの設定
    setmcsnoop ブリッジ int マルチキャスト スヌーピングを設定する
    setmcsqc ブリッジ int マルチキャスト起動クエリ数を設定
    setmclmi ブリッジ時間 マルチキャストの最終メンバー間隔を設定
    setmcmi ブリッジ時間 マルチキャスト メンバーシップの間隔を設定する
    setmcqpi ブリッジ時間 マルチキャスト クエリア間隔の設定
    setmcqi ブリッジ時間 マルチキャスト クエリ間隔の設定
    setmcqri ブリッジ時間 マルチキャスト クエリの応答間隔を設定する
    setmcqri ブリッジ時間 マルチキャスト起動クエリ間隔を設定
    setpathcost ブリッジ ポート コスト パス コストの設定
    setportprio ブリッジ ポート prio ポートの優先順位を設定します (0 から 255 の間)
    setportmcrouter ブリッジ ポート int ポート マルチキャスト ルーターの設定
    セサシェル ブリッジ int ハッシュ弾性値を設定

    .


    Linux
    1. 7 Linux df コマンドの例

    2. 17 HP サーバー上の Linux での hpacucli コマンドの例

    3. Linux での dsniff コマンドの例

    1. Linuxユーザー向けの12のIPコマンド例

    2. 初心者向けのLinuxdirコマンド(10例)

    3. 初心者向けのLinuxkillallコマンド(8例)

    1. 初心者向けのLinuxrmコマンドの説明(8例)

    2. 初心者向けのLinuxlnコマンドチュートリアル(5つの例)

    3. 初心者向けのLinuxnlコマンドチュートリアル(7つの例)