ネットで調べると、ブリッジする時の /etc/network/interfaces にはいろんな書き方があるっぽい。
たとえば、以下の様にだ。
なお、LAN側は eth0、ブリッジデバイスは br0 として書いている。
1. brctl を使うタイプ
Debianを用いる設定にはよく、以下のような書き方が見受けられる。
# for Bridge(lxc) auto br0 iface br0 inet static pre-up /sbin/brctl addbr br0 pre-up /sbin/brctl addif br0 eth0 pre-up /sbin/ifconfig eth0 up address 192.168.1.8 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
うちの固定Webでも上の書き方は採用されているのだけど、どうもうまく動かない事があるみたいだ。おそらくは br0 と eth0 の成立タイミングによるのだろうけど、いまいち信用できない。
2. オプションを使うタイプ
Ubuntuの設定をやってるブログ等でよく見受けられるが、Debianでももちろん動く。実際にwheezyで試した。
# for Bridge(lxc) #auto br0 iface br0 inet static address 192.168.1.8 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eth0 bridge_stp off bridge_maxwait 1
外部コマンドでないぶんスマートになったと思うが、問題は呼び出されるタイミングだろうか。たとえば以下のようにしてみた。
# The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.1.7 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 192.168.1.1 post-up ifup br0 # for Bridge(lxc) #auto br0 iface br0 inet static address 192.168.1.8 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eth0 bridge_stp off bridge_maxwait 1
eth0 が up した時、post-up で br0 をマニュアルで up させるようにしてみた。
ちなみに実際にこれを動かすと、なぜか eth0 側(192.168.1.7) にアクセスできない。eth0側にログインしようと思えば、br0に割り当てている192.168.1.8を狙ってアクセスする事になる。
ifconfigの内容(抜粋)は以下の通り。
mikaduki@test7:~$ /sbin/ifconfig br0 Link encap:イーサネット ハードウェアアドレス 00:0c:29:27:bd:f6 inetアドレス:192.168.1.8 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 inet6アドレス: 2001:c90:8000:6cc3:20c:29ff:fe27:bdf6/64 範囲:グローバル inet6アドレス: fe80::20c:29ff:fe27:bdf6/64 範囲:リンク UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:10352 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:222 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:0 RXバイト:1261257 (1.2 MiB) TXバイト:28905 (28.2 KiB) eth0 Link encap:イーサネット ハードウェアアドレス 00:0c:29:27:bd:f6 UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:13578 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:417 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:2685991 (2.5 MiB) TXバイト:50737 (49.5 KiB) : (中略) : $
もう少しうまく書く方法がありそうである。
また後で工夫してみよう。