我在云虚拟机上配置了一个小型网络。这个虚拟机有一个分配给 eth0 接口的静态 IP 地址,我称之为 $EXTIP。mydomain.com 指向 $EXTIP。在里面,我有一些 linux 容器,它们通过子网 10.0.0.0/24 中的 DHCP 获取它们的 ip(我称之为虚拟接口nat)。他们运行一些可以通过 DNAT 访问的服务。然后我想通过IPSec隧道连接到这些容器,所以我配置了StrongSwan。
conn %default
dpdaction=none
rekey=no
conn remote
keyexchange=ikev2
ike=########
left=[$EXTIP]
leftsubnet=10.0.1.0/24,10.0.0.0/24
leftauth=pubkey
lefthostaccess=yes
leftcert=########.pem
leftfirewall=yes
leftid="#########"
right=%any
rightsourceip=10.0.1.0/24
rightauth=########
rightid=%any
rightsendcert=never
eap_identity=%any
auto=add
type=tunnel
Run Code Online (Sandbox Code Playgroud)
一切正常,IPSec 客户端获得 10.0.1.0/24 子网的 IP 并且可以访问容器子网。我的问题是我无法通过隧道获得 SSH 连接。它根本不起作用,ssh 客户端不产生任何输出。使用 tcpdump 嗅探给出:
09:50:29.648206 ARP, Request who-has 10.0.0.1 tell mydomain.com, length 28
09:50:29.648246 ARP, Reply 10.0.0.1 is-at 00:ff:aa:00:00:01 (oui Unknown), length 28
09:50:29.648253 IP mydomain.com.54869 > 10.0.0.1.ssh: Flags …
Run Code Online (Sandbox Code Playgroud)