7.3.5. VLAN プロバイダーネットワーク上での、インスタンス/物理ネットワーク間の接続のトラブルシューティング
VLAN プロバイダーネットワークの接続についてトラブルシューティングを行う場合は、「VLAN プロバイダーネットワークのパケットフローが機能する仕組み」に記載のパケットフローを参照してください。さらに、以下の設定オプションを確認してください。
1. 一貫した物理ネットワーク名が使用されていることを確認してください。以下の例では、ネットワークの作成時と、bridge_mapping
の設定において、一貫して physnet1
が使用されています。
# grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.ini bridge_mappings = physnet1:br-ex # openstack network show provider-vlan171 ... | provider:physical_network | physnet1 ...
2.ネットワークが external
として vlan
の種別で作成され、正しい segmentation_id
の値が使用されていることを確認します。
# openstack network show provider-vlan171 ... | provider:network_type | vlan | | provider:physical_network | physnet1 | | provider:segmentation_id | 171 | ...
3.ovs-vsctl show
を実行して、br-int および br-ex がパッチピア int-br-ex
<→ phy-br-ex
を使用して接続されていることを確認します。
この接続は、/etc/neutron/plugins/ml2/openvswitch_agent.ini
で bridge_mapping
が正しく設定されていることを前提として、neutron-openvswitch-agent の再起動の後に作成されます。
サービスを再起動してもこの接続が作成されない場合には bridge_mapping の設定を再確認してください。
4.送信パケットのフローを確認するには、ovs-ofctl dump-flows br-ex
および ovs-ofctl dump-flows br-int
を実行して、このフローにより VLAN ID が外部 VLAN id (segmentation_id) にマッピングされていることを確認します。受信パケットには、外部 VLAN ID が内部 VLAN ID にマッピングされます。
このフローは、このネットワークに初めてインスタンスを作成した場合に neutron OVS エージェントにより追加されます。インスタンスの起動後にこのフローが作成されなかった場合には、ネットワークが vlan
として作成されていて、external
であることと、physical_network
の名前が正しいことを確認します。また、bridge_mapping
の設定を再確認してください。
5.最後に、ifcfg-br-ex と ifcfg-ethx の設定を再確認します。br-ex にポート ethX が含まれていること、および ip a
コマンドの出力で ifcfg-br-ex と ifcfg- ethx の両方に UP
フラグが表示されることを確認します。
たとえば、以下の出力では eth1 が br-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 ブリッジ 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