Linux Bridgeの基本を学び、実験してみました。
私のネットワーク情報は次のとおりです。
:)[00:32][root@openstack]~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1430 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:df:9e:b2 brd ff:ff:ff:ff:ff:ff
inet 10.140.28.35/24 brd 10.140.28.255 scope global dynamic enp0s8
valid_lft 80937sec preferred_lft 80937sec
inet6 2001:420:588c:1305:3c74:1500:63cd:fb4b/128 scope global dynamic
valid_lft 1203623sec preferred_lft 598823sec
inet6 fe80::a00:27ff:fedf:9eb2/64 scope link
valid_lft forever preferred_lft forever
外部的には10.140.28.35にpingを送ることができます。それからブリッジを作りました。
:)[00:33][root@openstack]~ # brctl addbr br0; ip l set dev br0 up
:)[00:34][root@openstack]~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1430 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:df:9e:b2 brd ff:ff:ff:ff:ff:ff
inet 10.140.28.35/24 brd 10.140.28.255 scope global dynamic enp0s8
valid_lft 80854sec preferred_lft 80854sec
inet6 2001:420:588c:1305:3c74:1500:63cd:fb4b/128 scope global dynamic
valid_lft 1203540sec preferred_lft 598740sec
inet6 fe80::a00:27ff:fedf:9eb2/64 scope link
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether b2:25:c0:ee:ad:d0 brd ff:ff:ff:ff:ff:ff
その後、ブリッジにenp0s8インターフェイスを追加しました。
:)[00:34][root@openstack]~ # brctl addif br0 enp0s8
:)[00:39][root@openstack]~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.080027df9eb2 no enp0s8
この時、もはや外部から10.140.28.35にpingを送信することはできません。
なぜこれが起こるのかわかりません。ブリッジに同じIPアドレスを設定すると、再度アクセスできるようになりました。
ip a add 10.140.28.35/24 dev br0
br0 は enp0s8 と同じ MAC があることを確認しました。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1430 qdisc pfifo_fast master br0 state UP qlen 1000
link/ether 08:00:27:df:9e:b2 brd ff:ff:ff:ff:ff:ff
inet 10.140.28.35/24 brd 10.140.28.255 scope global dynamic enp0s8
valid_lft 80515sec preferred_lft 80515sec
inet6 2001:420:588c:1305:3c74:1500:63cd:fb4b/128 scope global dynamic
valid_lft 1203201sec preferred_lft 598401sec
inet6 fe80::a00:27ff:fedf:9eb2/64 scope link
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1430 qdisc noqueue state UP
link/ether 08:00:27:df:9e:b2 brd ff:ff:ff:ff:ff:ff
inet 10.140.28.35/24 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fedf:9eb2/64 scope link
valid_lft forever preferred_lft forever
もともとアクセスできないのはなぜですか、br0と同じIPアドレスを設定する必要があるのはなぜですか?
答え1
ブリッジはレイヤ 2 抽象化なので、接続されたインターフェイスでレイヤ 3 アドレッシングを実行することはできません。実際、enp0s8とbr0は同じです。 enp0s8からIPを削除し、br0にIPを設定してみてください。