我有一个 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
得到教训:
- 定义两个都
leftsubnet
和rightsubnet
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。