本主题介绍在使用连接到策略的虚拟网络时解决可访问性问题(ping 失败)的故障排除方案和步骤。
以下是用于配置虚拟网络或虚拟机的可访问性的方法:
使用网络策略交换虚拟网络路由。
使用浮动 IP 地址池将目标虚拟网络中的 IP 地址关联到源虚拟网络中的虚拟机。
使用 ASN/RT 配置与 MX 系列路由器网关交换虚拟网络路由。
使用服务实例静态路由配置在两个虚拟网络中的服务实例之间进行路由。
本主题重点介绍如何排查第一种方法的可访问性问题,---使用网络策略在虚拟网络之间交换路由。
策略连接的网络的故障排除过程
- 检查虚拟机和接口的状态。
在执行其他任何操作之前,请检查源虚拟机和目标虚拟机的状态。
每个虚拟机的状态是否为 Up?
相应的分路接口是否 处于活动状态?
在 Contrail UI 中检查虚拟机状态:
图1:虚拟机状态窗口
在 http 代理侦测中检查分路接口状态,例如:
https://<host ip address>:8085/Snh_ItfReq?name=
图2:点击接口状态窗口
当虚拟机状态为 “已启动”且 tap 接口为 “活动”时,您可以重点关注影响流量的其他因素,包括路由、网络策略、安全策略和具有静态路由的服务实例。
- 检查可访问性和路由。
每当通过网络策略连接的虚拟网络路由上遇到 ping 失败时,请使用以下故障排除指南。
检查网络策略配置:
验证策略是否已附加到每个虚拟网络。
每个附加的策略都应具有允许从一个虚拟网络到另一个虚拟网络的流量的显式规则,或允许所有流量规则。
验证策略规则中操作的顺序是否正确,因为操作按其列出顺序应用。
如果有多个策略附加到虚拟网络,请验证这些策略是否按逻辑顺序附加。首先应用列出的第一个策略,首先应用其规则,然后再应用下一个策略。
最后,如果其中一个虚拟网络没有显式规则来允许来自另一个虚拟网络的流量,则该流量流将被视为 未解析 流或 短 流,并且将丢弃所有数据包。
在 Contrail UI 中按以下顺序检查策略、附件和流量规则:
检查计算节点中的 VN1-VN2 ACL 信息:
图 3:策略、附件和流量规则状态窗口
使用路由信息检查虚拟网络策略配置:
图 4:虚拟网络策略配置窗口
检查 VN2 路由的 VN1 路由信息:
图 5:虚拟网络路由信息窗口
如果缺少路由,ping 将失败。计算节点中的流检查会显示操作: D(rop)。
重复的 dropstats 命令通过在每次迭代 dropstats 时递增 “流操作丢弃 ”计数器来确认丢弃。
在计算节点上发出的流和 dropstats 命令:
图 6:Flow 和 Dropstats 命令列表
为了帮助调试流,可以使用计算节点的代理自检页面中的详细流查询。
感兴趣的领域包括:
流命令输出:
图 7:流命令输出窗口
获取单个流的详细信息:
图 8:获取流记录窗口
FetchFlowRecord 的输出显示未解析的 IP 地址:
图 9:未解析的 IP 地址窗口
您还可以从 Contrail UI 检索有关未解析流的信息,如下所示:
图 10:未解析的流详细信息窗口
- 检查特定于协议的网络策略操作。
如果仍然遇到可访问性问题,请排查任何特定于协议的操作,其中交换路由,但只允许特定协议。
下面显示了代理自检中特定于协议的流的示例查询:
图 11:特定于协议的流程示例
下面显示策略操作清楚地将 拒绝 显示为操作。
图 12:具有拒绝操作
的协议特定流示例
总结
本主题探讨一个领域 — 调试基于策略的路由。但是,在复杂系统中,虚拟网络可能组合了一个或多个配置方法,这些方法会影响可访问性和路由。
例如,环境可能配置了到另一个虚拟网络 VN-Y 的基于策略的路由的虚拟网络 VN-X。同时,VN-X 中有一些虚拟机具有到另一个虚拟网络 VN-Z 的浮动 IP,该虚拟网络通过 NAT 服务实例连接到 VN-XX。这是一个复杂的方案,您需要逐步调试,同时考虑到协同工作的所有功能。
此外,除了路由和可访问性之外,还有其他因素可能会影响流量。例如,网络策略和安全组的规则可能会影响到目标的流量。此外,如果涉及多路径,则在调试时需要考虑 ECMP 和 RPF。