我在strongswan(v5.2.0) 实例(站点 A)和RouterOS路由器(站点 B)之间启动并运行了一个站点到站点 IPsec 隧道。一切正常,站点 A ( 10.10.0.0/16) 和 B ( 10.50.0.0/16)的两个私有子网设置中的主机可以很好地相互通信。
我不明白的是ip xfrm policy站点 A 的路由器的以下输出(公共 IP 被混淆)。这些策略是由创建的strongswan,我没有手动安装或修改它们:
ip xfrm policy
src 10.50.0.0/16 dst 10.10.0.0/16
dir fwd priority 2947 ptype main
tmpl src <PUBLIC_IP_B> dst <PUBLIC_IP_A>
proto esp reqid 1 mode tunnel
src 10.50.0.0/16 dst 10.10.0.0/16
dir in priority 2947 ptype main
tmpl src <PUBLIC_IP_B> dst <PUBLIC_IP_A>
proto esp reqid 1 mode tunnel
src 10.10.0.0/16 dst 10.50.0.0/16
dir out priority 2947 ptype main
tmpl src <PUBLIC_IP_A> dst <PUBLIC_IP_B>
proto esp reqid 1 mode tunnel
Run Code Online (Sandbox Code Playgroud)
输入和输出各有一个策略,但只有一个用于转发(从站点 B 到站点 A)。但我仍然可以成功 ping,例如,10.50.4.11从10.10.0.89:
ping -R 10.50.4.11
PING 10.50.4.11 (10.50.4.11): 56 data bytes
64 bytes from 10.50.4.11: icmp_seq=0 ttl=62 time=10.872 ms
RR: 10.10.0.89
10.50.0.1
10.50.4.11
10.50.4.11
10.50.4.11
10.10.0.2
10.10.0.89
Run Code Online (Sandbox Code Playgroud)
关于此路由跟踪的有趣部分是站点 A 的路由器 ( 10.10.0.2) 仅显示在从 ping 目标返回的路由上,而站点 B 的路由器 ( 10.50.0.1) 仅针对传出路由列出。
这似乎证实站点 A 的路由器实际上不需要转发策略10.10.0.0/16以10.50.0.0/16通过 IPsec 隧道转发,但我不明白为什么。
感谢您的任何解释!
该FWD政策不会自动被内核产生的,而是得到由键控守护进程(strongSwan在这种情况下)安装。
它们需要允许流量在隧道模式下转发到 VPN 网关后面的主机和从主机转发。
对于未安装在网关本身上的 IP 地址的入站数据包,在解密后搜索fwd策略。对于本地流量,查找匹配的策略。如果没有找到,则丢弃数据包。
对于不是在 VPN 网关本身上生成的出站流量,将搜索fwd策略。如果数据包没有加密,如果没有找到匹配的fwd策略也没有失败。如果流量两条隧道之间转发入FWD与一个安装政策将作为出站FWD为其他反之亦然政策。之后,查找出策略来决定是否对数据包进行隧道传输。这就是为什么通常不需要出站方向的fwd策略的原因。
但是,如果存在例如匹配所有内容的低优先级丢弃/阻止转发策略(例如,如果没有建立隧道,则避免明文流量通过网关)在出站方向上明确需要转发策略,因为阻止策略将否则丢弃所有未加密的流量。这就是 strongSwan 开始在5.5.0 的两个方向上安装fwd策略的原因。
此答案的先前版本指出单个(入站)fwd策略是对称的(即src和dst在任一方向上工作)。事实并非如此,但正如上面所解释的,在许多情况下这并不重要。
| 安全政策 | 句法 | 意义 |
|---|---|---|
| \xe2\x80\x9c 输出策略\xe2\x80\x9d | 目录输出 | SP 作为传出数据包的选择器,选择哪些数据包要加密+封装,哪些不加密+封装 |
| \xe2\x80\x9c输入策略\xe2\x80\x9d | 目录在 | SP 作为传入数据包的选择器,这些数据包已被解密+解封装,并且在系统上具有本地目标 IP |
| \xe2\x80\x9c转发策略\xe2\x80\x9d | 目录转发 | SP 作为已解密+解封装且目标 IP 不是本地的传入数据包的选择器,从而转发(路由)数据包 |
所以:
\nout用于我们想要使用 IPsec 加密+封装的传出流量(本地和转发)。in用于fwd传入IPsec流量并应用于封装在 IPsec 内的数据包:\nin适用于目的IP为本机的内部数据包fwd应用于应进一步转发的内部数据包编辑:我在 Linux 5.9.1 上进行了自己的本地实验ip xfrm,结果与 Andrej 的表匹配。
| 归档时间: |
|
| 查看次数: |
15571 次 |
| 最近记录: |