Red Hat Training

A Red Hat training course is available for Red Hat Linux

9.2.6. ネットワークブリッジ

ネットワークブリッジは、ネットワーク間のトラフィックを MAC アドレスに基づいて転送するリンク層デバイスで、このためレイヤー 2 デバイスとも呼ばれます。転送の決定は、MAC アドレスの表に基づいて行われ、この表はどのホストがどのネットワーク接続しているかをネットワークブリッジが学習することで構築されます。Linux ホスト内では、ソフトウェアブリッジを使ってハードウェアをエミュレートすることができます。例えば、仮想化アプリケーション内で NIC を 1 つ以上の仮想 NIC と共有するなどです。ここではこのケースを例として説明します。
ネットワークブリッジを作成するには、/etc/sysconfig/network-scripts/ ディレクトリに ifcfg-brN という名前のファイルを作成し、N をそのインターフェースの番号 0 などに置き換えます。
ファイルのコンテンツは、イーサネットインターフェースなどブリッジされるインターフェースがどのようなタイプでも類似したものになります。相違点は、以下のとおりです。
  • DEVICE 指示文は brN 形式でその引数としてインターフェース名を与えられ、この N はインターフェースの番号に置き換えられます。
  • TYPE 指示文には、引数 Bridge または Ethernet が与えられます。この指示文は、デバイスタイプと、引数が大文字/小文字を区別するかを決定します。
  • ブリッジインターフェース設定ファイルには IP アドレスがあり、物理インターフェースには MAC アドレスしかありません。
  • 追加の指示文 DELAY=0 が加わり、ブリッジがトラフィックを監視し、ホストの位置を学習し、フィルタリング機能の基になる MAC アドレス表を構築する間に、ブリッジが待機することを回避します。ルーティングループが可能でない場合は、デフォルトの 30 秒遅延は不要です。
  • NM_CONTROLLED=no をイーサネットインターフェースに追加して、NetworkManager によるファイル変更を回避することが推奨されます。NetworkManager の今後のバージョンがブリッジ設定に対応することに備えて、これをブリッジ設定ファイルに追加することもできます。
以下は、静的 IP アドレスを使用したブリッジインターフェース設定ファイルの例です。

例9.2 ifcfg-br0 インターフェース設定ファイルの例

DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
DELAY=0
ブリッジを完成するには、別のインターフェースを作成するか既存のインターフェースを修正して、これをブリッジインターフェースに向けます。以下の例は、イーサネットインターフェース設定ファイルをブリッジインターフェースに向けたものです。/etc/sysconfig/network-scripts/ifcfg-ethX の物理インターフェースを設定します。ここでは X は、特定のインターフェースに対応する一意の番号です。

例9.3 ifcfg-ethX インターフェース設定ファイルの例

DEVICE=ethX
TYPE=Ethernet
HWADDR=AA:BB:CC:DD:EE:FF
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0

注記

DEVICE 指示文では、インターフェース名はデバイスタイプを決定するわけではないので、ほぼいかなる名前でも使用できます。一般的に使われる名前の例は、tapdummybond などです。TYPE=Ethernet 絶対に必要なわけではありません。TYPE 指示文が設定されていない場合、(名前が明確に異なるインターフェース設定ファイルと合致していなければ) そのデバイスはイーサネットデバイスとして扱われます。
指示文とネットワークインターフェース設定ファイルで使われているオプションの確認は、「インターフェース設定ファイル」 を参照してください。

警告

リモートホスト上でブリッジ設定をしていて、そのホストへの接続に設定中の物理 NIC を使用している場合、この先に進む前に接続が切断された場合の影響を検討してください。サービスを再起動する際には接続が失われ、エラーが発生すると接続を再確立することができない場合があります。コンソールもしくは帯域外のアクセスが推奨されます。
以下のようにネゴシエーションサービスを再起動して変更を反映させます
 service network restart 
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 をインターフェース名に使うのは一般的な方法ですが、ほとんどどんな名前でも使用できます。よくある例は、tapdummybond などです。
インターフェース設定ファイル /etc/sysconfig/network-scripts/ifcfg-bond0 を以下のように作成もしくは編集します。
DEVICE=bond0
ONBOOT=yes
BONDING_OPTS='mode=1 miimon=100'
BRIDGE=brbond0
NM_CONTROLLED=no
ボンディングモジュールの設定に関する指示およびアドバイスと、ボンディングパラメーターの一覧については、「チャンネルボンディングの使用」 を参照してください。
インターフェース設定ファイル /etc/sysconfig/network-scripts/ifcfg-brbond0 を以下のように作成もしくは編集します。
DEVICE=brbond0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NM_CONTROLLED=no
2 つのボンディングされたインターフェースインターフェースで構成されるネットワークブリッジ

図9.1 2 つのボンディングされたインターフェースインターフェースで構成されるネットワークブリッジ

これで MASTER=bond0 指示文のある 2 つ以上のインターフェース設定ファイルができました。これらのファイルは、DEVICE=bond0 指示文を含む /etc/sysconfig/network-scripts/ifcfg-bond0 という名前の設定ファイルに向けられています。この ifcfg-bond0 は、/etc/sysconfig/network-scripts/ifcfg-brbond0 設定ファイルに向けられています。これには IP アドバイスが含まれ、ホスト内の仮想ネットワークへのインターフェースとして動作します。
以下のようにネゴシエーションサービスを再起動して変更を反映させます
 service network restart