OpenStackNeutronを作る際にOpenVswitchを使うことになると思う。
トラブルシュートをするときに、設定の見方が全然わからなかったので自分なりに整理しました。
まず、openvswitchのブリッジはLinuxのブリッジの拡張版のイメージでよいはず。
ネットワークブリッジの考え方自体は同じ。
br-intが仮想マシンから出てくるインターフェースで、br-eth1がホストマシンから抜けていくインターフェース。
仮想マシンから、物理マシンの外に対しての通信をフロー化すると、下記のイメージ。
①ホストマシン上でtapデバイスが作成され、仮想マシン上の仮想ネットワークインターフェースとマッピングされ、このtapデバイスはbr-intブリッジインターフェースに属する
②peer先のphy-br-eth1に橋渡しされる
③peer元のint-br-eth1から橋渡しされる
④ホストマシンのネットワークインターフェースenp0s20f0u10から外に出ていく。
[root@compute01 ~]# ovs-vsctl show
4daac151-e197-46fb-9403-d9523e8dd55e
Manager "ptcp:6640:127.0.0.1"
is_connected: true
Bridge br-int
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
datapath_type: system
Port tap029f7bc6-a0 ①
tag: 2
Interface tap029f7bc6-a0
Port tap02173cd5-b8
tag: 2
Interface tap02173cd5-b8
Port tapbdc66db7-a6
tag: 2
Interface tapbdc66db7-a6
Port int-br-eth1 ②
Interface int-br-eth1
type: patch
options: {peer=phy-br-eth1}
Port br-int
Interface br-int
type: internal
Port tap1dffca0e-34
tag: 2
Interface tap1dffca0e-34
Bridge br-eth1
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
datapath_type: system
Port br-eth1
Interface br-eth1
type: internal
Port enp0s20f0u10 ④
Interface enp0s20f0u10
Port phy-br-eth1 ③
Interface phy-br-eth1
type: patch
options: {peer=int-br-eth1}
ovs_version: "3.1.3"
[root@compute01 ~]#
トラブルシュートするときは/var/log/neutron/openvswitch-agent.logなどのログも併せて見るといいかも
