ネットワークブリッジ
関連記事
ブリッジは複数のネットワークセグメントをまとめるのに使われる一種のソフトウェアです。ブリッジは仮想ネットワークスイッチのように動作し、透過的に働きます (他のマシンはブリッジの存在を知る必要がありません)。ブリッジには実際のデバイス (例: eth0
) と仮想デバイス (例: tap0
) を接続することができます。
この記事では少なくとも一つのイーサネットデバイスを含むブリッジを作成する方法を説明します。QEMU のブリッジモードやソフトウェアベースのアクセスポイントの設定などに役立ちます。
目次
ブリッジの作成
ブリッジを作成する方法は複数存在します。
bridge-utils を使う
このセクションでは (公式リポジトリの) bridge-utils パッケージに含まれている brctl ツールを使ってネットワークブリッジを管理します。オプションの完全な説明は man brctl
を見て下さい。
新しいブリッジを作成:
# brctl addbr bridge_name
ブリッジにデバイスを追加 (例: eth0
):
# brctl addif bridge_name eth0
現在のブリッジと接続されているインターフェイスを表示:
$ brctl show
ブリッジデバイスを立ち上げる:
# ip link set up dev bridge_name
ブリッジを削除、先にブリッジを down に設定する必要があります:
# ip link set dev bridge_name down # brctl delbr bridge_name
iproute2 を使う
このセクションでは (base グループに含まれている) iproute2 パッケージの ip ツールを使ってネットワークブリッジを管理します。
新しいブリッジを作成して状態を up に変更:
# ip link add name bridge_name type bridge # ip link set dev bridge_name up
ブリッジにインターフェイス (例: eth0) を追加するには、まずインターフェイスをプロミスキャスモードに設定して立ち上げておく必要があります:
# ip link set dev eth0 promisc on # ip link set dev eth0 up
インターフェイスの master を bridge_name
に設定することでブリッジにインターフェイスを追加します:
# ip link set dev eth0 master bridge_name
既存のブリッジと関連付けられたインターフェイスを表示するには、bridge ユーティリティを使って下さい (iproute2 に含まれています)。詳しくは man bridge
を参照。
# bridge link show
ブリッジを削除するときは、最初に全てのインターフェイスを削除します。プロミスキャスモードをオフにして down に設定してから元の状態に戻してください。
# ip link set eth0 promisc off # ip link set eth0 down # ip link set dev eth0 nomaster
ブリッジを空にしたら、削除することができます:
# ip link delete bridge_name type bridge
netctl を使う
Bridge with netctl を見て下さい。
systemd-networkd を使う
systemd-networkd#ブリッジインターフェイス を見て下さい。
IP アドレスを割り当てる
ブリッジが完全に設定されていれば、IP アドレスを割り当てることができます:
# ip addr add dev bridge_name 192.168.66.66/24
Tips and tricks
ブリッジ上の無線インターフェイス
ブリッジに無線インターフェイスを追加するには、まずアクセスポイントに無線インターフェイスを指定するか、または hostapd でアクセスポイントを起動する必要があります。そうしないとブリッジに無線インターフェイスは追加されません。
Debian wiki の Bridging with a wireless NIC も参照。