4.5. 对扁平提供商网络上的实例物理网络连接进行故障排除

"扁平提供商网络数据包流工作方式中提供的输出提供了足够的调试信息,以对扁平提供商网络进行故障排除。以下步骤包含有关故障排除过程的更多信息。

流程

  1. 查看 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

  2. 检查网络配置。

    确认网络已创建 为外部,并使用 扁平 类型:

    示例

    在本例中,查询有关网络 provider-flat 的详情:

    $ openstack network show provider-flat

    输出示例

    ...
    | provider:network_type     | flat                                 |
    | router:external           | True                                 |
    ...

  3. 检查 patch-peer。

    验证 br-intbr-ex 是否使用 patch-peer int-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 设置。

  4. 检查网络流。

    运行 ovs-ofctl dump-flows br-exovs-ofctl dump-flows br-int,并检查流是否删除传出数据包的内部 VLAN ID,并为传入的数据包添加 VLAN ID。当您在特定 Compute 节点上向这个网络生成实例时,首先添加此流。

    1. 如果在生成实例后没有创建此流,请验证网络是否创建为 flat,为 external,且 physical_network 名称是正确的。此外,查看 bridge_mapping 设置。
    2. 最后,检查 ifcfg-br-exifcfg-ethx 配置。确保 ethX 被添加到 br-ex 中的端口,并且 ifcfg-br-exifcfg-ethxip a 的输出中有一个 UP 标志。

      输出示例

      以下输出显示 eth1br-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