我在基本操作系统之上创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在两个指定的端点 ( left和right之间创build隧道。 但是使用该隧道的stream量(即encryption的stream量)位于两个指定的networking (即leftsubnet和rightsubnet 。 在你的情况下,两个路由子网是相同的,这是不会工作的。
如果你想要的是从A到B的stream量在A被encryption并且在B被解密,反之亦然,你告诉S / WAN通过设置leftsubnet被left的地址,你的情况192.168.54.220/32 / leftsubnet掩码是重要的),并通过设置rightsubnet是right的地址,你的情况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。