我使用两个 LXD 容器(在两台服务器上)来连接它们。
一切运行正常,使用 iptables 进行 NAT 端口。
但有一个问题:当重新启动其中一台服务器(只是一台小型机器)时,有时无法自动建立连接。配置已加载(使用 swanctl -L 检查,是的,我使用的是 swanctl-interface)。
NO_PROPOSAL_CHOSEN notify error
但我在所连接的主机上收到了信号。
在尝试启动连接的主机上,它说no IKE config found for $IP1...$IP2, sending NO_PROPOSAL_CHOSEN
重启strongswan后,就可以建立连接了。
两个主机都运行 Ubuntu 22.04,带有 LXD-Containers、Strongswan、Swanctl 5.9.5。
有人能帮忙吗?提前谢谢!
答案1
ecdsa,你是我的英雄!
经过几个小时的调查后,您的回答有所帮助:
我只是想收集日志来回答你。我观察到:
主机1:
Feb 9 19:47:03 strongswan charon: 08[NET] received packet: from
Feb 9 19:47:03 strongswan charon: 08[ENC] parsed IKE_SA_INIT request
Feb 9 19:47:03 strongswan charon: 08[IKE] no IKE config found for
..等等
主机2:
Feb 9 19:45:33 strongswan charon-systemd[1796]: generating IKE_SA_INIT request 0
Feb 9 19:45:33 strongswan charon-systemd[1796]: sending packet: from
Feb 9 19:45:36 strongswan charon-systemd[1796]: sending keep alive to
...等等
我想要强调的是:主机上运行着两个不同的守护进程。
Host1 上同时运行着服务“ipsec.service”和“strongswan.service”,其中 ipsec.service 用于旧的 stroke-interface:
root@strongswan:~# systemctl status ipsec
○ strongswan-starter.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf
禁用此服务解决了该问题:
root@strongswan:~# systemctl disable ipsec
就像您提到的那样,两个守护进程都在启动时启动并相互竞争。因此,有时启动后 stroke-dameon 会捕获连接,有时 swanctl-daemon 会捕获连接。
太感谢了!
我希望我的回答能够帮助其他正在为此烦恼的人:)