Самостоятельная организация сетевой связности с помощью IPsec-шлюзов средствами Yandex Cloud
Вы можете самостоятельно реализовать защищенное соединение между облачной инфраструктурой и условным корпоративным ЦОД с помощью IPsec-шлюзов по схеме:
- Подготовьте облако к работе.
- Настройте облачную площадку.
- Настройте удаленную площадку.
- Проверьте работу IPsec-соединения и связность между удаленными и облачными ресурсами.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость развертывания инфраструктуры для данного решения на базе IPsec-шлюзов входят:
- Плата за постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud).
- Плата за использование статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).
Создайте пару ключей SSH
Чтобы подключаться к виртуальной машине по SSH, нужна пара ключей: открытый ключ размещается на ВМ, а закрытый ключ хранится у пользователя. Такой способ более безопасен, чем подключение по логину и паролю.
Примечание
В публичных образах Linux, предоставляемых Yandex Cloud, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.
Чтобы создать пару ключей:
-
Откройте терминал.
-
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
Вы можете передать в параметре
-C
пустую строку, чтобы не добавлять комментарий, или не указывать параметр-C
вообще — в таком случае будет добавлен комментарий по умолчанию.После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
, закрытый ключ — в файле без расширения.По умолчанию команда предлагает сохранить ключ под именем
id_ed25519
в директории/home/<имя_пользователя>/.ssh
. Если в этой директории уже есть SSH-ключ с именемid_ed25519
, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.
Если у вас еще не установлен OpenSSH
-
Запустите
cmd.exe
илиpowershell.exe
(предварительно обновите PowerShell). -
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
Вы можете передать в параметре
-C
пустую строку, чтобы не добавлять комментарий, или не указывать параметр-C
вообще — в таком случае будет добавлен комментарий по умолчанию.После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
, закрытый ключ — в файле без расширения.По умолчанию команда предлагает сохранить ключ под именем
id_ed25519
в папкуC:\Users\<имя_пользователя>/.ssh
. Если в этой директории уже есть SSH-ключ с именемid_ed25519
, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.
Создайте ключи с помощью приложения PuTTY:
-
Скачайте
и установите PuTTY. -
Убедитесь, что директория, куда вы установили PuTTY, присутствует в
PATH
:- Нажмите правой кнопкой на Мой компьютер. Выберите пункт Свойства.
- В открывшемся окне выберите Дополнительные параметры системы, затем Переменные среды (находится в нижней части окна).
- В разделе Системные переменные найдите
PATH
и нажмите Изменить. - В поле Значение переменной допишите путь к директории, куда вы установили PuTTY.
-
Запустите приложение PuTTYgen.
-
В качестве типа генерируемой пары выберите EdDSA. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.
-
В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.
-
Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.
-
Нажмите кнопку Save public key и сохраните открытый ключ в файле
<имя_ключа>.pub
.
Настройте облачную площадку
На этом этапе вы зарезервируете два статических IP-адреса для IPsec-шлюзов, а также создадите и настроите инфраструктуру облачной площадки Yandex Cloud: IPsec-шлюз, две виртуальные машины, сеть с двумя подсетями.
Создайте и настройте облачную сеть
Зарезервируйте публичные IP-адреса для шлюзов
Зарезервируйте два статических публичных IP-адреса в зоне доступности ru-central1-b
:
- Адрес основного IPsec-шлюза
cloud-gw
— в дальнейшем будет обозначаться<x1.x1.x1.x1>
. - Адрес удаленного IPsec-шлюза
remote-gw
— в дальнейшем будет обозначаться<x2.x2.x2.x2>
.
Создайте сеть и подсети на облачной площадке
-
Создайте сеть с именем
cloud-net
. При создании сети отключите опцию Создать подсети. -
В сети
cloud-net
вручную создайте подсети со следующими параметрами:-
Для подключения основного IPsec-шлюза
cloud-gw
:- Имя —
ipsec-subnet
. - Зона —
ru-central1-b
. - CIDR —
172.16.0.0/24
.
- Имя —
-
Для подключения виртуальной машины
vm-d
:- Имя —
subnet-d
. - Зона —
ru-central1-d
. - CIDR —
172.16.1.0/24
.
- Имя —
-
Для подключения виртуальной машины
vm-b
:- Имя —
subnet-b
. - Зона —
ru-central1-b
. - CIDR —
172.16.2.0/24
.
- Имя —
-
Создайте и настройте группу безопасности для основного IPsec-шлюза
-
В сети
cloud-net
создайте группу безопасности с именемcloud-net-sg
. -
В группе безопасности
cloud-net-sg
создайте правила в соответствии с таблицей:Направление
трафикаОписание Диапазон портов Протокол Источник /
НазначениеCIDR блоки Исходящий any
Весь
Любой
CIDR
0.0.0.0/0
Входящий icmp
Весь
ICMP
CIDR
0.0.0.0/0
Входящий ssh
22
TCP
CIDR
0.0.0.0/0
Входящий ipsec-udp-500
500
UDP
CIDR
<x2.x2.x2.x2>/32
Входящий ipsec-udp-4500
4500
UDP
CIDR
<x2.x2.x2.x2>/32
Входящий subnet-d
Весь
Любой
CIDR
172.16.1.0/24
Входящий subnet-b
Весь
Любой
CIDR
172.16.2.0/24
Настройте статическую маршрутизацию для основного IPsec-шлюза
-
В консоли управления
перейдите в каталог, в котором создана сетьcloud-net
. -
Выберите сервис Virtual Private Cloud.
-
Выберите сеть
cloud-net
. -
Перейдите на вкладку Таблицы маршрутизации и нажмите Создать.
-
В поле Имя укажите
cloud-net-rt
. -
В блоке Статические маршруты нажмите Добавить маршрут.
- В открывшемся окне в поле Префикс назначения укажите
10.10.0.0/16
. - В поле IP-адрес укажите внутренний IP-адрес основного IPsec-шлюза —
172.16.0.10
. - Нажмите Добавить.
- В открывшемся окне в поле Префикс назначения укажите
-
Нажмите Создать таблицу маршрутизации.
-
Привяжите таблицу маршрутизации
cloud-net-rt
к подсетямsubnet-d
иsubnet-b
:- Перейдите на вкладку Обзор.
- В строке подсети
subnet-d
нажмите и выберите Привязать таблицу маршрутизации. - В открывшемся окне выберите таблицу маршрутизации
cloud-net-rt
и нажмите Привязать. - Повторите два предыдущих шага для подсети
subnet-b
, чтобы привязать к ней таблицу маршрутизацииcloud-net-rt
.
Создайте и настройте виртуальные машины на облачной площадке
Создайте ВМ с основным IPsec-шлюзом на облачной площадке
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберитеВиртуальная машина
. -
В блоке Образ загрузочного диска в поле Поиск продукта введите
IPSec-инстанс
и выберите публичный образ IPSec-инстанс. -
В блоке Расположение выберите зону доступности
ru-central1-b
, где находится подсеть, к которой будет подключен основной IPsec-шлюз. -
В блоке Сетевые настройки:
-
В поле Подсеть выберите подсеть
ipsec-subnet
. -
В поле Публичный адрес выберите
Список
. -
В открывшемся поле IP-адрес выберите публичный IP-адрес
<x1.x1.x1.x1>
, который вы ранее зарезервировали. -
В поле Группы безопасности выберите ранее созданную группу безопасности
cloud-net-sg
. -
Разверните блок Дополнительно:
- В поле Внутренний IPv4 адрес выберите
Вручную
. - В появившемся поле для ввода укажите
172.16.0.10
.
- В поле Внутренний IPv4 адрес выберите
-
-
В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:
-
В поле Логин укажите
ipsec
. -
В поле SSH-ключ:
- Нажмите кнопку Добавить ключ.
- Задайте имя SSH-ключа.
- Загрузите или вставьте содержимое созданного ранее публичного SSH-ключа для доступа к ВМ.
- Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации.
Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя создаваемой виртуальной машины.
-
-
В блоке Общая информация задайте имя ВМ:
cloud-gw
. -
Нажмите кнопку Создать ВМ.
Дождитесь, когда ВМ перейдет в статус Running
.
Настройте основной IPsec-шлюз
Для настройки шлюза используйте IP-адреса, имя пользователя и ключ SSH, которые вы указывали при создании виртуальной машины cloud-gw
.
-
Подключитесь к виртуальной машине по SSH:
ssh ipsec@<x1.x1.x1.x1>
-
Задайте параметры даты и времени для ВМ:
sudo timedatectl set-timezone Europe/Moscow sudo timedatectl set-ntp True timedatectl
-
Для оптимальной работы протокола ICMP отключите функциональность
ICMP Redirects
на IPsec-шлюзе:sudo su -c "echo 'net.ipv4.conf.eth0.send_redirects=0' >> /etc/sysctl.conf" sudo su -c "echo 'net.ipv4.conf.default.send_redirects=0' >> /etc/sysctl.conf"
Подробнее об этом читайте в документации strongSwan
. -
Создайте резервную копию файла конфигурации
swanctl.conf
:sudo mv /etc/swanctl/swanctl.conf /etc/swanctl/swanctl.orig
-
Создайте конфигурацию для основного IPsec-шлюза в файле
/etc/swanctl/swanctl.conf
:sudo nano /etc/swanctl/swanctl.conf
В открывшемся файле укажите:
connections { cloud-ipsec { local_addrs = 172.16.0.10 remote_addrs = <x2.x2.x2.x2> local { auth = psk } remote { auth = psk } version = 2 # IKEv2 mobike = no proposals = aes128gcm16-prfsha256-ecp256, default dpd_delay = 10s children { cloud-ipsec { # List of local IPv4 subnets local_ts = 172.16.1.0/24, 172.16.2.0/24 # List of remote IPv4 subnets remote_ts = 10.10.0.0/16 start_action = trap esp_proposals = aes128gcm16 dpd_action = clear } } } } # Pre-shared key (PSK) for IPsec connection secrets { ike-cloud-ipsec { secret = <пароль_ipsec> } }
Где:
cloud-ipsec
— имя IPsec-соединения.remote_addrs
— публичный IP-адрес<x2.x2.x2.x2>
удаленного IPsec-шлюза.proposals
— Internet Key Exchange Version 2 (IKEv2) . Список шифров (ciphers), которые могут использоваться для шифрования канала управления IPsec-соединением.esp_proposals
— Encapsulating Security Payload . Список шифров (ciphers), которые могут использоваться для шифрования передаваемых данных.secret
— Pre-Shared Key . Ключ (пароль)<пароль_ipsec>
, который будет использоваться для установки IPsec-соединения.
Примечание
В файле конфигурации
swanctl.conf
вы можете указать дополнительные параметры в соответствии с документацией strongSwan .Например, для увеличения скорости передачи данных через IPsec-соединение используйте оптимизированные алгоритмы шифрования
в режиме IKEv2 . Поддержка этих алгоритмов должна быть реализована на платформе удаленного IPsec-шлюза, если это не strongSwan. -
Загрузите конфигурацию в strongSwan:
sudo swanctl --load-all
-
Перезапустите strongSwan:
sudo systemctl restart strongswan
-
Проверьте состояние strongSwan:
sudo swanctl -L
-
(Опционально) Посмотрите логи strongSwan:
sudo journalctl -u strongswan --no-pager sudo journalctl -u strongswan -n 20 sudo journalctl -u strongswan -f
-
Закройте соединение с
cloud-gw
:exit
Разверните тестовые ВМ на облачной площадке
-
Создайте тестовую ВМ
vm-d
со следующими параметрами:- Операционная система — Ubuntu 22.04 LTS.
- Зона доступности —
ru-central1-d
. - Подсеть —
subnet-d
. - Публичный адрес —
Без адреса
. - Внутренний IPv4-адрес —
172.16.1.5
. - Логин —
ipsec
. - SSH-ключ — публичный SSH-ключ для доступа к ВМ.
- Имя —
vm-d
.
-
Создайте тестовую ВМ
vm-b
со следующими параметрами:- Операционная система —
Ubuntu 22.04 LTS
. - Зона доступности —
ru-central1-b
. - Подсеть —
subnet-b
. - Публичный адрес —
Без адреса
. - Внутренний IPv4-адрес —
172.16.2.5
. - Логин —
ipsec
. - SSH-ключ — публичный SSH-ключ для доступа к ВМ.
- Имя —
vm-b
.
- Операционная система —
Настройте удаленную площадку
На этом этапе вы создадите и настроите инфраструктуру удаленной площадки условного корпоративного ЦОД. В нее войдут IPsec-шлюз, виртуальная машина, сеть и подсеть.
Создайте и настройте удаленную сеть
Создайте сеть и подсеть на удаленной площадке
-
Создайте сеть с именем
remote-net
. При создании сети отключите опцию Создать подсети. -
В сети
remote-net
вручную создайте подсеть для подключения удаленного IPsec-шлюзаremote-gw
и ВМvm-1
со следующими параметрами:- Имя —
subnet-1
. - Зона —
ru-central1-b
. - CIDR —
10.10.0.0/16
.
- Имя —
Создайте и настройте группу безопасности для удаленного IPsec-шлюза
-
В сети
remote-net
создайте группу безопасности с именемremote-net-sg
. -
В группе безопасности
remote-net-sg
создайте правила в соответствии с таблицей:Направление
трафикаОписание Диапазон портов Протокол Источник /
НазначениеCIDR блоки Исходящий any
Весь
Любой
CIDR
0.0.0.0/0
Входящий icmp
Весь
ICMP
CIDR
0.0.0.0/0
Входящий ssh
22
TCP
CIDR
0.0.0.0/0
Входящий ipsec-udp-500
500
UDP
CIDR
<x1.x1.x1.x1>/32
Входящий ipsec-udp-4500
4500
UDP
CIDR
<x1.x1.x1.x1>/32
Входящий subnet-1
Весь
Любой
CIDR
10.10.0.0/16
Настройте статическую маршрутизацию для удаленного IPsec-шлюза
-
В консоли управления
перейдите в каталог, в котором создана сетьremote-net
. -
Выберите сервис Virtual Private Cloud.
-
Выберите сеть
remote-net
. -
Перейдите на вкладку Таблицы маршрутизации и нажмите Создать.
-
В поле Имя укажите
remote-net-rt
. -
В блоке Статические маршруты нажмите Добавить маршрут.
- В открывшемся окне в поле Префикс назначения укажите
172.16.1.0/24
. - В поле IP-адрес укажите внутренний IP-адрес основного IPsec-шлюза —
10.10.20.20
. - Нажмите Добавить.
- В открывшемся окне в поле Префикс назначения укажите
-
Повторите предыдущий шаг, чтобы добавить второе правило с параметрами:
- Префикс назначения —
172.16.2.0/24
. - IP-адрес —
10.10.20.20
.
- Префикс назначения —
-
Нажмите Создать таблицу маршрутизации.
-
Привяжите таблицу маршрутизации
remote-net-rt
к подсетиsubnet-1
:- Перейдите на вкладку Обзор.
- В строке подсети
subnet-1
нажмите значок и выберите пункт Привязать таблицу маршрутизации. - В открывшемся окне выберите таблицу
remote-net-rt
и нажмите Привязать.
Создайте и настройте виртуальные машины на удаленной площадке
Создайте ВМ с удаленным IPsec-шлюзом
Создайте ВМ, которая будет выступать в роли удаленного IPsec-шлюза.
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберитеВиртуальная машина
. -
В блоке Образ загрузочного диска в поле Поиск продукта введите
IPSec-инстанс
и выберите публичный образ IPSec-инстанс. -
В блоке Расположение выберите зону доступности
ru-central1-b
— зону доступности, где находится подсеть, к которой будет подключен удаленный IPsec-шлюз. -
В блоке Сетевые настройки:
-
В поле Подсеть выберите
subnet-1
. -
В поле Публичный адрес выберите
Список
. -
В открывшемся поле IP-адрес выберите публичный IP-адрес
<x2.x2.x2.x2>
, который был зарезервирован ранее. -
В поле Группы безопасности выберите ранее созданную группу безопасности
remote-net-sg
. -
Разверните блок Дополнительно:
- В поле Внутренний IPv4 адрес выберите
Вручную
. - В появившемся поле для ввода укажите
10.10.20.20
.
- В поле Внутренний IPv4 адрес выберите
-
-
В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:
-
В поле Логин укажите
ipsec
. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации после создания ВМ с основным IPsec-шлюзом.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
- Нажмите кнопку Добавить ключ.
- Задайте имя SSH-ключа.
- Загрузите или вставьте содержимое созданного ранее публичного SSH-ключа для доступа к ВМ.
- Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации.
Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя создаваемой виртуальной машины.
-
-
В блоке Общая информация задайте имя ВМ:
remote-gw
. Требования к имени:- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Нажмите кнопку Создать ВМ.
Дождитесь, когда ВМ перейдет в статус Running
.
Настройте удаленный IPsec-шлюз
Для настройки шлюза используйте IP-адреса, имя пользователя и ключ SSH, которые вы указывали при создании ВМ remote-gw
.
-
Подключитесь к виртуальной машине по SSH:
ssh ipsec@<x2.x2.x2.x2>
-
Задайте параметры даты и времени для ВМ:
sudo timedatectl set-timezone Europe/Moscow sudo timedatectl set-ntp True timedatectl
-
Для оптимальной работы протокола ICMP отключите функциональность
ICMP Redirects
на IPsec-шлюзе:sudo su -c "echo 'net.ipv4.conf.eth0.send_redirects=0' >> /etc/sysctl.conf" sudo su -c "echo 'net.ipv4.conf.default.send_redirects=0' >> /etc/sysctl.conf"
Подробнее об этом читайте в документации strongSwan
. -
Создайте резервную копию файла конфигурации
swanctl.conf
:sudo mv /etc/swanctl/swanctl.conf /etc/swanctl/swanctl.orig
-
Создайте конфигурацию для удаленного IPsec-шлюза в файле
/etc/swanctl/swanctl.conf
:sudo nano /etc/swanctl/swanctl.conf
В открывшемся файле укажите:
connections { cloud-ipsec { local_addrs = 10.10.20.20 remote_addrs = <x1.x1.x1.x1> local { auth = psk } remote { auth = psk } version = 2 # IKEv2 mobike = no proposals = aes128gcm16-prfsha256-ecp256, default dpd_delay = 10s children { cloud-ipsec { # List of local IPv4 subnets local_ts = 10.10.0.0/16 # List of remote IPv4 subnets remote_ts = 172.16.1.0/24, 172.16.2.0/24 start_action = trap esp_proposals = aes128gcm16 dpd_action = clear } } } } # Pre-shared key (PSK) for IPsec connection secrets { ike-cloud-ipsec { secret = <пароль_ipsec> } }
Где:
cloud-ipsec
— имя IPsec-соединения.remote_addrs
— публичный IP-адрес<x1.x1.x1.x1>
основного IPsec-шлюза.proposals
— Internet Key Exchange Version 2 (IKEv2) . Список шифров (ciphers), которые могут использоваться для шифрования канала управления IPsec-соединением.esp_proposals
— Encapsulating Security Payload . Список шифров (ciphers), которые могут использоваться для шифрования передаваемых данных.secret
— Pre-Shared Key . Ключ (пароль)<пароль_ipsec>
, который будет использоваться для установки IPsec-соединения.
Примечание
В файле конфигурации
swanctl.conf
вы можете указать дополнительные параметры в соответствии с документацией strongSwan .Например, для увеличения скорости передачи данных через IPsec-соединение используйте оптимизированные алгоритмы шифрования
в режиме IKEv2 . Поддержка этих алгоритмов должна быть реализована на платформе удаленного IPsec-шлюза, если это не strongSwan. -
Загрузите конфигурацию в strongSwan:
sudo swanctl --load-all
-
Перезапустите strongSwan:
sudo systemctl restart strongswan
-
Проверьте состояние strongSwan:
sudo swanctl -L
-
(Опционально) Посмотрите логи strongSwan:
sudo journalctl -u strongswan --no-pager sudo journalctl -u strongswan -n 20 sudo journalctl -u strongswan -f
-
Закройте соединение с
remote-gw
:exit
Разверните тестовую ВМ на удаленной площадке
Создайте тестовую ВМ со следующими параметрами:
- Операционная система —
Ubuntu 22.04 LTS
. - Зона доступности —
ru-central1-b
. - Подсеть —
subnet-1
. - Публичный адрес —
Без адреса
. - Внутренний IPv4-адрес —
10.10.10.10
. - Логин —
ipsec
. - SSH-ключ — публичный SSH-ключ для доступа к ВМ.
- Имя —
vm-1
.
Проверьте работу IPsec-соединения и связность между удаленными и облачными ресурсами
Установите IPsec-соединение между шлюзами и проверьте его работу
IPsec-шлюзы на основной и удаленной площадках настроены на установление IPsec-соединения между собой при получении любым из них трафика, предназначенного для подсети на другой стороне IPsec-соединения (за другим шлюзом).
Примечание
На создание туннеля между шлюзами может потребоваться время. Если при активации IPsec-соединения команда ping
не выдает нужного результата, подождите несколько минут, затем попробуйте выполнить команду снова.
Для активации IPsec-соединения между шлюзами:
-
Отправьте несколько пакетов ICMP со стороны удаленной площадки, например, от ВМ
vm-1
к ВМvm-d
с помощью командыping
:ssh -J ipsec@<x2.x2.x2.x2> ipsec@10.10.10.10 ping -c4 172.16.1.5
Результат:
PING 172.16.1.5 (172.16.1.5) 56(84) bytes of data. 64 bytes from 172.16.1.5: icmp_seq=1 ttl=58 time=4.92 ms 64 bytes from 172.16.1.5: icmp_seq=2 ttl=58 time=4.33 ms 64 bytes from 172.16.1.5: icmp_seq=3 ttl=58 time=4.31 ms 64 bytes from 172.16.1.5: icmp_seq=4 ttl=58 time=4.38 ms --- 172.16.1.5 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 4.306/4.483/4.916/0.251 ms
-
Активируйте IPsec-соединение со стороны облачной площадки — отправьте пакеты ICMP от ВМ
vm-b
к ВМvm-1
:ssh -J ipsec@<x1.x1.x1.x1> ipsec@172.16.2.5 ping -c4 10.10.10.10
Результат:
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data. 64 bytes from 10.10.10.10: icmp_seq=1 ttl=58 time=4.92 ms 64 bytes from 10.10.10.10: icmp_seq=2 ttl=58 time=4.33 ms 64 bytes from 10.10.10.10: icmp_seq=3 ttl=58 time=4.31 ms 64 bytes from 10.10.10.10: icmp_seq=4 ttl=58 time=4.38 ms --- 10.10.10.10 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 4.306/4.483/4.916/0.251 ms
Проверьте связность между ВМ
-
Подключитесь к основному IPsec-шлюзу
cloud-gw
:ssh ipsec@<x1.x1.x1.x1>
-
Проверьте состояние strongSwan:
sudo swanctl -L
Результат:
cloud-to-remote-site: IKEv1/2, reauthentication every 3060s, no rekeying, dpd delay 30s local: %any remote: <x2.x2.x2.x2> local pre-shared key authentication: id: <x1.x1.x1.x1> remote pre-shared key authentication: id: <x2.x2.x2.x2> cloud-to-remote-site: TUNNEL, rekeying every 28260s, dpd action is restart local: 172.16.1.0/24 remote: 10.10.0.0/16 cloud-ipsec: IKEv2, no reauthentication, rekeying every 14400s, dpd delay 10s local: 172.16.0.10 remote: <x2.x2.x2.x2> local pre-shared key authentication: remote pre-shared key authentication: cloud-ipsec: TUNNEL, rekeying every 3600s, dpd action is clear local: 172.16.1.0/24 172.16.2.0/24 remote: 10.10.0.0/16
-
Проверьте активные IPsec-соединения:
sudo swanctl -l
Результат:
cloud-ipsec: #6, ESTABLISHED, IKEv2, 80e6fa659b4f6307_i* 9f63a85191df1e48_r local '172.16.0.10' @ 172.16.0.10[4500] remote '10.10.20.20' @ <x2.x2.x2.x2>[4500] AES_GCM_16-128/PRF_HMAC_SHA2_256/ECP_256 established 9716s ago, rekeying in 4107s cloud-ipsec: #19, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_GCM_16-128 installed 682s ago, rekeying in 2735s, expires in 3278s in cf9668bb, 0 bytes, 0 packets out c3a00b2c, 0 bytes, 0 packets local 172.16.1.0/24 172.16.2.0/24 remote 10.10.0.0/16
Состояние соединения
ESTABLISHED
означает, что IPsec-соединение установилось и работает. -
Закройте соединение с
cloud-gw
:exit
-
-
Подключитесь к удаленному IPsec-шлюзу
remote-gw
:ssh ipsec@<x2.x2.x2.x2>
-
Проверьте состояние strongSwan:
sudo swanctl -L
Результат:
remote-site-to-cloud: IKEv1/2, reauthentication every 3060s, no rekeying, dpd delay 30s local: %any remote: <x1.x1.x1.x1> local pre-shared key authentication: id: <x2.x2.x2.x2> remote pre-shared key authentication: id: <x1.x1.x1.x1> remote-site-to-cloud: TUNNEL, rekeying every 28260s, dpd action is restart local: 10.10.0.0/16 remote: 172.16.1.0/24 cloud-ipsec: IKEv2, no reauthentication, rekeying every 14400s, dpd delay 10s local: 10.10.20.20 remote: <x1.x1.x1.x1> local pre-shared key authentication: remote pre-shared key authentication: cloud-ipsec: TUNNEL, rekeying every 3600s, dpd action is clear local: 10.10.0.0/16 remote: 172.16.1.0/24 172.16.2.0/24
-
Проверьте активные IPsec-соединения:
sudo swanctl -l
Результат:
cloud-ipsec: #6, ESTABLISHED, IKEv2, 80e6fa659b4f6307_i 9f63a85191df1e48_r* local '10.10.20.20' @ 10.10.20.20[4500] remote '172.16.0.10' @ <x1.x1.x1.x1>[4500] AES_GCM_16-128/PRF_HMAC_SHA2_256/ECP_256 established 9833s ago, rekeying in 3346s cloud-ipsec: #19, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_GCM_16-128 installed 799s ago, rekeying in 2620s, expires in 3161s in c3a00b2c, 0 bytes, 0 packets out cf9668bb, 0 bytes, 0 packets local 10.10.0.0/16 remote 172.16.1.0/24 172.16.2.0/24
Состояние соединения
ESTABLISHED
означает, что IPsec-соединение установилось и работает. -
Закройте соединение с
remote-gw
:exit
-
-
Подключитесь к ВМ
vm-d
:ssh -J ipsec@<x1.x1.x1.x1> ipsec@172.16.1.5
-
Задайте параметры даты и времени для ВМ:
sudo timedatectl set-timezone Europe/Moscow sudo timedatectl set-ntp True timedatectl
-
Проверьте IP-связность между
vm-d
иvm-1
:ping -c4 10.10.10.10
Результат:
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data. 64 bytes from 10.10.10.10: icmp_seq=1 ttl=58 time=4.92 ms 64 bytes from 10.10.10.10: icmp_seq=2 ttl=58 time=4.33 ms 64 bytes from 10.10.10.10: icmp_seq=3 ttl=58 time=4.31 ms 64 bytes from 10.10.10.10: icmp_seq=4 ttl=58 time=4.38 ms --- 10.10.10.10 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 4.306/4.483/4.916/0.251 ms
-
Закройте соединение с
vm-d
:exit
-
-
Подключитесь к ВМ
vm-b
:ssh -J ipsec@<x1.x1.x1.x1> ipsec@172.16.2.5
-
Задайте параметры даты и времени для ВМ:
sudo timedatectl set-timezone Europe/Moscow sudo timedatectl set-ntp True timedatectl
-
Проверьте IP-связность между
vm-b
иvm-1
:ping -c4 10.10.10.10
Результат:
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data. 64 bytes from 10.10.10.10: icmp_seq=1 ttl=58 time=4.92 ms 64 bytes from 10.10.10.10: icmp_seq=2 ttl=58 time=4.33 ms 64 bytes from 10.10.10.10: icmp_seq=3 ttl=58 time=4.31 ms 64 bytes from 10.10.10.10: icmp_seq=4 ttl=58 time=4.38 ms --- 10.10.10.10 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 4.306/4.483/4.916/0.251 ms
-
Закройте соединение с
vm-b
:exit
-
-
Подключитесь к ВМ
vm-1
:ssh -J ipsec@<x2.x2.x2.x2> ipsec@10.10.10.10
-
Задайте параметры даты и времени для ВМ:
sudo timedatectl set-timezone Europe/Moscow sudo timedatectl set-ntp True timedatectl
-
Проверьте IP-связность между
vm-1
иvm-d
:ping -c4 172.16.1.5
Результат:
PING 172.16.1.5 (172.16.1.5) 56(84) bytes of data. 64 bytes from 172.16.1.5: icmp_seq=1 ttl=58 time=4.92 ms 64 bytes from 172.16.1.5: icmp_seq=2 ttl=58 time=4.33 ms 64 bytes from 172.16.1.5: icmp_seq=3 ttl=58 time=4.31 ms 64 bytes from 172.16.1.5: icmp_seq=4 ttl=58 time=4.38 ms --- 172.16.1.5 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 4.306/4.483/4.916/0.251 ms
-
Проверьте IP-связность между
vm-1
иvm-b
:ping -c4 172.16.2.5
Результат:
PING 172.16.2.5 (172.16.2.5) 56(84) bytes of data. 64 bytes from 172.16.2.5: icmp_seq=1 ttl=58 time=4.92 ms 64 bytes from 172.16.2.5: icmp_seq=2 ttl=58 time=4.33 ms 64 bytes from 172.16.2.5: icmp_seq=3 ttl=58 time=4.31 ms 64 bytes from 172.16.2.5: icmp_seq=4 ttl=58 time=4.38 ms --- 172.16.2.5 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 4.306/4.483/4.916/0.251 ms
-
Закройте соединение с
vm-1
:exit
-
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы: