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
-
送信パケットのフローを確認するには、