Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

39.6. 调试节点到节点网络

使用我们的非工作端点列表,我们需要测试与节点的连接。

  1. 确保所有节点都有预期 IP 地址:

    # oc get hostsubnet
    NAME                   HOST                   HOST IP           SUBNET
    rh71-os1.example.com   rh71-os1.example.com   192.168.122.46    10.1.1.0/24
    rh71-os2.example.com   rh71-os2.example.com   192.168.122.18    10.1.2.0/24
    rh71-os3.example.com   rh71-os3.example.com   192.168.122.202   10.1.0.0/24

    如果您使用 DHCP,它们可能已经更改。确保主机名、IP 地址和子网与您的预期相符。如果有任何节点详细信息已更改,请使用 oc edit hostsubnet 更正条目。

  2. 确保节点地址和主机名正确后,列出端点 IP 和节点 IP:

    # oc get pods --selector=docker-registry \
        --template='{{range .items}}HostIP: {{.status.hostIP}}   PodIP: {{.status.podIP}}{{end}}{{"\n"}}'
    
    HostIP: 192.168.122.202   PodIP: 10.128.0.4
  3. 查找您之前记下的端点 IP 地址,并在 PodIP 条目中查找它,并查找对应的 HostIP 地址。然后,使用 HostIP 中的地址测试节点主机级别的连接:

    • ping -c 3 <IP_address>:没有响应可能意味着中间路由器正在批准 ICMP 流量。
    • tracepath <IP_address>:如果所有跃点返回 ICMP 数据包,则显示传递到目标的 IP 路由。

      如果 tracepathping 都失败,则查找本地或虚拟网络的连接问题。

  4. 对于本地网络,请检查以下内容:

    • 检查数据包从开箱即用到目标地址的路由:

      # ip route get 192.168.122.202
        192.168.122.202 dev ens3  src 192.168.122.46
          cache

      在上面的示例中,它将退出名为 ens3 的接口,其源地址 为 192.168.122.46,并直接转至目标。如果这是您需要的,请使用 ip a show dev ens3 获取接口详细信息,并确保 是预期接口。

      另一个结果可能如下:

      # ip route get 192.168.122.202
        1.2.3.4 via 192.168.122.1 dev ens3  src 192.168.122.46

      它将通过 传递 IP 值来适当地路由。确保流量正确路由。调试路由流量不在本指南范围之内。

可通过以下方法解决节点到节点网络的其他调试选项:

  • 两端是否有以太网链接?在 ethtool <network_interface> 的输出中查找检测到的 Link: 是。
  • 您的双工设置和以太网是否都在两端进行正确速度?查看 ethtool <network_interface> 信息的其余部分。
  • 电缆是否已正确插入?到正确的端口?
  • 交换机配置是否正确?

旦确定节点连接正常,我们需要查看两端的 SDN 配置。