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
确认网络已创建为
外部
,类型为vlan
,并使用正确的segmentation_id
值:示例
$ openstack network show provider-vlan171
输出示例
... | provider:network_type | vlan | | provider:physical_network | physnet1 | | provider:segmentation_id | 171 | ...
检查 patch-peer。
验证
br-int
和br-ex
是否使用 patch-peerint-br-ex <--> phy-br-ex
连接。$ ovs-vsctl show
此连接在重启
neutron-openvswitch-agent
时创建的,只要bridge_mapping
在/etc/neutron/plugins/ml2/openvswitch_agent.ini
中正确配置。如果这没有在重启服务后创建,则重新检查
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
,是外部
,并且physical_network
名称是正确的。另外,再次检查bridge_mapping
设置。 最后,重新检查
ifcfg-br-ex
和ifcfg-ethx
配置。确保
br-ex
包含端口ethX
,并且ifcfg-br-ex
和ifcfg-ethx
在ip a
命令的输出中有一个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
-
要查看传出数据包的流,请运行