启用IPSec后无法SSH远程系统

我在基本操作系统之上创build了两个虚拟机,并在两台虚拟机之间启用了IPSec。 现在问题是一旦IPsec启动,两个虚拟机之间build立了SA,我就无法ping通或者通过基本操作系统ssh到虚拟机,但是虚拟机之间可以互相ping通。 据我所知,IPsec只在指定的IP之间build立一条隧道,即来自IP A的IP B的报文被encryption,而来自IP A的所有其他报文可以不encryption地通过。 我在这里错过了什么? 使用的configuration文件是:

conn example left=192.168.54.220 leftcert=CA_Server leftsubnet=192.168.54.1/24 leftsendcert=always leftrsasigkey=%cert right=192.168.54.221 rightca=%same rightrsasigkey=%cert rightsubnet=192.168.54.1/24 rightcert=CA_Client authby=rsasig ikev2=permit auto=start 

IPsec只在指定的IP之间创build一个隧道,即从IP A发往IP B的数据包被encryption,而来自IP A的所有其他数据包可以不encryption地通过。 我在这里错过了什么?

是。 IPSec在两个指定的端点leftright之间创build隧道。 但是使用该隧道的stream量(即encryption的stream量)位于两个指定的networking (即leftsubnetrightsubnet 。 在你的情况下,两个路由子网是相同的,这是不会工作的。

如果你想要的是从A到B的stream量在A被encryption并且在B被解密,反之亦然,你告诉S / WAN通过设置leftsubnetleft的地址,你的情况192.168.54.220/32 / leftsubnet掩码是重要的),并通过设置rightsubnetright的地址,你的情况192.168.54.221/32 rightsubnet

据我所知,IPsec只在指定的IP之间创build隧道,即来自IP A的IP B的报文被encryption,而来自IP A的所有其他报文可以不encryption地通过。 我在这里错过了什么?

不! 这是你当前用例的要点。

我看到子网密钥,但它们是同一个子网。 我没有看源代码,所以我不能确定地说这是问题…但我认为这是问题。 如果没有路由或使用nat,则需要传输模式。 这是几个星期前我使用的点对点configuration:

 conn transportModeFirewallToPhoneServer authby="psk" auto="start" compress="no" ecn="no" esp="aes128-md5" ike="aes256-md5-modp1536" ikelifetime="7800" keyexchange="ike" keylife="3600" left="hq.myDynDNSDomainToMyOffice.com" leftid="hq.myDynDNSDomainToMyOffice.com" leftupdown="/usr/libexec/ipsec/updown classic" pfs="yes" pfsgroup="modp1536" pmtu_discovery="no" rekeymargin="540" right="XXX.XXX.XXX.XXX" rightid="XXX.XXX.XXX.XXX" type="transport" 

导入位是左边*,右边*和types。 除了这些键之外,你的configuration看起来很好。 另外,你说它已经build立了VPN,所以显然你有正确和authentication。