![Docker 和 StrongSwan:目标主机无法访问](https://linux22.com/image/663817/Docker%20%E5%92%8C%20StrongSwan%EF%BC%9A%E7%9B%AE%E6%A0%87%E4%B8%BB%E6%9C%BA%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE.png)
我在使用 IPsec 隧道进行容器间通信时遇到了一些问题。以下是我的设置:
我在多台 Ubuntu 14.04 主机上安装了 Docker,并在每台主机上运行各种容器。我需要其中一些容器能够与不同服务器上的容器进行通信。
我刚刚从 OpenVPN 配置移至 StrongSwan 配置。以下是我的两个节点的配置文件。
节点 4 上的 ipsec.conf
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=%forever
keyexchange=ikev2
closeaction=restart
dpdaction=restart
authby=secret
leftfirewall=yes
lefthostaccess=yes
auto=start
left=node4.publicdomain.com
leftsourceip=192.168.255.4
conn me
leftsourceip=
leftsubnet=192.168.255.4/32
right=%any
rightsourceip=%config
node5 上的 ipsec.conf
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=%forever
keyexchange=ikev2
closeaction=restart
dpdaction=restart
authby=secret
leftfirewall=yes
lefthostaccess=yes
auto=start
left=node5.publicdomain.com
leftsourceip=192.168.255.5
conn node1
right=node1.publicdomain.com
rightsubnet=192.168.255.1/32
conn node3
right=node3.publicdomain.com
rightsubnet=192.168.255.3/32
conn node4
right=node4.publicdomain.com
rightsubnet=192.168.255.4/32
conn me
leftsourceip=
leftsubnet=192.168.255.5/32
right=%any
rightsourceip=%config
在 node5 主机上,我可以成功 ping 所有配置的节点。但是,如果我在 node5 上进入一个 docker 容器并尝试 ping,结果如下。
root@b0cf0114b815:/# ping 192.168.255.5
PING 192.168.255.5 (192.168.255.5): 56 data bytes
64 bytes from 192.168.255.5: icmp_seq=0 ttl=64 time=0.074 ms
64 bytes from 192.168.255.5: icmp_seq=1 ttl=64 time=0.059 ms
64 bytes from 192.168.255.5: icmp_seq=2 ttl=64 time=0.063 ms
^C--- 192.168.255.5 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.059/0.065/0.074/0.000 ms
root@b0cf0114b815:/# ping 192.168.255.4
PING 192.168.255.4 (192.168.255.4): 56 data bytes
92 bytes from [node5 PUBLIC IP]: Destination Host Unreachable
92 bytes from [node5 PUBLIC IP]: Destination Host Unreachable
92 bytes from [node5 PUBLIC IP]: Destination Host Unreachable
我可以访问 node5 的地址,但不能访问 node4 的地址。有人知道我该如何重新配置,以便 node5 上的所有容器都能够与 node4 和我配置的其他节点进行通信吗?
谢谢!
答案1
您搞清楚了吗?我认为问题可能出在您的子网上:192.168.255.1/32 表示 192.168.255.1 到 192.168.255.6,因此它与 192.168.255.3/32 或 192.168.255.4/32 或 192.168.255.5/32 冲突
它们不应该重叠,所以你可以使用类似
192.168.255.1/32
192.168.255.8/32
192.168.255.16/32
192.168.255.24/32
反而
答案2
不幸的是无法弄清楚这一点。
作为替代方案,我使用了 tinc:http://www.tinc-vpn.org/
对我来说配置起来更容易,虚拟界面也总是很好用。我不需要做任何特别的事情,每个配置文件大约只有四五行。
无论如何,谢谢你的帮助!