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
检查网络配置。
确认网络已创建为
外部
,并使用flat
类型:示例
在本例中,会查询网络
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
的输出中有一个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
-
如果在生成实例后没有创建此流,请验证网络是否创建为