私有 WAN 可以承载 IPsec 隧道的外层数据包,因此对端地址不必是公网互联网地址。变化的是这些外层数据包所走的路径,以及接收它们的接口上的权限。在 SRX 上,外层控制路径、隧道接口绑定和转发流量策略是三个独立的对象。另外两个出错时只排查其中一个,是隧道一直无法建立的常见原因。

先记录外层 IKE 路径

在改动策略之前写下四个值:对端地址、接收 IKE 的本地接口、到达对端的路由上下文,以及选择该接口的路由。IKE 数据包发往 SRX 本身,因此需要接收区域上的 host-inbound 权限,而不是转发流量策略。私有 WAN 地址并不能免除这一要求,因为数据包仍然在设备上终止。

用以下命令检查已安装状态:show security ike sa用以下命令检查配置:show configuration security ike。第一条命令显示阶段 1 是否存在,第二条显示设备认为自己应该做什么。

把隧道接口绑定到正确的策略

基于路由的 VPN 把隧道接口绑定到 VPN 对象,受保护的网段被路由到该接口。记录哪个接口、哪条路由、哪条策略允许相关区域之间的应用。名为 trust 的区域只是策略容器,名称并不能证明所需的控制或数据包已被放行。

阅读实际绑定,而不是旧图:show configuration security ipsec vpn 用于查看绑定到接口的设置,show configuration security policies 用于查看引用隧道区域的规则。

如果受保护的路由指向别处,隧道可以处于 up 状态,而流量却从未进入其中。这是披着 IPsec 外衣的路由问题。

把对端路由保留在 underlay 上

通往外部对端的路由必须通过 underlay 解析,而不是递归地经由它自己建立的隧道。如果对端路由指向隧道接口,IKE 数据包就会追逐自己的隧道,阶段 1 永远无法完成。受保护流量的回程需要自己正确的路由和策略,当只有一个方向可用时,通常缺少的就是这一半。读取对端地址的路由表条目,并确认出接口是 WAN 接口。

用以下命令检查:show route 198.51.100.10,替换为真实对端地址,并确认下一跳不是隧道接口。

按顺序验证控制面和服务

自下而上进行:阶段 1 状态、阶段 2 状态,然后是一个真实的应用流。show security ipsec sa 列出安全关联,show security flow session destination-prefix 10.60.0.0/16 显示是否为受保护网络建立转发会话。

健康的控制关系和可用的数据路径是两个不同的结果,阶段 2 通过并不能说明策略是否放行该应用。测试一条允许的流和一条策略应当拒绝的流,让差异显现出来。

把对端路由、host-inbound 权限、隧道绑定、内部路由和应用策略一起记录。这五条记录能说明将来的故障属于哪一层,而不必依赖端口标签。

相关文章