OpenStackNeutronを作る際にOpenVswitchを使うことになると思う。
トラブルシュートをするときに、設定の見方が全然わからなかったので自分なりに整理しました。
まず、openvswitchのブリッジはLinuxのブリッジの拡張版のイメージでよいはず。
ネットワークブリッジの考え方自体は同じ。
br-intが仮想マシンから出てくるインターフェースで、br-eth1がホストマシンから抜けていくインターフェース。
仮想マシンから、物理マシンの外に対しての通信をフロー化すると、下記のイメージ。
①ホストマシン上でtapデバイスが作成され、仮想マシン上の仮想ネットワークインターフェースとマッピングされ、このtapデバイスはbr-intブリッジインターフェースに属する
②peer先のphy-br-eth1に橋渡しされる
③peer元のint-br-eth1から橋渡しされる
④ホストマシンのネットワークインターフェースenp0s20f0u10から外に出ていく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
[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などのログも併せて見るといいかも