Xenのbridge再現するとこんな感じなんかなぁ
前提の話
OSインストール直後ではp4p1とかいうのがDHCP捕まえてた。
ifconfigするとloとp4p1が見えてる状態。eth0どこ行った?
とりあえずp4p1が物理Nicだと思ってください
/etc/network/interfaces
auto lo iface lo inet loopback auto peth0 iface peth0 inet static address 0.0.0.0 hwaddress FE:FF:FF:FF:FF:FF pre-up ip link set dev p4p1 name peth0 post-up ip link set dev peth0 arp off post-up ip link set dev peth0 multicast off post-down ip link set dev peth0 name p4p1 auto eth0 iface eth0 inet static address 192.168.0.2 hwaddress 10:72:E2:56:10:10 netmask 255.255.255.0 gateway 192.168.0.1 pre-up ip link add name veth0 type veth peer name eth0 pre-up ip link set dev veth0 address FE:FF:FF:FF:FF:FF post-up ip link set dev veth0 arp off post-up ip link set dev veth0 multicast off post-down ip link del dev eth0 post-down ip link del dev veth0 auto br0 iface br0 inet static address 0.0.0.0 hwaddress FE:FF:FF:FF:FF:FF bridge_ports peth0 veth0 bridge_stp off bridge_fd 2 post-up ip link set dev br0 arp off post-up ip link set dev br0 multicast off
ifconfig
$ ifconfig br0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:7 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:400 (400.0 B) TX bytes:468 (468.0 B) eth0 Link encap:Ethernet HWaddr 10:72:e2:56:10:10 inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1278:d2ff:fe46:1050/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:108 errors:0 dropped:0 overruns:0 frame:0 TX packets:74 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12721 (12.7 KB) TX bytes:15139 (15.1 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:64 errors:0 dropped:0 overruns:0 frame:0 TX packets:64 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4736 (4.7 KB) TX bytes:4736 (4.7 KB) peth0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:99 errors:0 dropped:0 overruns:0 frame:0 TX packets:76 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12043 (12.0 KB) TX bytes:15271 (15.2 KB) veth0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:74 errors:0 dropped:0 overruns:0 frame:0 TX packets:108 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:15139 (15.1 KB) TX bytes:12721 (12.7 KB)
brctl show
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.feffffffffff no peth0
veth0
Xenだと /etc/xen/scripts/network-bridge で(結構頑張って) macアドレスをpeth0(=p4p1=普通で言うeth0)からeth0へ移してるけど↑ではmacアドレスをハードコードしてるので実運用にはeth0のmacアドレスを動的に記述する仕組みが必要。
Xen が HWaddr fe:ff:ff:ff:ff:ff、NOARP、NO MULTICASTな設定を入れてるので真似したけどなんでXenがこの設定入れてるのか調べてないので意味はわかってません。
ちなみにこれはLXCでXenのブリッジ構成を使おうとして書きました(家鯖
追記
何やってるのか図がないとわかりづらいので図を追加してみた
ビフォー
ホストに p4p1 て変な名前のNICが物理NICそのまま生えてる普通の構成
アフター
p4p1をpeth0にリネーム、peth0,veth0,vethXXXがbr0に参加してて、veth0と親ホストのeth0が、vethXXXと子ホストのeth0がつながってる構成
こういうのちゃんと図を書くべきだな