4.8. VLAN プロバイダーネットワーク上での、インスタンス/物理ネットワーク間の接続のトラブルシューティング
VLAN プロバイダーネットワークの接続についてトラブルシューティングを行う場合は、VLAN プロバイダーネットワークのパケットフローが機能する仕組みに記載のパケットフローを参照してください。さらに、以下の設定オプションを確認してください。
手順
bridge_mapping設定で使用される物理ネットワーク名が物理ネットワーク名と一致することを確認します。例
$ openstack network show provider-vlan171
出力例
... | provider:physical_network | physnet1 ...
例
$ grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.ini
出力例
この出力例では、物理ネットワーク名
physnet1がbridge_mapping設定で使用されている名前と一致しています。bridge_mappings = physnet1:br-ex
ネットワークが
externalとしてvlanの種別で作成され、正しいsegmentation_idの値が使用されていることを確認します。例
$ openstack network show provider-vlan171
出力例
... | provider:network_type | vlan | | provider:physical_network | physnet1 | | provider:segmentation_id | 171 | ...
パッチピアを確認します。
パッチピア
int-br-ex <--> phy-br-exを使用して、br-intとbr-exが接続されていることを確認します。$ ovs-vsctl show
この接続は、
/etc/neutron/plugins/ml2/openvswitch_agent.iniでbridge_mappingが正しく設定されていることを前提として、neutron-openvswitch-agentの再起動の後に作成されます。サービスを再起動してもこの接続が作成されない場合には
bridge_mappingの設定を再確認してください。ネットワークフローを確認します。
-
送信パケットのフローを確認するには、
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の設定を再確認してください。 最後に、
ifcfg-br-exとifcfg-ethxの設定を再確認します。br-exにポートethXが含まれていること、およびip aコマンドの出力でifcfg-br-exとifcfg- ethxの両方にUPフラグが表示されることを確認します。例
$ ovs-vsctl show
この出力例では、
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"例
$ ip a
出力例
この出力例では、
eth1がポートとして追加されており、カーネルがすべてのパケットをインターフェイスから OVS ブリッジbr-exに移動するように設定されています。これは、エントリーmaster ovs-systemで確認できます。5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000
-
送信パケットのフローを確認するには、