使用 strongswan 传输模式 IPv6 “trap-any” 样式的本地子网配置来避免环回 SA

使用 strongswan 传输模式 IPv6 “trap-any” 样式的本地子网配置来避免环回 SA

我有一个 StrongSWAN 配置,灵感来自测试用例trap-any

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1

conn lan
        right=%any
        leftsubnet=fd12:3456:7890:abcd::/64
        rightsubnet=fd12:3456:7890:abcd::/64
        type=transport
        authby=psk
        auto=route

这会自动与我尝试连接的本地子网上的任何系统协商 SA;一般来说,它做的事情是正确的。

但是,当我向整个子网进行多播时:

ping6 -I fd12:3456:7890:abcd::1234 ff02::1

...我不仅可以收到其他系统的响应并建立安全关联(耶!),而且我还生成了两个单独的安全关联,用于与本地主机本身fd12:3456:7890:abcd::1234既是发起者,又是响应者。


我的第一个想法是避免这种情况,像这样:

conn local
       type=passthrough
       left=fd12:3456:7890:abcd::1234
       right=fd12:3456:7890:abcd::1234

...但这实际上并不能阻止环回连接。


相比之下,

conn local
        type=passthrough
        right=%any
        rightsubnet=fd12:3456:7890:abcd::1234/128

...没有建立安全关联根本


在此模式下,如何避免本地流量的 SA?

答案1

得到教训:

  • 定义两个都 leftsubnetrightsubnet
  • auto=route即使是为了联系也不要忘记passthrough

因此:

conn local
        type=passthrough
        right=%any
        leftsubnet=fd12:3456:7890:abcd::1234/128
        rightsubnet=fd12:3456:7890:abcd::1234/128
        auto=route

非常感谢#strongswan IRC 频道的 Thermi。

相关内容