39.6. 调试节点到节点网络
使用我们的未工作端点列表,我们需要测试与该节点的连接。
确保所有节点都具有预期的 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
更正条目。确保节点地址和主机名正确后,列出端点 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
查找您之前记录的端点 IP 地址,并在
PodIP
条目中查找它,并找到对应的HostIP
地址。然后,使用HostIP
的地址测试节点主机级别的连接:-
ping -c 3 <IP_address>
:没有响应可能意味着中间路由器正在破坏 ICMP 流量。 tracepath <IP_address>
:如果所有跃点返回了 ICMP 数据包,则显示了指向目标的 IP 路由。如果
tracepath
和ping
失败,则查找与本地或虚拟网络的连接问题。
-
对于本地网络,检查以下内容:
检查数据包从方框到目标地址的路由:
# 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 显示 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 detected: yes
-
您的 duplex 设置和以太网速度是否在两端均正确?查看
ethtool <network_interface
> 信息的其余部分。 - 电缆是否正确插入?到正确的端口?
- 交换机是否正确配置?
一旦您确定了节点到节点连接,就需要查看两端的 SDN 配置。