4.5. 对扁平提供商网络上的实例物理网络连接进行故障排除
"扁平提供商网络数据包流工作方式中提供的输出提供了足够的调试信息,以对扁平提供商网络进行故障排除。以下步骤包含有关故障排除过程的更多信息。
流程
查看
bridge_mappings
。验证您使用的物理网络名称是否与
bridge_mapping
配置的内容一致。示例
在本例中,物理网络名称为
physnet1
。$ openstack network show provider-flat
输出示例
... | provider:physical_network | physnet1 ...
示例
在本例中,
bridge_mapping
配置的内容也是physnet1
:$ grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.ini
输出示例
bridge_mappings = physnet1:br-ex
检查网络配置。
确认网络已创建
为外部
,并使用扁平
类型:示例
在本例中,查询有关网络
provider-flat
的详情:$ openstack network show provider-flat
输出示例
... | provider:network_type | flat | | router:external | True | ...
检查 patch-peer。
验证
br-int
和br-ex
是否使用 patch-peerint-br-ex <--> phy-br-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
上配置 patch-peer :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
如果
bridge_mapping
在/etc/neutron/plugins/ml2/openvswitch_agent.ini
中正确配置,这个连接会在重启neutron-openvswitch-agent
服务时被创建。如果在重启该服务后没有创建连接,请重新检查
bridge_mapping
设置。检查网络流。
运行
ovs-ofctl dump-flows br-ex
和ovs-ofctl dump-flows br-int
,并检查流是否删除传出数据包的内部 VLAN ID,并为传入的数据包添加 VLAN ID。当您在特定 Compute 节点上向这个网络生成实例时,首先添加此流。-
如果在生成实例后没有创建此流,请验证网络是否创建为
flat
,为external
,且physical_network
名称是正确的。此外,查看bridge_mapping
设置。 最后,检查
ifcfg-br-ex
和ifcfg-ethx
配置。确保ethX
被添加到br-ex
中的端口,并且ifcfg-br-ex
和ifcfg-ethx
在ip a
的输出中有一个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 端口,并且内核知道从接口传输所有数据包并将其发送到 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
-
如果在生成实例后没有创建此流,请验证网络是否创建为