我已经为此苦苦思索了一段时间,希望有人能给我指明正确的方向。
我建立了许多 IPSec 隧道,大部分是从 CentOS 上的 libreswan (v3.23) 到 Cisco ASA。大多数是 IKE v1,在这种情况下,如果我想访问远程端的多个主机,我可以在我的 .conf 文件中使用如下公式:
conn test1
rightsubnet=192.168.1.111/255.255.255.255
rightsourceip=192.168.1.111
also=test_common
auto=start
conn test2
rightsubnet=192.168.1.112/255.255.255.255
rightsourceip=192.168.1.112
also=test_common
auto=start
但是,如果我将此语法与 IKEv2(ikev2=insist)一起使用,我可以启动 test1 并到达 192.168.1.111,但 test2 将无法完成;或者我可以启动 test2 但 test1 将无法工作。
我的问题是,什么语法可以让我建立一个 IKEv2 隧道,让我可以同时到达 192.168.1.111 和 192.168.1.112?
我曾尝试使用:
conn test
rightsubnet=192.168.1.96/27
leftsubnet=192.168.2.2/32
also=test_common
auto=start
通过这种表述,我看到了“STATE_PARENT_I2:已发送 v2I2,预期 v2R2”,但我得到的只是“STATE_PARENT_I2:重新传输”。
同样地,我也尝试过:
conn test
rightsubnets=192.168.1.111/32,192.168.1.112/32
leftsubnet=192.168.2.2/32
also=test_common
auto=start
使用 rightsubnets 指令会导致连接无法启动,即使指定了单个范围。
如果有人能给我指明正确的方向我将不胜感激。
编辑:我发现我可以使用 rightsubnets 指令;但是它只会启动第一个隧道。有效的语法是:
rightsubnets={192.168.1.111/32 192.168.1.112/32}
在此示例中,192.168.1.111 是可访问的,但第二个地址到达“STATE_V2_CREATE_I:已发送 IPsec Child req 等待响应”并且从未完成。
答案1
改成leftsubnet
leftsubnets
rightsubnets={192.168.1.111/32,192.168.1.112/32}
leftsubnets={192.168.2.2/32}
right
另外在我看来,只有不使用 IKEv2时这才有效%any
。