Построение L2 и L3 VPN туннелей между двумя «С-Терра Шлюз DP»
Настоящий документ содержит описание способа совместного использования Продуктов компании ООО «С-Терра СиЭсПи» и Продуктов третьих производителей.
ООО «С-Терра СиЭсПи» осуществляет сопровождение настоящего сценария в части настроек Продуктов Компании. Упоминание наименований, продуктов, торговых марок третьих организаций исключительно неформально и не является поддержкой, рекомендацией либо рекламой. ООО «С-Терра СиЭсПи» не несет какой-либо ответственности в отношении работоспособности и использования этих Продуктов. Документ имеет статус вспомогательного материала, который может быть использован технологическими партнерами, компаниями-интеграторами, при разработке собственных решений.
Решения, разработанные на базе данного сценария, могут применяться в действующих сетях/системах только после тестовой и/или опытной эксплуатации.
Данный сценарий описывает настройки «С-Терра Шлюз DP» для обеспечения защищенной связности между центральным офисом и филиалом на втором уровне модели OSI (L2 VPN) - для защиты пользовательского трафика, и на третьем уровне модели OSI (L3 VPN) - для защиты канала управления между «С-Терра Шлюз DP».
Все остальные соединения на третьем уровне модели OSI от/на «С-Терра Шлюз DP» разрешены, но защищаться при помощи IPsec не будут.
Обеспечение безопасного взаимодействия достигается путем шифрования и туннелирования трафика с применением отечественных отраслевых стандартов ГОСТ и протокола IPsec.
В рамках данного сценария для аутентификации партнеры будут использовать сертификаты. В качестве криптопровайдера будет использована криптографическая библиотека, разработанная компанией «С-Терра СиЭсПи». Шлюзы безопасности (или криптошлюзы) - «С-Терра Шлюз DP» версии 4.3.
Для переноса запросов и сертификатов между криптошлюзами и центром выпуска сертификатов требуется USB Flash накопитель.
Требования к квалификации администратора
Администратор должен обладать обширными знаниями в области сетевой информационной безопасности, иметь опыт работы с аналогичным оборудованием/программным обеспечением, знать и понимать следующие технологии и протоколы: PKI, IPsec, NAT, Firewall, routing, switching.
Также администратор должен иметь опыт развертывания базового сценария, который описан в документе «Построение L2 VPN туннеля между двумя «С-Терра Шлюз DP».
1. Требования к устройствам.
1.1. «С-Терра Шлюз DP».
1.1.1 Устройства «С-Терра Шлюз DP» должны быть в заводском состоянии.
1.2. Центр выпуска сертификатов.
1.2.1 Должен быть настроен центр выпуска сертификатов (удостоверяющий центр, далее УЦ) для IPsec. Устройство с именем Certification-authority на схеме.
1.2.2 Для выпуска цифровых сертификатов допускается использование встроенного в OC Windows Server 2008R2 (или новее) удостоверяющего центра совместно с сертифицированным СКЗИ «КриптоПро» CSP 4.0 (или новее).
1.2.3 Для тестовых целей можно использовать тестовый УЦ от «КриптоПро» (веб-интерфейс: https://www.cryptopro.ru/certsrv/certrqxt.asp).
Категорически запрещено использование тестового УЦ от «КриптоПро» в производственной (боевой) эксплуатации, так как в данном случае отсутствует возможность контролировать процесс выпуска сертификатов и, соответственно, процедуру аутентификации.
1.3. HTTP сервер для распространения списка отозванных сертификатов.
1.3.1 Функционирующий HTTP сервер для распространения списка отозванных сертификатов (СОС). Устройство с именем CRL-distribution-point на схеме. Если по объективным причинам использование СОС не представляется возможным или не требуется, то проверку СОС можно отключить в CLI.
Доставка нового списка отозванных сертификатов с удостоверяющего центра на HTTP сервер должна происходить заблаговременно, до истечения срока действия предыдущего списка.
2. Требования к сетевому взаимодействию.
2.1. Между криптошлюзами должна быть обеспечена IP связность.
Рисунок 1. Схема взаимодействия
1. Размещение устройств.
1.1. В центральном офисе размещаются: центр выпуска сертификатов (Certification-authority), криптошлюз «С-Терра Шлюз DP» (Hub1), управляемый коммутатор (Int-switch1-Hub1) и персональные компьютеры (host0-behind-hub1 и host1-behind-hub1).
1.2. В филиале размещаются: криптошлюз «С-Терра Шлюз DP» (Spoke1), управляемый коммутатор (Int-switch1-Spoke1) и персональные компьютеры (host0-behind-spoke1 и host1-behind-spoke1).
1.3. В неконтролируемом сегменте (синее облако на схеме) размещаются: HTTP сервер для распространения списка отозванных сертификатов (CRL-distribution-point), маршрутизатор (Router1).
2. Подключение к сети Интернет.
2.В данном сценарии для эмуляции сети Интернет используются маршрутизатор Router1.
Подключение к сети Интернет на устройствах «С-Терра Шлюз DP» будет считаться успешным, если по протоколу ICMP (или «ping») будет доступен HTTP сервер для распространения списка отозванных сертификатов (устройство CRL-distribution-point на схеме).
2.1. Криптошлюз Hub1 подключается к сети Интернет с помощью статической маршрутизации (маршрут по умолчанию через маршрутизатор Router1).
2.2. Криптошлюз Spoke1 подключается к сети Интернет с помощью статической маршрутизации (маршрут по умолчанию через маршрутизатор Router1).
3. L2 VPN.
L2 VPN применяется для высокопроизводительной защиты пользовательского трафика. Для захвата пакетов используется выделенный сетевой интерфейс в сегменте LAN, в данном сценарии это интерфейс vEthernet1 (vEth1).
4. L3 VPN.
Производительность L3 VPN на «С-Терра Шлюз DP» в силу архитектуры Продукта является очень низкой по сравнения с L2 VPN и составляет порядка 100 Mbit/s. Поэтому L3 VPN используется только для управления.
L3 VPN применяется для защиты трафика управления. Для управления используется выделенный сетевой интерфейс в сегменте LAN, в данном сценарии это интерфейс eth2. Интерфейс управления не добавляется в cisco-like консоль. Управления данным интерфейсом осуществляется средствами ОС.
Интерфейсы для управления и защиты пользовательского трафика не могут быть совмещены в одном.
Для L2 VPN и L3 VPN используются разные IPsec туннели, поэтому трафик управления и пользовательский не смешиваются друг с другом.
L3 VPN на «С-Терра Шлюз DP» совместим с «С-Терра Шлюз», «С-Терра Клиент», «С-Терра Юнит».
5. Параметры безопасного взаимодействия.
Весь трафик (на втором уровне модели OSI) подсети 192.168.100.0/24, который передается между центром и филиалом, а также трафик управления (на третьем уровне модели OSI) между подсетями 192.168.253.0/24 и 192.168.254.0/24 защищается с использованием алгоритмов ГОСТ и протокола IPsec в туннельном режиме.
Инициировать защищенное соединение может как трафик из филиала в центр, так и наоборот, из центра в филиал.
5.1. Параметры протокола IKE:
· Аутентификация при помощи цифровых сертификатов, алгоритм подписи - ГОСТ Р 34.10-2012 (ключ 256 бит);
· Алгоритм шифрования - ГОСТ 28147-89 (ключ 256 бит);
· Алгоритм вычисления хеш-функции - ГОСТ Р 34.11-2012 ТК26 (ключ 256 бит);
· Алгоритм выработки общего ключа (аналог алгоритма Диффи-Хеллмана) - VKO_GOSTR3410_2012_256 (ключ 256 бит).
5.2. Параметры протокола ESP для L2 VPN:
· Комбинированный алгоритм шифрования и имитозащиты (контроль целостности) - ГОСТ Р 34.12-2015 "Кузнечик" (ключ 256 бит).
5.3. Параметры протокола ESP для L3 VPN:
· Комбинированный алгоритм шифрования и имитозащиты (контроль целостности) - ESP_GOST-4M-IMIT (ключ 256 бит).
1. Настройте IP адрес - 172.16.1.1 и маску - 255.255.255.0 на сетевом интерфейсе ens192.
2. Настройте IP адрес - 172.16.100.1 и маску - 255.255.255.0 на сетевом интерфейсе ens224.
3. Разрешите прохождение IP трафика.
1. Интерфейс gi0/0 должен быть в trunk режиме. Должно быть разрешено прохождения фреймов с нужным VLAN ID.
2. Интерфейсы для L2 VPN (gi0/0, gi0/1) и для L3 VPN (gi0/2, gi0/3) должны быть в разных VLAN сегментах.
3. Интерфейсы gi0/1, gi0/2, gi0/3 должны быть в access режиме.
1. Интерфейс gi0/0 должен быть в trunk режиме. Должно быть разрешено прохождения фреймов с нужным VLAN ID.
2. Интерфейсы для L2 VPN (gi0/0, gi0/1) и для L3 VPN (gi0/2, gi0/3) должны быть в разных VLAN сегментах.
3. Интерфейсы gi0/1, gi0/2, gi0/3 должны быть в access режиме.
1. Настройте IP адрес - 192.168.100.100 и маску - 255.255.255.0 на сетевом интерфейсе.
2. Разрешите прохождение IP трафика.
1. Настройте IP адрес - 192.168.253.100 и маску - 255.255.255.0 на сетевом интерфейсе.
2. Задайте маршрут по умолчанию через 192.168.253.1.
3. Разрешите прохождение IP трафика.
1. Настройте IP адрес - 192.168.100.101 и маску - 255.255.255.0 на сетевом интерфейсе.
2. Разрешите прохождение IP трафика.
1. Настройте IP адрес - 192.168.254.100 и маску - 255.255.255.0 на сетевом интерфейсе.
2. Задайте маршрут по умолчанию через 192.168.254.1.
3. Разрешите прохождение IP трафика.
Настройка будет происходить локально при помощи консольного подключения.
Настройка может осуществляться и удаленно (по SSH), но исключительно по доверенному каналу связи. Доверенным каналом связи может считаться канал в пределах контролируемой зоны в случае отсутствия в нем нарушителя (в нашем примере это подсети 192.168.253.0/24, 192.168.254.0/24, 192.168.100.0/24, но управление из подсети 192.168.100.0/24 не может быть осуществлено). Доверенным каналом связи также считается канал, защищенный при помощи протокола IPsec.
Дата и время на всех криптошлюзах и УЦ должны быть одинаковы, так как для аутентификации используются цифровые сертификаты, в которых зафиксированы дата и время начала их действия и окончания. Также одинаковые дата и время на всей инфраструктуре облегчают поиск неисправностей по лог-файлам.
1. Войдите в CLI разграничения доступа. Для этого, после появления сообщения:
S-Terra administrative console
введите логин и пароль для CLI разграничения доступа:
Пользователь и пароль по умолчанию: administrator, s-terra. Обязательно смените пароль для пользователя administrator при помощи команды change user password.
login as: administrator
administrator's password:
############################################################
System is not initialized. Please run "initialize" command to start initializat
ion procedure.
############################################################
administrator@sterragate]
2. Установите правильный тип терминала (для putty тип терминала xterm) и требуемую ширину (для удобства работы), например:
administrator@sterragate] terminal terminal-type xterm
administrator@sterragate] terminal width 150
3. Установите нужную временную зону и правильные дату и время на криптошлюзе, используя консоль linux bash. Для этого выполните следующие команды.
3.1. Войдите в linux bash.
administrator@sterragate] system
...
Entering system shell...
3.2. Установите нужную временную зону:
root@sterragate:~# dpkg-reconfigure tzdata
3.3. Проверьте при помощи команды date дату и время и если они неправильные то, установите верные значения (формат - месяц/день/год часы:минуты):
root@sterragate:~# date -s "07/04/2019 12:32"
Thu Jul 4 12:32:00 MSK 2019
4. Установите надежный пароль для пользователя root (под данным пользователем осуществляется доступ по SSH в linux bash):
root@sterragate:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
5. Выйдите из linux bash обратно в CLI разграничения доступа:
root@sterragate:~# exit
logout
Leaving system shell...
administrator@sterragate]
6. Запустите процедуру инициализации, в процессе которой будет запущен мастер начальных настроек L2 (data plane):
administrator@sterragate] initialize
6.1. Пройдите инициализацию биологического ДСЧ, нажимая предлагаемые клавиши:
Progress: [******** ]
Press key: i
6.2. Введите лицензию на Продукт GATEDP:
You have to enter license for S-Terra Gate DP
Available product codes:
GATE
GATEDP
MVPN
Enter product code: GATEDP
Enter customer code: Customer
Enter license number: 1XX
Enter license code: 43XXX-XXXXX- XXXXX - XXXXX - XXXXX
Your license:
CustomerCode = Customer
ProductCode = GATEDP
LicenseNumber= 1XX
LicenseCode = 43XXX-XXXXX- XXXXX - XXXXX - XXXXX
Is the above data correct? Yes
Active license:
CustomerCode= Customer
ProductCode=GATEDP
LicenseNumber=1XX
LicenseCode=43XXX-XXXXX- XXXXX - XXXXX - XXXXX
6.3. Нажмите Enter, после чего запустится мастер начальных настроек L2 (data plane). Данный мастер изменяет файл /opt/VPNagent/etc/ipsm_dpdk.cfg, который используется сервисом ipsmapp:
Configuring IPSM:
This script will stop ipsmapp daemon and create new ipsm_dpdk.cfg. All ipsmapp settings will be reset. Do you want to continue? [Yes]
Restoring interfaces settings
6.3.1 Укажите количество портов (количество физических LAN и WAN интерфейсов для L2, Mgmt интерфейсы не учитываются):
Enter amount of ports (2-2) [2] : 2
6.3.2 Нажмите Enter на просьбу ввести количество потоков, чтобы было использовано значение по умолчанию (количество потоков соответствует количеству DP<N> интерфейсов):
Не изменяйте значение потоков по умолчанию без осознанной необходимости.
threads (1-36) [36] :
6.3.3 Выберите из предложенного списка PCI адрес для WAN порта. PORT0 - WAN интерфейс.
Port# pci_id Configured
- 03:00.0
- 0b:00.0
- 13:00.0
Данный список сформирован из всех физических сетевых интерфейсов, которые есть в криптошлюзе. В каждом конкретном случае PCI адреса могут отличаться.
Configuring PORT0
Enter pci_id for WAN interface : 03:00.0
6.3.4 Укажите IP адрес для WAN интерфейса (в данном сценарии - 172.16.100.2). Данный IP адрес будет назначен на интерфейс vEthernet0:
Enter IP-address for WAN interface (l3_ip) : 172.16.100.2
6.3.5 Укажите маску для IP адреса WAN интерфейса (в данном сценарии - 24):
Enter netmask for WAN interface (l3_mask) (0-32) [24] : 24
6.3.6 Укажите адрес шлюза по умолчанию для транзитного L2 (data plane) зашифрованного трафика (в данном сценарии - 172.16.100.1):
Enter default gateway IP-address (gw_ip) : 172.16.100.1
6.3.7 Нажмите Enter, если все параметры введены верно:
Is the above data correct? [Yes]
6.3.8 Выберите из вновь предложенного списка PCI адрес для LAN порта. PORT1 - LAN интерфейс:
Port# pci_id Configured
PORT0 03:00.0 *
- 0b:00.0
- 13:00.0
Из списка выше видно, что WAN порт уже сконфигурирован (символ * в столбце Configured):
Configuring PORT1
Enter pci_id to pair with 03:00.0 : 0b:00.0
6.3.9 Укажите IP адрес источника для EtherIP туннеля (в данном сценарии - 172.16.100.2):
Данный адрес может не присутствовать в системе и быть любым, но должен совпадать с l2_dst_ip на криптошлюзе, с которым будет настраиваться L2 VPN. В данном сценарии - это Spoke1.
Enter source IP-address for l2-tunnel (l2_src_ip) : 172.16.100.2
6.3.10 Укажите IP адрес назначения для EtherIP туннеля (в данном сценарии - 172.16.1.2):
Данный адрес должен совпадать с l2_src_ip на криптошлюзе, с которым будет настраиваться L2 VPN. В данном сценарии - это Spoke1.
Enter destination IP-address for l2-tunnel (l2_dst_ip) : 172.16.1.2
6.3.11 Задайте MTU для WAN и LAN интерфейсов (в данном сценарии - 9000):
Если есть возможность, то всегда указывайте MTU на WAN интерфейсе минимум на 100 (сто) байт больше, чем максимальный MTU на защищаемых устройствах, чтобы избежать фрагментации и увеличить производительность. В этом случае MTU на LAN интерфейсе указывайте как максимальный MTU на защищаемых устройствах. Например, если MTU на защищаемых устройствах 9000, то MTU для WAN - 9100, MTU для LAN - 9000. Проверить наличие или отсутствие фрагментации можно при помощи утилиты kstat_show (параметр «frag ok»).
Enter MTU for WAN interface (68-9700) [9700] : 9000
Enter MTU for LAN interface (68-9700) [9600] : 9000
6.3.12 Нажмите Enter, если все параметры введены верно:
Is the above data correct? [Yes]
6.3.13 Дождитесь окончания процедуры инициализации и мастера настроек:
Please wait...
INFO: Non-DP interface (pci_id: 0000:13:00.0) name eth2 is now persistent
INFO: Non-DP interface (pci_id: 0000:1b:00.0) name eth3 is now persistent
Port# pci_id Configured
PORT0 03:00.0 *
PORT1 0b:00.0 *
- 13:00.0
- 1b:00.0
OK
Initialization completed.
Some settings will take effect after OS reboot only.
Network traffic is blocked.
To unblock network traffic, please setup the network security policy
or use "run csconf_mgr activate" command to activate the predefined
permissive network security policy now.
6.3.14 Включите прохождение сетевого трафика, загрузив предопределенную разрешающую политику:
administrator@sterragate] run csconf_mgr activate
Начальные настройки завершены.
Если вы хотите заново запустить мастер начальных настроек L2 (data plane), то выполните:
administrator@sterragate] run /opt/VPNagent/bin/configure_dp.sh
В данном разделе будут описаны:
· настройка фрагментации;
· настройка механизма Path MTU Discovery;
· настройка механизма изменения MSS в TCP пакетах.
1. Перейдите в linux bash:
administrator@Hub1] system
Entering system shell...
root@sterragate:~#
2. Уменьшите время сборки фрагментированных пакетов:
root@sterragate:~# drv_mgr set frag_reassemble_timeout 2
Value of "frag_reassemble_timeout" is set to 2.
3. Дальнейшие настройки осуществляются через файл /opt/VPNagent/etc/ipsm_dpdk.cfg:
root@sterragate:~# vim.tiny /opt/VPNagent/etc/ipsm_dpdk.cfg
3.1. Включите фрагментацию. Для этого на WAN порту (PORT0) раскомментируйте (символ комментария - «;») параметр dp_frag_ip и в качестве значения укажите IP адрес WAN интерфейса криптошлюза, с которым будет настраиваться L2 VPN (в данном сценарии - это IP адрес 172.16.1.2 криптошлюза Spoke1). Также раскомментируйте параметр dp_frag_natt и задайте значение yes:
[PORT0]
pci_id = 03:00.0
outer = yes
l3_ip = 172.16.100.2
l3_mask = 24
gw_ip = 172.16.100.1
pair_port = 1
mtu = 9000
...
dp_frag_ip = 172.16.1.2
dp_frag_natt = yes
...
3.2. Включите механизмы Path MTU Discovery и изменение MSS в TCP пакетах на LAN порту (PORT1). Для этого на LAN порту (PORT1) раскомментируйте параметры pmtud, mssfix и выставите им значения: для pmtud - «значение MTU порта - 100» (в данном сценарии - это значение 8900), для mssfix - «значение MTU порта - 140» (в данном сценарии - это значение 8860):
[PORT1]
pci_id = 0b:00.0
l2_src_ip = 172.16.100.2
l2_dst_ip = 172.16.1.2
pair_port = 0
mtu = 9000
...
pmtud = 8900
mssfix = 8860
...
3.3. Для применения настроек перезапустите сервис ipsmapp:
root@sterragate:~# systemctl restart ipsmapp.service
4. Выйдите из linux bash:
root@sterragate:~# exit
logout
Leaving system shell...
Настройка L2 (data plane) завершена.
Продукт не поддерживает разностные (delta) списки отзыва сертификатов, только базовые. Учитывайте это при выборе или развертывании УЦ.
Для аутентификации партнеров по IPsec можно использовать только цифровые сертификаты, выпущенные при помощи сертифицированного СКЗИ.
Аутентификация по предопределенным ключам запрещена и возможна только в тестовых целях.
Закрытый ключ для сертификата криптошлюза будет сгенерирован при помощи утилиты cert_mgr с использованием биологического датчика случайных чисел (БИО ДСЧ). Если на криптошлюзе установлен аппаратный датчик случайных чисел, то для выработки случайных чисел по умолчанию будет использоваться аппаратный датчик. Закрытый ключ может храниться либо на файловой системе устройства, либо на защищенном ключевом носителе (токен). В данном сценарии закрытый ключ будет располагаться в специальном контейнере на файловой системе устройства. Если требуется, чтобы контейнер располагался на токене, то смотрите описание параметра create утилиты cert_mgr на портале документации http://doc.s-terra.ru.
В момент генерации ключевой пары будет также сгенерирован запрос на локальный сертификат криптошлюза. Данный запрос для его последующей доставки на УЦ будет сохранен на USB Flash накопитель.
Настройка осуществляется в CLI разграничения доступа.
При выполнении сторонних команд в CLI разграничения доступа/консоли cisco-like перед командой нужно указывать ключевое слово run. Автодополнение для команд, указываемых после run не поддерживается.
1. Генерация закрытого ключа и запроса на сертификат криптошлюза.
1.1. Вставьте USB Flash накопитель в свободный USB порт криптошлюза (накопитель будет автоматически примонтирован).
1.2. Определите имя (идентификатор) USB Flash накопителя на криптошлюзе:
administrator@sterragate] dir media:
1 dr-x 4096 Thu Jul 4 10:40:32 2019 1482-7CB1
Имя (идентификатор) USB Flash накопителя - 1482-7CB1.
1.3. Запустите процесс генерации закрытого ключа и запроса на сертификат криптошлюза с сохранением файла запроса на USB Flash накопителе (закрытый ключ остается на криптошлюзе):
administrator@sterragate] run cert_mgr create -subj "C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1" -GOST_R341012_256 -fb64 media:1482-7CB1/hub1.request
· ключ -subj задает отличительное имя сертификата (Distinguished Name, DN);
Отличительное имя сертификата должно быть уникальным для каждого устройства.
· ключ -GOST_R341012_256 задает использование алгоритма подписи - ГОСТ Р 34.10-2012 (ключ 256 бит).
На УЦ для поддержки алгоритма ГОСТ Р 34.10-2012 (ключ 256 бит) должно быть установлено СКЗИ «КриптоПро CSP» версии 4.0 или новее.
· ключ -fb64 задает месторасположение и формат представления запроса на сертификат; будет использован формат представления BASE64 с сохранением файла запроса в корень USB Flash накопителя под именем hub1.request.
Нажимайте предлагаемые клавиши на клавиатуре для инициализации БИО ДСЧ:
Progress: [********* ]
Press key: U
После завершения работы БИО ДСЧ файл запроса будет сохранен в корне USB Flash накопителя:
administrator@sterragate] dir media:1482-7CB1/
1 -rwx 473 Thu Jul 4 10:40:32 2019 hub1.request
Настоятельно рекомендуется сохранить контейнер закрытого ключа при помощи утилиты cont_mgr. Контейнер может понадобиться в случае восстановления криптошлюза при отказе HDD/SSD диска. Носитель с файлом контейнера нужно хранить в защищенном и недоступном для третьих лиц месте.
1.4. Отмонтируйте и извлеките USB Flash накопитель (посмотреть точки монтирования можно при помощи команды run mount):
administrator@sterragate] run umount /media/1482-7CB1
2. Выпуск сертификата криптошлюза на УЦ и импортирование сертификатов УЦ и криптошлюза в базу Продукта.
2.1. Доставьте файл запроса на УЦ и выпустите по нему сертификат криптошлюза.
2.2. Скопируйте выпущенный сертификат для криптошлюза под именем hub1.cer и сертификат УЦ под именем ca.cer в корень USB Flash накопителя.
2.3. Вновь вставьте USB Flash накопитель, содержащий файлы сертификатов, в свободный порт USB на криптошлюзе.
2.4. Убедитесь в наличии сертификатов на USB Flash накопителе:
administrator@sterragate] dir media:1482-7CB1/
1 -rwx 592 Thu Jul 4 10:40:32 2019 ca.cer
2 -rwx 804 Thu Jul 4 10:40:32 2019 hub1.cer
3 -rwx 473 Thu Jul 4 10:40:32 2019 hub1.request
Сохраняйте сертификаты. Они могу понадобиться в случае восстановления криптошлюза при отказе HDD/SSD диска.
2.5. Импортируйте сертификат УЦ в базу Продукта:
administrator@sterragate] run cert_mgr import -f media:1482-7CB1/ca.cer -t
· ключ -f задает месторасположение файла сертификата;
· ключ -t используется для импортирования доверенного (trusted) сертификата УЦ.
2.6. Импортируйте сертификат криптошлюза в базу Продукта:
administrator@sterragate] run cert_mgr import -f media:1482-7CB1/hub1.cer
2.7. Убедитесь, что сертификаты успешно импортированы в базу Продукта:
administrator@sterragate] run cert_mgr show
Found 2 certificates. No CRLs found.
1 Status: trusted C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
2 Status: local C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
Видно, что сертификат УЦ импортирован как trusted, а сертификат криптошлюза как local (local означает, что для данного сертификата есть соответствующий ключевой контейнер).
2.8. Выполните проверку статуса сертификатов в базе Продукта:
administrator@sterragate] run cert_mgr check
1 State: Inactive C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
Certificate can not be verified.
2 State: Inactive C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
Certificate can not be verified.
Видно, что все сертификаты имеют статус Inactive (неактивный) с пометкой: «Certificate can not be verified» (сертификат не может быть проверен). Причиной этому является включенный по умолчанию в консоли cisco-like механизм проверки списка отозванных сертификатов (далее СОС или CRL). Так как в базе Продукта СОС отсутствует, поэтому проверка не может быть осуществлена. Далее будет описан процесс настройки автоматической загрузки СОС и импортирование его в базу Продукта. Загрузка СОС осуществляется по протоколу HTTP с заданной периодичностью.
1. Войдите в cisco-like консоль из CLI разграничения доступа:
Пользователь и пароль по умолчанию cscons, csp. Обязательно смените пароль для пользователя cscons, так как под этим пользователем осуществляется доступ по SSH в cisco-like консоль. Также не забудьте сменить enable пароль.
administrator@sterragate] configure
sterragate login: cscons
Password:
S-Terra Gate DP 4.3.XXXXX (amd64)
sterragate#
2. Смените пароль для пользователя cscons и на enable:
sterragate#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
sterragate(config)#username cscons secret 0 ПАРОЛЬ
sterragate(config)#enable secret 0 ПАРОЛЬ
Настройка сетевых параметров проходит в два эта. Первый - настройка Mgmt интерфейса eth2 в linux bash. Второй - настройка маршрутизации в cisco-like консоли.
Первый этап.
1. Перейдите в linux bash:
sterragate(config)#end
sterragate#exit
administrator@sterragate] system
Entering system shell...
2. Выведите список всех интерфейсов в системе и выберите незадействованный в L2. Незадействованные в L2 интерфейсы будут иметь имя ethN, а задействованные vEthN:
root@sterragate:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:50:56:9e:08:11 brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:50:56:9e:14:72 brd ff:ff:ff:ff:ff:ff
8: vEth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:9e:d6:ae brd ff:ff:ff:ff:ff:ff
inet 172.16.100.2/24 scope global vEth0
valid_lft forever preferred_lft forever
9: vEth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:9e:94:6c brd ff:ff:ff:ff:ff:ff
Видно, что интерфейс eth2 не задействован в L2. Интерфейсы vEthN задействованы в L2, vEth0 соответствует WAN, а vEth1 - LAN.
3. Добавьте описание настроек интерфейса eth2 в файл /etc/network/interfaces за пределами секции, которая обозначается маркерами ###netifcfg-begin###, ###netifcfg-end###:
Mgmt интерфейс запрещено подключать к недоверенным сетям, так как Mgmt интерфейсы не контролируются средствами Продукта. Соответственно, добавлять Mgmt интерфейсы в cisco-like консоль нельзя. Поэтому настройка таких интерфейсов должна происходить средствами ОС. Если требуется фильтровать пакеты, то используйте iptables (см. документ «Использование утилиты «iptables»).
...
source-directory /etc/network/interfaces.d
# loopback configuration
auto lo
iface lo inet loopback
# Mgmt interface.
auto eth2
iface eth2 inet static
address 192.168.253.100
netmask 255.255.255.0
###netifcfg-begin###
...
###netifcfg-end###
4. Перезапустите сервис networking для применения настроек:
root@sterragate:~# systemctl restart networking.service
5. Убедитесь, что Mgmt адрес присутствует на интерфейсе eth2:
root@sterragate:~# ip address show dev eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:9e:08:11 brd ff:ff:ff:ff:ff:ff
inet 192.168.253.1/24 brd 192.168.253.255 scope global eth2
valid_lft forever preferred_lft forever
6. Проверьте, что с криптошлюза по ICMP доступно устройство host1-behind-hub1:
root@sterragate:~# ping 192.168.253.100 -c 5
PING 192.168.253.100 (192.168.253.100) 56(84) bytes of data.
64 bytes from 192.168.253.100: icmp_seq=1 ttl=64 time=1.42 ms
64 bytes from 192.168.253.100: icmp_seq=2 ttl=64 time=0.477 ms
64 bytes from 192.168.253.100: icmp_seq=3 ttl=64 time=0.599 ms
64 bytes from 192.168.253.100: icmp_seq=4 ttl=64 time=0.513 ms
64 bytes from 192.168.253.100: icmp_seq=5 ttl=64 time=0.501 ms
--- 192.168.253.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4072ms
rtt min/avg/max/mdev = 0.477/0.703/1.427/0.364 ms
Второй этап.
Изменения сетевых настроек в cisco-like консоли применяются сразу после ввода соответствующих команд. Политика безопасности применяется после выхода из режима конфигурирования.
1. Перейдите в cisco-like консоль из linux bash:
root@sterragate:~# exit
logout
Leaving system shell...
administrator@sterragate] configure
sterragate login: cscons
Password:
Last login: Mon Mar 2 15:00:48 MSK 2020 on pts/0
S-Terra Gate DP 4.3.XXXXX (amd64)
sterragate#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
2. Задайте имя устройства:
sterragate(config)#hostname Hub1
3. Убедитесь, что WAN и LAN интерфейсы административно включены и line protocol (способность интерфейса передавать пакеты в данный момент) находится в состоянии up, а также на интерфейсе vEthernet0 присутствует WAN адрес криптошлюза:
Hub1(config)#do show interfaces vEthernet0
vEthernet0 is up, line protocol is up
Hardware address is 0050.569e.85fc
Internet address is 172.16.100.2/24
MTU 9000 bytes
Hub1(config)#do show interfaces vEthernet1
vEthernet1 is up, line protocol is up
Hardware address is 0050.569e.ec9a
MTU 9000 bytes
Если line protocol находится в состоянии down, то проверьте подключение сетевого интерфейса криптошлюза к коммутационному или прочему оборудованию.
4. Задайте маршрут по умолчанию через устройство Router1 для исходящего из TCP/IP стека ОС и транзитного Mgmt трафика (шлюз по умолчанию для зашифрованного транзитного L2 трафика задается в файле /opt/VPNagent/etc/ipsm_dpdk.cfg):
Hub1(config)#ip route 0.0.0.0 0.0.0.0 172.16.100.1
5. Проверьте доступность устройства Router1:
Hub1(config)#do ping 172.16.100.1
PING 172.16.100.1 (172.16.100.1) 100(128) bytes of data.
108 bytes from 172.16.100.1: icmp_seq=1 ttl=64 time=1.13 ms
108 bytes from 172.16.100.1: icmp_seq=2 ttl=64 time=0.237 ms
108 bytes from 172.16.100.1: icmp_seq=3 ttl=64 time=0.192 ms
108 bytes from 172.16.100.1: icmp_seq=4 ttl=64 time=0.200 ms
108 bytes from 172.16.100.1: icmp_seq=5 ttl=64 time=0.299 ms
--- 172.16.100.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4078ms
rtt min/avg/max/mdev = 0.192/0.411/1.131/0.362 ms
1. Параметры IKE.
1.1. Укажите в качестве типа идентификатора, используемого в рамках протокола IKE, отличительное имя (Distinguished Name, DN):
Hub1(config)#crypto isakmp identity dn
По умолчанию отличительное имя будет взято из сертификата устройства, например, для Hub1 это «C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1».
1.2. Настройте параметры DPD (deep peer detection):
Hub1(config)#crypto isakmp keepalive 3 2
Hub1(config)#crypto isakmp keepalive retry-count 5
Пояснение:
Если в течение 3 секунд отсутствует входящий трафик в IPsec туннеле, то с интервалом в 2 секунды посылается 5 keepalive пакетов в рамках IKE туннеля, чтобы удостовериться в работоспособности туннеля. Если партнер не отвечает на keepalive пакеты, то соответствующий IKE туннель и связанные с ним IPsec туннели уничтожаются. В случае наличия исходящего защищаемого трафика происходит попытка создания новых IKE/IPsec туннелей.
1.3. Включите фрагментацию IKE пакетов:
Hub1(config)#crypto isakmp fragmentation
1.4. Включите случайный разброс времени жизни IKE и IPsec SA, чтобы снизить нагрузку на шлюз (позволяет избежать единовременное массовое пересоздания SA):
Hub1(config)#crypto isakmp security-association lifetime delta 50
1.5. Увеличьте допустимое количество одновременно инициируемых IKE сессий (не путать с общим количеством IKE сессий) для всех партнёров (значение по умолчанию 30):
Hub1(config)#crypto isakmp initiator-sessions-max 100
1.6. Увеличьте допустимое количество одновременных IKE обменов, проводимых шлюзом со всеми партнерами в качестве ответчика (не путать с общим количеством IKE сессий; значение по умолчанию 20):
Hub1(config)#crypto isakmp responder-sessions-max 100
1.7. Создайте политику, описывающую параметры IKE туннеля:
Hub1(config)#crypto isakmp policy 1
Hub1(config-isakmp)# encryption gost
Hub1(config-isakmp)# hash gost341112-256-tc26
Hub1(config-isakmp)# authentication gost-sig
Hub1(config-isakmp)# group vko2
Hub1(config-isakmp)# exit
Рекомендуется использовать одну политику для IKE туннелей. Несколько политик может потребоваться в том случае, если необходимо обеспечить совместимость со старыми версиями Продуктов, в которых нет поддержки новых алгоритмов.
2. Параметры IPsec для защиты транзитного пользовательского L2 трафика.
2.1. Задайте комбинированный алгоритм gost341215k-mgm шифрования и имитозащиты (набор преобразований) для защиты транзитного L2 трафика:
Hub1(config)#crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY_MGM esp-gost341215k-mgm
Hub1(cfg-crypto-trans)#exit
2.2. Создайте список доступа (ACL) для транзитного инкапсулированного в EtherIP пользовательского трафика, который нужно защищать между центральным офисом и филиалом:
Hub1(config)#ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
Hub1(config-ext-nacl)#remark EtherIP L2 tunnel
Hub1(config-ext-nacl)# permit 97 host 172.16.100.2 host 172.16.1.2
Hub1(config-ext-nacl)#exit
Hub1(config)#
2.3. Создайте крипто-карту (имя L2VPN, раздел 1):
Hub1(config)#crypto map L2VPN 1 ipsec-isakmp
2.3.1 Укажите список доступа для защищаемого трафика:
Hub1(config-crypto-map)# match address IPSEC_ACl_HUB1_AND_SPOKE1
2.3.2 Укажите при помощи какого набора алгоритмов нужно защищать трафик:
Hub1(config-crypto-map)# set transform-set GOST_ENCRYPT_AND_INTEGRITY_MGM
2.3.3 Укажите IP адрес партнера по IPsec, в данном сценарии это внешний IP адрес устройства Spoke1:
Hub1(config-crypto-map)# set peer 172.16.1.2
2.3.4 Увеличьте лимит по трафику до максимального значения для IPsec SA:
Hub1(config-crypto-map)#set security-association lifetime kilobytes 4294967295
2.3.5 Обязательно отключите историю удаленных туннелей (если не отключить, то могут быть проблемы с построением IPsec туннелей с устройствами, которые находятся за NAT):
Hub1(config-crypto-map)# set dead-connection history off
Hub1(config-crypto-map)#exit
2.4. Прикрепите созданную крипто-карту L2VPN ко всем DP интерфейсам:
Hub1(config)# interface range DP 0 - 35
Hub1(config-if)# crypto map L2VPN
Hub1(config-if)# exit
3. Параметры IPsec для защиты канала управления между криптошлюзами.
3.1. Задайте комбинированный алгоритм gost28147-4m-imit шифрования и имитозащиты (набор преобразований) для защиты удаленного управления криптошлюзом:
Hub1(config)# crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY_IMIT esp-gost28147-4m-imit
Hub1(cfg-crypto-trans)#exit
3.2. Создайте расширенный список доступа (ACL) для трафика управления, который требуется защищать:
Hub1(config)#ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1_MGMT
Hub1(config-ext-nacl)# remark MGMT Networks
Hub1(config-ext-nacl)# permit ip 192.168.253.0 0.0.0.255 192.168.254.0 0.0.0.255
Hub1(config-ext-nacl)#exit
3.3. Создайте крипто-карту (имя L3VPN, раздел 1):
Hub1(config)#crypto map L3VPN 1 ipsec-isakmp
3.3.1 Укажите список доступа для защищаемого трафика:
Hub1(config-crypto-map)# match address IPSEC_ACl_HUB1_AND_SPOKE1_MGMT
3.3.2 Укажите при помощи какого набора алгоритмов нужно защищать трафик:
Hub1(config-crypto-map)#set transform-set GOST_ENCRYPT_AND_INTEGRITY_IMIT
3.3.3 Укажите IP адрес партнера по IPsec, в данном сценарии это внешний IP адрес устройства Spoke1:
Hub1(config-crypto-map)# set peer 172.16.1.2
3.3.4 Увеличьте лимит по трафику до максимального значения для IPsec SA:
Hub1(config-crypto-map)#set security-association lifetime kilobytes 4294967295
3.3.5 Обязательно отключите историю удаленных туннелей (если не отключить, то могут быть проблемы с построением IPsec туннелей с устройствами, которые находятся за NAT):
Hub1(config-crypto-map)#set dead-connection history off
Hub1(config-crypto-map)#exit
3.4. Прикрепите созданную крипто-карту L3VPN к внешнемуWAN интерфейсу:
Hub1(config)#interface vEthernet 0
Hub1(config-if)#description WAN
Hub1(config-if)#crypto map L3VPN
3.5. Примените настройки:
Hub1(config-if)#end
В целях безопасности настоятельно рекомендуется включать проверку списков отзыва сертификатов. Разностные списки отозванных сертификатов (delta CRL) не поддерживаются.
1. Включите проверку СОС:
Hub1#configure terminal
Hub1(config)# crypto pki trustpoint s-terra_technological_trustpoint
Hub1(ca-trustpoint)# revocation-check crl
Если по обоснованным причинам использование СОС невозможно, то выключите проверку СОС и не включайте автоматическую загрузку СОС:
Hub1(ca-trustpoint)# revocation-check none
2. Включите автоматическую загрузку и импортирование в базу Продукта списка отозванных сертификатов с HTTP сервера CRL_distribution_point:
Hub1(ca-trustpoint)# crl download group ROOTCA http://172.16.101.15/certcrl.crl
3. Настройте периодичность загрузки СОС в 60 минут (по умолчанию 24 часа):
Hub1(ca-trustpoint)# crl download time 60
4. Примените настройки:
Hub1(ca-trustpoint)#end
5. Проверьте загружен ли СОС в базу Продукта:
Hub1#run cert_mgr show
Found 2 certificates. Found 1 CRL.
1 Status: trusted C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
2 Status: local C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
3 CRL: C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
Если СОС не загрузился, то проверьте файл журнала, например:
Hub1#run grep getcrls_daemon /var/log/cspvpngate.log
Примечание: чтобы не ждать следующего периода загрузки СОС можно перезапустить сервис getcrls вручную:
Hub1#run systemctl restart getcrls.service
6. Выполните проверку статуса сертификатов в базе Продукта:
Hub1#run cert_mgr check
1 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
2 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
Настройка криптошлюза Hub1 завершена.
В Приложении представлены тексты конфигураций для криптошлюза Hub1:
· текст консоли cisco-like;
· текст LSP;
· Конфигурация сетевых интерфейсов ОС;
· Конфигурация L2 (data plane).
Настройка криптошлюза Spoke1 происходит аналогично настройке Hub1.
В Приложении представлены тексты конфигураций для криптошлюза Spoke1:
· текст консоли cisco-like;
· текст LSP;
· Конфигурация сетевых интерфейсов ОС;
· Конфигурация L2 (data plane).
Проверку работоспособности нужно выполнять после завершения настройки всех устройств стенда.
1. Проверьте, что с криптошлюзов Hub1 и Spoke1 по ICMP доступен шлюз по умолчанию (Router1). Для этого выполните команду ping из cisco-like консоли криптошлюзов.
Hub1#ping 172.16.100.1
PING 172.16.100.1 (172.16.100.1) 100(128) bytes of data.
108 bytes from 172.16.100.1: icmp_seq=1 ttl=64 time=5.07 ms
108 bytes from 172.16.100.1: icmp_seq=2 ttl=64 time=3.62 ms
108 bytes from 172.16.100.1: icmp_seq=3 ttl=64 time=6.55 ms
108 bytes from 172.16.100.1: icmp_seq=4 ttl=64 time=4.68 ms
108 bytes from 172.16.100.1: icmp_seq=5 ttl=64 time=2.86 ms
--- 172.16.100.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 2.867/4.562/6.552/1.263 ms
Spoke1#ping 172.16.1.1
PING 172.16.1.1 (172.16.1.1) 100(128) bytes of data.
108 bytes from 172.16.1.1: icmp_seq=1 ttl=64 time=14.7 ms
108 bytes from 172.16.1.1: icmp_seq=2 ttl=64 time=9.22 ms
108 bytes from 172.16.1.1: icmp_seq=3 ttl=64 time=7.03 ms
108 bytes from 172.16.1.1: icmp_seq=4 ttl=64 time=5.25 ms
108 bytes from 172.16.1.1: icmp_seq=5 ttl=64 time=8.15 ms
--- 172.16.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 5.259/8.876/14.704/3.195 ms
Видно, что устройство Router1 доступно по ICMP как с Hub1, так и со Spoke1.
2. Проверьте, что с криптошлюза Hub1 доступен по ICMP криптошлюз Spoke1 (по внешним интерфейсам). Для этого выполните команду ping из cisco-like консоли криптошлюзов.
Hub1#ping 172.16.1.2
PING 172.16.1.2 (172.16.1.2) 100(128) bytes of data.
108 bytes from 172.16.1.2: icmp_seq=1 ttl=63 time=24.0 ms
108 bytes from 172.16.1.2: icmp_seq=2 ttl=63 time=15.0 ms
108 bytes from 172.16.1.2: icmp_seq=3 ttl=63 time=14.1 ms
108 bytes from 172.16.1.2: icmp_seq=4 ttl=63 time=9.63 ms
108 bytes from 172.16.1.2: icmp_seq=5 ttl=63 time=11.2 ms
--- 172.16.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 9.632/14.821/24.064/5.013 ms
Видно, что с криптошлюза Hub1 доступен по ICMP криптошлюз Spoke1.
1. Проверьте, что на криптошлюзах Hub1 и Spoke1 СОС импортирован в базу Продукта. Для этого выполните команду run cert_mgr show из cisco-like консоли криптошлюзов.
Hub1#run cert_mgr show
Found 2 certificates. Found 1 CRL.
1 Status: local C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
2 Status: trusted C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
3 CRL: C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
Spoke1#run cert_mgr show
Found 2 certificates. Found 1 CRL.
1 Status: trusted C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
2 Status: local C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Spoke1
3 CRL: C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
Видно, что на криптошлюзах Hub1 и Spoke1 СОС импортирован в базу Продукта. Если этого не произошло, то проверьте файл журнала (команда run grep getcrls_daemon /var/log/cspvpngate.log) и, при необходимости, перезапустите сервис автоматической загрузки СОС (команда run systemctl restart getcrls.service).
2. Проверьте, что на криптошлюзах Hub1 и Spoke1 статус всех сертификатов Active. Для этого выполните команду run cert_mgr check из cisco-like консоли криптошлюзов.
Hub1#run cert_mgr check
1 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
2 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
Spoke1#run cert_mgr check
1 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
2 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Spoke1
Видно, что на криптошлюзах Hub1 и Spoke1 статус всех сертификатов Active. Если статус Inactive, то проверьте загружен ли СОС в базу Продукта и правильность установки даты и времени.
1. Инициируйте построение защищенного L2 соединения между криптошлюзами Hub1 и Spoke1 с любого из защищаемых устройств host0-behind-spoke1 или host0-behind-hub1. Для этого выполните команду ping, например из консоли linux bash защищаемого устройства host0-behind-spoke1:
root@host0-behind-spoke1:~# ping 192.168.100.100 -c 15
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.
64 bytes from 192.168.100.100: icmp_seq=1 ttl=64 time=3.35 ms
64 bytes from 192.168.100.100: icmp_seq=2 ttl=64 time=3.51 ms
64 bytes from 192.168.100.100: icmp_seq=3 ttl=64 time=3.15 ms
64 bytes from 192.168.100.100: icmp_seq=4 ttl=64 time=2.99 ms
64 bytes from 192.168.100.100: icmp_seq=5 ttl=64 time=4.28 ms
64 bytes from 192.168.100.100: icmp_seq=6 ttl=64 time=2.26 ms
64 bytes from 192.168.100.100: icmp_seq=7 ttl=64 time=2.27 ms
64 bytes from 192.168.100.100: icmp_seq=8 ttl=64 time=2.21 ms
64 bytes from 192.168.100.100: icmp_seq=9 ttl=64 time=2.64 ms
64 bytes from 192.168.100.100: icmp_seq=10 ttl=64 time=2.30 ms
64 bytes from 192.168.100.100: icmp_seq=11 ttl=64 time=2.74 ms
64 bytes from 192.168.100.100: icmp_seq=12 ttl=64 time=2.25 ms
64 bytes from 192.168.100.100: icmp_seq=13 ttl=64 time=2.16 ms
64 bytes from 192.168.100.100: icmp_seq=14 ttl=64 time=2.32 ms
64 bytes from 192.168.100.100: icmp_seq=15 ttl=64 time=2.17 ms
--- 192.168.100.100 ping statistics ---
15 packets transmitted, 15 received, 0% packet loss, time 29ms
rtt min/avg/max/mdev = 2.155/2.705/4.277/0.612 ms
2. Проверьте, что на криптошлюзах Hub1 и Spoke1 установлены защищенные IPsec соединения. Для этого выполните команду run sa_mgr show из cisco-like консоли криптошлюзов.
Hub1#run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.100.2,500)-(172.16.1.2,500) active 14352 13868
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 1 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 352 352
2 2 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 352
3 3 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 352
4 4 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 512 384
5 5 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 512
6 6 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 384
7 7 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 384
8 8 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 384
9 9 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 384
10 10 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 352
11 11 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 384
12 12 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 352 384
13 13 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 352
14 14 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 384
15 15 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 384
16 16 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 352
17 17 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 352 384
18 18 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 352 384
19 19 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 384
20 20 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 384
21 21 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 384
22 22 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 320 256
23 23 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 256
24 24 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 256
25 25 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 256
26 26 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 224
27 27 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 256
28 28 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 256
29 29 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 384 256
30 30 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 256
31 31 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 256
32 32 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 256
33 33 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 256
34 34 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 256
35 35 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 256
36 36 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 256 256
Spoke1#run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.1.2,500)-(172.16.100.2,500) active 13868 14352
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 1 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 608 512
2 2 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 448 608
3 3 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 608 512
4 4 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 768
5 5 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 768 512
6 6 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 640
7 7 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 640 512
8 8 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 640
9 9 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 640 512
10 10 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 480 640
11 11 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 640 512
12 12 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 576
13 13 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 576 512
14 14 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 640
15 15 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 640 512
16 16 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 608 512
17 17 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 608
18 18 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 448
19 19 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
20 20 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
21 21 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
22 22 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 448
23 23 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
24 24 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
25 25 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 480 512
26 26 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 480 512
27 27 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
28 28 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
29 29 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
30 30 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
31 31 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
32 32 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
33 33 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 480
34 34 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
35 35 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
36 36 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 512 512
Видно, что на криптошлюзах Hub1 и Spoke1 установлены защищенные IPsec соединения (количество защищенных IPsec соединений должно совпадать со значением параметра threads, указанно в мастере настроек L2). Если этого не произошло, то проверьте файл журнала (команда run less /var/log/cspvpngate.log). При необходимости увеличьте уровень логирования (команда logging trap debugging в консоли cisco-like) и заново инициируйте защищенное соединение.
1. Инициируйте построение защищенного L3 соединения между криптошлюзами Hub1 и Spoke1 с любого из защищаемых устройств host1-behind-spoke1 или host1-behind-hub1. Для этого выполните команду ping, например из консоли linux bash защищаемого устройства host1-behind-hub1:
root@host1-behind-hub1:~# ping 192.168.254.100 -c 5
PING 192.168.254.100 (192.168.254.100) 56(84) bytes of data.
64 bytes from 192.168.254.100: icmp_seq=1 ttl=62 time=40.2 ms
64 bytes from 192.168.254.100: icmp_seq=2 ttl=62 time=6.74 ms
64 bytes from 192.168.254.100: icmp_seq=3 ttl=62 time=5.41 ms
64 bytes from 192.168.254.100: icmp_seq=4 ttl=62 time=3.54 ms
64 bytes from 192.168.254.100: icmp_seq=5 ttl=62 time=9.96 ms
--- 192.168.254.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 10ms
rtt min/avg/max/mdev = 3.539/13.168/40.197/13.675 ms
2. Проверьте, что на криптошлюзах Hub1 и Spoke1 установлены защищенные IPsec соединения. Для этого выполните команду run sa_mgr show из cisco-like консоли криптошлюзов.
Hub1#run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.100.2,500)-(172.16.1.2,500) active 62604 55124
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 108 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 11744 11552
...
36 150 (172.16.100.2,*)-(172.16.1.2,*) 97 ESP tunn 768 768
37 151 (192.168.253.0-192.168.253.255,*)-(192.168.254.0-192.168.254.255,*) * ESP tunn 440 440
Spoke1#run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.1.2,500)-(172.16.100.2,500) active 56240 63744
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 111 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 11264 11328
...
36 150 (172.16.1.2,*)-(172.16.100.2,*) 97 ESP tunn 1024 1024
37 151 (192.168.254.0-192.168.254.255,*)-(192.168.253.0-192.168.253.255,*) * ESP tunn 440 440
Видно, что на криптошлюзах Hub1 и Spoke1 установлено защищенное L3 IPsec соединение. Если этого не произошло, то проверьте файл журнала (команда run less /var/log/cspvpngate.log). При необходимости увеличьте уровень логирования (команда logging trap debugging в консоли cisco-like) и заново инициируйте защищенное соединение.
3. Проверьте доступ к криптошлюзу Hub1 из Mgmt подсети криптошлюза Hub1. Для этого подключитесь по SSH на Mgmt адрес Hub1, например из консоли linux bash защищаемого устройства host1-behind-hub1:
root@host1-behind-hub1:~# ssh 192.168.253.1
The authenticity of host '192.168.253.1 (192.168.253.1)' can't be established.
ECDSA key fingerprint is SHA256:mkcuerccUkM7WF0FmSqRe0BqkW01/3Afp5/cQ3mTI0Y.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.253.1' (ECDSA) to the list of known hosts.
root@192.168.253.1's password:
S-Terra Gate DP 4.3.XXXXX (amd64)
root@Hub1:~#
4. Проверьте доступ к криптошлюзу Spoke1 из Mgmt подсети криптошлюза Hub1. Для этого подключитесь по SSH на Mgmt адрес Spoke1, например из консоли linux bash защищаемого устройства host1-behind-hub1:
root@host1-behind-hub1:~# ssh 192.168.254.1
The authenticity of host '192.168.254.1 (192.168.254.100)' can't be established.
ECDSA key fingerprint is SHA256:TF06vUKSNzzSd7wCd2NdGtt4Uh59L3Pppzgi1FDBOmY.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.254.1' (ECDSA) to the list of known hosts.
root@192.168.254.1's password:
S-Terra Gate DP 4.3.XXXXX (amd64)
root@Spoke1:~#
Видно, что доступ к криптошлюзам успешно осуществляется по SSH, в том числе по защищенному IPsec соединению.
1. Консоль cisco-like:
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp fragmentation
crypto isakmp security-association lifetime delta 50
crypto isakmp initiator-sessions-max 100
crypto isakmp responder-sessions-max 100
crypto isakmp keepalive 3
crypto isakmp keepalive retry-count 5
username cscons privilege 15 secret 5 $6$tHtq8SR6$t3CWE6udI6L/ARr9jQowUYR7wEbOW
Zlx61OvLi7goonOFUYhNSGV49BA.RDGEZ7oKXBA1aTRi20ElR4wtMXTl0
aaa new-model
!
!
hostname Hub1
enable secret 5 PC9d7N5HlAyLrzuA3qRJvQ==
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY_MGM esp-gost341215k-mgm
!
crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY_IMIT esp-gost28147-4m-imi
t
!
ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
remark EtherIP L2 tunnel
permit 97 host 172.16.100.2 host 172.16.1.2
!
ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1_MGMT
remark MGMT Networks
permit ip 192.168.253.0 0.0.0.255 192.168.254.0 0.0.0.255
!
!
crypto map L2VPN 1 ipsec-isakmp
match address IPSEC_ACl_HUB1_AND_SPOKE1
set transform-set GOST_ENCRYPT_AND_INTEGRITY_MGM
set security-association lifetime kilobytes 4294967295
set peer 172.16.1.2
set dead-connection history off
!
crypto map L3VPN 1 ipsec-isakmp
match address IPSEC_ACl_HUB1_AND_SPOKE1_MGMT
set transform-set GOST_ENCRYPT_AND_INTEGRITY_IMIT
set security-association lifetime kilobytes 4294967295
set peer 172.16.1.2
set dead-connection history off
!
interface DP0
crypto map L2VPN
crypto ipsec stream-id 1000
!
interface DP1
crypto map L2VPN
crypto ipsec stream-id 1001
!
interface DP2
crypto map L2VPN
crypto ipsec stream-id 1002
!
interface DP3
crypto map L2VPN
crypto ipsec stream-id 1003
!
interface DP4
crypto map L2VPN
crypto ipsec stream-id 1004
!
interface DP5
crypto map L2VPN
crypto ipsec stream-id 1005
!
interface DP6
crypto map L2VPN
crypto ipsec stream-id 1006
!
interface DP7
crypto map L2VPN
crypto ipsec stream-id 1007
!
interface DP8
crypto map L2VPN
crypto ipsec stream-id 1008
!
interface DP9
crypto map L2VPN
crypto ipsec stream-id 1009
!
interface DP10
crypto map L2VPN
crypto ipsec stream-id 1010
!
interface DP11
crypto map L2VPN
crypto ipsec stream-id 1011
!
interface DP12
crypto map L2VPN
crypto ipsec stream-id 1012
!
interface DP13
crypto map L2VPN
crypto ipsec stream-id 1013
!
interface DP14
crypto map L2VPN
crypto ipsec stream-id 1014
!
interface DP15
crypto map L2VPN
crypto ipsec stream-id 1015
!
interface DP16
crypto map L2VPN
crypto ipsec stream-id 1016
!
interface DP17
crypto map L2VPN
crypto ipsec stream-id 1017
!
interface DP18
crypto map L2VPN
crypto ipsec stream-id 1018
!
interface DP19
crypto map L2VPN
crypto ipsec stream-id 1019
!
interface DP20
crypto map L2VPN
crypto ipsec stream-id 1020
!
interface DP21
crypto map L2VPN
crypto ipsec stream-id 1021
!
interface DP22
crypto map L2VPN
crypto ipsec stream-id 1022
!
interface DP23
crypto map L2VPN
crypto ipsec stream-id 1023
!
interface DP24
crypto map L2VPN
crypto ipsec stream-id 1024
!
interface DP25
crypto map L2VPN
crypto ipsec stream-id 1025
!
interface DP26
crypto map L2VPN
crypto ipsec stream-id 1026
!
interface DP27
crypto map L2VPN
crypto ipsec stream-id 1027
!
interface DP28
crypto map L2VPN
crypto ipsec stream-id 1028
!
interface DP29
crypto map L2VPN
crypto ipsec stream-id 1029
!
interface DP30
crypto map L2VPN
crypto ipsec stream-id 1030
!
interface DP31
crypto map L2VPN
crypto ipsec stream-id 1031
!
interface DP32
crypto map L2VPN
crypto ipsec stream-id 1032
!
interface DP33
crypto map L2VPN
crypto ipsec stream-id 1033
!
interface DP34
crypto map L2VPN
crypto ipsec stream-id 1034
!
interface DP35
crypto map L2VPN
crypto ipsec stream-id 1035
!
interface vEthernet0
description WAN
ip address 172.16.100.2 255.255.255.0
crypto map L3VPN
mtu 9000
!
interface vEthernet1
no ip address
mtu 9000
!
!
ip route 0.0.0.0 0.0.0.0 172.16.100.1
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group ROOTCA http://172.16.101.15/certcrl.crl
crl download time 60
crypto pki certificate chain s-terra_technological_trustpoint
certificate 58E026BFD6D625BE4582C16C6189C183
...
AD4F8901771632E0A0AF83
quit
!
end
2. Конфигурация LSP:
# This is automatically generated LSP
#
# Conversion Date/Time: Mon Jun 8 19:29:19 2020
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Mon Jun 8 19:29:19 2020 (user: cscons)"
Version = LSP_4_3
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 172.16.100.1
)
)
FirewallParameters(
TCPSynSentTimeout = 30
TCPFinTimeout = 5
TCPClosedTimeout = 30
TCPSynRcvdTimeout = 30
TCPEstablishedTimeout = 3600
TCPHalfOpenLow = 400
TCPHalfOpenMax = 500
TCPSessionRateLow = 400
TCPSessionRateMax = 500
)
IKETransform crypto:isakmp:policy:1
(
CipherAlg = "G2814789CPRO1-K256-CBC-65534"
HashAlg = "GR341112_256TC26-65128"
GroupID = VKO2_1B
RestrictAuthenticationTo = GOST_SIGN
LifetimeSeconds = 86400
)
ESPProposal GOST_ENCRYPT_AND_INTEGRITY_MGM:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "GR341215K-K352-MGM-251"
LifetimeSeconds = 3600
LifetimeKilobytes = 4294967295
)
)
ESPProposal GOST_ENCRYPT_AND_INTEGRITY_IMIT:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4294967295
)
)
IKEParameters(
FragmentSize = 576
SALifetimeDelta = 50
InitiatorSessionsMax = 100
ResponderSessionsMax = 100
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:L2VPN:1$L3VPN:1
(
IKEPeerIPFilter = 172.16.1.2
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 3
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IPsecAction IPsecAction:L2VPN:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 172.16.1.2
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( GOST_ENCRYPT_AND_INTEGRITY_MGM:ESP )
NoDeadConnectionHistory = TRUE
IKERule = IKERule:L2VPN:1$L3VPN:1
)
IPsecAction IPsecAction:L3VPN:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 172.16.1.2
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( GOST_ENCRYPT_AND_INTEGRITY_IMIT:ESP )
NoDeadConnectionHistory = TRUE
IKERule = IKERule:L2VPN:1$L3VPN:1
)
const IPsecPolicy:L2VPN = FilterChain (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 172.16.100.2
DestinationIP = 172.16.1.2
ProtocolID = 97
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:L2VPN:1 >
LogEventID = "IPsec:Protect:L2VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
)
)
FilterChain IPsecPolicy:L2VPN:1000 (
+IPsecPolicy:L2VPN
StreamID = 1000
)
FilterChain IPsecPolicy:L2VPN:1001 (
+IPsecPolicy:L2VPN
StreamID = 1001
)
FilterChain IPsecPolicy:L2VPN:1002 (
+IPsecPolicy:L2VPN
StreamID = 1002
)
FilterChain IPsecPolicy:L2VPN:1003 (
+IPsecPolicy:L2VPN
StreamID = 1003
)
FilterChain IPsecPolicy:L2VPN:1004 (
+IPsecPolicy:L2VPN
StreamID = 1004
)
FilterChain IPsecPolicy:L2VPN:1005 (
+IPsecPolicy:L2VPN
StreamID = 1005
)
FilterChain IPsecPolicy:L2VPN:1006 (
+IPsecPolicy:L2VPN
StreamID = 1006
)
FilterChain IPsecPolicy:L2VPN:1007 (
+IPsecPolicy:L2VPN
StreamID = 1007
)
FilterChain IPsecPolicy:L2VPN:1008 (
+IPsecPolicy:L2VPN
StreamID = 1008
)
FilterChain IPsecPolicy:L2VPN:1009 (
+IPsecPolicy:L2VPN
StreamID = 1009
)
FilterChain IPsecPolicy:L2VPN:1010 (
+IPsecPolicy:L2VPN
StreamID = 1010
)
FilterChain IPsecPolicy:L2VPN:1011 (
+IPsecPolicy:L2VPN
StreamID = 1011
)
FilterChain IPsecPolicy:L2VPN:1012 (
+IPsecPolicy:L2VPN
StreamID = 1012
)
FilterChain IPsecPolicy:L2VPN:1013 (
+IPsecPolicy:L2VPN
StreamID = 1013
)
FilterChain IPsecPolicy:L2VPN:1014 (
+IPsecPolicy:L2VPN
StreamID = 1014
)
FilterChain IPsecPolicy:L2VPN:1015 (
+IPsecPolicy:L2VPN
StreamID = 1015
)
FilterChain IPsecPolicy:L2VPN:1016 (
+IPsecPolicy:L2VPN
StreamID = 1016
)
FilterChain IPsecPolicy:L2VPN:1017 (
+IPsecPolicy:L2VPN
StreamID = 1017
)
FilterChain IPsecPolicy:L2VPN:1018 (
+IPsecPolicy:L2VPN
StreamID = 1018
)
FilterChain IPsecPolicy:L2VPN:1019 (
+IPsecPolicy:L2VPN
StreamID = 1019
)
FilterChain IPsecPolicy:L2VPN:1020 (
+IPsecPolicy:L2VPN
StreamID = 1020
)
FilterChain IPsecPolicy:L2VPN:1021 (
+IPsecPolicy:L2VPN
StreamID = 1021
)
FilterChain IPsecPolicy:L2VPN:1022 (
+IPsecPolicy:L2VPN
StreamID = 1022
)
FilterChain IPsecPolicy:L2VPN:1023 (
+IPsecPolicy:L2VPN
StreamID = 1023
)
FilterChain IPsecPolicy:L2VPN:1024 (
+IPsecPolicy:L2VPN
StreamID = 1024
)
FilterChain IPsecPolicy:L2VPN:1025 (
+IPsecPolicy:L2VPN
StreamID = 1025
)
FilterChain IPsecPolicy:L2VPN:1026 (
+IPsecPolicy:L2VPN
StreamID = 1026
)
FilterChain IPsecPolicy:L2VPN:1027 (
+IPsecPolicy:L2VPN
StreamID = 1027
)
FilterChain IPsecPolicy:L2VPN:1028 (
+IPsecPolicy:L2VPN
StreamID = 1028
)
FilterChain IPsecPolicy:L2VPN:1029 (
+IPsecPolicy:L2VPN
StreamID = 1029
)
FilterChain IPsecPolicy:L2VPN:1030 (
+IPsecPolicy:L2VPN
StreamID = 1030
)
FilterChain IPsecPolicy:L2VPN:1031 (
+IPsecPolicy:L2VPN
StreamID = 1031
)
FilterChain IPsecPolicy:L2VPN:1032 (
+IPsecPolicy:L2VPN
StreamID = 1032
)
FilterChain IPsecPolicy:L2VPN:1033 (
+IPsecPolicy:L2VPN
StreamID = 1033
)
FilterChain IPsecPolicy:L2VPN:1034 (
+IPsecPolicy:L2VPN
StreamID = 1034
)
FilterChain IPsecPolicy:L2VPN:1035 (
+IPsecPolicy:L2VPN
StreamID = 1035
)
FilterChain IPsecPolicy:L3VPN (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.253.0/24
DestinationIP = 192.168.254.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:L3VPN:1 >
LogEventID = "IPsec:Protect:L3VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1_MGMT"
)
)
NetworkInterface (
LogicalName = "DP0"
IPsecPolicy = IPsecPolicy:L2VPN:1000
)
NetworkInterface (
LogicalName = "DP1"
IPsecPolicy = IPsecPolicy:L2VPN:1001
)
NetworkInterface (
LogicalName = "DP2"
IPsecPolicy = IPsecPolicy:L2VPN:1002
)
NetworkInterface (
LogicalName = "DP3"
IPsecPolicy = IPsecPolicy:L2VPN:1003
)
NetworkInterface (
LogicalName = "DP4"
IPsecPolicy = IPsecPolicy:L2VPN:1004
)
NetworkInterface (
LogicalName = "DP5"
IPsecPolicy = IPsecPolicy:L2VPN:1005
)
NetworkInterface (
LogicalName = "DP6"
IPsecPolicy = IPsecPolicy:L2VPN:1006
)
NetworkInterface (
LogicalName = "DP7"
IPsecPolicy = IPsecPolicy:L2VPN:1007
)
NetworkInterface (
LogicalName = "DP8"
IPsecPolicy = IPsecPolicy:L2VPN:1008
)
NetworkInterface (
LogicalName = "DP9"
IPsecPolicy = IPsecPolicy:L2VPN:1009
)
NetworkInterface (
LogicalName = "DP10"
IPsecPolicy = IPsecPolicy:L2VPN:1010
)
NetworkInterface (
LogicalName = "DP11"
IPsecPolicy = IPsecPolicy:L2VPN:1011
)
NetworkInterface (
LogicalName = "DP12"
IPsecPolicy = IPsecPolicy:L2VPN:1012
)
NetworkInterface (
LogicalName = "DP13"
IPsecPolicy = IPsecPolicy:L2VPN:1013
)
NetworkInterface (
LogicalName = "DP14"
IPsecPolicy = IPsecPolicy:L2VPN:1014
)
NetworkInterface (
LogicalName = "DP15"
IPsecPolicy = IPsecPolicy:L2VPN:1015
)
NetworkInterface (
LogicalName = "DP16"
IPsecPolicy = IPsecPolicy:L2VPN:1016
)
NetworkInterface (
LogicalName = "DP17"
IPsecPolicy = IPsecPolicy:L2VPN:1017
)
NetworkInterface (
LogicalName = "DP18"
IPsecPolicy = IPsecPolicy:L2VPN:1018
)
NetworkInterface (
LogicalName = "DP19"
IPsecPolicy = IPsecPolicy:L2VPN:1019
)
NetworkInterface (
LogicalName = "DP20"
IPsecPolicy = IPsecPolicy:L2VPN:1020
)
NetworkInterface (
LogicalName = "DP21"
IPsecPolicy = IPsecPolicy:L2VPN:1021
)
NetworkInterface (
LogicalName = "DP22"
IPsecPolicy = IPsecPolicy:L2VPN:1022
)
NetworkInterface (
LogicalName = "DP23"
IPsecPolicy = IPsecPolicy:L2VPN:1023
)
NetworkInterface (
LogicalName = "DP24"
IPsecPolicy = IPsecPolicy:L2VPN:1024
)
NetworkInterface (
LogicalName = "DP25"
IPsecPolicy = IPsecPolicy:L2VPN:1025
)
NetworkInterface (
LogicalName = "DP26"
IPsecPolicy = IPsecPolicy:L2VPN:1026
)
NetworkInterface (
LogicalName = "DP27"
IPsecPolicy = IPsecPolicy:L2VPN:1027
)
NetworkInterface (
LogicalName = "DP28"
IPsecPolicy = IPsecPolicy:L2VPN:1028
)
NetworkInterface (
LogicalName = "DP29"
IPsecPolicy = IPsecPolicy:L2VPN:1029
)
NetworkInterface (
LogicalName = "DP30"
IPsecPolicy = IPsecPolicy:L2VPN:1030
)
NetworkInterface (
LogicalName = "DP31"
IPsecPolicy = IPsecPolicy:L2VPN:1031
)
NetworkInterface (
LogicalName = "DP32"
IPsecPolicy = IPsecPolicy:L2VPN:1032
)
NetworkInterface (
LogicalName = "DP33"
IPsecPolicy = IPsecPolicy:L2VPN:1033
)
NetworkInterface (
LogicalName = "DP34"
IPsecPolicy = IPsecPolicy:L2VPN:1034
)
NetworkInterface (
LogicalName = "DP35"
IPsecPolicy = IPsecPolicy:L2VPN:1035
)
NetworkInterface (
LogicalName = "vEthernet0"
IPsecPolicy = IPsecPolicy:L3VPN
)
3. Конфигурация сетевых интерфейсов ОС.
3.1. Файл /etc/network/interfaces:
############################################################
# CAUTION: lines under special marker: ###netifcfg-*###
# contains autogenerated information. You can add/modify
# lines outside of those markers
############################################################
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
# loopback configuration
auto lo
iface lo inet loopback
# Mgmt interface.
auto eth2
iface eth2 inet static
address 192.168.253.1
netmask 255.255.255.0
###netifcfg-begin###
###netifcfg-end###
4. Конфигурация L2 (data plane).
4.1. Файл (закомментированные параметры не приведены) /opt/VPNagent/etc/ipsm_dpdk.cfg:
[PERFORMANCE]
threads = 36
no_max_freq = yes
[EAL]
coremask = 0xfffffffffff
[MISC]
print_stats = yes
stats_file = /tmp/pkt_stats.txt
rte_log_file = /tmp/rte_log.txt
[PORT0]
pci_id = 03:00.0
outer = yes
l3_ip = 172.16.100.2
l3_mask = 24
gw_ip = 172.16.100.1
pair_port = 1
mtu = 9000
dp_frag_ip = 172.16.1.2
dp_frag_natt = yes
[
PORT1]
pci_id = 0b:00.0
l2_src_ip = 172.16.100.2
l2_dst_ip = 172.16.1.2
pair_port = 0
mtu = 9000
pmtud = 8900
mssfix = 8860
1. Консоль cisco-like:
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp fragmentation
crypto isakmp security-association lifetime delta 50
crypto isakmp initiator-sessions-max 100
crypto isakmp responder-sessions-max 100
crypto isakmp keepalive 3
crypto isakmp keepalive retry-count 5
username cscons privilege 15 secret 5 $6$tHtq8SR6$t3CWE6udI6L/ARr9jQowUYR7wEbOWZlx61OvLi7goonOFUYhNSGV49BA.RDGEZ7oKXBA1aTRi20ElR4wt
MXTl0
aaa new-model
!
!
hostname Spoke1
enable secret 5 PC9d7N5HlAyLrzuA3qRJvQ==
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY_MGM esp-gost341215k-mgm
!
crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY_IMIT esp-gost28147-4m-imit
!
ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
remark EtherIP L2 tunnel
permit 97 host 172.16.1.2 host 172.16.100.2
!
ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1_MGMT
remark MGMT Networks
permit ip 192.168.254.0 0.0.0.255 192.168.253.0 0.0.0.255
!
!
crypto map L2VPN 1 ipsec-isakmp
match address IPSEC_ACl_HUB1_AND_SPOKE1
set transform-set GOST_ENCRYPT_AND_INTEGRITY_MGM
set security-association lifetime kilobytes 4294967295
set peer 172.16.100.2
set dead-connection history off
!
crypto map L3VPN 1 ipsec-isakmp
match address IPSEC_ACl_HUB1_AND_SPOKE1_MGMT
set transform-set GOST_ENCRYPT_AND_INTEGRITY_IMIT
set security-association lifetime kilobytes 4294967295
set peer 172.16.100.2
set dead-connection history off
!
interface DP0
crypto map L2VPN
crypto ipsec stream-id 1000
!
interface DP1
crypto map L2VPN
crypto ipsec stream-id 1001
!
interface DP2
crypto map L2VPN
crypto ipsec stream-id 1002
!
interface DP3
crypto map L2VPN
crypto ipsec stream-id 1003
!
interface DP4
crypto map L2VPN
crypto ipsec stream-id 1004
!
interface DP5
crypto map L2VPN
crypto ipsec stream-id 1005
!
interface DP6
crypto map L2VPN
crypto ipsec stream-id 1006
!
interface DP7
crypto map L2VPN
crypto ipsec stream-id 1007
!
interface DP8
crypto map L2VPN
crypto ipsec stream-id 1008
!
interface DP9
crypto map L2VPN
crypto ipsec stream-id 1009
!
interface DP10
crypto map L2VPN
crypto ipsec stream-id 1010
!
interface DP11
crypto map L2VPN
crypto ipsec stream-id 1011
!
interface DP12
crypto map L2VPN
crypto ipsec stream-id 1012
!
interface DP13
crypto map L2VPN
crypto ipsec stream-id 1013
!
interface DP14
crypto map L2VPN
crypto ipsec stream-id 1014
!
interface DP15
crypto map L2VPN
crypto ipsec stream-id 1015
!
interface DP16
crypto map L2VPN
crypto ipsec stream-id 1016
!
interface DP17
crypto map L2VPN
crypto ipsec stream-id 1017
!
interface DP18
crypto map L2VPN
crypto ipsec stream-id 1018
!
interface DP19
crypto map L2VPN
crypto ipsec stream-id 1019
!
interface DP20
crypto map L2VPN
crypto ipsec stream-id 1020
!
interface DP21
crypto map L2VPN
crypto ipsec stream-id 1021
!
interface DP22
crypto map L2VPN
crypto ipsec stream-id 1022
!
interface DP23
crypto map L2VPN
crypto ipsec stream-id 1023
!
interface DP24
crypto map L2VPN
crypto ipsec stream-id 1024
!
interface DP25
crypto map L2VPN
crypto ipsec stream-id 1025
!
interface DP26
crypto map L2VPN
crypto ipsec stream-id 1026
!
interface DP27
crypto map L2VPN
crypto ipsec stream-id 1027
!
interface DP28
crypto map L2VPN
crypto ipsec stream-id 1028
!
interface DP29
crypto map L2VPN
crypto ipsec stream-id 1029
!
interface DP30
crypto map L2VPN
crypto ipsec stream-id 1030
!
interface DP31
crypto map L2VPN
crypto ipsec stream-id 1031
!
interface DP32
crypto map L2VPN
crypto ipsec stream-id 1032
!
interface DP33
crypto map L2VPN
crypto ipsec stream-id 1033
!
interface DP34
crypto map L2VPN
crypto ipsec stream-id 1034
!
interface DP35
crypto map L2VPN
crypto ipsec stream-id 1035
!
interface vEthernet0
description WAN
ip address 172.16.1.2 255.255.255.0
crypto map L3VPN
mtu 9000
!
interface vEthernet1
no ip address
mtu 9000
!
!
ip route 0.0.0.0 0.0.0.0 172.16.1.1
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group ROOTCA http://172.16.101.15/certcrl.crl
crl download time 60
crypto pki certificate chain s-terra_technological_trustpoint
certificate 58E026BFD6D625BE4582C16C6189C183
...
AD4F8901771632E0A0AF83
quit
!
end
2. Конфигурация LSP:
# This is automatically generated LSP
#
# Conversion Date/Time: Mon Jun 8 19:34:10 2020
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Mon Jun 8 19:34:10 2020 (user: cscons)"
Version = LSP_4_3
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 172.16.1.1
)
)
FirewallParameters(
TCPSynSentTimeout = 30
TCPFinTimeout = 5
TCPClosedTimeout = 30
TCPSynRcvdTimeout = 30
TCPEstablishedTimeout = 3600
TCPHalfOpenLow = 400
TCPHalfOpenMax = 500
TCPSessionRateLow = 400
TCPSessionRateMax = 500
)
IKETransform crypto:isakmp:policy:1
(
CipherAlg = "G2814789CPRO1-K256-CBC-65534"
HashAlg = "GR341112_256TC26-65128"
GroupID = VKO2_1B
RestrictAuthenticationTo = GOST_SIGN
LifetimeSeconds = 86400
)
ESPProposal GOST_ENCRYPT_AND_INTEGRITY_MGM:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "GR341215K-K352-MGM-251"
LifetimeSeconds = 3600
LifetimeKilobytes = 4294967295
)
)
ESPProposal GOST_ENCRYPT_AND_INTEGRITY_IMIT:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4294967295
)
)
IKEParameters(
FragmentSize = 576
SALifetimeDelta = 50
InitiatorSessionsMax = 100
ResponderSessionsMax = 100
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:L2VPN:1$L3VPN:1
(
IKEPeerIPFilter = 172.16.100.2
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 3
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IPsecAction IPsecAction:L2VPN:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 172.16.100.2
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( GOST_ENCRYPT_AND_INTEGRITY_MGM:ESP )
NoDeadConnectionHistory = TRUE
IKERule = IKERule:L2VPN:1$L3VPN:1
)
IPsecAction IPsecAction:L3VPN:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 172.16.100.2
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( GOST_ENCRYPT_AND_INTEGRITY_IMIT:ESP )
NoDeadConnectionHistory = TRUE
IKERule = IKERule:L2VPN:1$L3VPN:1
)
const IPsecPolicy:L2VPN = FilterChain (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 172.16.1.2
DestinationIP = 172.16.100.2
ProtocolID = 97
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:L2VPN:1 >
LogEventID = "IPsec:Protect:L2VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
)
)
FilterChain IPsecPolicy:L2VPN:1000 (
+IPsecPolicy:L2VPN
StreamID = 1000
)
FilterChain IPsecPolicy:L2VPN:1001 (
+IPsecPolicy:L2VPN
StreamID = 1001
)
FilterChain IPsecPolicy:L2VPN:1002 (
+IPsecPolicy:L2VPN
StreamID = 1002
)
FilterChain IPsecPolicy:L2VPN:1003 (
+IPsecPolicy:L2VPN
StreamID = 1003
)
FilterChain IPsecPolicy:L2VPN:1004 (
+IPsecPolicy:L2VPN
StreamID = 1004
)
FilterChain IPsecPolicy:L2VPN:1005 (
+IPsecPolicy:L2VPN
StreamID = 1005
)
FilterChain IPsecPolicy:L2VPN:1006 (
+IPsecPolicy:L2VPN
StreamID = 1006
)
FilterChain IPsecPolicy:L2VPN:1007 (
+IPsecPolicy:L2VPN
StreamID = 1007
)
FilterChain IPsecPolicy:L2VPN:1008 (
+IPsecPolicy:L2VPN
StreamID = 1008
)
FilterChain IPsecPolicy:L2VPN:1009 (
+IPsecPolicy:L2VPN
StreamID = 1009
)
FilterChain IPsecPolicy:L2VPN:1010 (
+IPsecPolicy:L2VPN
StreamID = 1010
)
FilterChain IPsecPolicy:L2VPN:1011 (
+IPsecPolicy:L2VPN
StreamID = 1011
)
FilterChain IPsecPolicy:L2VPN:1012 (
+IPsecPolicy:L2VPN
StreamID = 1012
)
FilterChain IPsecPolicy:L2VPN:1013 (
+IPsecPolicy:L2VPN
StreamID = 1013
)
FilterChain IPsecPolicy:L2VPN:1014 (
+IPsecPolicy:L2VPN
StreamID = 1014
)
FilterChain IPsecPolicy:L2VPN:1015 (
+IPsecPolicy:L2VPN
StreamID = 1015
)
FilterChain IPsecPolicy:L2VPN:1016 (
+IPsecPolicy:L2VPN
StreamID = 1016
)
FilterChain IPsecPolicy:L2VPN:1017 (
+IPsecPolicy:L2VPN
StreamID = 1017
)
FilterChain IPsecPolicy:L2VPN:1018 (
+IPsecPolicy:L2VPN
StreamID = 1018
)
FilterChain IPsecPolicy:L2VPN:1019 (
+IPsecPolicy:L2VPN
StreamID = 1019
)
FilterChain IPsecPolicy:L2VPN:1020 (
+IPsecPolicy:L2VPN
StreamID = 1020
)
FilterChain IPsecPolicy:L2VPN:1021 (
+IPsecPolicy:L2VPN
StreamID = 1021
)
FilterChain IPsecPolicy:L2VPN:1022 (
+IPsecPolicy:L2VPN
StreamID = 1022
)
FilterChain IPsecPolicy:L2VPN:1023 (
+IPsecPolicy:L2VPN
StreamID = 1023
)
FilterChain IPsecPolicy:L2VPN:1024 (
+IPsecPolicy:L2VPN
StreamID = 1024
)
FilterChain IPsecPolicy:L2VPN:1025 (
+IPsecPolicy:L2VPN
StreamID = 1025
)
FilterChain IPsecPolicy:L2VPN:1026 (
+IPsecPolicy:L2VPN
StreamID = 1026
)
FilterChain IPsecPolicy:L2VPN:1027 (
+IPsecPolicy:L2VPN
StreamID = 1027
)
FilterChain IPsecPolicy:L2VPN:1028 (
+IPsecPolicy:L2VPN
StreamID = 1028
)
FilterChain IPsecPolicy:L2VPN:1029 (
+IPsecPolicy:L2VPN
StreamID = 1029
)
FilterChain IPsecPolicy:L2VPN:1030 (
+IPsecPolicy:L2VPN
StreamID = 1030
)
FilterChain IPsecPolicy:L2VPN:1031 (
+IPsecPolicy:L2VPN
StreamID = 1031
)
FilterChain IPsecPolicy:L2VPN:1032 (
+IPsecPolicy:L2VPN
StreamID = 1032
)
FilterChain IPsecPolicy:L2VPN:1033 (
+IPsecPolicy:L2VPN
StreamID = 1033
)
FilterChain IPsecPolicy:L2VPN:1034 (
+IPsecPolicy:L2VPN
StreamID = 1034
)
FilterChain IPsecPolicy:L2VPN:1035 (
+IPsecPolicy:L2VPN
StreamID = 1035
)
FilterChain IPsecPolicy:L3VPN (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.254.0/24
DestinationIP = 192.168.253.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:L3VPN:1 >
LogEventID = "IPsec:Protect:L3VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1_MGMT"
)
)
NetworkInterface (
LogicalName = "DP0"
IPsecPolicy = IPsecPolicy:L2VPN:1000
)
NetworkInterface (
LogicalName = "DP1"
IPsecPolicy = IPsecPolicy:L2VPN:1001
)
NetworkInterface (
LogicalName = "DP2"
IPsecPolicy = IPsecPolicy:L2VPN:1002
)
NetworkInterface (
LogicalName = "DP3"
IPsecPolicy = IPsecPolicy:L2VPN:1003
)
NetworkInterface (
LogicalName = "DP4"
IPsecPolicy = IPsecPolicy:L2VPN:1004
)
NetworkInterface (
LogicalName = "DP5"
IPsecPolicy = IPsecPolicy:L2VPN:1005
)
NetworkInterface (
LogicalName = "DP6"
IPsecPolicy = IPsecPolicy:L2VPN:1006
)
NetworkInterface (
LogicalName = "DP7"
IPsecPolicy = IPsecPolicy:L2VPN:1007
)
NetworkInterface (
LogicalName = "DP8"
IPsecPolicy = IPsecPolicy:L2VPN:1008
)
NetworkInterface (
LogicalName = "DP9"
IPsecPolicy = IPsecPolicy:L2VPN:1009
)
NetworkInterface (
LogicalName = "DP10"
IPsecPolicy = IPsecPolicy:L2VPN:1010
)
NetworkInterface (
LogicalName = "DP11"
IPsecPolicy = IPsecPolicy:L2VPN:1011
)
NetworkInterface (
LogicalName = "DP12"
IPsecPolicy = IPsecPolicy:L2VPN:1012
)
NetworkInterface (
LogicalName = "DP13"
IPsecPolicy = IPsecPolicy:L2VPN:1013
)
NetworkInterface (
LogicalName = "DP14"
IPsecPolicy = IPsecPolicy:L2VPN:1014
)
NetworkInterface (
LogicalName = "DP15"
IPsecPolicy = IPsecPolicy:L2VPN:1015
)
NetworkInterface (
LogicalName = "DP16"
IPsecPolicy = IPsecPolicy:L2VPN:1016
)
NetworkInterface (
LogicalName = "DP17"
IPsecPolicy = IPsecPolicy:L2VPN:1017
)
NetworkInterface (
LogicalName = "DP18"
IPsecPolicy = IPsecPolicy:L2VPN:1018
)
NetworkInterface (
LogicalName = "DP19"
IPsecPolicy = IPsecPolicy:L2VPN:1019
)
NetworkInterface (
LogicalName = "DP20"
IPsecPolicy = IPsecPolicy:L2VPN:1020
)
NetworkInterface (
LogicalName = "DP21"
IPsecPolicy = IPsecPolicy:L2VPN:1021
)
NetworkInterface (
LogicalName = "DP22"
IPsecPolicy = IPsecPolicy:L2VPN:1022
)
NetworkInterface (
LogicalName = "DP23"
IPsecPolicy = IPsecPolicy:L2VPN:1023
)
NetworkInterface (
LogicalName = "DP24"
IPsecPolicy = IPsecPolicy:L2VPN:1024
)
NetworkInterface (
LogicalName = "DP25"
IPsecPolicy = IPsecPolicy:L2VPN:1025
)
NetworkInterface (
LogicalName = "DP26"
IPsecPolicy = IPsecPolicy:L2VPN:1026
)
NetworkInterface (
LogicalName = "DP27"
IPsecPolicy = IPsecPolicy:L2VPN:1027
)
NetworkInterface (
LogicalName = "DP28"
IPsecPolicy = IPsecPolicy:L2VPN:1028
)
NetworkInterface (
LogicalName = "DP29"
IPsecPolicy = IPsecPolicy:L2VPN:1029
)
NetworkInterface (
LogicalName = "DP30"
IPsecPolicy = IPsecPolicy:L2VPN:1030
)
NetworkInterface (
LogicalName = "DP31"
IPsecPolicy = IPsecPolicy:L2VPN:1031
)
NetworkInterface (
LogicalName = "DP32"
IPsecPolicy = IPsecPolicy:L2VPN:1032
)
NetworkInterface (
LogicalName = "DP33"
IPsecPolicy = IPsecPolicy:L2VPN:1033
)
NetworkInterface (
LogicalName = "DP34"
IPsecPolicy = IPsecPolicy:L2VPN:1034
)
NetworkInterface (
LogicalName = "DP35"
IPsecPolicy = IPsecPolicy:L2VPN:1035
)
NetworkInterface (
LogicalName = "vEthernet0"
IPsecPolicy = IPsecPolicy:L3VPN
)
3. Конфигурация сетевых интерфейсов ОС.
3.1. Файл /etc/network/interfaces:
############################################################
# CAUTION: lines under special marker: ###netifcfg-*###
# contains autogenerated information. You can add/modify
# lines outside of those markers
############################################################
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
# loopback configuration
auto lo
iface lo inet loopback
# Mgmt interface.
auto eth2
iface eth2 inet static
address 192.168.254.1
netmask 255.255.255.0
###netifcfg-begin###
###netifcfg-end###
4. Конфигурация L2 (data plane).
4.1. Файл (закомментированные параметры не приведены) /opt/VPNagent/etc/ipsm_dpdk.cfg:
[PERFORMANCE]
threads = 36
no_max_freq = yes
[EAL]
coremask = 0xfffffffffff
[MISC]
print_stats = yes
stats_file = /tmp/pkt_stats.txt
rte_log_file = /tmp/rte_log.txt
[PORT0]
pci_id = 03:00.0
outer = yes
l3_ip = 172.16.1.2
l3_mask = 24
gw_ip = 172.16.1.1
pair_port = 1
mtu = 9000
dp_frag_ip = 172.16.100.2
dp_frag_natt = yes
[PORT1]
pci_id = 0b:00.0
l2_src_ip = 172.16.1.2
l2_dst_ip = 172.16.100.2
pair_port = 0
mtu = 9000
pmtud = 8900
mssfix = 8860