7.2.6. フラットプロバイダーネットワーク上での、インスタンス/物理ネットワーク間の接続のトラブルシューティング

「フラットプロバイダーネットワークのパケットフローが機能する仕組み」で提供される出力で、フラットプロバイダーネットワークで問題が発生した場合にトラブルシューティングを行うのに十分なデバッグ情報が得られます。以下の手順で、トラブルシューティングのプロセスについてさらに詳しく説明します。

1. bridge_mappings を確認します。

以下の例に示すように、使用する物理ネットワーク名 (例: physnet1) が bridge_mapping 設定の内容と一致していることを確認します。

 # grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.ini
bridge_mappings = physnet1:br-ex

 # openstack network show provider-flat
...
| provider:physical_network | physnet1
...

2.ネットワークの設定を確認します。

ネットワークが external として作成され、flat の種別が使用されていることを確認します。

 # openstack network show provider-flat
...
| provider:network_type     | flat                                 |
| router:external           | True                                 |
...

3.パッチピアを確認します。

ovs-vsctl show コマンドを実行し、パッチピア int-br-ex <--> phy-br-ex を使用して br-intbr-ex が接続されていることを確認します。

 # ovs-vsctl show
    Bridge br-int
        fail_mode: secure
       Port int-br-ex
            Interface int-br-ex
                type: patch
                options: {peer=phy-br-ex}

br-ex でのパッチピアの設定例

    Bridge br-ex
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port br-ex
            Interface br-ex
                type: internal

/etc/neutron/plugins/ml2/openvswitch_agent.inibridge_mapping が正しく設定されていれば、この接続は neutron-openvswitch-agent サービスを再起動する際に作成されます。サービスを再起動してもこの接続が作成されない場合には、bridge_mapping の設定を再確認してください。

注記

bridge_mappings の設定に関する詳しい情報は、「 11章ブリッジマッピングの設定 」を参照してください。

4.ネットワークフローを確認します。

ovs-ofctl dump-flows br-exovs-ofctl dump-flows br-int を実行して、フローにより送信パケットの内部 VLAN ID が削除されたかどうかを確認します。まず、このフローは、特定のコンピュートノード上のこのネットワークにインスタンスを作成すると追加されます。

  • インスタンスの起動後にこのフローが作成されなかった場合には、ネットワークが flat として作成されていて、external であることと、physical_network の名前が正しいことを確認します。また、bridge_mapping の設定を確認してください。
  • 最後に ifcfg-br-exifcfg-ethx の設定を確認します。ethXbr-ex 内のポートとして追加されていること、および ip a の出力で ifcfg-br-ex および ifcfg-ethxUP フラグが表示されることを確認します。

以下の出力では、eth1br-ex のポートであることが分かります。

    Bridge br-ex
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port "eth1"
            Interface "eth1"

以下の例では eth1 は OVS ポートとして設定されていて、カーネルはこのインターフェースからのパケットをすべて転送して OVS ブリッジ br-ex に送信することを認識していることが分かります。これは、master ovs-system のエントリーで確認することができます。

 # ip a
5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000