11.2.6. ネットワークブリッジ
ネットワークブリッジは、MAC アドレスに基づいてネットワーク間のトラフィックを転送するリンク層デバイスであるため、レイヤー 2 デバイスとも呼ばれます。各ネットワークに接続されているホストを学習して、ビルドする MAC アドレスのテーブルに基づいて、転送の決定を行います。Linux ホスト内では、ソフトウェアブリッジを使ってハードウェアをエミュレートすることができます。たとえば、仮想化アプリケーション内で NIC を 1 つ以上の仮想 NIC と共有するなどです。このケースは例として示します。
ネットワークブリッジを作成するには、
/etc/sysconfig/network-scripts/
ディレクトリーに ifcfg-brN
という名前のファイルを作成し、N をそのインターフェースの番号 0
などに置き換えます。
ファイルのコンテンツは、イーサネットインターフェースなどブリッジされるインターフェースがどのようなタイプでも類似したものになります。相違点は、以下のとおりです。
DEVICE
ディレクティブは、brN
形式の引数としてインターフェース名を指定しています。N はインターフェースの数に置き換えます。TYPE
ディレクティブには、引数Bridge
が指定されています。このディレクティブは、デバイスタイプと、引数が大文字/小文字を区別するかを決定します。- ブリッジインターフェースの設定ファイルに
IP
アドレスが追加され、物理インターフェースには MAC アドレスのみが含まれるようになりました。 - 追加のディレクティブ
DELAY=0
が加えられ、ブリッジがトラフィックを監視し、ホストの位置を学習し、フィルタリング機能の基になる MAC アドレステーブルを構築する間に、ブリッジが待機することを回避します。ルーティングループが可能でない場合は、デフォルトの 15 秒遅延は不要です。 - NetworkManager がファイルを変更しないように、
NM_CONTROLLED=no
をイーサネットインターフェースに追加する必要があります。また、NetworkManager の今後のバージョンがブリッジ設定に対応している場合は、ブリッジ設定ファイルに追加することもできます。
以下は、静的
IP
アドレスを使用したブリッジインターフェース設定ファイルの例です。
例11.4 ifcfg-br0 インターフェース設定ファイルの例
DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no DELAY=0
ブリッジを完成するには、別のインターフェースを作成するか既存のインターフェースを修正して、これをブリッジインターフェースに向けます。以下は、ブリッジインターフェースを参照するイーサネットインターフェース設定ファイルの例です。
/etc/sysconfig/network-scripts/ifcfg-ethXで物理インターフェースを設定します。X
は、以下のように、特定のインターフェースに対応する一意の番号に置き換えます。
例11.5 ifcfg-ethX インターフェース設定ファイルのサンプル
DEVICE=ethX TYPE=Ethernet HWADDR=AA:BB:CC:DD:EE:FF BOOTPROTO=none ONBOOT=yes NM_CONTROLLED=no BRIDGE=br0
注記
DEVICE
ディレクティブでは、デバイスの種類を判断しないため、ほとんどすべてのインターフェース名を使用できます。一般的に使用される他の名前に は
、tapset、ダミー
、ボンディング
などが含まれます。TYPE=Ethernet
は必須ではありません。TYPE
ディレクティブが設定されていない場合、デバイスはイーサネットデバイスとして処理されます(その名前が別のインターフェース設定ファイルに明示的にマッチしていない限り)。
ネットワークインターフェースの設定ファイルで使用されるディレクティブとオプションを確認するには、「インターフェース設定ファイル」 を参照してください。
警告
リモートホストでブリッジを設定し、設定する物理 NIC 経由でそのホストに接続されている場合は、続行する前に接続が失われる影響を検討してください。サービスを再起動する際には接続が失われ、エラーが発生すると接続を再確立することができない場合があります。コンソールもしくは帯域外のアクセスが推奨されます。
以下のように、変更を有効にするために、ネットワークサービスを再起動します。
service network restart
11.2.6.1. ボンドを使ったネットワークブリッジ
ボンディングされた 2 つ以上のイーサネットインターフェースで形成されたネットワークブリッジの例を示します。ボンディングインターフェースの設定ファイルに慣れていない場合は、を参照してください。 「チャンネルボンディングインターフェース」
ボンディングする 2 つ以上のイーサネットインターフェースの設定ファイルを、以下のように作成または編集します。
DEVICE=ethX TYPE=Ethernet USERCTL=no SLAVE=yes MASTER=bond0 BOOTPROTO=none HWADDR=AA:BB:CC:DD:EE:FF NM_CONTROLLED=no
注記
ethX
をインターフェース名として使用することは一般的ですが、ほとんどすべての名前を使用することもできます。tap
、dummy
、bond
などの名前は一般的に使用されます。
インターフェース設定ファイル
/etc/sysconfig/network-scripts/ifcfg-bond0
を以下のように作成もしくは編集します。
DEVICE=bond0 ONBOOT=yes BONDING_OPTS='mode=1 miimon=100' BRIDGE=br0 NM_CONTROLLED=noボンディングモジュールの設定に関する指示およびアドバイスとボンディングパラメーターの一覧については、「チャンネルボンディングの使用」を参照してください。
以下のように、1 つのインターフェース設定ファイル
/etc/sysconfig/network-scripts/ifcfg-br0
を作成または編集します。
DEVICE=br0 ONBOOT=yes TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 NM_CONTROLLED=no
図11.1 2 つのボンディングされたイーサネットインターフェースで構成されるネットワークブリッジ。
[D]
MASTER=bond0
ディレクティブを持つ 2 つ以上のインターフェース設定ファイルができました。これは、DEVICE=bond0
ディレクティブを含む /etc/sysconfig/network-scripts/ifcfg-bond0
という名前の設定ファイルを参照します。次にこの ifcfg-bond0
は、IP
アドレスを含む /etc/sysconfig/network-scripts/ifcfg-br0
設定ファイルをポイントし、ホスト内の仮想ネットワークのインターフェースとして機能します。
新しいインターフェースまたは最近設定されたインターフェースを起動するには、
root
で以下の形式のコマンドを実行します。 ifup device
または、以下のように Networking サービスを再起動して、変更を有効にします。
~]# service network restart