Network
Ubuntu
Bridge
ethernet

Ubuntuブリッジ化のメモ

ブリッジとは

ブリッジ (ネットワーク機器) - Wikipedia

ブリッジ化のメリット

  • Linux機がHUBになる。(いったい何がうれしいのか)
  • お勉強用

今、考え中です。

ブリッジ化の準備

  • Ubuntu とか、ネットワーク環境が一通り揃っていること(えっ)
  • ネットワークアダプタががふたつ以上必要(Linuxから認識されるもの)

(ちなみに、ここでは内蔵+2つの外付けで、3つのネットワークアダプタを使っています)

NICを挿す。
OSがNICを認識しているか確認。
ifconfig -a
いい加減にifconfig は使うなよ。
ip addr show
(なぜか eth1 ではなく、eth2、eth3となった)

ブリッジ化

ブリッジユーティリティをインストール
sudo apt install bridge-utils
ここで、
man brctl
とか
brctl show
とかして、使い方を確認しておいてください。

ブリッジ作成テストのシェルスクリプトを作成と実行

vi bridge-test.sh
#!/bin/bash
# bridge-test.sh
# bridge-utils テストスクリプト 

## 変数定義(OSなどの環境に合わせて修正してください)
# brctlコマンド(bridge-utils)
BRCTL=/sbin/brctl

# ipコマンド (iproute2)
IP=/sbin/ip

# ブリッジの名前
BRIDGE=br0

# ブリッジの  IPアドレス
IP_ADDRESS=192.168.1.60/24

# ブリッジにするネットワークインターフェースたち
NICS="eth0 eth2 eth3"

## 本処理
# ブリッジインターフェースを追加
$BRCTL addbr $BRIDGE

# スパニングツリープロトコル(STP)は使わない
$BRCTL stp $BRIDGE off

# ブリッジにIPアドレスを割り当てる
$IP addr  add $IP_ADDRESS dev $BRIDGE

for NIC in $NICS
do
    # IPアドレス等の設定を消す
    $IP addr flush dev $NIC
    # ブリッジインターフェースに物理NICをバインドする
    $BRCTL addif $BRIDGE $NIC
    # NICをプロミスキャスモードで起動
    $IP link set dev $NIC promisc on
    $IP link set dev $NIC up
done

# ブリッジを起動する
$IP link set dev $BRIDGE up

# EOF

スクリプトに実行権をつける
chmod +x bridge-test.sh

実行時にはroot権限が必要
sudo ./bridge-test.sh

※このスクリプトは必ず実機の端末上で実行すること(ネットワーク越しでは実行しないこと)

  • 外部から br0 にping を飛ばして疎通確認
  • eth2またはeth3にLANケーブルを挿して疎通確認

起動時にブリッジを有効にする設定

sudo vi /etc/network/interfaces 
auto eth0
    iface eth0 inet static
    address 0.0.0.0

auto eth2
    iface eth2 inet static
    address 0.0.0.0

auto eth3
    iface eth3 inet static
    address 0.0.0.0

iface br0 inet static
      address 192.168.X.XX
      netmask 255.255.255.0
      network 192.168.X.0
      broadcast 192.168.X.255
      gateway 192.168.X.XX
      dns-nameservers 192.168.X.XX 8.8.8.8
      bridge_ports eth0 eth2 eth3
      bridge_stp off

再起動すれは有効になる。