Построение отказоустойчивого решения (кластеры с обеих сторон) на базе протокола VRRP с настройкой через CLI
Настоящий документ содержит описание способа совместного использования Продуктов компании ООО «С-Терра СиЭсПи» и Продуктов третьих производителей.
ООО «С-Терра СиЭсПи» осуществляет сопровождение настоящего сценария в части настроек Продуктов Компании. Упоминание наименований, продуктов, торговых марок третьих организаций исключительно неформально и не является поддержкой, рекомендацией либо рекламой. ООО «С-Терра СиЭсПи» не несет какой-либо ответственности в отношении работоспособности и использования этих Продуктов. Документ имеет статус вспомогательного материала, который может быть использован технологическими партнерами, компаниями-интеграторами, при разработке собственных решений.
Решения, разработанные на базе данного сценария, могут применяться в действующих сетях/системах только после тестовой и/или опытной эксплуатации.
Дополнительные файлы:
keepalived_1.2.24~sterra-5_amd64.zip
keepalived_1.2.24~sterra-5_i386.zip
Сценарий иллюстрирует построение защищенного соединения между двумя подсетями SN1 и SN2. SN1 – 192.168.168.1.0/24, защищается парой шлюзов безопасности «С-Терра Шлюз», объединенными в кластер № 1; SN2 – 192.168.2.0/24, защищается парой шлюзов безопасности GW3 и GW4, так же объединенными в кластер № 2. Устройства Host1 и Host2 смогут общаться между собой по защищенному каналу (VPN). Отказоустойчивость кластеров реализована с помощью протокола VRRP.
В рамках данного сценария для аутентификации партнеры будут использовать сертификаты. В качестве криптопровайдера будет использована криптографическая библиотека, разработанная компанией «С-Терра СиЭсПи». Шлюзы безопасности «С-Терра Шлюз» версии 4.2.
Параметры защищенного соединения:
Параметры протокола IKE:
· Аутентификация при помощи цифровых сертификатов, алгоритм подписи – ГОСТ Р 34.10-2012;
· Алгоритм шифрования – ГОСТ 28147-89 (ключ 256 бит);
· Алгоритм вычисления хеш-функции – ГОСТ Р 34.11-2012 ТК26 (ключ 256 бит);
· Алгоритм выработки общего ключа (аналог алгоритма Диффи-Хеллмана) – VKO_GOSTR3410_2012_256 (ключ 256 бит).
Параметры протокола ESP:
· Комбинированный алгоритм шифрования и имитозащиты (контроль целостности) – ESP_GOST-4M-IMIT (ключ 256 бит).
Схема стенда (Рисунок 1):
Рисунок 1
Шлюзы GW1 и GW2 будут объединены в кластер № 1, GW3 и GW4 – в кластер № 2. При использовании протокола VRRP шлюзы каждого кластера имеют разделяемый виртуальный адрес (Virtual IP на схеме) в защищаемом сегменте сети (SN1, SN2) и публичном (PUB1, PUB2). Один из шлюзов является главным (MASTER), а второй – второстепенным (BACKUP). В один момент времени виртуальный адрес может быть только на шлюзе, который находится в состоянии MASTER. Трафик, идущий на виртуальный адрес, обрабатывает MASTER. Если по причинам, описанным ниже, главный шлюз становится недоступным, его состояние меняется с MASTER на FAULT, состояние второстепенного шлюза меняется с BACKUP на MASTER, и второстепенный шлюз продолжает заниматься обработкой трафика. При возвращении в строй главного шлюза, трафик снова будет обрабатываться на нем. Обнаружение недоступности шлюза, находящегося в состоянии MASTER, происходит благодаря обмену служебными пакетами протокола VRRP (VRRP Advertisement messages).
Также в документе рассматривается случай, когда протокол VRRP работает только на одном интерфейсе. В этой ситуации конфигурирование VRRP происходит вручную без использования Cisco-like консоли (см. пункт Особенности работы VRRP на одном интерфейсе).
Стенд обрабатывает следующие типы отказов:
· отключение питания;
· выход из строя аппаратной платформы;
· отказ сетевого интерфейса;
· отказ порта на коммутационном оборудовании;
· отказ демона, отвечающего за шифрование трафика.
Важно! На портах коммутатора (не изображены на схеме), к которым подключаются сетевые интерфейсы нод кластера, должен быть включен режим portfast. В противном случае могут происходить потери gARP пакетов от ноды в состоянии MASTER.
Начальная настройка шлюза в S-Terra administrative console при первом включении состоит из следующих действий:
· Пройдите процедуру аутентификации (пользователь по умолчанию – administrator, пароль по умолчанию – s-terra).
· Пройдите процедуру инициализации (команда initialize).
· Активируйте политику драйвера по умолчанию (команда run csconf_mgr activate).
· Команда run csconf_mgr activate применяет текущую политику драйвера. При первичной настройке шлюза применится политика драйвера по умолчанию, при которой прохождение трафика не блокируется.
· Для доступа через SSH установите пароль на пользователя root (команда run passwd).
Более подробно консоль разграничения доступа S-Terra administrative console описана в документации.
Обновление пакета на «С-Терра Шлюз», где класс СКЗИ соответствует КС3 (см. значение параметра CLASS в файле /etc/image_version) невозможно, - соответственно, нужно использовать пакет keepalived, входящий в состав ОС.
Если у Вас «С-Терра Шлюз» на базе SPDS (см. значение параметра PLATFORM в файле /etc/image_version), то обновление выполняется иначе, будьте внимательны.
Если у Вас «С-Терра Шлюз» с АПМДЗ, то не забудьте после обновления пакета пересчитать хеш суммы. Описание процедуры смотрите в документации производителя АПМДЗ.
1. Перейдите в linux bash (команда system в консоли разграничения доступа S-Terra administrative console):
administrator@sterragate] system
Entering system shell...
2. Проверьте текущую версию пакета keepalived:
root@sterragate:~# dpkg -l | grep keepalived
ii keepalived 1.2.24~sterra~rc006 amd64 Open source implementation of VRRP protocol
Если версия 1.2.24~sterra~rc006 или 1.2.24~sterra-4, то рекомендуется обновить пакет keepalived, реализующий протокол VRRP, до версии keepalived_1.2.24~sterra-5 (получить пакет можно на портале документации http://doc.s-terra.ru ->Типовые сценарии применения -> Версия 4.2).
3. Загрузите пакет keepalived_1.2.24~sterra-5 соответствующий разрядности ОС шлюза в директорию /root (для просмотра разрядности воспользуйтесь командой uname -a).
Если сеть еще не настроена, то доставить пакет на шлюз можно при помощи USB Flash накопителя. При подключении USB Flash накопителя он будет автоматически смонтирован в директорию /media/<ID>.
4. Обновление пакета.
4.1. Если у Вас «С-Терра Шлюз» на базе SPDS (см. значение параметра PLATFORM в файле /etc/image_version), то обновление выполняется следующим образом, например для 64-разрядной ОС:
В данном случае обновляются только файлы пакета, без обновления версии пакета в базе пакетов (то есть после обновления в базе пакетов будет старая версия, а по факту файлы от нового пакета).
root@sterragate:~# dpkg-deb -x keepalived_1.2.24~sterra-5_amd64.deb /
root@sterragate:~# chmod u+x /etc/keepalived/scripts/*
4.2. Если у Вас «С-Терра Шлюз» без SPDS, то обновление выполняется следующим образом, например для 64-разрядной ОС:
root@sterragate:~# dpkg -i keepalived_1.2.24~sterra-5_amd64.deb
(Reading database ... 18014 files and directories currently installed.)
Preparing to replace keepalived 1.2.24~sterra~rc006 (using keepalived_1.2.24~sterra-5_amd64.deb) ...
Unpacking replacement keepalived ...
Setting up keepalived (1.2.24~sterra-5) ...
Installing new version of config file /etc/init.d/keepalived ...
Installing new version of config file /etc/default/keepalived ...
Installing new version of config file /etc/keepalived/scripts/for_cs_console ...
5. Перейдите обратно в консоль разграничения доступа S-Terra administrative console:
root@sterragate:~# exit
logout
Leaving system shell...
administrator@sterragate]
Если у Вас «С-Терра Шлюз» с АПМДЗ, то не забудьте пересчитать хеш суммы. Описание процедуры смотрите в документации производителя АПМДЗ.
1. Перейдите из консоли разграничения доступа (S-Terra Administrative console) в консоль настройки шлюза (cisco-like интерфейс). По умолчанию имя пользователя – cscons, пароль – csp:
administrator@sterragate] configure
sterragate login: cscons
Password:
...
sterragate#
2. Перейдите в режим настройки:
sterragate#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3. В настройках интерфейсов задайте IP-адреса:
GW1(config)#interface GigabitEthernet 0/0
GW1(config-if)#ip address 192.168.1.1 255.255.255.0
GW1(config-if)#no shutdown
GW1(config-if)#exit
GW1(config)#interface GigabitEthernet 0/1
GW1(config-if)#ip address 10.1.1.2 255.255.255.0
GW1(config-if)#no shutdown
GW1(config-if)#exit
4. Задайте адрес шлюза по умолчанию:
GW1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1
5. Выйдите из cisco-like интерфейса:
sterragate(config)#end
sterragate#exit
Дальнейшую настройку можно проводить через SSH подключение.
Важно! Среда передачи в этом случае должна быть доверенной. Описание создания доверенной среды описано в соответствующей инструкции.
В данном сценарии для аутентификации используются сертификаты. Для корректной работы необходимо зарегистрировать доверенный сертификат УЦ и локальный сертификат, выданный данным УЦ.
1. Подключитесь по SSH к шлюзу.
2. Установите правильное системное время.
Например:
root@sterragate:~# date -s "01/31/2017 15:00"
Tue Jan 31 15:00:00 MSK 2017
Данная запись соответствует 31 января 2017 года 15:00.
В данном случае формат даты указывается в виде месяц/день/год (ММ/ДД/ГГГГ).
Для автоматической настройки правильного времени рекомендуется настроить NTP-клиент по соответствующей инструкции.
3. Создайте папку /certs:
root@sterragate:~# mkdir /certs
4. Перенесите доверенный сертификат УЦ на шлюз.
Способы передачи данных на шлюз описаны в документации.
5. С помощью утилиты cert_mgr зарегистрируйте сертификат в базе продукта:
root@sterragate:~# cert_mgr import -f /certs/ca.cer -t
1 OK C=RU,O=S-Terra,CN=RootCA
Ключ -t в данной команде указывает на то, что импортируемый сертификат – доверенный сертификат УЦ.
Для регистрации локального сертификата в базе продукта выполните следующие действия:
1. Сформируйте запрос на сертификат при помощи утилиты cert_mgr:
root@sterragate:~# cert_mgr create -subj "C=RU,O=S-Terra CSP,OU=Research,CN=GW1" -GOST_R341012_256 -fb64 /home/gw_req
· Ключ -subj <DN> задает поля сертификата.
· Ключ -GOST_R341012_256 предполагает использование ГОСТ Р 34.10-2012. На УЦ для его поддержки должно быть установлено СКЗИ «КриптоПро CSP» версии 4.0 или новее. При необходимости, есть возможность использовать старый алгоритм (ГОСТ Р 34.10-94), который задается ключом -GOST_R3410EL.
· Ключ -fb64 <путь до файла> позволяет сохранить запрос в файл по указанному пути.
2. Передайте полученный запрос сертификата на УЦ. Процедура выдачи сертификата на УЦ по запросу описана в документации.
3. Зарегистрируйте локальный сертификат в базе продукта, применив утилиту cert_mgr:
root@sterragate:~# cert_mgr import -f /certs/GW1.cer
1 OK C=RU,O=S-Terra CSP,OU=Research,CN=GW1
4. Убедитесь, что сертификаты импортированы успешно:
root@sterragate:~# cert_mgr show
Found 2 certificates. No CRLs found.
1 Status: trusted C=RU,O=S-Terra,CN=RootCA
2 Status: local C=RU,O=S-Terra CSP,OU=Research,CN=GW1
После регистрации сертификатов необходимо создать политику безопасности для шлюза GW1
1. Для входа в консоль запустите cs_console:
root@sterragate:~# cs_console
sterragate>enable
Password:
Пароль по умолчанию – csp.
Важно! Пароль по умолчанию необходимо сменить.
2. Перейдите в режим настройки:
sterragate#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
3. Смените пароль по умолчанию:
sterragate(config)#username cscons password <пароль>
4. Смените название шлюза:
sterragate(config)#hostname GW1
5. Задайте тип идентификации:
GW1(config)#crypto isakmp identity dn
В данном сценарии для идентификации будет использоваться поле DN сертификата.
6. Задайте параметры DPD (dead peer detection)
GW1(config)#crypto isakmp keepalive 10 2
GW1(config)#crypto isakmp keepalive retry-count 5
Если в течение 10 секунд отсутствует входящий трафик в IPsec туннеле, то с интервалом в 2 секунды посылается 5 keepalive-пакетов в IKE туннеле, чтобы удостовериться в работоспособности туннеля. Если партнер не отвечает на keepalive-пакеты, то существующий IKE туннель переходит в состояние disabled, а связанные с ним IPsec туннели удаляются. В случае наличия исходящего трафика происходит попытка создать новый IKE туннель.
7. Задайте параметры для IKE:
GW1(config)#crypto isakmp policy 1
GW1(config-isakmp)#authentication gost-sig
GW1(config-isakmp)#encr gost
GW1(config-isakmp)#hash gost341112-256-tc26
GW1(config-isakmp)#group vko2
GW1(config-isakmp)#exit
8. Задайте параметры для IPsec:
GW1(config)#crypto ipsec transform-set TSET esp-gost28147-4m-imit
GW1(cfg-crypto-trans)#exit
9. Опишите трафик, который планируется защищать. Для этого создайте расширенный список доступа:
GW1(config)#ip access-list extended LIST
GW1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
GW1(config-ext-nacl)#exit
10. Создайте крипто-карту:
GW1(config)#crypto map CMAP 1 ipsec-isakmp
GW1(config-crypto-map)#match address LIST
GW1(config-crypto-map)#set transform-set TSET
GW1(config-crypto-map)#set peer 10.1.2.10
GW1(config-crypto-map)#exit
11. Привяжите крипто-карту к интерфейсу, на котором будет туннель:
GW1(config)#interface GigabitEthernet 0/1
GW1(config-if)#crypto map CMAP
GW1(config-if)#exit
12. Настройте получение списка отозванных сертификатов (CRL) по HTTP:
GW1(config)#crypto pki trustpoint s-terra_technological_trustpoint
GW1(ca-trustpoint)#crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl
GW1(ca-trustpoint)#exit
Предполагается, что CRL выкладывается на общедоступное место (доступ к которому обеспечен без использования IPsec) для всех шлюзов. При указании имени домена, вместо IP-адреса, необходимо настроить адрес DNS-сервера в системном файле /etc/resolv.conf.
Также необходимо учитывать, что у CRL есть срок действия и нужно обеспечивать своевременное их обновление в данном общедоступном месте.
По умолчанию CRL будет запрашиваться раз в сутки (раз в 1440 минут), для изменения интервала запросов можно воспользоваться командой crl download time <интервал в минутах>.
При необходимости отключения CRL (не рекомендуется отключать CRL) воспользуйтесь командой revocation-check none.
13. Настройте VRRP:
Ниже продемонстрирован пример настроек для случая, когда VRRP должен работать и на внешнем, и на внутреннем интерфейсах. Если требуется настроить VRRP на одном интерфейсе, то настройки данного пункта следует пропустить и руководствоваться написанным в пункте «Особенности работы VRRP на одном интерфейсе».
GW1(config)#interface GigabitEthernet 0/0
GW1(config-if)#vrrp 51 ip 192.168.1.10 255.255.255.0
GW1(config-if)#vrrp 51 priority 100
GW1(config-if)#vrrp 51 timers advertise 3
GW1(config-if)#vrrp 51 timers garp 5
GW1(config-if)#exit
GW1(config)#interface GigabitEthernet 0/1
GW1(config-if)#vrrp 52 ip 10.1.1.10 255.255.255.0
GW1(config-if)#vrrp 52 priority 100
GW1(config-if)#vrrp 52 timers advertise 3
GW1(config-if)#vrrp 52 timers garp 5
GW1(config-if)#exit
GW1(config)#vrrp ip route 10.1.2.0 255.255.255.0 10.1.1.1 src 10.1.1.10
GW1(config)#vrrp notify master
GW1(config)#vrrp notify backup
GW1(config)#vrrp notify fault
Поддержку протокола VRRP обеспечивает пакет keepalived.
Команды в режиме конфигурирования интерфейса:
· vrrp <id> <команда> – id определяет VRRP VRID (идентификатор виртуального маршрутизатора); данное поле присутствует в advertisement-пакетах; значения VRID в одном широковещательном домене у разных кластеров должны различаться;
· vrrp <id> ip <IP-адрес> – задает виртуальный IP-адрес на интерфейсе;
· vrrp <id> priority <приоритет> – задает приоритет шлюза; шлюз с более высоким приоритетом переходит в состояние MASTER;
· vrrp <id> timers advertise <N секунд> – задает интервал отправки advertisement-пакетов. значение по умолчанию – 1 секунда; рекомендуется использовать значение 3 с.;
· vrrp <id> authentication <пароль> – пароль для аутентификации advertisement-пакетов. Пароль должен быть не более 8 символов. Не используйте в пароле знак пробела ( ), кавычек (""), или знак восклицательного знака (!) первым символом. Смените пароль по умолчанию;
· vrrp <id> preempt delay minimum <N секунд> – задает задержку перед повторной отправкой gratuitous ARP после перехода в состояние MASTER; значение по умолчанию – 5 секунд;
· vrrp <id> timers garp <N секунд> – задает интервал регулярной отсылки gratuitous ARP в состоянии MASTER. По умолчанию выключено; рекомендуется использовать значение 5 с;
Команды в режиме глобального конфигурирования:
· vrrp notify <master|backup|fault> – включает выполнение скриптов при смене состояния (по умолчанию папка со скриптами – /etc/keepalived/scripts).
· vrrp ip route <IP-адрес> <маска> <IP-адрес next-hop> src <виртуальный IP-адрес> – задает маршрут для подмены физического IP-адреса на виртуальный/кластерный в локальных пакетах шлюза (при открытии сокета), например, чтобы в IKE/ESP пакетах в качестве IP-адреса источника был кластерный IP-адрес (для подмены IP-адреса источника в транзитных пакетах на кластерный нужно использовать source NAT); данный маршрут добавляется в систему при переходе шлюза в состояние MASTER; при переходе в состояние BACKUP или FAULT данный маршрут удаляется.
Важно! При пересечении маршрутов, задаваемых командами ip route и vrrp ip route, маршруты, задаваемые командой vrrp ip route, должны быть более узкими, чем маршруты, задаваемые с помощью команды ip route. Совместное задание одинаковых маршрутов (например, ip route 0.0.0.0 0.0.0.0 10.1.1.1 совместно с vrrp ip route 0.0.0.0 0.0.0.0 10.1.1.1 src 10.1.1.10) может привести к неработоспособности схемы.
При выходе из конфигурационного режима настройки VRRP преобразуются в файл конфигурации keepalived (по умолчанию в файл /etc/keepalived/keepalived.conf).
При загрузке конфигурации в keepalived.conf автоматически добавляются следующие структуры:
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
и:
track_script {
chk_dead
}
Данные структуры отвечают за проверку работоспособности сервиса vpnsvc. Если сервис vpnsvc по каким-то причинам выгрузится, состояние шлюза изменится с MASTER|BACKUP на FAULT. После восстановления работы сервиса vpnsvc, состояние шлюза изменится с FAULT на MASTER|BACKUP.
14. Настройка устройства GW1 в cisco-like консоли завершена. При выходе из конфигурационного режима происходит загрузка конфигурации:
GW1(config)#end
GW1#exit
15. Необходимо настроить notify-скрипты (выполнение данных скриптов задается выше). В данном сценарии при переходе в состояние BACKUP или FAULT будет добавляться маршрут в подсеть SN2 (192.168.2.0/24) через кластерный адрес в защищаемой сети SN1 (192.168.1.10), а при переходе в MASTER данный маршрут будет удаляться (это нужно для того, чтобы нода в состоянии BACKUP или FAULT имела доступ к подсети 192.168.2.0/24 через ноду, находящуюся в состоянии MASTER).
15.1. Измените файл /etc/keepalived/scripts/notify_master (при переходе в MASTER удалять маршрут в подсеть SN2):
root@GW1:~# vi /etc/keepalived/scripts/notify_master
#!/bin/bash
# Script to run during MASTER transit
ip route del 192.168.2.0/24 via 192.168.1.10
exit 0
15.2. Измените файл /etc/keepalived/scripts/notify_backup (при переходе в BACKUP добавлять маршрут в подсеть SN2):
root@GW1:~# vi /etc/keepalived/scripts/notify_backup
#!/bin/bash
# Script to run during BACKUP transit
ip route add 192.168.2.0/24 via 192.168.1.10
exit 0
15.3. Измените файл /etc/keepalived/scripts/notify_fault (при переходе в FAULT добавлять маршрут в подсеть SN2):
root@GW1:~# vi /etc/keepalived/scripts/notify_fault
#!/bin/bash
# Script to run during FAULT transit
ip route add 192.168.2.0/24 via 192.168.1.10
exit 0
16. Виртуальные адреса на соответствующих интерфейсах шлюза добавятся автоматически, когда шлюз будет находиться в режиме MASTER:
ip address 192.168.1.10 255.255.255.255 secondary
ip address 10.1.1.10 255.255.255.255 secondary
В приложении представлены тексты конфигураций для шлюза GW1:
· текст cisco-like конфигурации;
· текст конфигурации keepalived.conf;
· текст скрипта /etc/keepalived/scripts/notify_master;
· текст скриптов /etc/keepalived/scripts/notify_backup и /etc/keepalived/scripts/notify_fault.
В случае если требуется настроить VRRP для работы только на одном интерфейсе то, настройку VRRP следует проводить непосредственно через конфигурационный файл /etc/keepalived/keepalived.conf. Любые настройки VRRP из Cisco-like следует убрать.
В противном случае данный пункт следует пропустить.
Применительно к данному сценарию, если требуется, чтобы VRRP работал только на внешнем интерфейсе, конфигурация /etc/keepalived/keepalived.conf будет выглядеть следующим образом:
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
vrrp_instance eth1_1 {
interface eth1
virtual_routes {
src 10.1.1.10 10.1.2.0/24 via 10.1.1.1
}
track_script {
chk_dead
}
virtual_ipaddress {
10.1.1.10.24
}
notify_master /etc/keepalived/scripts/notify_master
notify_backup /etc/keepalived/scripts/notify_backup
notify_fault /etc/keepalived/scripts/notify_fault
priority 100
advert_int 3
garp_master_refresh 5
virtual_router_id 1
}
Ниже приведено описание блоков в отдельности.
1. Скрипт, который каждую секунду проверяет работоспособность демона vpnsvc:
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
Если демон vpnsvc по каким-то причинам выгрузится, состояние шлюза изменится с BACKUP/MASTER на FAULT. После восстановления работы демона vpnsvc, состояние шлюза изменится с FAULT на BACKUP/MASTER.
2. Параметры VRRP процесса (vrrp_instance):
vrrp_instance eth1_1 {
interface eth1
virtual_routes {
src 10.1.1.10 10.1.2.0/24 via 10.1.1.1
}
track_script {
chk_dead
}
virtual_ipaddress {
10.1.1.10.24
}
notify_master /etc/keepalived/scripts/notify_master
notify_backup /etc/keepalived/scripts/notify_backup
notify_fault /etc/keepalived/scripts/notify_fault
priority 100
advert_int 3
garp_master_refresh 5
virtual_router_id 1
}
· interface ethN – интерфейс к которому происходит привязка VRRP-процесса.
· virtual_routes – блок, в котором можно указать какие маршруты нужно добавить при переходе в состояние MASTER и убрать при переходе в состояние BACKUP.
· track_script – блок, указывающий какие блоки vrrp_script будут выполняться в рамках данного VRRP процесса (см. пункт 1).
· virtual_ipaddress – задает виртуальный IP-адрес на интерфейсе (также является блоком).
· notify_master|backup|fault – настройки, отвечающие за выполнение скриптов при переходе в каждое из состояний. Требуется указать полный путь до каждого скрипта.
· priority n – приоритет маршрутизатора, шлюз с более высоким приоритетом переходит в состояние MASTER.
· advert_int n – интервал отправки advertisement-пакета n секунд.
· garp_master_refresh n – раз в n секунд посылать gratuitous ARP. Действует на шлюз в состоянии MASTER.
· virtual_router_id n – VRRP VRID (идентификатор виртуального маршрутизатора), данное поле присутствует в advertisement-пакетах. Значения virtual_router_id в одном бродкаст домене у разных кластеров должны различаться.
Также при необходимости в процесс можно добавить следующие параметры:
· auth_pass <пароль> – пароль для аутентификации advertisement-пакетов. Пароль должен быть не более 8 символов. Не используйте в пароле знак пробела ( ), кавычек (“”), или знак восклицательного знака (!) первым символом.
· preempt_delay n – после перезагрузки шлюза или демона keepalived будет пауза n секунд (от 0 до 1000) перед переходом в состояние MASTER. По умолчанию равен 0.
1. Внесите требуемые изменения в конфигурационный файл:
root@GW1:~# vim.timy /etc/keepalived/keepalived.conf
2. После внесения изменений в конфигурационный файл следует перезапустить демон keepalived и добавить его в автозагрузку:
root@GW1:~# service keepalived restart
root@GW1:~# update-rc.d keepalived enable
Настройка шлюза GW2 аналогична настройке шлюза GW1.
При конфигурировании VRRP параметр priority должен быть изменен с 100 до 50 (либо параметр с тем же названием в файле конфигураций keepalived).
Параметр priority сравнивается при выборе MASTER-а. При отказе шлюза GW1 состояние MASTER переходит к GW2. Когда отказ устранен, MASTER-ом становится снова GW1, так как у него приоритет выше. При одинаковых значениях priority обратного переключения не произойдет и GW2 останется в состоянии MASTER.
В приложении представлены тексты конфигураций для шлюза GW2:
· текст cisco-like конфигурации;
· текст конфигурации keepalived.conf;
· текст скрипта /etc/keepalived/scripts/notify_master;
· текст скриптов /etc/keepalived/scripts/notify_backup и /etc/keepalived/scripts/notify_fault.
Настройка кластера № 2, состоящего из шлюзов GW3 и GW4, производится аналогично настройке кластера № 1, состоящего из шлюзов GW1 и GW2.
В настройках VRRP укажите VRID (либо параметр virtual_router_id в файле конфигураций keepalived) отличным от параметров GW1 и GW2.
В приложении представлены тексты конфигураций для шлюза GW3:
· текст cisco-like конфигурации;
· текст конфигурации keepalived.conf;
· текст скрипта /etc/keepalived/scripts/notify_master;
· текст скриптов /etc/keepalived/scripts/notify_backup и /etc/keepalived/scripts/notify_fault.
Настройка кластера № 2, состоящего из шлюзов GW3 и GW4, производится аналогично настройке кластера № 1, состоящего из шлюзов GW1 и GW2.
В настройках VRRP укажите VRID (либо параметр virtual_router_id в файле конфигураций keepalived) отличным от параметров GW1 и GW2.
В приложении представлены тексты конфигураций для шлюза GW4:
· текст cisco-like конфигурации;
· текст конфигурации keepalived.conf;
· текст скрипта /etc/keepalived/scripts/notify_master;
· текст скриптов /etc/keepalived/scripts/notify_backup и /etc/keepalived/scripts/notify_fault.
На устройстве Router1 необходимо настроить соответствующие IP-адреса.
На устройстве Host1 задайте IP-адрес, а в качестве шлюза по умолчанию укажите виртуальный адрес кластера в защищаемом сегменте – 192.168.1.10.
На устройстве Host2 задайте IP-адрес, а в качестве шлюза по умолчанию укажите виртуальный адрес кластера в защищаемом сегменте – 192.168.2.10.
После того, как настройка всех устройств завершена, инициируйте создание защищенного соединения.
На устройстве Host2 выполните команду ping:
root@Host2:~# ping -c 5 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_req=1 ttl=62 time=388 ms
64 bytes from 192.168.1.100: icmp_req=2 ttl=62 time=0.708 ms
64 bytes from 192.168.1.100: icmp_req=3 ttl=62 time=0.658 ms
64 bytes from 192.168.1.100: icmp_req=4 ttl=62 time=0.552 ms
64 bytes from 192.168.1.100: icmp_req=5 ttl=62 time=0.624 ms
--- 192.168.1.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.552/78.223/388.573/155.175 ms
В результате выполнения этой команды между устройствами GW1 и GW3 будет установлен VPN туннель.
Убедиться в этом можно, выполнив на устройстве GW1 команду:
root@GW1:~# 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 (10.1.1.10,500)-(10.1.2.10,500) active 1732 1824
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 1 (192.168.1.0-192.168.1.255,*)-(192.168.2.0-192.168.2.255,*) * ESP tunn 440 440
Запустите бесконечный ping с обеих сторон и сделайте обрыв связи:
64 bytes from 192.168.2.100: icmp_req=49 ttl=62 time=0.503 ms
64 bytes from 192.168.2.100: icmp_req=50 ttl=62 time=0.477 ms
64 bytes from 192.168.2.100: icmp_req=51 ttl=62 time=0.477 ms
64 bytes from 192.168.2.100: icmp_req=52 ttl=62 time=0.490 ms
...
64 bytes from 192.168.2.100: icmp_req=64 ttl=62 time=0.547 ms
64 bytes from 192.168.2.100: icmp_req=65 ttl=62 time=0.481 ms
64 bytes from 192.168.2.100: icmp_req=66 ttl=62 time=0.509 ms
64 bytes from 192.168.2.100: icmp_req=67 ttl=62 time=0.511 ms
В зависимости от типа отказа, направления трафика, количества туннелей переключение может длиться от нескольких секунд до десятков секунд. За это время туннель установится уже с другим шлюзом.
Чтобы разобраться на каком этапе возникла ошибка можно воспользоваться руководством, которое представлено на портале документации: http://doc.s-terra.ru/rh_output/4.2/Scenarios/output/mergedProjects/1main/ver_4_2_troubleshooting_guide.pdf.
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp keepalive 10
crypto isakmp keepalive retry-count 5
username cscons privilege 15 password 0 csp
aaa new-model
!
!
hostname GW1
enable password csp
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set TSET esp-gost28147-4m-imit
!
ip access-list extended LIST
permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
!
!
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 10.1.2.10
!
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
ip address 192.168.1.10 255.255.255.0 secondary
vrrp 51 ip 192.168.1.10 255.255.255.0
vrrp 51 timers advertise 3
vrrp 51 timers garp 5
!
interface GigabitEthernet0/1
ip address 10.1.1.2 255.255.255.0
ip address 10.1.1.10 255.255.255.0 secondary
crypto map CMAP
vrrp 52 ip 10.1.1.10 255.255.255.0
vrrp 52 timers advertise 3
vrrp 52 timers garp 5
!
interface GigabitEthernet0/2
no ip address
shutdown
!
interface GigabitEthernet0/3
no ip address
shutdown
!
!
ip route 0.0.0.0 0.0.0.0 10.1.1.1
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl
crypto pki certificate chain s-terra_technological_trustpoint
certificate 65EF45E1A9E6EAB54D5C69591D470E06
3082023B308201A7A003020102021065EF45E1A9E6EAB54D5C69591D470E0630
0A06082A850307010103033030310B30090603550406130252553110300E0603
55040A1307532D5465727261310F300D06035504031306526F6F744341301E17
0D3137313031303037323833355A170D3232313031303037333833315A303031
0B30090603550406130252553110300E060355040A1307532D5465727261310F
300D06035504031306526F6F7443413081AA302106082A850307010101023015
06092A850307010201020106082A850307010102030381840004818001C2286D
3943038F86C66502A8B0A8DBD15636D33E865085D901EE3ACA500CFEFCBD578E
12AEFA90F6F30624C6D1442DFFFEC31C613E6D8D3483828C430FA52168BB1979
DD2DE02338EA2D61C9B1F9F58BA3CC2CE6C1CDE78D2D4C9E966E62BFD94B17B8
DF2F53F38CB75D63514306A0D7A0BCBC6E6775D69AC3C99B0C054F2BA351304F
300B0603551D0F040403020186300F0603551D130101FF040530030101FF301D
0603551D0E0416041461175C3B503AB1E2DC5A49FE10EDB3218F7D7392301006
092B06010401823715010403020100300A06082A850307010103030381810011
110C24B65B47838EE49DC612CE81AB8E6F7BBB6B994033FCD54807BEF7467236
DE9D6F813229AD20BD9D520217A014719646A64296250F8BD93C5F4AB502844F
6FD8CBE1035A32A95E0F184569EF6DA2BD2A340985CB6DFEB544036D38490CCA
E1528C540B2DFB9E7CE9AF2FD95D8D3738371359281FA8CD5C70D00919356A
quit
!
vrrp ip route 10.1.2.0 255.255.255.0 10.1.1.1 src 10.1.1.10
vrrp notify master
vrrp notify backup
vrrp notify fault
end
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp keepalive 10
crypto isakmp keepalive retry-count 5
username cscons privilege 15 password 0 csp
aaa new-model
!
!
hostname GW2
enable password csp
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set TSET esp-gost28147-4m-imit
!
ip access-list extended LIST
permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
!
!
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 10.1.2.10
!
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.0
vrrp 51 ip 192.168.1.10 255.255.255.0
vrrp 51 priority 50
vrrp 51 timers advertise 3
vrrp 51 timers garp 5
!
interface GigabitEthernet0/1
ip address 10.1.1.3 255.255.255.0
crypto map CMAP
vrrp 52 ip 10.1.1.10 255.255.255.0
vrrp 52 priority 50
vrrp 52 timers advertise 3
vrrp 52 timers garp 5
!
interface GigabitEthernet0/2
no ip address
shutdown
!
interface GigabitEthernet0/3
no ip address
shutdown
!
!
ip route 0.0.0.0 0.0.0.0 10.1.1.1
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl
crypto pki certificate chain s-terra_technological_trustpoint
certificate 65EF45E1A9E6EAB54D5C69591D470E06
3082023B308201A7A003020102021065EF45E1A9E6EAB54D5C69591D470E0630
0A06082A850307010103033030310B30090603550406130252553110300E0603
55040A1307532D5465727261310F300D06035504031306526F6F744341301E17
0D3137313031303037323833355A170D3232313031303037333833315A303031
0B30090603550406130252553110300E060355040A1307532D5465727261310F
300D06035504031306526F6F7443413081AA302106082A850307010101023015
06092A850307010201020106082A850307010102030381840004818001C2286D
3943038F86C66502A8B0A8DBD15636D33E865085D901EE3ACA500CFEFCBD578E
12AEFA90F6F30624C6D1442DFFFEC31C613E6D8D3483828C430FA52168BB1979
DD2DE02338EA2D61C9B1F9F58BA3CC2CE6C1CDE78D2D4C9E966E62BFD94B17B8
DF2F53F38CB75D63514306A0D7A0BCBC6E6775D69AC3C99B0C054F2BA351304F
300B0603551D0F040403020186300F0603551D130101FF040530030101FF301D
0603551D0E0416041461175C3B503AB1E2DC5A49FE10EDB3218F7D7392301006
092B06010401823715010403020100300A06082A850307010103030381810011
110C24B65B47838EE49DC612CE81AB8E6F7BBB6B994033FCD54807BEF7467236
DE9D6F813229AD20BD9D520217A014719646A64296250F8BD93C5F4AB502844F
6FD8CBE1035A32A95E0F184569EF6DA2BD2A340985CB6DFEB544036D38490CCA
E1528C540B2DFB9E7CE9AF2FD95D8D3738371359281FA8CD5C70D00919356A
quit
!
vrrp ip route 10.1.2.0 255.255.255.0 10.1.1.1 src 10.1.1.10
vrrp notify master
vrrp notify backup
vrrp notify fault
end
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp keepalive 10
crypto isakmp keepalive retry-count 5
username cscons privilege 15 password 0 csp
aaa new-model
!
!
hostname GW3
enable password csp
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set TSET esp-gost28147-4m-imit
!
ip access-list extended LIST
permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
!
!
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 10.1.1.10
!
interface GigabitEthernet0/0
ip address 192.168.2.1 255.255.255.0
ip address 192.168.2.10 255.255.255.0 secondary
vrrp 53 ip 192.168.2.10 255.255.255.0
vrrp 53 timers advertise 3
vrrp 53 timers garp 5
!
interface GigabitEthernet0/1
ip address 10.1.2.2 255.255.255.0
ip address 10.1.2.10 255.255.255.0 secondary
crypto map CMAP
vrrp 54 ip 10.1.2.10 255.255.255.0
vrrp 54 timers advertise 3
vrrp 54 timers garp 5
!
interface GigabitEthernet0/2
no ip address
shutdown
!
interface GigabitEthernet0/3
no ip address
shutdown
!
!
ip route 0.0.0.0 0.0.0.0 10.1.2.1
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl
crypto pki certificate chain s-terra_technological_trustpoint
certificate 65EF45E1A9E6EAB54D5C69591D470E06
3082023B308201A7A003020102021065EF45E1A9E6EAB54D5C69591D470E0630
0A06082A850307010103033030310B30090603550406130252553110300E0603
55040A1307532D5465727261310F300D06035504031306526F6F744341301E17
0D3137313031303037323833355A170D3232313031303037333833315A303031
0B30090603550406130252553110300E060355040A1307532D5465727261310F
300D06035504031306526F6F7443413081AA302106082A850307010101023015
06092A850307010201020106082A850307010102030381840004818001C2286D
3943038F86C66502A8B0A8DBD15636D33E865085D901EE3ACA500CFEFCBD578E
12AEFA90F6F30624C6D1442DFFFEC31C613E6D8D3483828C430FA52168BB1979
DD2DE02338EA2D61C9B1F9F58BA3CC2CE6C1CDE78D2D4C9E966E62BFD94B17B8
DF2F53F38CB75D63514306A0D7A0BCBC6E6775D69AC3C99B0C054F2BA351304F
300B0603551D0F040403020186300F0603551D130101FF040530030101FF301D
0603551D0E0416041461175C3B503AB1E2DC5A49FE10EDB3218F7D7392301006
092B06010401823715010403020100300A06082A850307010103030381810011
110C24B65B47838EE49DC612CE81AB8E6F7BBB6B994033FCD54807BEF7467236
DE9D6F813229AD20BD9D520217A014719646A64296250F8BD93C5F4AB502844F
6FD8CBE1035A32A95E0F184569EF6DA2BD2A340985CB6DFEB544036D38490CCA
E1528C540B2DFB9E7CE9AF2FD95D8D3738371359281FA8CD5C70D00919356A
quit
!
vrrp ip route 10.1.1.0 255.255.255.0 10.1.2.1 src 10.1.2.10
vrrp notify master
vrrp notify backup
vrrp notify fault
end
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp keepalive 10
crypto isakmp keepalive retry-count 5
username cscons privilege 15 password 0 csp
aaa new-model
!
!
hostname GW4
enable password csp
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set TSET esp-gost28147-4m-imit
!
ip access-list extended LIST
permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
!
!
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 10.1.1.10
!
interface GigabitEthernet0/0
ip address 192.168.2.2 255.255.255.0
vrrp 53 ip 192.168.2.10 255.255.255.0
vrrp 53 priority 50
vrrp 53 timers advertise 3
vrrp 53 timers garp 5
!
interface GigabitEthernet0/1
ip address 10.1.2.3 255.255.255.0
crypto map CMAP
vrrp 54 ip 10.1.2.10 255.255.255.0
vrrp 54 priority 50
vrrp 54 timers advertise 3
vrrp 54 timers garp 5
!
interface GigabitEthernet0/2
no ip address
shutdown
!
interface GigabitEthernet0/3
no ip address
shutdown
!
!
ip route 0.0.0.0 0.0.0.0 10.1.2.1
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl
crypto pki certificate chain s-terra_technological_trustpoint
certificate 65EF45E1A9E6EAB54D5C69591D470E06
3082023B308201A7A003020102021065EF45E1A9E6EAB54D5C69591D470E0630
0A06082A850307010103033030310B30090603550406130252553110300E0603
55040A1307532D5465727261310F300D06035504031306526F6F744341301E17
0D3137313031303037323833355A170D3232313031303037333833315A303031
0B30090603550406130252553110300E060355040A1307532D5465727261310F
300D06035504031306526F6F7443413081AA302106082A850307010101023015
06092A850307010201020106082A850307010102030381840004818001C2286D
3943038F86C66502A8B0A8DBD15636D33E865085D901EE3ACA500CFEFCBD578E
12AEFA90F6F30624C6D1442DFFFEC31C613E6D8D3483828C430FA52168BB1979
DD2DE02338EA2D61C9B1F9F58BA3CC2CE6C1CDE78D2D4C9E966E62BFD94B17B8
DF2F53F38CB75D63514306A0D7A0BCBC6E6775D69AC3C99B0C054F2BA351304F
300B0603551D0F040403020186300F0603551D130101FF040530030101FF301D
0603551D0E0416041461175C3B503AB1E2DC5A49FE10EDB3218F7D7392301006
092B06010401823715010403020100300A06082A850307010103030381810011
110C24B65B47838EE49DC612CE81AB8E6F7BBB6B994033FCD54807BEF7467236
DE9D6F813229AD20BD9D520217A014719646A64296250F8BD93C5F4AB502844F
6FD8CBE1035A32A95E0F184569EF6DA2BD2A340985CB6DFEB544036D38490CCA
E1528C540B2DFB9E7CE9AF2FD95D8D3738371359281FA8CD5C70D00919356A
quit
!
vrrp ip route 10.1.1.0 255.255.255.0 10.1.2.1 src 10.1.2.10
vrrp notify master
vrrp notify backup
vrrp notify fault
end
# This is automatically generated LSP
#
# Conversion Date/Time: Tue Mar 20 10:19:17 2018
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Tue Mar 20 10:19:17 2018"
Version = LSP_4_2
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
IKEParameters(
FragmentSize = 0
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 10.1.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 TSET:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:CMAP:1
(
IKEPeerIPFilter = 10.1.2.10
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 10
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IPsecAction IPsecAction:CMAP:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 10.1.2.10
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( TSET:ESP )
IKERule = IKERule:CMAP:1
)
FilterChain IPsecPolicy:CMAP (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.1.0/24
DestinationIP = 192.168.2.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:CMAP:1 >
LogEventID = "IPsec:Protect:CMAP:1:LIST"
)
)
NetworkInterface (
LogicalName = "GigabitEthernet0/1"
IPsecPolicy = IPsecPolicy:CMAP
)
# This is automatically generated LSP
#
# Conversion Date/Time: Tue Mar 20 10:20:13 2018
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Tue Mar 20 10:20:13 2018"
Version = LSP_4_2
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
IKEParameters(
FragmentSize = 0
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 10.1.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 TSET:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:CMAP:1
(
IKEPeerIPFilter = 10.1.2.10
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 10
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IPsecAction IPsecAction:CMAP:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 10.1.2.10
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( TSET:ESP )
IKERule = IKERule:CMAP:1
)
FilterChain IPsecPolicy:CMAP (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.1.0/24
DestinationIP = 192.168.2.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:CMAP:1 >
LogEventID = "IPsec:Protect:CMAP:1:LIST"
)
)
NetworkInterface (
LogicalName = "GigabitEthernet0/1"
IPsecPolicy = IPsecPolicy:CMAP
)
# This is automatically generated LSP
#
# Conversion Date/Time: Tue Mar 20 10:21:10 2018
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Tue Mar 20 10:21:10 2018"
Version = LSP_4_2
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
IKEParameters(
FragmentSize = 0
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 10.1.2.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 TSET:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:CMAP:1
(
IKEPeerIPFilter = 10.1.1.10
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 10
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IPsecAction IPsecAction:CMAP:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 10.1.1.10
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( TSET:ESP )
IKERule = IKERule:CMAP:1
)
FilterChain IPsecPolicy:CMAP (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.2.0/24
DestinationIP = 192.168.1.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:CMAP:1 >
LogEventID = "IPsec:Protect:CMAP:1:LIST"
)
)
NetworkInterface (
LogicalName = "GigabitEthernet0/1"
IPsecPolicy = IPsecPolicy:CMAP
)
# This is automatically generated LSP
#
# Conversion Date/Time: Tue Mar 20 10:22:06 2018
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Tue Mar 20 10:22:06 2018"
Version = LSP_4_2
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
IKEParameters(
FragmentSize = 0
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 10.1.2.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 TSET:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:CMAP:1
(
IKEPeerIPFilter = 10.1.1.10
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 10
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IPsecAction IPsecAction:CMAP:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 10.1.1.10
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( TSET:ESP )
IKERule = IKERule:CMAP:1
)
FilterChain IPsecPolicy:CMAP (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.2.0/24
DestinationIP = 192.168.1.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:CMAP:1 >
LogEventID = "IPsec:Protect:CMAP:1:LIST"
)
)
NetworkInterface (
LogicalName = "GigabitEthernet0/1"
IPsecPolicy = IPsecPolicy:CMAP
)
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
vrrp_sync_group 0 {
notify_master "/etc/keepalived/scripts/notify_master"
notify_backup "/etc/keepalived/scripts/notify_backup"
notify_fault "/etc/keepalived/scripts/notify_fault"
group {
eth0_51
eth1_52
}
}
vrrp_instance eth0_51 {
interface eth0
track_script {
chk_dead
}
virtual_ipaddress {
192.168.1.10/24
}
priority 100
advert_int 3
virtual_router_id 51
garp_master_refresh 5
}
vrrp_instance eth1_52 {
interface eth1
virtual_routes {
src 10.1.1.10 10.1.2.0/24 via 10.1.1.1
}
virtual_ipaddress {
10.1.1.10/24
}
priority 100
advert_int 3
virtual_router_id 52
garp_master_refresh 5
}
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
vrrp_sync_group 0 {
notify_master "/etc/keepalived/scripts/notify_master"
notify_backup "/etc/keepalived/scripts/notify_backup"
notify_fault "/etc/keepalived/scripts/notify_fault"
group {
eth0_51
eth1_52
}
}
vrrp_instance eth0_51 {
interface eth0
track_script {
chk_dead
}
virtual_ipaddress {
192.168.1.10/24
}
priority 50
advert_int 3
virtual_router_id 51
garp_master_refresh 5
}
vrrp_instance eth1_52 {
interface eth1
virtual_routes {
src 10.1.1.10 10.1.2.0/24 via 10.1.1.1
}
virtual_ipaddress {
10.1.1.10/24
}
priority 50
advert_int 3
virtual_router_id 52
garp_master_refresh 5
}
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
vrrp_sync_group 0 {
notify_master "/etc/keepalived/scripts/notify_master"
notify_backup "/etc/keepalived/scripts/notify_backup"
notify_fault "/etc/keepalived/scripts/notify_fault"
group {
eth0_53
eth1_54
}
}
vrrp_instance eth0_53 {
interface eth0
track_script {
chk_dead
}
virtual_ipaddress {
192.168.2.10/24
}
priority 100
advert_int 3
virtual_router_id 53
garp_master_refresh 5
}
vrrp_instance eth1_54 {
interface eth1
virtual_routes {
src 10.1.2.10 10.1.1.0/24 via 10.1.2.1
}
virtual_ipaddress {
10.1.2.10/24
}
priority 100
advert_int 3
virtual_router_id 54
garp_master_refresh 5
}
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
vrrp_sync_group 0 {
notify_master "/etc/keepalived/scripts/notify_master"
notify_backup "/etc/keepalived/scripts/notify_backup"
notify_fault "/etc/keepalived/scripts/notify_fault"
group {
eth0_53
eth1_54
}
}
vrrp_instance eth0_53 {
interface eth0
track_script {
chk_dead
}
virtual_ipaddress {
192.168.2.10/24
}
priority 50
advert_int 3
virtual_router_id 53
garp_master_refresh 5
}
vrrp_instance eth1_54 {
interface eth1
virtual_routes {
src 10.1.2.10 10.1.1.0/24 via 10.1.2.1
}
virtual_ipaddress {
10.1.2.10/24
}
priority 50
advert_int 3
virtual_router_id 54
garp_master_refresh 5
}
#!/bin/bash
# Script to run during MASTER transit
ip route del 192.168.2.0/24 via 192.168.1.10
exit 0
#!/bin/bash
# Script to run during BACKUP transit
ip route add 192.168.2.0/24 via 192.168.1.10
exit 0
#!/bin/bash
# Script to run during MASTER transit
ip route del 192.168.2.0/24 via 192.168.1.10
exit 0
#!/bin/bash
# Script to run during BACKUP transit
ip route add 192.168.2.0/24 via 192.168.1.10
exit 0
#!/bin/bash
# Script to run during MASTER transit
ip route del 192.168.1.0/24 via 192.168.2.10
exit 0
#!/bin/bash
# Script to run during BACKUP transit
ip route add 192.168.1.0/24 via 192.168.2.10
exit 0
#!/bin/bash
# Script to run during MASTER transit
ip route del 192.168.1.0/24 via 192.168.2.10
exit 0
#!/bin/bash
# Script to run during BACKUP transit
ip route add 192.168.1.0/24 via 192.168.2.10
exit 0