Я создал две виртуальные машины поверх базовой ОС и включил IPSec между двумя виртуальными машинами. Теперь проблема в том, что как только IPsec запускается и между двумя виртуальными машинами устанавливается SA, я не могу выполнить ping или ssh для виртуальной машины через базовую ОС, но виртуальные машины могут проверять связь друг с другом. Насколько мне известно, IPsec создает туннель только между указанными IP-адресами, то есть пакеты, предназначенные для IP B с IP A, шифруются, а все остальные пакеты с IP A могут проходить без шифрования. Я что-то упустил? Используемый файл конфигурации:
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-адресами, т. Е. Пакеты, предназначенные для IP B с IP A, шифруются, а все остальные пакеты с IP A могут проходить без шифрования. Я что-то упустил?
Да. IPSec создает туннель между двумя указанными конечные точки, left
и right
. Но трафик, который использует этот туннель, то есть трафик, который зашифрован, находится между двумя указанными сети, leftsubnet
и rightsubnet
. В вашем случае две маршрутизируемые подсети совпадают друг с другом, что не сработает.
Если вы хотите, чтобы трафик из A в B был зашифрован в A и расшифрован в B, и наоборот, вы сообщаете S / WAN, установив leftsubnet
быть left
адрес, в вашем случае 192.168.54.220/32
(важна маска), и установив rightsubnet
быть right
адрес, в вашем случае 192.168.54.221/32
.
Насколько мне известно, IPsec создает туннель только между указанными IP-адресами, то есть пакеты, предназначенные для IP B с IP A, шифруются, а все остальные пакеты с IP A могут проходить без шифрования. Я что-то упустил?
Нет! В этом суть вашего текущего варианта использования.
Я вижу ключи подсети, но это одна и та же подсеть. Я не смотрел исходный код, поэтому не могу однозначно сказать, что проблема ... но я думаю, что проблема. Если не маршрутизация или использование nat, вам понадобится транспортный режим. Вот конфигурация точка-точка, которую я использовал пару недель назад:
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"
Биты импорта - это левый *, правый * и тип. Ваша конфигурация выглядит прекрасно, если не считать этих ключей. Кроме того, вы сказали, что он уже устанавливает VPN, поэтому ясно, что у вас есть правильные ike и auth.