为什么IPsec隧道仅需要3个ip xfrm策略?


8

我有一个站点到站点IPsec隧道,并且在strongswan(v5.2.0)实例(站点A)和RouterOS路由器(站点B)之间运行。一切正常,站点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

每个输入和输出都有一个策略,但只有一个策略可以转发(从站点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

关于此路由跟踪的有趣部分是,站点A的路由器(10.10.0.2)仅显示在从ping目标返回的路由上,而站点B的路由器(10.50.0.1)仅在传出路由中列出。

这似乎可以确认实际上站点A的路由器上不需要通过IPsec隧道转发10.10.0.0/16到的转发策略10.50.0.0/16,但是我不明白为什么。

感谢您的任何解释!

Answers:


9

FWD政策不会自动被内核产生的,而是得到由键控守护进程(strongSwan在这种情况下)安装。

需要使用它们来允许流量以隧道模式在VPN网关后面的主机之间进行转发。

对于地址为未安装在网关本身上的IP的入站数据包,解密后将搜索fwd策略。对于本地流量将查找策略匹配项。如果未找到,则丢弃该数据包。

对于未在VPN网关本身上生成的出站流量,将搜索fwd策略。如果数据包没有加密也没有失败,如果没有匹配的FWD政策中找到。如果流量两条隧道之间转发入FWD与一个安装政策将作为出站FWD为其他反之亦然政策。之后,查找策略以决定是否通过隧道传输数据包。这就是为什么通常不需要出站方向的转发策略。

但是,如果有一个低优先级的丢弃/阻止fwd策略匹配所有内容(例如,如果没有建立隧道,则避免明文流量通过网关),则明确要求在出站方向上使用fwd策略,因为阻止策略将否则,将丢弃所有未加密的流量。这就是strongSwan从5.5.0开始双向安装fwd策略的原因。


该答案的先前版本指出,单个(入站)转发策略是对称的(即srcdst在任一方向上都起作用)。那不是真的,但是正如上面在许多情况下所解释的,这无关紧要。


我知道,非常有趣。但是,当src和dest地址不匹配时,为什么通过fwd策略路由数据包?在上面的示例中,来自我的ping的传出数据包具有源10.10.0.89,但是正由具有10.50.0.0/16作为src选择器的fwd策略进行处理... [e]:您实际上是通过说src和dst有两种工作方式。但是我认为这与iptables中的FORWARD链的工作方式并不完全相似。
多利安2014年

不,关于这个特定的细节。我试图澄清这句话。
ecdsa 2014年

谢谢,我想我现在明白了。您是否知道参考文献中指定了Linux IPsec实现的此类详细信息?

1
@dorian:可悲的是,Linux IPsec上的唯一参考是内核的来源。
SRobertJames '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.