第 6 章 监控和故障排除网络

在 Red Hat OpenStack Platform 中监控并排除网络连接的诊断流程与物理网络的诊断流程类似。如果使用 VLAN,您可以将虚拟基础架构视为物理网络的中继扩展,而不是完全独立的环境。ML2/OVS 网络和默认的 ML2/OVN 网络故障排除之间存在一些区别。

6.1. 基本 ping 测试

ping 命令是用于分析网络连接问题的有用工具。结果充当网络连接的基本指示器,但可能无法完全排除所有连接问题,如防火墙阻止实际应用程序流量。ping 命令将流量发送到特定的目的地,然后报告尝试是否成功。

注意

ping 命令是 ICMP 操作。要使用 ping,您必须允许 ICMP 流量遍历任何中间防火墙。

在从遇到网络问题的计算机运行时,ping 测试最有用,因此如果计算机似乎完全离线,则可能需要通过 VNC 管理控制台连接到命令行。

例如,以下 ping test 命令会验证网络基础架构的多个层,以便成功;名称解析、IP 路由和网络切换都必须正确正常工作:

$ ping www.example.com

PING e1890.b.akamaiedge.net (125.56.247.214) 56(84) bytes of data.
64 bytes from a125-56.247-214.deploy.akamaitechnologies.com (125.56.247.214): icmp_seq=1 ttl=54 time=13.4 ms
64 bytes from a125-56.247-214.deploy.akamaitechnologies.com (125.56.247.214): icmp_seq=2 ttl=54 time=13.5 ms
64 bytes from a125-56.247-214.deploy.akamaitechnologies.com (125.56.247.214): icmp_seq=3 ttl=54 time=13.4 ms
^C

您可以使用 Ctrl-c 终止 ping 命令,之后显示结果摘要。数据包丢失的百分比为零代表连接稳定且不超时。

--- e1890.b.akamaiedge.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 13.461/13.498/13.541/0.100 ms

根据您测试的目标,ping 测试结果可能会非常显示。例如,在下图中,VM1 遇到某种形式的连接问题。可能的目的地以蓝色编号,显示成功或失败结果的结论:

一个示例网络
  1. 互联网 - 常见的第一步是将 ping 测试发送到互联网位置,如 www.example.com。

    • 成功 :此测试表示机器和互联网之间的所有网络点都正确运行。这包括虚拟和物理网络基础架构。
    • 失败 : ping 测试到距离互联网位置的方法可能会失败。如果您的网络中的其他机器能够成功 ping 互联网,证明互联网连接可以正常工作,且此问题可能会在本地计算机的配置中。
  2. 物理路由器 - 网络管理员指定将流量定向到外部目的地的路由器接口。

    • 成功 :对物理路由器的 Ping 测试可以确定本地网络和底层交换机是否正常运行。这些数据包不会遍历路由器,因此它们不会证明默认网关上是否存在路由问题。
    • 失败 :这表示 VM1 和默认网关间的问题。路由器/交换机可能会停机,或者您可能使用错误的默认网关。将配置与您知道在正确运行的另一个服务器上的配置进行比较。尝试 ping 本地网络中的其他服务器。
  3. Neutron 路由器 - 这是 Red Hat OpenStack Platform 用来指示虚拟机流量的虚拟 SDN (软件定义网络)路由器。

    • 成功 :防火墙允许 ICMP 流量,网络节点在线。
    • 失败 :确认实例安全组中是否允许 ICMP 流量。检查网络节点是否已在线,确认所有必需的服务是否正在运行,并检查 L3 代理日志(/var/log/neutron/l3-agent.log)。
  4. 物理交换机 - 物理交换机管理同一物理网络中节点间的流量。

    • 成功 :虚拟机发送到物理交换机的流量必须通过虚拟网络基础架构,这表示此段正常工作。
    • 失败 :检查物理交换机端口是否已配置为中继所需的 VLAN。
  5. VM2 - 在同一 Compute 节点上尝试 ping 同一子网上的虚拟机。

    • 成功 :VM1 上的 NIC 驱动程序和基本 IP 配置可以正常工作。
    • 失败 :验证 VM1 上的网络配置。或者,VM2 上的防火墙可能只是阻止 ping 流量。此外,验证虚拟切换配置并检查 Open vSwitch 日志文件。