Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

 

Оглавление
maxLevel3
printablefalse

Настройка

...

кластера

Cluster Кластер используется для резервирования работы устройств в сети. Резервирование обеспечивается за счет синхронизации работы различных сервисов между устройствами, а также за счет организации единой конфигурации и единой точки управления устройствами.

Алгоритм настройки

Шаг

Описание

Команда

Ключи

1Сменить юнит у устройства, при необходимости. (смена юнита устройства вступает в силу после перезагрузки
.
)esr# set unit id <ID><ID> – номер юнита, принимает значения [1..2].
2
Перейти в режим конфигурирования сетевого моста

Создать VLAN, который будет

использован в качестве кластерного интерфейса

использоваться в кластерном интерфейсе. Можно также использовать vlan 1, созданный по умолчанию.

esr(config)

bridge <BR-NUM><BR-NUM> – номер сетевого моста.3Указать IPv4-адрес и маску подсети для кластерного интерфейса. Необходимо установить адрес для все юнитов кластера. (для работы кластерного интерфейса поддерживается только IPv4-адресация.)esr(config-bridge)# ip address <ADDR/LEN> [unit <ID>]

<ADDR/LEN> – IP-адрес и длина маски подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].

<ID> – номер юнита, принимает значения [1..2].

Дополнительные функции IPv4-адресации см. в разделе Настройка IP-адресации.

4Установить идентификатор VRRP-маршрутизатора.esr(config-bridge)# vrrp id <VRID><VRID> – идентификатора VRRP-маршрутизатора, принимает значения [1..255].5Установить виртуальный IP-адрес VRRP-маршрутизатора (адрес должен быть из той же подсети, что и ip address).esr(config-bridge)# vrrp ip <ADDR/LEN> [ secondary ]<ADDR/LEN> – виртуальный IP-адрес и длина маски, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. Можно указать несколько
IP-адресов перечислением через запятую. Может быть назначено до 8  IP-адресов на интерфейс.
secondary – ключ для установки дополнительного IP-адреса.6Установить принадлежность VRRP-маршрутизатора к группе. Группа предоставляет возможность синхронизировать несколько VRRP-процессов, так если в одном из процессов произойдет смена мастера, то в другом процессе также произойдёт смена ролей.esr(config-bridge)# vrrp group <GRID><GRID> – идентификатор группы VRRP-маршрутизатора, принимает значения [1..32]7Включить VRRP-процесс на IP-интерфейсе.esr(config-bridge)# vrrp8Активировать сетевой мост.esr(config-bridge)# enable

9

Перейти в режим конфигурирования кластера.

esr(config)# cluster

10Установить интерфейс, через который будет происходить обмен служебными сообщениями между юнитами в кластере.esr(config-cluster)# cluster-interface bridge [<BRIDGE-ID>]

<BRIDGE-ID> – идентификационный номер моста, задается в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора.

11 Отключить синхронизацию конфигураций в кластере между юнитами (не обязательно).esr(config-cluster)# sync config disable12Перейти в режим конфигурирования юнита в кластере.esr(config-cluster)# unit <ID><ID> – номер юнита, принимает значения [1..2].13Настроить MAC-адрес для определенного юнита.esr(config-cluster-unit)# mac-address <ADDR>

<ADDR> – МАС-адрес сетевого моста, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF].

14Включить работу кластера.esr(config-cluster)# enable

Пример настройки кластера

В настоящем руководстве приведено описание настройки кластера для администратора сервисного маршрутизатора ESR (далее — маршрутизатор).

Image Removed

Рисунок 1 — Схема реализации HA Cluster

Первичная настройка кластера 

Для начала работы необходимо полностью настроить одно устройство из кластера.

После включения устройства примените конфигурацию по умолчанию на устройствах, предназначенных для объединения в кластер:

Блок кода
titleESR-1
esr# copy system:default-config system:candidate-config 
Entire candidate configuration will be reset to default, all settings will be lost upon commit.     
Do you really want to continue? (y/N): y
|******************************************| 100% (59B) Default configuration loaded successfully.  

Для более удобного и ясного восприятия рекомендуется переименовать устройства. В кластерной версии прошивки предусмотрена возможность указать имя устройства с привязкой к юниту. Устройство будет использовать только тот hostname, юнитом которого он является:

Блок кода
titleESR-1
esr# configure 
esr(config)# hostname ESR-1 unit 1
esr(config)# hostname ESR-2 unit 2
Примечание

Более приоритетным является hostname, указанный с привязкой к unit.

Чтобы изменить юнит устройства, выполните следующие команды:

Блок кода
titleESR-1
ESR-1# set unit id 1
Unit ID will be 1 after reboot
ESR-1# reload system 
Do you really want to reload system now? (y/N): y
Примечание

На заводской конфигурации unit принимает значение по умолчанию (unit = 1).

Смена юнита устройства вступает в силу после перезагрузки.

Убедитесь в том, что настройка юнита применилась успешно:

Блок кода
titleESR-1
ESR-1# show unit id
Unit ID is 1
Unit ID will be 1 after reboot
Примечание

Объединение устройств в кластер невозможно, если они относятся к одному и тому же юниту.
Исключение — процесс ZTP, так как в процессе ZTP нужный unit у устройства выставится автоматически.

Настройка кластерного интерфейса

Для полноценной работы кластера требуется сконфигурировать кластерный интерфейс, который будет использоваться для передачи control plane трафика. В качестве кластерного интерфейса назначен bridge. В качестве механизма, отвечающего за определение ролей устройств, участвующих в резервировании, назначен протокол VRRP. Настройки cluster-интерфейса должны быть идентичны для всех участников кластера.

Так как кластер выполняет синхронизацию состояний между устройствами, необходимо создать зону безопасности SYNC (synchronization) и разрешить прохождение трафика протокола VRRP:

Блок кода
titleESR-1
ESR-1(config)# security zone SYNC
ESR-1(config-security-zone)# exit
ESR-1(config)# security zone-pair SYNC self
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol icmp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol vrrp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Далее перейдите к настройкам кластерного интерфейса:

Блок кода
titleESR-1
ESR-1(config)# bridge 1
Примечание

В версии ПО 1.28 в качестве cluster-интерфейса поддержан только bridge.

Укажите, к какому VLAN относится bridge, и зону безопасности:

Блок кода
titleESR-1
ESR-1(config-bridge)# vlan 1
ESR-1(config-bridge)# security-zone SYNC

Scroll Pagebreak

Далее укажите IP-адреса:

Блок кода
titleESR-1
ESR-1(config-bridge)# ip address 192.18.1.254/24 unit 1
ESR-1(config-bridge)# ip address 192.18.1.253/24 unit 2
Примечание

Для работы кластерного интерфейса поддерживается только IPv4-адресация.

На cluster-интерфейсе необходима настройка адресов с привязкой к unit.

Настройте идентификатор VRRP, принадлежность VRRP-маршрутизатора к группе, IP-адрес VRRP:

Блок кода
titleESR-1
ESR-1(config-bridge)# vrrp id 1
ESR-1(config-bridge)# vrrp group 1
ESR-1(config-bridge)# vrrp ip 192.18.1.1/24
Примечание

Адрес VRRP должен быть из той же подсети, что и адреса на интерфейсе.

Включите протокол VRRP и bridge:

Блок кода
titleESR-1
ESR-1(config-bridge)# vrrp 
ESR-1(config-bridge)# enable
ESR-1(config-bridge)# exit

Настройте физические порты для выделенного линка синхронизации маршрутизаторов ESR-1 и ESR-2:

Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/1
ESR-1(config-if-gi)# description "Network: SYNC"
ESR-1(config-if-gi)# mode switchport
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/1
ESR-1(config-if-gi)# description "Network: SYNC"
ESR-1(config-if-gi)# mode switchport
ESR-1(config-if-gi)# exit

Scroll Pagebreak

Для проверки работы протокола VRRP выполните следующую команду:

Блок кода
titleESR-1
ESR-1# show vrrp 
Virtual router   Virtual IP                          Priority   Preemption   State    
--------------   ---------------------------------   --------   ----------   ------   
1                192.18.1.1/24                       100        Enabled      Backup  

Можно увидеть, что устройство приняло состояние Backup. Через 10 секунд устройство примет состояние Master.

Настройка кластера

Для запуска кластера необходимо указать заранее настроенный кластерный интерфейс и юниты, которые будут выполнять роли Active и Standby.

Перейдите в режим настройки кластера:

Блок кода
titleESR-1
ESR-1(config)# cluster 

Настройте юниты:

Блок кода
titleESR-1
ESR-1(config-cluster)# unit 1
ESR-1(config-cluster-unit)# mac-address E4:5A:D4:A0:BE:35
ESR-1(config-cluster-unit)# exit
ESR-1(config-cluster)# unit 2
ESR-1(config-cluster-unit)# mac-address A8:F9:4B:AF:35:84
ESR-1(config-cluster-unit)# exit
Примечание

В качестве mac-address указывается системный MAC-адрес устройства, его можно узнать с помощью команды show system | include MAC.

Укажите кластерный интерфейс, созданный ранее, и активируйте кластер:

Блок кода
titleESR-1
ESR-1(config-cluster)# cluster-interface bridge 1
ESR-1(config-cluster)# enable 
ESR-1(config-cluster)# exit

Первое устройство полностью настроено и готово к работе.
Аналогичные настройки необходимо произвести на втором устройстве. Также возможна настройка второго устройства средствами ZTP.

Примечание

Для активации процесса ZTP необходимо на втором устройстве запустить dhcp-client на bridge-интерфейсе, физический интерфейс которого будет включен в кластерный интерфейс первого устройства.

В качестве примера такой конфигурации подойдет factory-конфигурация. (В factory-конфигурации для vESR нет настроенного dhcp-client)

В процессе ZTP устройство автоматически выставит себе:

1) Конфигурацию;

2) Юнит;

3) Версию ПО, на котором работает Active ESR;

4) Лицензию, если она предварительно загружена на Active ESR.

После выполнения этих шагов кластер будет успешно запущен. Текущее состояние кластера можно узнать, выполнив команду:    

Блок кода
titleESR-1
ESR-1# show cluster status 
Unit   Hostname               Role         MAC address         State            IP address        
----   --------------------   ----------   -----------------   --------------   ---------------   
1*     ESR-1                  Active       e4:5a:d4:a0:be:35   Joined           192.18.1.10       
2      ESR-2                  Standby      a8:f9:4b:af:35:84   Joined           192.18.1.20 
Примечание

После включения кластера и установления юнитов в состояние Joined далее настройка устройств осуществляется настройкой Active устройства.

Синхронизируются команды конфигурации, а также команды: commit, confirm, rollback, restore, save, copy <source> system:candidate-config.

В случае, если конфигурирование осуществляется на Standby, то синхронизации не будет.

Есть возможность отключения синхронизации командой sync config disable.

После выполнения этих шагов кластер будет успешно запущен. Текущее состояние синхронизации подсистем кластера можно узнать, выполнив команду:    

Блок кода
titleESR-1
ESR-1# show cluster sync status 
System part              Synced   
----------------------   ------   
candidate-config         Yes      
running-config           Yes      
SW version               Yes      
licence                  Yes      
licence (After reboot)   Yes      
date                     Yes      
Примечание

В версии 1.28 не поддержана синхронизация шифрованных паролей.

Примечание

Через минуту после включения кластера синхронизируется время, на Standby установится время Active-юнита.

Синхронизация времени проверяется раз в минуту, в случае расхождения время синхронизируется.

Синхронизация файлов лицензий

Для синхронизации файлов лицензий в кластере необходимо загрузить их все на Active-устройство командой copy в директорию system:cluster-unit-licences.

Все загруженные лицензии в данной директории передаются остальным участникам кластера.

Блок кода
titleПример
ESR-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences
|*************************| 100% (680B) Licence loaded successfully.
Примечание

На каждый ESR нужна отдельная лицензия (Wi-Fi, BRAS и т. д.).

Для активации функций кластера не нужна отдельная лицензия.

Установка файлов лицензий

Установить лицензию в кластере можно одним из способов:

1. Загрузить индивидуально лицензию на каждое устройство, как в случае с обычным ESR вне кластера.
2. Загрузить лицензию для Active-юнита в system:licence (данная лицензия также автоматически загрузится и в system:cluster-unit-licences), лицензии для Standby загрузить в system:cluster-unit-licences на Active-юните, после чего либо выполнить команду sync cluster system force, либо подключить Standby по ZTP.

# vlan <VID>

<VID> – идентификатор VLAN, задаётся в диапазоне [2..4094].

 
3

Перейти в режим конфигурирования физических интерфейсов, которые будут использованы для работы кластерного интерфейса. Необходимо настроить интерфейсы всех юнитов, которые будут участвовать в кластере.

esr(config)# interface gigabitethernet

esr(config)# interface tengigabitethernet

esr(config)# interface fourtygigabitethernet

esr(config)# interface twentyfivegigabitethernet


4Установить режим работы физических интерфейсов.esr(config-if-gi)# mode switchportДопустимо для всех ESR.
esr(config-if-gi)# mode hybridДопустимо только для ESR-1000/1200/1500/
1511(rev.B)/1700.
5Задать режим работы L2-интерфейсов.esr(config-if-gi)# switchport mode access

Только для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/
100/200/3100/3200/3200L/3300.

Данный режим является режимом по умолчанию и не отображается в конфигурации.

esr(config-if-gi)# switchport mode trunk

Только для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/
100/200/3100/3200/3200L/3300.

esr(config-if-gi)# switchport mode general

Только для ESR-1000/1200/1500/
1511 (rev.B)/1700.

Данный режим является режимом по умолчанию и не отображается в конфигурации.

6Настроить заранее созданный VLAN на интерфейсах.esr(config-if-gi)# switchport access vlan <VID>

Только для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/
100/200/3100/3200/3200L/3300.

<VID> – идентификационный номер VLAN, задаётся в диапазоне [1…4094]. 

esr(config-if-gi)# switchport trunk allowed vlan <ACT> <VID>

Для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/100/200/
3100/3200/3200L/3300.

<ACT> – назначаемое действие:

add – включение интерфейса во VLAN;

remove – исключение интерфейса из VLAN.

<VID> – идентификационный номер VLAN, задаётся в диапазоне [2…4094]. Можно задать диапазоном через «-» или перечислением через «,».

esr(config-if-gi)# switchport general allowed vlan <ACT> <VID> [<TYPE>]

Для ESR-1000/1200/1500/
1511 (rev.B)/1700.

<ACT> – назначаемое действие:

add – включение интерфейса во VLAN;

remove – исключение интерфейса из VLAN.

<VID> – идентификационный номер VLAN, задаётся в диапазоне [2…4094]. Можно задать диапазоном через «-» или перечислением через «,»;

<TYPE> – тип пакета:

tagged – интерфейс будет передавать и принимать пакеты в указанных VLAN тегированными;

untagged – интерфейс будет передавать пакеты в указанных VLAN нетегированными.

VLAN, в который будут направлены входящие нетегированные пакеты, настраивается командой switchport general pvid.

7Перейти в режим конфигурирования сетевого моста, который будет использован в качестве кластерного интерфейса.esr(config)# bridge <BR-NUM><BR-NUM> – номер сетевого моста.
8Настроить заранее созданный VLAN на кластерном интерфейсе.esr(config-bridge)# vlan <VID>

<VID> – идентификационный номер VLAN, задаётся в диапазоне [1…4094]. 

9Указать IPv4-адрес и маску подсети для кластерного интерфейса. Необходимо установить адреса для всех юнитов кластера. (для работы кластерного интерфейса поддерживается только IPv4-адресация)esr(config-bridge)# ip address <ADDR/LEN> [unit <ID>]

<ADDR/LEN> – IP-адрес и длина маски подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].

<ID> – номер юнита, принимает значения [1..2].

Дополнительные функции IPv4-адресации см. в разделе Настройка IP-адресации.

10Установить идентификатор VRRP-маршрутизатора.esr(config-bridge)# vrrp id <VRID><VRID> – идентификатора VRRP-маршрутизатора, принимает значения [1..255].
11Установить виртуальный IP-адрес VRRP-маршрутизатора (адрес должен быть из той же подсети, что и ip address у юнитов).esr(config-bridge)# vrrp ip <ADDR/LEN> [ secondary ]<ADDR/LEN> – виртуальный IP-адрес и длина маски, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. Можно указать несколько
IP-адресов перечислением через запятую. Может быть назначено до 8  IP-адресов на интерфейс.
secondary – ключ для установки дополнительного IP-адреса.
12Установить принадлежность VRRP-маршрутизатора к группе. Группа предоставляет возможность синхронизировать несколько VRRP-процессов, так если в одном из процессов произойдет смена мастера, то в другом процессе также произойдёт смена ролей.esr(config-bridge)# vrrp group <GRID><GRID> – идентификатор группы VRRP-маршрутизатора, принимает значения [1..32]
13Включить VRRP-процесс на IP-интерфейсе.esr(config-bridge)# vrrp
14Активировать сетевой мост.esr(config-bridge)# enable

15

Перейти в режим конфигурирования кластера.

esr(config)# cluster


16Установить интерфейс, через который будет происходить обмен служебными сообщениями между юнитами в кластере.esr(config-cluster)# cluster-interface bridge [<BRIDGE-ID>]

<BRIDGE-ID> – идентификационный номер моста, задается в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора.

17 Отключить синхронизацию конфигураций в кластере между юнитами (не обязательно).esr(config-cluster)# sync config disable
18Перейти в режим конфигурирования юнита в кластере.esr(config-cluster)# unit <ID><ID> – номер юнита, принимает значения [1..2].
19Настроить для юнита соответствующий системный MAC-адрес устройства.esr(config-cluster-unit)# mac-address <ADDR>

<ADDR> – МАС-адрес сетевого моста, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF].

20Включить работу кластера.esr(config-cluster)# enable
Примечание

Данные между юнитами кластера через канал синхронизации передаются в открытом виде. Также все вводимые команды конфигурирования, содержащие чувствительную информацию не в encrypted-виде, будут переданы в том же виде, в котором введены, после чего будут преобразованы в encrypted-вид.

Пример настройки кластера

В настоящем руководстве приведено описание настройки кластера для администратора сервисного маршрутизатора ESR (далее — маршрутизатор).

Image Added

Схема реализации HA Cluster

Scroll Pagebreak

Первичная настройка кластера 

Для начала работы необходимо полностью настроить одно устройство из кластера.

После включения устройства примените конфигурацию по умолчанию на устройствах, предназначенных для объединения в кластер:

Блок кода
titleESR-1
esr# copy system:default-config system:candidate-config 
Entire candidate configuration will be reset to default, all settings will be lost upon commit.     
Do you really want to continue? (y/N): y
|******************************************| 100% (59B) Default configuration loaded successfully.  

Для более удобного и ясного восприятия рекомендуется переименовать устройства. В кластерной версии прошивки предусмотрена возможность указать имя устройства с привязкой к юниту. Устройство будет использовать только тот hostname, юнитом которого он является:

Блок кода
titleESR-1
esr# configure 
esr(config)# hostname ESR-1 unit 1
esr(config)# hostname ESR-2 unit 2
Примечание

Более приоритетным является hostname, указанный с привязкой к unit.

Чтобы изменить юнит устройства, выполните следующие команды:

Блок кода
titleESR-1
ESR-1# set unit id 1
Unit ID will be 1 after reboot
ESR-1# reload system 
Do you really want to reload system now? (y/N): y
Примечание

Смена юнита устройства вступает в силу после перезагрузки.

Примечание

При изменении номера юнита маршрутизатора не происходит автоматической конвертации конфигурации. 
В случае если до маршрутизатора настроен удаленный доступ и у него меняется номер юнита, необходимо до перезагрузки настроить ip-интерфейсы для нового юнита аналогично текущим.

Примечание

В заводской конфигурации присутствуют настройки интерфейсов только для юнита по умолчанию (unit = 1).
При копировании и применении заводской конфигурации настройка номера юнита не изменяется на значение по умолчанию.
Установить номер юнита по умолчанию возможно следующими способами:
1. используя консольное подключение;
2. зажав функциональную кнопку "F" на 15 секунд.

Убедитесь в том, что настройка юнита применилась успешно:

Блок кода
titleESR-1
ESR-1# show unit id
Unit ID is 1
Unit ID will be 1 after reboot
Примечание

Объединение устройств в кластер невозможно, если они относятся к одному и тому же юниту.
Исключение — процесс ZTP, так как в процессе ZTP нужный unit у устройства выставится автоматически.

Примечание

Для объединения в кластер vESR предварительно необходимо сделать разные системные MAC-адреса на устройствах путем смены серийного номера.

Настройка кластерного интерфейса

Для полноценной работы кластера требуется сконфигурировать кластерный интерфейс, который будет использоваться для передачи control plane трафика. В качестве кластерного интерфейса назначен bridge. В качестве механизма, отвечающего за определение ролей устройств, участвующих в резервировании, назначен протокол VRRP. Настройки cluster-интерфейса должны быть идентичны для всех участников кластера.

Так как кластер выполняет синхронизацию состояний между устройствами, необходимо создать зону безопасности SYNC (synchronization) и разрешить прохождение трафика протокола VRRP:

Блок кода
titleESR-1
ESR-1(config)# security zone SYNC
ESR-1(config-security-zone)# exit
ESR-1(config)# security zone-pair SYNC self
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol vrrp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Далее перейдите к настройкам кластерного интерфейса:

Блок кода
titleESR-1
ESR-1(config)# bridge 1
Примечание

В версии ПО 1.28 в качестве cluster-интерфейса поддержан только bridge.

Scroll Pagebreak

Укажите, к какому VLAN относится bridge, и зону безопасности:

Блок кода
titleESR-1
ESR-1(config-bridge)# vlan 1
ESR-1(config-bridge)# security-zone SYNC

Далее укажите IP-адреса:

Блок кода
titleESR-1
ESR-1(config-bridge)# ip address 198.51.100.254/24 unit 1
ESR-1(config-bridge)# ip address 198.51.100.253/24 unit 2
Примечание

Для работы кластерного интерфейса поддерживается только IPv4-адресация.

На cluster-интерфейсе необходима настройка адресов с привязкой к unit.

Настройте идентификатор VRRP, принадлежность VRRP-маршрутизатора к группе, IP-адрес VRRP:

Блок кода
titleESR-1
ESR-1(config-bridge)# vrrp id 1
ESR-1(config-bridge)# vrrp group 1
ESR-1(config-bridge)# vrrp ip 198.51.100.1/24
Примечание

Адрес VRRP должен быть из той же подсети, что и адреса на интерфейсе.

Включите протокол VRRP и bridge:

Блок кода
titleESR-1
ESR-1(config-bridge)# vrrp 
ESR-1(config-bridge)# enable
ESR-1(config-bridge)# exit

Настройте физические порты для выделенного линка синхронизации маршрутизаторов ESR-1 и ESR-2:

Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/1
ESR-1(config-if-gi)# description "Network: SYNC"
ESR-1(config-if-gi)# mode switchport
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/1
ESR-1(config-if-gi)# description "Network: SYNC"
ESR-1(config-if-gi)# mode switchport
ESR-1(config-if-gi)# exit

Scroll Pagebreak

Для проверки работы протокола VRRP выполните следующую команду:

Блок кода
titleESR-1
esr-30# show vrrp 
Virtual router   Virtual IP                          Priority   Preemption   State    Inherit   Sync group ID   
--------------   ---------------------------------   --------   ----------   ------   -------   -----------   
1                198.51.100.1/24                     100        Disabled     Backup   --        1               

Можно увидеть, что устройство приняло состояние Backup. Через 10 секунд устройство примет состояние Master.

Настройка кластера

Для запуска кластера необходимо указать заранее настроенный кластерный интерфейс и юниты, которые будут выполнять роли Active и Standby.

Перейдите в режим настройки кластера:

Блок кода
titleESR-1
ESR-1(config)# cluster 

Настройте юниты:

Блок кода
titleESR-1
ESR-1(config-cluster)# unit 1
ESR-1(config-cluster-unit)# mac-address E4:5A:D4:A0:BE:35
ESR-1(config-cluster-unit)# exit
ESR-1(config-cluster)# unit 2
ESR-1(config-cluster-unit)# mac-address A8:F9:4B:AF:35:84
ESR-1(config-cluster-unit)# exit
Примечание

В качестве mac-address указывается системный MAC-адрес устройства, его можно узнать с помощью команды show system | include MAC.

Укажите кластерный интерфейс, созданный ранее, и активируйте кластер:

Блок кода
titleESR-1
ESR-1(config-cluster)# cluster-interface bridge 1
ESR-1(config-cluster)# enable 
ESR-1(config-cluster)# exit

Первое устройство полностью настроено и готово к работе.
Аналогичные настройки необходимо произвести на втором устройстве, предварительно сменив у него unit на требуемый. Также возможна настройка второго устройства средствами ZTP.

Примечание

Для активации процесса ZTP необходимо на втором устройстве запустить dhcp-client на bridge-интерфейсе, логический или физический интерфейс которого будет включен в кластерный интерфейс первого устройства.

В качестве примера такой конфигурации подойдет factory-конфигурация (в factory-конфигурации для vESR нет настроенного dhcp-client).

В процессе ZTP устройство автоматически выставит себе:

1) Конфигурацию;

2) Юнит;

3) Версию ПО, на котором работает Active ESR;

4) Лицензию, если она предварительно загружена на Active ESR.

После выполнения этих шагов кластер будет успешно запущен. Текущее состояние кластера можно узнать, выполнив команду:    

Блок кода
titleESR-1
ESR-1# show cluster status 
Unit   Hostname               Role         MAC address         State            IP address        
----   --------------------   ----------   -----------------   --------------   ---------------   
1*     ESR-1                  Active       e4:5a:d4:a0:be:35   Joined           198.51.100.254       
2      ESR-2                  Standby      a8:f9:4b:af:35:84   Joined           198.51.100.253 
Примечание

После включения кластера и установления юнитов в состояние Joined дальнейшее конфигурирование устройств осуществляется настройкой Active-устройства.

Синхронизируются команды конфигурации, а также команды: commit, confirm, rollback, restore, save, copy <source> system:candidate-config.

В случае, если конфигурирование осуществляется на Standby, то внесенные изменения в конфигурацию засинхронизированы не будут. Все внесённые изменения в конфигурацию Standby будут потеряны при выполнении commit на Active-устройстве.

Есть возможность отключения синхронизации командой sync config disable.

Текущее состояние синхронизации подсистем кластера можно узнать, выполнив команду:    

Блок кода
titleESR-1
ESR-1# show cluster sync status 
System part              Synced   
----------------------   ------   
candidate-config         Yes      
running-config           Yes      
SW version               Yes      
licence                  Yes      
licence (After reboot)   Yes      
date                     Yes      
Примечание

В текущей версии ПО не поддержано синхронное шифрование паролей, вводимых не в encryption-виде.

Такие пароли будут зашифрованы каждым из участников кластера самостоятельно.

Scroll Pagebreak

Примечание

Через минуту после включения кластера синхронизируется время, на Standby установится время Active-юнита.

Синхронизация времени проверяется раз в минуту, в случае расхождения время синхронизируется.

Синхронизация файлов лицензий

Для синхронизации файлов лицензий в кластере необходимо загрузить их все на Active-устройство командой copy в директорию system:cluster-unit-licences.

Все загруженные лицензии в данной директории передаются остальным участникам кластера.

Блок кода
titleПример
ESR-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences
|*************************| 100% (680B) Licence loaded successfully.
Примечание

На каждый ESR нужна отдельная лицензия (Wi-Fi, BRAS и т. д.).

Для активации функций кластера не нужна отдельная лицензия.

Установка файлов лицензий

Установить лицензию в кластере можно двумя способами:

1. Загрузить индивидуально лицензию на каждое устройство, как в случае с обычным ESR вне кластера.
2. Загрузить лицензию для Active-юнита в system:licence (данная лицензия также автоматически загрузится и в system:cluster-unit-licences), активировать её перезагрузкой, лицензии для Standby загрузить в system:cluster-unit-licences на Active-юните, после чего либо выполнить команду sync cluster system force, либо подключить Standby по ZTP.

Блок кода
titleПример
ESR-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences
|*************************| 100% (680B) Licence loaded successfully.
ESR-1#
ESR-1#
ESR-1#
ESR-1# show cluster-unit-licences 
Serial number     Features                                                       
---------------   ------------------------------------------------------------   
NP0B003634        BRAS,IPS,WIFI                       
NP0B009033        BRAS,IPS,WIFI
ESR-1# sync cluster system force

Scroll Pagebreak

Подключение сервисов

После успешной настройки кластера можно приступать к конфигурации различных сервисов.

Настройка System prompt

System prompt позволяет отобразить оперативное состояние кластера непосредственно в строке приглашения CLI устройства, что упрощает получение актуальной информации.

Варианты настройки system prompt, включая доступные параметры и синтаксис команды, приведены в разделе Настройка общесистемных параметров.

Пример настройки

Задача:

Настроить system prompt в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • необходимо получать информацию о статусе полной синхронизации кластера;
  • необходимо получать информацию о номере юнита администрируемого устройства;
  • необходимо получать информацию о роли устройства в кластере;
  • необходимо получать информацию о статусе кластерного VRRP;
  • необходимо получать информацию о hostname устройства.
Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit
 
hostname ESR-1 unit 1
hostname ESR-2 unit 2
 
security zone SYNC
exit
 
bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5 
  vrrp
  enable
exit
 
interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
 
security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
Решение:

Перейдем в режим конфигурирования устройства:

Блок кода
titleESR-1
ESR-1# configure 
ESR-1(config)#

Добавим в system prompt информацию о статусе полной синхронизации кластера:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s%)'

Добавим в system prompt информацию о номере юнита администрируемого устройства:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u%)'

Добавим в system prompt информацию о роли устройства в кластере:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r%)'

Добавим в system prompt информацию о статусе кластерного VRRP:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r% | VRRP id 1: %v1%)'

Добавим в system prompt информацию о hostname устройства:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r% | VRRP id 1: %v1%)|%h%'

Scroll Pagebreak

Применим конфигурацию и обновим пользовательскую сессию CLI:

Блок кода
titleESR-1
ESR-1# commit
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be.
ESR-1# confirm
Configuration has been confirmed. Commit timer canceled.
ESR-1# exit

ESR-1 login: admin
Password: 

********************************************
*            Welcome to ESR                *
********************************************

(Cluster: Yes | Unit: 1 | State: Active | VRRP id 1: Master)|ESR-1#

Обновим пользовательскую сессию CLI на втором устройстве:

Блок кода
titleESR-2
ESR-2# 2024-12-27T15:25:04+00:00 %CLUSTER-I-SYNC_CONFIG_INFO: unit 1 'ESR-1' starts a synchronous operation 'commit'
2024-12-27T15:25:09+00:00 %CLUSTER-I-SYNC_CONFIG_INFO: 'commit' successful performed
ESR-2# exit

ESR-2 login: admin
Password: 

********************************************
*            Welcome to ESR                *
********************************************

(Cluster: Yes | Unit: 2 | State: Standby | VRRP id 1: Backup)|ESR-2# 
Примечание

Чтобы system prompt корректно работал, необходимо обновить пользовательскую сессию.

Scroll Pagebreak

Настройка MultiWAN

Технология MultiWAN позволяет организовать отказоустойчивое соединение с резервированием линков от нескольких провайдеров.

Алгоритм настройки MultiWAN описан в разделе Алгоритм настройки MultiWAN.

Пример настройки

Задача:

Настроить MultiWAN в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • обеспечить резервирование линков от нескольких провайдеров;
  • обеспечить балансировку трафика в соотношении 70/30.

Image Added

Схема реализации MultiWAN

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2.3
  security-zone WAN
  ip address 128.66.0.6/30
  vrrp id 3
  vrrp ip 128.66.0.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/2.4
  security-zone WAN
  ip address 128.66.0.10/30
  vrrp id 4
  vrrp ip 128.66.0.14/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2.3
  security-zone WAN
  ip address 128.66.0.5/30
  vrrp id 3
  vrrp ip 128.66.0.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/2.4
  security-zone WAN
  ip address 128.66.0.9/30
  vrrp id 4
  vrrp ip 128.66.0.14/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit

Создадим список IP-адресов для проверки целостности соединения:

Блок кода
titleESR-1
ESR-1(config)# wan load-balance target-list WAN
ESR-1(config-wan-target-list)# target 1
ESR-1(config-wan-target)# ip address 128.66.0.17
ESR-1(config-wan-target)# enable
ESR-1(config-wan-target)# exit
ESR-1(config-wan-target-list)# exit

Настроим WAN на интерфейсе в сторону провайдера ISP1: 

Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/2.3
ESR-1(config-if-sub)# wan load-balance nexthop 128.66.0.1
ESR-1(config-if-sub)# wan load-balance target-list WAN
ESR-1(config-if-sub)# wan load-balance enable
ESR-1(config-if-sub)# exit
ESR-1(config)# interface gigabitethernet 2/0/2.3
ESR-1(config-if-sub)# wan load-balance nexthop 128.66.0.1
ESR-1(config-if-sub)# wan load-balance target-list WAN
ESR-1(config-if-sub)# wan load-balance enable
ESR-1(config-if-sub)# exit

Настроим WAN на интерфейсе в сторону провайдера ISP2: 

Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/2.4
ESR-1(config-if-sub)# wan load-balance nexthop 128.66.0.13
ESR-1(config-if-sub)# wan load-balance target-list WAN
ESR-1(config-if-sub)# wan load-balance enable
ESR-1(config-if-sub)# exit
ESR-1(config)# interface gigabitethernet 2/0/2.4
ESR-1(config-if-sub)# wan load-balance nexthop 128.66.0.13
ESR-1(config-if-sub)# wan load-balance target-list WAN
ESR-1(config-if-sub)# wan load-balance enable
ESR-1(config-if-sub)# exit

Scroll Pagebreak

Укажем статический маршрут и создадим правило для балансировки трафика:

Блок кода
titleESR-1
ESR-1(config)# ip route 0.0.0.0/0 wan load-balance rule 1 10
ESR-1(config)# wan load-balance rule 1
ESR-1(config-wan-rule)# outbound interface gigabitethernet 1/0/2.3 70
ESR-1(config-wan-rule)# outbound interface gigabitethernet 1/0/2.4 30
ESR-1(config-wan-rule)# outbound interface gigabitethernet 2/0/2.3 70
ESR-1(config-wan-rule)# outbound interface gigabitethernet 2/0/2.4 30
ESR-1(config-wan-rule)# enable
ESR-1(config-wan-rule)# exit

Проверить состояние работы MultiWAN можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show wan rules 
Rule 1 detailed information:
    VRF:          default
    Failover:     Disabled
    Network: 0.0.0.0/0 Metric: 10
        gi1/0/2.3 Weight: 70 Nexthop: 128.66.0.1 [Active]
        gi1/0/2.4 Weight: 30 Nexthop: 128.66.0.13 [Active]

Также состояние работы MultiWAN можно проверить с помощью команды:

Блок кода
titleESR-1
ESR-1# show wan interfaces status 
Interface              Nexthop                   Status     Uptime/Downtime        
                                                            (d,h:m:s)              
--------------------   -----------------------   --------   --------------------   
gi1/0/2.3              128.66.0.1                Active     00,00:00:44            
gi1/0/2.4              128.66.0.13               Active     00,00:00:45            

Настройка IPsec VPN

IPsec — это набор протоколов, обеспечивающих защиту данных, передаваемых по протоколу IP. Данный набор протоколов позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и шифрование IP-пакетов, а также включает в себя протоколы для защищённого обмена ключами в сети Интернет.

Пример настройки Route-based IPsec VPN

Алгоритм настройки Route-based IPsec VPN описан в разделе Алгоритм настройки Route-based IPsec VPN.

Scroll Pagebreak

Задача:
  • Настроить IPsec туннель. Туннель необходимо поднять между адресами: кластер – 203.0.113.2 (VIP адрес), ответная сторона – 203.0.113.6;
  • IKE:

    • группа Диффи-Хэллмана: 2;
    • алгоритм шифрования: AES 128 bit;
    • алгоритм аутентификации: MD5.
  • IP sec:

    • алгоритм шифрования: AES 128 bit;
    • алгоритм аутентификации: MD5.

Image Added

Схема реализации Route-based IPsec VPN

Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone WAN
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone WAN
  ip address 128.66.0.2/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone WAN
  ip address 128.66.0.1/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit

Scroll Pagebreak

Решение:

Создадим профиль ISAKMP-портов, необходимых для работы протокола IPsec, включающий разрешение UDP-пакетов на порту 500 (а также на порту 4500 для поддержки NAT-T при необходимости):

Блок кода
titleESR-1
ESR-1(config)# object-group service ISAKMP
ESR-1(config-object-group-service)# port-range 500
ESR-1(config-object-group-service)# port-range 4500
ESR-1(config-object-group-service)# exit

Добавим правила, разрешающее прохождение пакетов протоколов VRRP и ESP, а также UDP-пакетов с портами 500 и 4500, через IPsec-туннель:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair WAN self
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group ISAKMP
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol esp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Создадим зону безопасности IPsec и туннель VTI, через который будет перенаправляться трафик в IPsec-туннель. В качестве локального шлюза назначим VIP IP-адрес, настроенный на интерфейсах в сторону зоны WAN, а в качестве удалённого шлюза – IP-адрес соответствующего интерфейса:

Блок кода
titleESR-1
ESR-1(config)# security zone IPSEC
ESR-1(config-security-zone)# exit
ESR-1(config)# tunnel vti 1
ESR-1(config-vti)# security-zone IPSEC
ESR-1(config-vti)# local address 203.0.113.2
ESR-1(config-vti)# remote address 203.0.113.6
ESR-1(config-vti)# ip address 128.66.0.6/30
ESR-1(config-vti)# enable
ESR-1(config-vti)# exit

Scroll Pagebreak

Добавим правило, разрешающее прохождение трафика между зонами LAN и IPSEC:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair LAN IPSEC
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair IPSEC LAN
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Создадим профиль протокола IKE, в котором зададим следующие параметры безопасности: группу Диффи-Хэллмана 2, алгоритм шифрования AES 128 bit и алгоритм аутентификации MD5. Данные настройки обеспечивают надежную защиту IKE-соединения:

Блок кода
titleESR-1
ESR-1(config)# security ike proposal ike_prop
ESR-1(config-ike-proposal)# dh-group 2
ESR-1(config-ike-proposal)# authentication algorithm md5 
ESR-1(config-ike-proposal)# encryption algorithm aes128
ESR-1(config-ike-proposal)# exit

Создадим политику протокола IKE. В политике указывается список профилей протокола IKE, по которым могут согласовываться узлы и ключ аутентификации:

Блок кода
titleESR-1
ESR-1(config)# security ike policy ike_pol
ESR-1(config-ike-policy)# pre-shared-key ascii-text password
ESR-1(config-ike-policy)# proposal ike_prop
ESR-1(config-ike-policy)# exit

Создадим шлюз протокола IKE с указанием VTI-туннеля, применимой политики, версии протокола и режима перенаправления трафика в туннель, а также отключим mobike:

Блок кода
titleESR-1
ESR-1(config)# security ike gateway ike_gw
ESR-1(config-ike-gw)# version v2-only
ESR-1(config-ike-gw)# ike-policy ike_pol 
ESR-1(config-ike-gw)# mode route-based 
ESR-1(config-ike-gw)# mobike disable
ESR-1(config-ike-gw)# bind-interface vti 1
ESR-1(config-ike-gw)# exit

Создадим профиль параметров безопасности для IPsec-туннеля, в котором укажем алгоритм шифрования AES 128 bit и алгоритм аутентификации MD5, обеспечивая надежную защиту передаваемых данных:

Блок кода
titleESR-1
ESR-1(config)# security ipsec proposal ipsec_prop
ESR-1(config-ipsec-proposal)# authentication algorithm md5 
ESR-1(config-ipsec-proposal)# encryption algorithm aes128
ESR-1(config-ipsec-proposal)# exit

Создадим политику для IPsec-туннеля, в которой укажем перечень профилей IPsec-туннеля, используемых для согласования параметров безопасности между узлами:

Блок кода
titleESR-1
ESR-1(config)# security ipsec policy ipsec_pol
ESR-1(config-ipsec-policy)# proposal ipsec_prop
ESR-1(config-ipsec-policy)# exit

Создадим IPsec VPN, в котором задаются следующие параметры: шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и способ установления соединения:

Блок кода
titleESR-1
ESR-1(config)# security ipsec vpn ipsec
ESR-1(config-ipsec-vpn)# ike establish-tunnel route 
ESR-1(config-ipsec-vpn)# ike gateway ike_gw
ESR-1(config-ipsec-vpn)# ike ipsec-policy ipsec_pol
ESR-1(config-ipsec-vpn)# enable 
ESR-1(config-ipsec-vpn)# exit

Добавим статический маршрут до встречной клиентской подсети через VTI туннель:

Блок кода
titleESR-1
ESR-1(config)# ip route 128.66.1.0/24 128.66.0.5
Примечание

Аналогичную настройку требуется выполнить на встречном устройстве.

Просмотреть состояние VTI туннеля можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show tunnels status 
Tunnel             Admin   Link    MTU      Local IP           Remote IP          Last change     
                   state   state                                                  (d,h:m:s)       
----------------   -----   -----   ------   ----------------   ----------------   -------------   
vti 1              Up      Up      1500     203.0.113.2        203.0.113.6        00,00:05:59     

Scroll Pagebreak

Посмотреть состояние IPsec-туннеля можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show security ipsec vpn status 
Name                              Local host        Remote host       Initiator spi        Responder spi        State         
-------------------------------   ---------------   ---------------   ------------------   ------------------   -----------   
ipsec                             203.0.113.2       203.0.113.6       0x65212b7585c59b50   0x53028e1afc23a024   Established   

Пример настройки Policy-based IPsec VPN

Алгоритм настройки Policy-based IPsec VPN описан в разделе Алгоритм настройки Policy-based IPsec VPN.

Задача:
  • Настроить IPsec туннель. Туннель необходимо поднять между адресами: кластер – 203.0.113.2 (VIP адрес), ответная сторона – 203.0.113.6. Туннель необходим для организации доступа между клиентскими подсетями 192.0.2.0/24 и 128.66.1.0/24;
  • IKE:

    • группа Диффи-Хэллмана: 2;
    • алгоритм шифрования: AES 128 bit;
    • алгоритм аутентификации: MD5.
  • IP sec:

    • алгоритм шифрования: AES 128 bit;
    • алгоритм аутентификации: MD5.

Image Added

Схема реализации Policy-based IPsec VPN

Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone WAN
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone WAN
  ip address 128.66.0.2/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone WAN
  ip address 128.66.0.1/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit

Scroll Pagebreak

Решение:

Создадим профиль ISAKMP-портов, необходимых для работы протокола IPsec, включающий разрешение UDP-пакетов на порту 500 (а также на порту 4500 для поддержки NAT-T при необходимости):

Блок кода
titleESR-1
ESR-1(config)# object-group service ISAKMP
ESR-1(config-object-group-service)# port-range 500
ESR-1(config-object-group-service)# port-range 4500
ESR-1(config-object-group-service)# exit

Добавим правила, разрешающее прохождение пакетов протоколов VRRP и ESP, а также UDP-пакетов с портами 500 и 4500, через IPsec-туннель:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair WAN self
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group ISAKMP
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol esp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Scroll Pagebreak

Добавим правило, разрешающее прохождение трафика между зонами LAN и WAN для клиентских подсетей:

Блок кода
titleESR-1
ESR-1(config)# object-group network LAN
ESR-1(config-object-group-network)# ip prefix 192.0.2.0/24
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network IPSEC
ESR-1(config-object-group-network)# ip prefix 128.66.1.0/24
ESR-1(config-object-group-network)# exit
ESR-1(config)# security zone-pair LAN WAN
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# match source-address object-group LAN 
ESR-1(config-security-zone-pair-rule)# match destination-address object-group IPSEC 
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair WAN LAN 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# match source-address object-group IPSEC 
ESR-1(config-security-zone-pair-rule)# match destination-address object-group LAN 
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Создадим профиль протокола IKE, в котором зададим следующие параметры безопасности: группу Диффи-Хэллмана 2, алгоритм шифрования AES 128 bit и алгоритм аутентификации MD5. Данные настройки обеспечивают надежную защиту IKE-соединения:

Блок кода
titleESR-1
ESR-1(config)# security ike proposal ike_prop
ESR-1(config-ike-proposal)# dh-group 2
ESR-1(config-ike-proposal)# authentication algorithm md5 
ESR-1(config-ike-proposal)# encryption algorithm aes128
ESR-1(config-ike-proposal)# exit

Создадим политику протокола IKE. В политике указывается список профилей протокола IKE, по которым могут согласовываться узлы и ключ аутентификации:

Блок кода
titleESR-1
ESR-1(config)# security ike policy ike_pol
ESR-1(config-ike-policy)# pre-shared-key ascii-text password
ESR-1(config-ike-policy)# proposal ike_prop
ESR-1(config-ike-policy)# exit

Scroll Pagebreak

Создадим шлюз протокола IKE, определив применимую IKE-политику, локальные и удалённые параметры, а также режим перенаправления трафика в туннель. В качестве локального шлюза назначим VIP IP-адрес, настроенный на интерфейсах в сторону зоны WAN, с локальной подсетью 192.0.2.0/24, а удалённым – IP-адрес 203.0.113.1 с удаленной подсетью 128.66.1.0/24. Режим перенаправления трафика установлен как policy-based:

Блок кода
titleESR-1
ESR-1(config)# security ike gateway ike_gw
ESR-1(config-ike-gw)# ike-policy ike_pol
ESR-1(config-ike-gw)# local address 203.0.113.2
ESR-1(config-ike-gw)# local network 192.0.2.0/24
ESR-1(config-ike-gw)# remote address 203.0.113.6
ESR-1(config-ike-gw)# remote network 128.66.1.0/24
ESR-1(config-ike-gw)# mode policy-based
ESR-1(config-ike-gw)# exit

Создадим профиль параметров безопасности для IPsec-туннеля, в котором укажем алгоритм шифрования AES 128 bit и алгоритм аутентификации MD5, обеспечивая надежную защиту передаваемых данных:

Блок кода
titleESR-1
ESR-1(config)# security ipsec proposal ipsec_prop
ESR-1(config-ipsec-proposal)# authentication algorithm md5 
ESR-1(config-ipsec-proposal)# encryption algorithm aes128
ESR-1(config-ipsec-proposal)# exit

Создадим политику для IPsec-туннеля, в которой укажем перечень профилей IPsec-туннеля, используемых для согласования параметров безопасности между узлами:

Блок кода
titleESR-1
ESR-1(config)# security ipsec policy ipsec_pol
ESR-1(config-ipsec-policy)# proposal ipsec_prop
ESR-1(config-ipsec-policy)# exit

Создадим IPsec VPN, в котором задаются следующие параметры: шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и способ установления соединения:

Блок кода
titleESR-1
ESR-1(config)# security ipsec vpn ipsec
ESR-1(config-ipsec-vpn)# ike establish-tunnel route 
ESR-1(config-ipsec-vpn)# ike gateway ike_gw
ESR-1(config-ipsec-vpn)# ike ipsec-policy ipsec_pol
ESR-1(config-ipsec-vpn)# enable
ESR-1(config-ipsec-vpn)# exit

Scroll Pagebreak

Добавим статический маршрут до встречной клиентской подсети через IPsec-туннель:

Блок кода
titleESR-1
ESR-1(config)# ip route 128.66.1.0/24 203.0.113.1
Примечание

Аналогичную настройку требуется выполнить на устройстве, находящемся на другой стороне туннеля

Посмотреть состояние IPsec-туннеля можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show security ipsec vpn status 
Name                              Local host        Remote host       Initiator spi        Responder spi        State         
-------------------------------   ---------------   ---------------   ------------------   ------------------   -----------   
ipsec                             203.0.113.2       203.0.113.6       0x201602ebcafb809b   0x4556a21a7012d2c0   Established   

Настройка firewall/NAT failover

Firewall failover необходим для резервирования сессий firewall.  

Алгоритм настройки firewall/NAT failover описан в разделе Алгоритм настройки firewall failover.

Пример настройки firewall failover

Задача:

Настроить firewall failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • режим резервирования сессий unicast;
  • номер UDP-порта службы резервирования 9999;
  • клиентская подсеть: 192.0.2.0/24.

 

Image Added

Схема реализации Firewall failover

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone WAN
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone WAN
  ip address 128.66.0.6/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 128.66.0.2/30
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone WAN
  ip address 128.66.0.5/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 128.66.0.1/30
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair LAN WAN
  rule 1
    action permit
    enable
  exit
exit

ip route 0.0.0.0/0 203.0.113.1
Решение:

Сконфигурируем object-group для настройки failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# object-group network SYNC_SRC
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SYNC_DST
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2
ESR-1(config-object-group-network)# exit

Перейдем к настройке общих параметров для failover-сервисов, а именно к выбору: IP-адреса с которого будут отправляться сообщения для синхронизации, IP-адреса получателя сообщений для синхронизации и VRRP-группу, на основе которой определяется состояние (основной/резервный) маршрутизатора при работе failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# ip failover
ESR-1(config-failover)# local-address object-group SYNC_SRC
ESR-1(config-failover)# remote-address object-group SYNC_DST
ESR-1(config-failover)# vrrp-group 1
ESR-1(config-failover)# exit
Примечание

При включенном кластере использование object-group в настройке failover-сервисов для local-/remote-адресов обязательно.

Для настройки правил зон безопасности создадим профиль для порта firewall failover:

Блок кода
titleESR-1
ESR-1(config)# object-group service FAILOVER
ESR-1(config-object-group-service)# port-range 9999
ESR-1(config-object-group-service)# exit

Scroll Pagebreak

Создадим разрешающие правило для зоны безопасности SYNC, разрешив прохождение необходимого трафика для работы firewall failover:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair SYNC self 
ESR-1(config-security-zone-pair)# rule 4
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol udp 
ESR-1(config-security-zone-pair-rule)# match destination-port object-group FAILOVER 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Выполним настройку firewall failover. Настроим режим резервирования сессий unicast, номер UDP-порта службы резервирования сессий firewall и включим firewall failover:

Блок кода
titleESR-1
ESR-1(config)# ip firewall failover
ESR-1(config-firewall-failover)# sync-type unicast
ESR-1(config-firewall-failover)# port 9999
ESR-1(config-firewall-failover)# enable 
ESR-1(config-firewall-failover)# exit

После успешного запуска firewall failover можно посмотреть информацию о сервисе с помощью команды:

Блок кода
titleESR-1
ESR-1# show ip firewall failover 
Communication interface:                    bridge 1
Status:                                     Running
Bytes sent:                                 3420
Bytes received:                             3320
Packets sent:                               209
Packets received:                           209
Send errors:                                0
Receive errors:                             0
Resend queue: 
    Active entries:                         1
    Errors: 
        No space left:                      0
Hold queue: 
    Active entries:                         0
    Errors: 
        No space left:                      0

Scroll Pagebreak

Также возможно узнать текущее состояние firewall failover сервиса, выполнив команду:    

Блок кода
titleESR-1
ESR-1# show high-availability state 
AP Tunnels:
    State:                         Disabled
    Last state change:             --
DHCP option 82 table:
    State:                         Disabled
    Last state change:             --
DHCP server:
    State:                         Disabled
    Last state change:             --
crypto-sync:
    State:                         Disabled
Firewall sessions and NAT translations:
VRF:                               --
    Tracking VRRP Group            1
    Tracking VRRP Group state:     Master
    State:                         Successful synchronization
    Fault Reason:                  --
    Last synchronization:          2025-02-12 07:05:47

Сгенерируем одну клиентскую сессии из LAN в WAN.

Посмотреть firewall-сессии, которые синхронизируются между устройствами, можно командами:    

Блок кода
titleESR-1
ESR-1# show ip firewall sessions failover internal 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     0            192.0.2.10:44812        128.66.1.1:22           128.66.1.1:22           192.0.2.10:44812        --           --           AC       
Блок кода
titleESR-2
ESR-1# show ip firewall sessions failover external 
  Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     0            192.0.2.10:44812        128.66.1.1:22           128.66.1.1:22           192.0.2.10:44812        --           --           AC       

Scroll Pagebreak

Посмотреть счетчики для кэшей firewall failover можно командой:

Блок кода
titleESR-1
ESR-1# show ip firewall failover cache 
Internal sessions cache counters:
    Active entries:                         1
    Added:                                  5
    Deleted:                                4
    Updated:                                4
    Failed adding:                          0
        No memory left:                     0
        No space left:                      0
    Failed deleting:                        0
        No entry found:                     0
    Failed updating:                        0
        No entry found:                     0
External sessions cache counters:
    Active entries:                         0
    Added:                                  0
    Deleted:                                0
    Updated:                                0
    Installed to Kernel:                    0
    Failed adding:                          0
        No memory left:                     0
        No space left:                      0
    Failed deleting:                        0
        No entry found:                     0
    Failed updating:                        0
        No entry found:                     0
    Failed installing to Kernel:            0

Пример настройки нескольких экземпляров firewall failover, каждый – в своём VRF

Задача:

Настроить несколько экземпляров firewall failover в кластере маршрутизаторов ESR-1 и ESR-2, каждый в своем VRF, со следующими параметрами:

  • режим резервирования сессий unicast;
  • номер UDP-порта службы резервирования 9999;
  • настроить приоритеты у разных firewall failover так, чтобы один из юнитов кластера был Master в одном VRF, а в другом был Backup;
  • клиентская подсеть через первый VRF: 192.0.2.0/24;
  • клиентская подсеть через второй VRF: 128.66.0.0/24.

 

Image Added

Схема реализации firewall failover в нескольких VRF

Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

ip vrf PAIR_ONE
exit
ip vrf PAIR_TWO
exit

security zone SYNC
exit
security zone LAN_ONE
  ip vrf forwarding PAIR_ONE
exit
security zone LAN_TWO
  ip vrf forwarding PAIR_TWO
exit
security zone WAN_ONE
  ip vrf forwarding PAIR_ONE
exit
security zone WAN_TWO
  ip vrf forwarding PAIR_TWO
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 8CB5107EA7005AFF
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
exit
interface gigabitethernet 1/0/2.2
  ip vrf forwarding PAIR_ONE
  security-zone LAN_ONE
  ip address 203.0.113.18/30
  vrrp id 4
  vrrp ip 192.0.2.1/24
  vrrp priority 120
  vrrp group 2
  vrrp
exit
interface gigabitethernet 1/0/2.3
  ip vrf forwarding PAIR_TWO
  security-zone LAN_TWO
  ip address 203.0.113.22/30
  vrrp id 5
  vrrp ip 128.66.0.1/24
  vrrp priority 110
  vrrp group 3
  vrrp
exit
interface gigabitethernet 1/0/3.2
  ip vrf forwarding PAIR_ONE
  security-zone WAN_ONE
  ip address 203.0.113.10/30
  vrrp id 2
  vrrp ip 203.0.113.2/30
  vrrp group 2
  vrrp
exit
interface gigabitethernet 1/0/3.3
  ip vrf forwarding PAIR_TWO
  security-zone WAN_TWO
  ip address 203.0.113.14/30
  vrrp id 3
  vrrp ip 203.0.113.6/30
  vrrp group 3
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
exit
interface gigabitethernet 2/0/2.2
  ip vrf forwarding PAIR_ONE
  security-zone LAN_ONE
  ip address 203.0.113.17/30
  vrrp id 4
  vrrp ip 192.0.2.1/24
  vrrp priority 110
  vrrp group 2
  vrrp
exit
interface gigabitethernet 2/0/2.3
  ip vrf forwarding PAIR_TWO
  security-zone LAN_TWO
  ip address 203.0.113.21/30
  vrrp id 5
  vrrp ip 128.66.0.1/24
  vrrp priority 120
  vrrp group 3
  vrrp
exit
interface gigabitethernet 2/0/3.2
  ip vrf forwarding PAIR_ONE
  security-zone WAN_ONE
  ip address 203.0.113.9/30
  vrrp id 2
  vrrp ip 203.0.113.2/30
  vrrp group 2
  vrrp
exit
interface gigabitethernet 2/0/3.3
  ip vrf forwarding PAIR_TWO
  security-zone WAN_TWO
  ip address 203.0.113.13/30
  vrrp id 3
  vrrp ip 203.0.113.6/30
  vrrp group 3
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN_ONE self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair LAN_TWO self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair WAN_ONE self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair WAN_TWO self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair LAN_ONE WAN_ONE
  rule 1
    action permit
    enable
  exit
exit
security zone-pair LAN_TWO WAN_TWO
  rule 1
    action permit
    enable
  exit
exit
Решение:

Сконфигурируем object-group для настройки failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# object-group network DST_PAIR_ONE
ESR-1(config-object-group-network)# ip address-range 203.0.113.17 unit 1
ESR-1(config-object-group-network)# ip address-range 203.0.113.18 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network DST_PAIR_TWO
ESR-1(config-object-group-network)# ip address-range 203.0.113.21 unit 1
ESR-1(config-object-group-network)# ip address-range 203.0.113.22 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SRC_PAIR_ONE
ESR-1(config-object-group-network)# ip address-range 203.0.113.18 unit 1
ESR-1(config-object-group-network)# ip address-range 203.0.113.17 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SRC_PAIR_TWO
ESR-1(config-object-group-network)# ip address-range 203.0.113.22 unit 1
ESR-1(config-object-group-network)# ip address-range 203.0.113.21 unit 2
ESR-1(config-object-group-network)# exit

Перейдем к настойке ip failover для каждого VRF, настроим там local-address/remote-address и укажем привязки к соответствующим VRRP-group, на основе которых будет определяться, какой из маршрутизаторов будет синхронизировать сессии:

Блок кода
titleESR-1
ESR-1(config)# ip failover vrf PAIR_ONE
ESR-1(config-failover)# local-address object-group SRC_PAIR_ONE
ESR-1(config-failover)# remote-address object-group DST_PAIR_ONE
ESR-1(config-failover)# vrrp-group 2
ESR-1(config-failover)# exit
ESR-1(config)# ip failover vrf PAIR_TWO
ESR-1(config-failover)# local-address object-group SRC_PAIR_TWO
ESR-1(config-failover)# remote-address object-group DST_PAIR_TWO
ESR-1(config-failover)# vrrp-group 3
ESR-1(config-failover)# exit

Перейдем к настройке firewall failover, каждый в своем VRF. Для каждого экземпляра необходимо указать режим синхронизирования unicast, настроить port 9999, а также включить его:

Блок кода
titleESR-1
ESR-1(config)# ip firewall failover vrf PAIR_ONE
ESR-1(config-firewall-failover)# sync-type unicast
ESR-1(config-firewall-failover)# port 9999
ESR-1(config-firewall-failover)# enable
ESR-1(config-firewall-failover)# exit
ESR-1(config)# ip firewall failover vrf PAIR_TWO
ESR-1(config-firewall-failover)# sync-type unicast
ESR-1(config-firewall-failover)# port 9999
ESR-1(config-firewall-failover)# enable
ESR-1(config-firewall-failover)# exit

Разрешим в настройках firewall работу firewall failover в соответствующих зонах:

Блок кода
titleESR-1
ESR-1(config)# object-group service FAILOVER
ESR-1(config-object-group-service)# port-range 9999
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone-pair LAN_ONE self
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group FAILOVER
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair LAN_TWO self
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group FAILOVER
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Scroll Pagebreak

Просмотреть VRRP-статусы в разных VRF можно используя команду show vrrp. Убедимся что в одном VRF устройство находится в статусе Master, а в другом VRF – в статусе Backup:

Блок кода
titleESR-1
ESR-1# show vrrp vrf PAIR_ONE 

   Unit 1* 'ESR-1'
   ---------------
Virtual router   Virtual IP                          Priority   Preemption   State    Inherit   Sync group ID   
--------------   ---------------------------------   --------   ----------   ------   -------   -------------   
2                203.0.113.2/30                      100        Enabled      Master   --        2               
4                192.0.2.1/24                        120        Enabled      Master   --        2               


   Unit 2 'ESR-2'
   --------------
Virtual router   Virtual IP                          Priority   Preemption   State    Inherit   Sync group ID   
--------------   ---------------------------------   --------   ----------   ------   -------   -------------   
2                203.0.113.2/30                      100        Enabled      Backup   --        2               
4                192.0.2.1/24                        110        Enabled      Backup   --        2               

ESR-1# show vrrp vrf PAIR_TWO

   Unit 1* 'ESR-1'
   ---------------
Virtual router   Virtual IP                          Priority   Preemption   State    Inherit   Sync group ID   
--------------   ---------------------------------   --------   ----------   ------   -------   -------------   
3                203.0.113.6/30                      100        Enabled      Backup   --        3               
5                128.66.0.1/24                       110        Enabled      Backup   --        3               


   Unit 2 'ESR-2'
   --------------
Virtual router   Virtual IP                          Priority   Preemption   State    Inherit   Sync group ID   
--------------   ---------------------------------   --------   ----------   ------   -------   -------------   
3                203.0.113.6/30                      100        Enabled      Master   --        3               
5                128.66.0.1/24                       120        Enabled      Master   --        3               

Scroll Pagebreak

Посмотреть информацию о сервисе firewall failover в каждом VRF можно с помощью следующей команды:

Блок кода
titleESR-1
ESR-1# show ip firewall failover vrf PAIR_ONE 
Communication interface:                    gigabitethernet 1/0/2.2
Status:                                     Running
Bytes sent:                                 7420
Bytes received:                             7200
Packets sent:                               465
Packets received:                           460
Send errors:                                0
Receive errors:                             0
Resend queue: 
    Active entries:                         1
    Errors: 
        No space left:                      0
Hold queue: 
    Active entries:                         0
    Errors: 
        No space left:                      0
ESR-1# show ip firewall failover vrf PAIR_TWO 
Communication interface:                    gigabitethernet 1/0/2.3
Status:                                     Running
Bytes sent:                                 7320
Bytes received:                             7380
Packets sent:                               468
Packets received:                           464
Send errors:                                0
Receive errors:                             0
Resend queue: 
    Active entries:                         1
    Errors: 
        No space left:                      0
Hold queue: 
    Active entries:                         0
    Errors: 
        No space left:                      0

Scroll Pagebreak

Также возможно узнать текущее состояние firewall failover сервисов во всех VRF, выполнив команду:    

Блок кода
titleESR-1
ESR-1# show high-availability state 
DHCP server:
    State:                         Disabled
    Last state change:             --
crypto-sync:
    State:                         Disabled
Firewall sessions and NAT translations:
VRF:                               PAIR_ONE
    State:                         Successful synchronization
    Fault Reason:                  --
    Last synchronization:          2025-02-18 08:51:34
VRF:                               PAIR_TWO
    State:                         Successful synchronization
    Fault Reason:                  --
    Last synchronization:          2025-02-18 08:51:34

Сгенерируем по одной клиентской сессии из каждого LAN-пула.

Посмотреть вывод текущих сессий на устройстве можно с помощью команды show ip firewall sessions. Убедимся что в выводе есть сессия только для того VRF, в котором устройство является в статусе Master:

Блок кода
titleESR-1
ESR-1# show ip firewall sessions vrf PAIR_ONE protocol tcp 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     110          192.0.2.10:47406        203.0.113.1:22          192.0.2.10:47406        203.0.113.1:22          --           --           AC       
ESR-1# show ip firewall sessions vrf PAIR_TWO protocol tcp 
Блок кода
titleESR-2
ESR-2# show ip firewall sessions vrf PAIR_ONE protocol tcp
ESR-2# show ip firewall sessions vrf PAIR_TWO protocol tcp 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     113          128.66.0.10:59108       203.0.113.5:22          128.66.0.10:59108       203.0.113.5:22          --           --           AC       

Scroll Pagebreak

Посмотреть вывод активных синхронизируемых сессий, используемых для работы firewal failover, на устройстве можно с помощью команды show ip firewall session failover external/internal. Убедимся что для одного из VRF сессия находится в internal cash, а для второго VRF сессия находится в external cash:

Блок кода
titleESR-1
ESR-1# show ip firewall sessions failover external vrf PAIR_ONE 
ESR-1# show ip firewall sessions failover internal vrf PAIR_ONE 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     0            192.0.2.10:47406        203.0.113.1:22          203.0.113.1:22          192.0.2.10:47406        --           --           AC       
ESR-1# show ip firewall sessions failover external vrf PAIR_TWO 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     0            128.66.0.10:59108       203.0.113.5:22          203.0.113.5:22          128.66.0.10:59108       --           --           AC       
ESR-1# show ip firewall sessions failover internal vrf PAIR_TWO 
Блок кода
titleESR-2
ESR-2# show ip firewall sessions failover external vrf PAIR_ONE 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     0            192.0.2.10:47406        203.0.113.1:22          203.0.113.1:22          192.0.2.10:47406        --           --           AC       
ESR-2# show ip firewall sessions failover internal vrf PAIR_ONE 
ESR-2# show ip firewall sessions failover external vrf PAIR_TWO 
ESR-2# show ip firewall sessions failover internal vrf PAIR_TWO 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Aging        Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ----------   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     0            128.66.0.10:59108       203.0.113.5:22          203.0.113.5:22          128.66.0.10:59108       --           --           AC       

Настройка DHCP failover

DHCP-failover позволяет обеспечить высокую доступность службы DHCP.

Алгоритм настройки DHCP failover описан в разделе Алгоритм настройки DHCP failover.

Пример настройки

Задача:

Настроить DHCP failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • в качестве default-router используется IP-адрес VRRP;
  • установить в качестве необходимого режима работы резервирования active-standby;
  • клиентская подсеть: 192.0.2.0/24.

Image Added

Схема реализации DHCP failover

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

object-group service DHCP_SERVER
  port-range 67
exit
object-group service DHCP_CLIENT
  port-range 68
exit

security zone SYNC
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol udp
    match source-port object-group DHCP_CLIENT
    match destination-port object-group DHCP_SERVER
    enable
  exit
exit

ip dhcp-server
ip dhcp-server pool TRUSTED
  network 192.0.2.0/24
  address-range 192.0.2.10-192.0.2.100
  default-router 192.0.2.1
exit

Scroll Pagebreak

Решение:

Сконфигурируем object-group для настройки failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# object-group network SYNC_SRC
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SYNC_DST
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2
ESR-1(config-object-group-network)# exit

Перейдем к настройке общих параметров для failover-сервисов, а именно к выбору: IP-адреса с которого будут отправляться сообщения для синхронизации, IP-адреса получателя сообщений для синхронизации и VRRP-группу, на основе которой определяется состояние (основной/резервный) маршрутизатора при работе failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# ip failover
ESR-1(config-failover)# local-address object-group SYNC_SRC
ESR-1(config-failover)# remote-address object-group SYNC_DST
ESR-1(config-failover)# vrrp-group 1
ESR-1(config-failover)# exit

Перейдем к настройке резервирования DHCP-сервера, укажем режим работы резервирования и включим DHCP-failover:

Блок кода
titleESR-1
ESR-1(config)# ip dhcp-server failover 
ESR-1(config-dhcp-server-failover)# mode active-standby 
ESR-1(config-dhcp-server-failover)# enable
ESR-1(config-dhcp-server-failover)# exit
Примечание

Для работы в кластере необходимо использовать режим active-standby.

Scroll Pagebreak

Создадим разрешающие правило для зоны безопасности SYNC, разрешив прохождение необходимого трафика для работы DHCP failover:

Блок кода
titleESR-1
ESR-1(config)# object-group service SYNC
ESR-1(config-object-group-service)# port-range 873
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone-pair SYNC self
ESR-1(config-security-zone-pair)# rule 4
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SYNC
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Посмотреть состояние резервирования DHCP-сервера можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show ip dhcp server failover 
VRF:                             --
    Mode:                        Active-Standby
    Role:                        Master
    State:                       Synchronized
    Last synchronization:        2025-02-12 07:56:40

Посмотреть состояние резервирования сессий DHCP можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show high-availability state 
AP Tunnels:
    State:                         Disabled
    Last state change:             --
DHCP option 82 table:
    State:                         Disabled
    Last state change:             --
DHCP server:
VRF:                               --
    Mode:                          Active-Standby
    State:                         Successful synchronization
    Last synchronization:          2025-02-12 07:56:36
crypto-sync:
    State:                         Disabled
Firewall sessions and NAT translations:
    State:                         Disabled

Scroll Pagebreak

Выданные адреса DHCP можно просмотреть с помощью команды:

Блок кода
titleESR-1
ESR-1# show ip dhcp binding 
IP address         MAC / Client ID                                                 Binding type   Lease expires at       
----------------   -------------------------------------------------------------   ------------   --------------------   
192.0.2.10         e4:5a:d4:01:18:04                                               active         2025-02-13 07:56:09    


Пример настройки нескольких экземпляров DHCP failover, каждый в своем VRF

Задача:

Настроить два экземпляра DHCP failover, каждый в своём VRF, в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • в качестве default-router используется IP-адрес VRRP;
  • установить в качестве необходимого режима работы резервирования active-standby;
  • настроить приоритеты у разных DHCP failover так, чтобы один из юнитов кластера был Master в одном VRF, а в другом был Backup;
  • клиентская подсеть в первом VRF: 192.0.2.0/24;
  • клиентская подсеть в втором VRF: 128.66.0.0/24.

Image Added

Схема реализации DHCP failover в нескольких VRF

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

object-group service DHCP_SERVER
  port-range 67
exit
object-group service DHCP_CLIENT
  port-range 68
exit

ip vrf LAN_ONE
exit
ip vrf LAN_TWO
exit

security zone SYNC
exit
security zone LAN_ONE
  ip vrf forwarding LAN_ONE
exit
security zone LAN_TWO
  ip vrf forwarding LAN_TWO
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 8CB5107EA7005AFF
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
exit
interface gigabitethernet 1/0/2.2
  ip vrf forwarding LAN_ONE
  security-zone LAN_ONE
  ip address 192.0.2.254/24
  vrrp id 4
  vrrp ip 192.0.2.1/24
  vrrp priority 120
  vrrp group 2
  vrrp
exit
interface gigabitethernet 1/0/2.3
  ip vrf forwarding LAN_TWO
  security-zone LAN_TWO
  ip address 128.66.0.254/24
  vrrp id 5
  vrrp ip 128.66.0.1/24
  vrrp priority 110
  vrrp group 3
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
exit
interface gigabitethernet 2/0/2.2
  ip vrf forwarding LAN_ONE
  security-zone LAN_ONE
  ip address 192.0.2.253/24
  vrrp id 4
  vrrp ip 192.0.2.1/24
  vrrp priority 110
  vrrp group 2
  vrrp
exit
interface gigabitethernet 2/0/2.3
  ip vrf forwarding LAN_TWO
  security-zone LAN_TWO
  ip address 128.66.0.253/24
  vrrp id 5
  vrrp ip 128.66.0.1/24
  vrrp priority 120
  vrrp group 3
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN_ONE self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol udp
    match source-port object-group DHCP_CLIENT
    match destination-port object-group DHCP_SERVER
    enable
  exit
exit
security zone-pair LAN_TWO self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol udp
    match source-port object-group DHCP_CLIENT
    match destination-port object-group DHCP_SERVER
    enable
  exit
exit

ip dhcp-server vrf LAN_ONE
ip dhcp-server pool LAN_ONE vrf LAN_ONE
  network 192.0.2.0/24
  address-range 192.0.2.10-192.0.2.253
  default-router 192.0.2.1
exit
ip dhcp-server vrf LAN_TWO
ip dhcp-server pool LAN_TWO vrf LAN_TWO
  network 128.66.0.0/24
  address-range 128.66.0.10-128.66.0.253
  default-router 128.66.0.1
exit

Scroll Pagebreak

Решение:

Сконфигурируем object-group для настройки DHCP failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# object-group network DST_LAN_ONE
ESR-1(config-object-group-network)# ip address-range 192.0.2.253 unit 1
ESR-1(config-object-group-network)# ip address-range 192.0.2.254 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network DST_LAN_TWO
ESR-1(config-object-group-network)# ip address-range 128.66.0.253 unit 1
ESR-1(config-object-group-network)# ip address-range 128.66.0.254 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SRC_LAN_ONE
ESR-1(config-object-group-network)# ip address-range 192.0.2.254 unit 1
ESR-1(config-object-group-network)# ip address-range 192.0.2.253 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SRC_LAN_TWO
ESR-1(config-object-group-network)# ip address-range 128.66.0.254 unit 1
ESR-1(config-object-group-network)# ip address-range 128.66.0.253 unit 2
ESR-1(config-object-group-network)# exit

Перейдем к настойке ip failover для каждого VRF, настроим там local-address/remote-address и укажем привязки к соответствующим VRRP-group, на основе которых будет определяться, кто из маршрутизаторов будет выдавать адреса:

Блок кода
titleESR-1
ESR-1(config)# ip failover vrf LAN_ONE
ESR-1(config-failover)# local-address object-group SRC_LAN_ONE
ESR-1(config-failover)# remote-address object-group DST_LAN_ONE
ESR-1(config-failover)# vrrp-group 2
ESR-1(config-failover)# exit
ESR-1(config)# ip failover vrf LAN_TWO
ESR-1(config-failover)# local-address object-group SRC_LAN_TWO
ESR-1(config-failover)# remote-address object-group DST_LAN_TWO
ESR-1(config-failover)# vrrp-group 3
ESR-1(config-failover)# exit

Перейдем к настройке DHCP failover, каждый в своем VRF. Для каждого экземпляра необходимо указать режим работы Active-Standby, а также включить его:

Блок кода
titleESR-1
ESR-1(config)# ip dhcp-server failover vrf LAN_ONE
ESR-1(config-dhcp-server-failover)# mode active-standby
ESR-1(config-dhcp-server-failover)# enable
ESR-1(config-dhcp-server-failover)# exit
ESR-1(config)# ip dhcp-server failover vrf LAN_TWO
ESR-1(config-dhcp-server-failover)# mode active-standby
ESR-1(config-dhcp-server-failover)# enable
ESR-1(config-dhcp-server-failover)# exit

Scroll Pagebreak

Разрешим в настройках firewall работу dhcp-failover в соответствующих зонах:

Блок кода
titleESR-1
ESR-1(config)# object-group service SYNC
ESR-1(config-object-group-service)# port-range 873
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone-pair LAN_ONE self
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SYNC
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair LAN_TWO self
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SYNC
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# exi

Посмотреть статус работы DHCP-failover можно с помощью команды, один из экземпляров должен быть в Role - Master, второй в Role - Backup:

Блок кода
titleESR-1
ESR-1# show ip dhcp server failover vrf LAN_ONE 
VRF:                             LAN_ONE
    Mode:                        Active-Standby
    Role:                        Master
    State:                       Synchronized
    Last synchronization:        2025-02-18 09:34:44
ESR-1# show ip dhcp server failover vrf LAN_TWO 
VRF:  
Блок кода
titleПример
ESR-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences
|*************************| 100% (680B) Licence loaded successfully.
ESR-1#
ESR-1#
ESR-1#
ESR-1# show cluster-unit-licences 
Serial number     Features                           LAN_TWO
    Mode:                        
---------------   ------------------------------------------------------------   
NP0B003634Active-Standby
    Role:             BRAS,IPS,WIFI           Backup
    State:        
NP0B009033        BRAS,IPS,WIFI
ESR-1# sync cluster system force

Подключение сервисов

После успешной настройки кластера можно приступать к конфигурации сервисов.

Настройка System prompt

System prompt позволяет отобразить оперативное состояние кластера непосредственно в строке приглашения CLI устройства, что упрощает получение актуальной информации.

Варианты настройки system prompt, включая доступные параметры и синтаксис команды, приведены по ссылке в разделе: Настройка общесистемных параметров.

Пример настройки

Задача:

Настроить system prompt в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • необходимо получать информацию о статусе полной синхронизации кластера;
  • необходимо получать информацию о номере юнита администрируемого устройства;
  • необходимо получать информацию о роли устройства в кластере;
  • необходимо получать информацию о статусе кластерного VRRP;
  • необходимо получать информацию о hostname устройства.
Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1Synchronized
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
Last synchronization:        mac2025-02-address18 cc09:9d:a2:71:82:38
  exit
  enable
exit
 
hostname ESR-1 unit 1
hostname ESR-2 unit 2
 
security zone SYNC
exit
 
bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit
 
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit
 
security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
Решение:

Перейдем в режим конфигурирования устройства:

Блок кода
titleESR-1
ESR-1# configure 
ESR-1(config)#

Добавим в system prompt информацию о статусе полной синхронизации кластера:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s%)'

Добавим в system prompt информацию о номере юнита администрируемого устройства:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u%)'

Добавим в system prompt информацию о роли устройства в кластере:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r%)'

Добавим в system prompt информацию о статусе кластерного VRRP:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r% | VRRP id 1: %v1%)'

Добавим в system prompt информацию о hostname устройства:

Блок кода
titleESR-1
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r% | VRRP id 1: %v1%)|%h%'

Применим конфигурацию и обновим пользовательскую сессию CLI:

34:46

Scroll Pagebreak

Также статусы работы DHCP-серверов можно посмотреть с помощью команды:

Блок кода
titleESR-1
ESR-1# show high-availability state 
DHCP server:
VRF:                               LAN_TWO
    Mode:                          Active-Standby
    State:                         Successful synchronization
    Last synchronization:          2025-02-18 09:34:30
VRF:                               LAN_ONE
    Mode:                          Active-Standby
    State:                         Successful synchronization
    Last synchronization:          2025-02-18 09:34:28
crypto-sync:
    State:   
Блок кода
titleESR-1
ESR-1# commit
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be.
ESR-1# confirm
Configuration has been confirmed. Commit timer canceled.
ESR-1# exit

ESR-1 login: admin
Password: 

********************************************
*            Welcome to ESR                *
********************************************

(Cluster: Yes | Unit: 1 | State: Active | VRRP id 1: Master)|ESR-1#

...

      Disabled
Firewall sessions and NAT translations:
    State:                         Disabled

Выданные адреса DHCP можно просмотреть с помощью команды:

Блок кода
titleESR-21
ESR-2# 2024-12-27T15:25:04+00:00 %CLUSTER-I-SYNC_CONFIG_INFO: unit 1 'ESR-1' starts a synchronous operation 'commit'
2024-12-27T15:25:09+00:00 %CLUSTER-I-SYNC_CONFIG_INFO: 'commit' successful performed
ESR-2# exit

ESR-2 login: admin
Password: 

********************************************
*1# show ip dhcp binding vrf LAN_ONE 
IP address         MAC / Client ID                                            Welcome to ESR   Binding type   Lease expires at       *
********************************************

(Cluster: Yes | Unit: 2 | State: Standby | VRRP id 1: Backup)|ESR-2# 
Примечание

Обновление пользовательской сессии необходимо, чтобы настройки system prompt применились исключительно для администратора, которому это требуется.

Итоговая конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address 68:13:e2:7f:22:c0
  exit
  unit 2
    mac-address 68:13:e2:7f:10:30
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit

system prompt '(Cluster: %s% | Unit: %u% | State: %r% | VRRP id 1: %v1%)|%h%'

Настройка MultiWAN

Технология MultiWAN позволяет организовать отказоустойчивое соединение с резервированием линков от нескольких провайдеров, а также решает проблему балансировки трафика между резервными линками.

Создайте локальную зону безопасности и зону безопасности в сторону интернета:

Блок кода
titleESR-1
ESR-1(config)# security zone TRUSTED
ESR-1(config-security-zone)# exit
ESR-1(config)# security zone ISP1_ISP2
ESR-1(config-security-zone)# exit

Создайте список IP-адресов для проверки целостности соединения:

Блок кода
titleESR-1
ESR-1(config)# wan load-balance target-list ISP1_ISP2
ESR-1(config-wan-target-list)# target 1
ESR-1(config-wan-target)# resp-time 1
ESR-1(config-wan-target)# ip address 8.8.8.8
ESR-1(config-wan-target)# enable 
ESR-1(config-wan-target)# exit 
ESR-1(config-wan-target-list)# exit 

Настройте интерфейсы в ISP 1, ISP 2 и TRUSTED:


----------------   -------------------------------------------------------------   ------------   --------------------   
192.0.2.10         50:52:e5:02:0c:00                                               active         2025-02-19 09:34:06    
ESR-1# show ip dhcp binding vrf LAN_TWO 
IP address         MAC / Client ID                                                 Binding type   Lease expires at       
----------------   -------------------------------------------------------------   ------------   --------------------   
128.66.0.10        50:6d:ae:02:0e:00                                               active         2025-02-19 09:34:09    

Настройка SNMP

Протокол SNMP (Simple Network Management Protocol) реализует модель «менеджер–агент» для централизованного управления сетевыми устройствами: агенты, установленные на устройствах, собирают данные, структурированные в MIB, а менеджер запрашивает информацию, мониторит состояние сети, контролирует производительность и вносит изменения в конфигурацию оборудования.

Подробный алгоритм настройки SNMP описан в разделе Настройка SNMP-сервера и отправки SNMP TRAP.

Пример настройки

Image Added

Схема реализации SNMP

Задача:
  • обеспечить возможность мониторинга сети через management-интерфейс каждого устройства в кластере:
  • обеспечить возможность мониторинга состояния сети и внесения изменений в конфигурацию устройства, выполняющего роль VRRP Master;
  • устройство управления (MGMT) доступно по IP-адресу 192.0.2.10.
Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone MGMT
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone MGMT
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone MGMT
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair MGMT self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
Решение:

Создадим профиль SNMP-портов, предоставляющий доступ в MGMT зону безопасности:

Блок кода
titleESR-1
ESR-1(config)# object-group service SNMP
ESR-1(config-object-group-service)# port-range 161
ESR-1(config-object-group-service)# port-range 162
ESR-1(config-object-group-service)# exit

Добавим правило, предусматривающее проверку, что порт назначения UDP-пакетов соответствует профилю SNMP-портов:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair MGMT self
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SNMP
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule
Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/2
ESR-1(config-if-gi)# description "Network: TRUSTED"
ESR-1(config-if-gi)# security-zone TRUSTED
ESR-1(config-if-gi)# ip address 192.18.3.254/24
ESR-1(config-if-gi)# vrrp id 3
ESR-1(config-if-gi)# vrrp ip 192.18.3.1/24
ESR-1(config-if-gi)# vrrp group 1
ESR-1(config-if-gi)# vrrp
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 1/0/3.111
ESR-1(config-subif)# description "Network: ISP1"
ESR-1(config-subif)# security-zone ISP1_ISP2
ESR-1(config-subif)# ip address 192.18.4.254/24
ESR-1(config-subif)# vrrp id 111
ESR-1(config-subif)# vrrp ip 192.18.4.2/24
ESR-1(config-subif)# vrrp group 1
ESR-1(config-subif)# vrrp
ESR-1(config-subif)# wan load-balance nexthop 192.18.4.1
ESR-1(config-subif)# wan load-balance success-count 1
ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2
ESR-1(config-subif)# wan load-balance enable
ESR-1(config-subif)# exit
ESR-1(config)# interface gigabitethernet 1/0/3.222
ESR-1(config-subif)# description "Network: ISP2"
ESR-1(config-subif)# security-zone ISP1_ISP2
ESR-1(config-subif)# ip address 192.18.5.254/24
ESR-1(config-subif)# vrrp id 222
ESR-1(config-subif)# vrrp ip 192.18.5.2/24
ESR-1(config-subif)# vrrp group 1
ESR-1(config-subif)# vrrp
ESR-1(config-subif)# wan load-balance nexthop 192.18.5.1
ESR-1(config-subif)# wan load-balance success-count 1
ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2
ESR-1(config-subif)# wan load-balance enable
ESR-1(config-subif)# exit
ESR-1(config)# interface gigabitethernet 2/0/2
ESR-1(config-if-gi)# description "Network: TRUSTED"
ESR-1(config-if-gi)# security-zone TRUSTED
ESR-1(config-if-gi)# ip address 192.18.3.253/24
ESR-1(config-if-gi)# vrrp id 3
ESR-1(config-if-gi)# vrrp ip 192.18.3.1/24
ESR-1(config-if-gi)# vrrp group 1
ESR-1(config-if-gi)# vrrp
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/3.111
-security-zone-pair)# exit

Scroll Pagebreak

Активируем SNMP-сервер, настроив параметр snmp-community для обеспечения аутентификации и корректного доступа к данным мониторинга:

Блок кода
titleESR-1
ESR-1(config-subif)# description "Network: ISP1"snmp-server 
ESR-1(config-subif)# security-zone ISP1_ISP2
ESR-1(config-subif)# ip address 192.18.4.253/24
ESR-1(config-subif)# vrrp id 111
ESR-1(config-subif)# vrrp ip 192.18.4.2/24
ESR-1(config-subif)# vrrp group 1
ESR-1(config-subif)# vrrp
ESR-1(config-subif)# wan load-balance nexthop 192.18.4.1
ESR-1(config-subif)# wan load-balance success-count 1
ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2
ESR-1(config-subif)# wan load-balance enable
ESR-1(config-subif)# exit
ESR-1(config)# interface gigabitethernet 2/0/3.222
ESR-1(config-subif)# description "Network: ISP2"
ESR-1(config-subif)# security-zone ISP1_ISP2
ESR-1(config-subif)# ip address 192.18.5.253/24
ESR-1(config-subif)# vrrp id 222
ESR-1(config-subif)# vrrp ip 192.18.5.2/24
ESR-1(config-subif)# vrrp group 1
ESR-1(config-subif)# vrrp
ESR-1(config-subif)# wan load-balance nexthop 192.18.5.1
ESR-1(config-subif)# wan load-balance success-count 1
ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2
ESR-1(config-subif)# wan load-balance enable
ESR-1(config-subif)# exit

Укажите статический маршрут и создайте правило для балансировки трафика:

Блок кода
titleESR-1
ESR-1(config)# ip route 0.0.0.0/0 wan load-balance rule 1 10
ESR-1(config)# wan load-balance rule 1
ESR-1(config-wan-rule)# outbound interface gigabitethernet 1/0/3.111 70
ESR-1(config-wan-rule)# outbound interface gigabitethernet 1/0/3.222 30
ESR-1(config-wan-rule)# outbound interface gigabitethernet 2/0/3.222 30
ESR-1(config-wan-rule)# outbound interface gigabitethernet 2/0/3.111 70
ESR-1(config-wan-rule)# enable
ESR-1(config-wan-rule)# exit

Разрешите работу протокола VRRP и протокола ICMP в зоне ISP1_ISP2 и TRUSTED:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair ISP1_ISP2 self 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol icmp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol vrrp 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair TRUSTED self 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol icmp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol vrrp 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit 
ESR-1(config-security-zone-pair)# exit

Scroll Pagebreak

Проверить работу можно командой show wan interfaces status:

Блок кода
titleESR-1
ESR-1# show wan interfaces status 
Interface              Nexthop                   Status     Uptime/Downtime                              
--------------------   -----------------------   --------   ------------------------------------------   
gi1/0/3.111            192.18.4.1                Active     1 minute and 58 seconds                      
gi1/0/3.222            192.18.5.1                Active     1 minute and 58 seconds  

Настройка IPsec VPN

IPsec — это набор протоколов, обеспечивающих защиту данных, передаваемых по протоколу IP. Данный набор протоколов позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и шифрование IP-пакетов, а также включает в себя протоколы для защищённого обмена ключами в сети Интернет.

snmp-server community cluster rw

Благодаря данной настройке обеспечивается возможность централизованного мониторинга и управления юнитами кластера как отдельными устройствами, так и устройством, выполняющим роль VRRP Master:

Блок кода
titleESR-1
snmpset -v2c -c cluster 192.0.2.253 .1.3.6.1.2.1.1.5.0 s 'ESR-1'
SNMPv2-MIB::sysName.0 = STRING: ESR-1
snmpset -v2c -c cluster 192.0.2.254 .1.3.6.1.2.1.1.5.0 s 'ESR-2'
SNMPv2-MIB::sysName.0 = STRING: ESR-2
snmpset -v2c -c cluster 192.0.2.1 .1.3.6.1.2.1.1.5.0 s 'VRRP-Master'
SNMPv2-MIB::sysName.0 = STRING: VRRP-Master

Настройка Source NAT

Source NAT (SNAT) представляет собой механизм, осуществляющий замену исходного IP-адреса в заголовках IP-пакетов, проходящих через сетевой шлюз. При передаче трафика из внутренней (локальной) сети в внешнюю (публичную) сеть исходный адрес заменяется на один из назначенных публичных IP-адресов шлюза. В ряде случаев осуществляется дополнительное преобразование исходного порта (NATP – Network Address and Port Translation), что обеспечивает корректное направление обратного трафика. При поступлении пакетов из публичной сети в локальную происходит обратная процедура – восстановление оригинальных значений IP-адреса и порта для обеспечения корректной маршрутизации внутри внутренней сети.

Алгоритм Source NAT описан в разделе Алгоритм настройки Source NAT.

Пример настройки

Задача:
  • предоставить доступ в Интернет хостам, находящимся в локальной сети;
  • клиентская подсеть: 192.0.2.0/24;
  • публичный IP-адрес  – VIP-адрес на интерфейсе.

Image Added

Схема реализации Source NAT

Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone WAN
  ip address 128.66.0.6/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 128.66.0.2/30
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone WAN
  ip address 128.66.0.5/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 128.66.0.1/30
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair LAN WAN
  rule 1
    action permit
    enable
  exit
exit
Решение:

Создадим список IP-адресов, которые будут иметь возможность выхода в Интернет:

Блок кода
titleESR-1
ESR-1(config)# object-group network INTERNET_USERS
ESR-1(config-object-group-network)# ip address-range 192.0.2.2-192.0.2.255
ESR-1(config-object-group-network)# exit

Создадим пул исходных NAT-адресов, в который включим виртуальный IP-адрес (VIP), назначенный WAN-интерфейсу:

Блок кода
titleESR-1
ESR-1(config)# nat source
ESR-1(config-snat)# pool TRANSLATE_ADDRESS
ESR-1(config-snat-pool)# ip address-range 203.0.113.2
ESR-1(config-snat-pool)# exit

Добавим набор правил SNAT. В атрибутах набора укажем применение правил исключительно для пакетов, направляемых в зону WAN. При этом правила осуществляют проверку адреса источника на принадлежность к пулу INTERNET_USERS и выполняют трансляцию исходного адреса в VIP IP-адрес интерфейсаСоздайте зону безопасности для IPsec_VPN, разрешите прохождение трафика для протокола ESP, а также откройте порты ISAKMP для зоны ISP1_ISP2:

Блок кода
titleESR-1
ESR-1(config-snat)# object-group service ISAKMPruleset SNAT
ESR-1(config-objectsnat-group-serviceruleset)# port-range 500 to zone WAN 
ESR-1(config-objectsnat-group-serviceruleset)# port-rangerule 45001
ESR-1(config-snat-rule)# match source-address object-group-service)# exit INTERNET_USERS
ESR-1(config-snat-rule)# action securitysource-nat zonepool IPsecTRANSLATE_VPNADDRESS
ESR-1(config-securitysnat-zonerule)# enable exit
ESR-1(config-snat-rule)# security zone-pair ISP1_ISP2 selfexit
ESR-1(config-securitysnat-zone-pairruleset)# rule 3exit
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol esp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 4
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match source-port object-group ISAKMP
ESR-1(config-security-zone-pair-rule)# match destination-port object-group ISAKMP
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Scroll Pagebreak

Создайте туннели VTI. Трафик будет перенаправляться через VTI в IPsec-туннель. Также настройте WAN для резервирования VTI-туннеля. В качестве локального и удаленного шлюза указываются IP-адреса интерфейсов:

Блок кода
titleESR-1
ESR-1(config)# wan load-balance target-list MGMT
ESR-1(config-wan-target-list)# target 1
ESR-1(config-wan-target)# resp-time 1
ESR-1(config-wan-target)# ip address 192.18.2.75
ESR-1(config-wan-target)# enable 
ESR-1(config-wan-target)# exit
ESR-1(config-wan-target-list)# exit
ESR-1(config)# tunnel vti 1
ESR-1(config-vti)# security-zone IPsec_VPN
ESR-1(config-vti)# local address 192.18.4.2
ESR-1(config-vti)# remote address 192.18.4.1
ESR-1(config-vti)# ip address 192.18.11.1/24
ESR-1(config-vti)# wan load-balance nexthop 192.18.11.2
ESR-1(config-vti)# wan load-balance success-count 1
ESR-1(config-vti)# wan load-balance target-list MGMT
ESR-1(config-vti)# wan load-balance enable 
ESR-1(config-vti)# enable
ESR-1(config-vti)# exit
ESR-1(config)# tunnel vti 2
ESR-1(config-vti)# security-zone IPsec_VPN
ESR-1(config-vti)# local address 192.18.5.2
ESR-1(config-vti)# remote address 192.18.5.1
ESR-1(config-vti)# ip address 192.18.12.1/24
ESR-1(config-vti)# wan load-balance nexthop 192.18.12.2
ESR-1(config-vti)# wan load-balance success-count 1
ESR-1(config-vti)# wan load-balance target-list MGMT
ESR-1(config-vti)# wan load-balance enable 
ESR-1(config-vti)# enable
ESR-1(config-vti)# exit
ESR-1(config)# ip route 192.168.2.0/24 wan load-balance rule 2 10
ESR-1(config)# wan load-balance rule 2
ESR-1(config-wan-rule)# outbound tunnel vti 1 70
ESR-1(config-wan-rule)# outbound tunnel vti 2 30
ESR-1(config-wan-rule)# enable
ESR-1(config-wan-rule)# exit

Scroll Pagebreak

Создайте профиль протокола IKE. В профиле укажите группу Диффи-Хэллмана — 2, алгоритм шифрования — AES 128 bit, алгоритм аутентификации — MD5. Данные параметры безопасности используются для защиты IKE-соединения:

Блок кода
titleESR-1
ESR-1(config)# security ike proposal IKE_PROP
ESR-1(config-ike-proposal)# dh-group 2
ESR-1(config-ike-proposal)# authentication algorithm md5 
ESR-1(config-ike-proposal)# encryption algorithm aes128
ESR-1(config-ike-proposal)# exit

Создайте политику протокола IKE. В политике указывается список профилей протокола IKE, по которым могут согласовываться узлы и ключ аутентификации:

Блок кода
titleESR-1
ESR-1(config)# security ike policy IKE_POL
ESR-1(config-ike-policy)# pre-shared-key hexadecimal 123FFF
ESR-1(config-ike-policy)# proposal IKE_PROP
ESR-1(config-ike-policy)# exit

Создайте шлюзы протокола IKE. В данном профиле указываются: VTI-туннель, политика, версия протокола и режим перенаправления трафика в туннель. Поддержка MOBIKE отключается для route-based IPsec в обязательном порядке:

Блок кода
titleESR-1
ESR-1(config)# security ike gateway IKE_GW_1
ESR-1(config-ike-gw)# ike-policy IKE_POL
ESR-1(config-ike-gw)# mode route-based 
ESR-1(config-ike-gw)# mobike disable 
ESR-1(config-ike-gw)# bind-interface vti 1
ESR-1(config-ike-gw)# version v2-only
ESR-1(config-ike-gw)# exit
ESR-1(config)# security ike gateway IKE_GW_2
ESR-1(config-ike-gw)# ike-policy IKE_POL
ESR-1(config-ike-gw)# mode route-based 
ESR-1(config-ike-gw)# mobike disable 
ESR-1(config-ike-gw)# bind-interface vti 2
ESR-1(config-ike-gw)# version v2-only
ESR-1(config-ike-gw)# exit

Scroll Pagebreak

Создайте профиль параметров безопасности для IPsec-туннеля. В профиле укажите алгоритм шифрования — AES 128 bit, алгоритм аутентификации — MD5. Данные параметры безопасности используются для защиты IPsec-туннеля:

Блок кода
titleESR-1
ESR-1(config)# security ipsec proposal IPSEC_PROP
ESR-1(config-ipsec-proposal)# authentication algorithm md5 
ESR-1(config-ipsec-proposal)# encryption algorithm aes128
ESR-1(config-ipsec-proposal)# exit

Создайте политику для IPsec-туннеля. В политике указывается список профилей IPsec-туннеля, по которым могут согласовываться узлы:

Блок кода
titleESR-1
ESR-1(config)# security ipsec policy IPSEC_POL
ESR-1(config-ipsec-policy)# proposal IPSEC_PROP
ESR-1(config-ipsec-policy)# exit

Создайте IPsec VPN. В VPN указываются: шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и способ установления соединения:

Блок кода
titleESR-1
ESR-1(config)# security ipsec vpn IPSEC_1
ESR-1(config-ipsec-vpn)# mode ike 
ESR-1(config-ipsec-vpn)# ike establish-tunnel route 
ESR-1(config-ipsec-vpn)# ike gateway IKE_GW_1
ESR-1(config-ipsec-vpn)# ike ipsec-policy IPSEC_POL
ESR-1(config-ipsec-vpn)# enable 
ESR-1(config-ipsec-vpn)# exit
ESR-1(config)# security ipsec vpn IPSEC_2
ESR-1(config-ipsec-vpn)# mode ike 
ESR-1(config-ipsec-vpn)# ike establish-tunnel route 
ESR-1(config-ipsec-vpn)# ike gateway IKE_GW_2
ESR-1(config-ipsec-vpn)# ike ipsec-policy IPSEC_POL
ESR-1(config-ipsec-vpn)# enable 
ESR-1(config-ipsec-vpn)# exit

Создайте разрешающие правила для работы IPsec VPN:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair IPsec_VPN self 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol icmp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Настройка Firewall-failover

Firewall failover необходим для резервирования сессий Firewall.  

С алгоритмом настройки Firewall-failover можно ознакомиться по ссылке в разделе: Алгоритм настройки Firewall-failover.

Пример настройки

Задача:

Настроить Firewall-failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • режим резервирования сессий unicast;
  • номер UDP-порта службы резервирования 9999;
  • клиентская подсеть: 192.0.2.0/24.

Image Removed

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit
   
hostname ESR-1 unit 1
hostname ESR-2 unit 2
   
security zone SYNC
exit
security zone LAN
exit
   
bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit
   
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit
   
security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit
Решение:

Сконфигурируем object-group для настройки failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# object-group network SYNC_SRC
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SYNC_DST
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2
ESR-1(config-object-group-network)# exit

Перейдем к выбору IP-адреса сетевого интерфейса, с которого будут отправляться сообщения при работе failover-сервисов, указав созданную object-group:

Блок кода
titleESR-1
ESR-1(config)# ip failover
ESR-1(config-failover)# local-address object-group SYNC_SRC

Настроим IP-адреса соседа при работе failover-сервисов, указав созданную object-group:

Блок кода
titleESR-1
ESR-1(config-failover)# remote-address object-group SYNC_DST

Укажем VRRP-группу, на основе которой определяется состояние (основной/резервный) маршрутизатора при работе failover-сервисов:

Блок кода
titleESR-1
ESR-1(config-failover)# vrrp-group 1
ESR-1(config-failover)# exit
Примечание

При включенном кластере использование object-group в настройке failover-сервисов обязательно.

Для настройки правил зон безопасности создадим профиль для порта Firewall-failover:

Блок кода
titleESR-1
ESR-1(config)# object-group service FAILOVER
ESR-1(config-object-group-service)# port-range 9999
ESR-1(config-object-group-service)# exit

Создадим разрешающие правило для зоны безопасности SYNC, разрешив прохождение трафика Firewall-failover:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair SYNC self 
ESR-1(config-security-zone-pair)# rule 4
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol udp 
ESR-1(config-security-zone-pair-rule)# match destination-port object-group FAILOVER 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Выполним настройку Firewall-failover. Настроим режим резервирования сессий unicast:

Блок кода
titleESR-1
ESR-1(config)# ip firewall failover
ESR-1(config-firewall-failover)# sync-type unicast

Настроим номер UDP-порта службы резервирования сессий Firewall:

Блок кода
titleESR-1
ESR-1(config-firewall-failover)# port 9999

Включим резервирование сессий Firewall:

Блок кода
titleESR-1
ESR-1(config-firewall-failover)# enable 
ESR-1(config-firewall-failover)# exit

После успешного запуска Firewall-failover можно посмотреть состояние резервирования сессий Firewall с помощью следующей команды:

snat)# exit

Просмотр таблицы NAT трансляций осуществляется посредством следующей команды:

Блок кода
titleESR-1
ESR-1# show ip nat translations 
Prot   Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        
----   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   
tcp    192.0.2.10:45838        203.0.113.1:22          203.0.113.2:45838       203.0.113.1:22          --           --           

Настройка Destination NAT

Функция Destination NAT (DNAT) выполняет преобразование IP-адреса назначения в заголовках пакетов, проходящих через сетевой шлюз. DNAT применяется для перенаправления трафика, адресованного на IP-адрес в публичном сегменте сети, на «реальный» IP-адрес сервера, расположенного в локальной сети за шлюзом.

Алгоритм настройки Destination NAT описан в разделе Алгоритм настройки DNAT.

Пример настройки

Задача:
  • организовать публичный доступа к серверу, находящемуся в частной сети и не имеющему публичного сетевого адреса;
  • сервер доступен по адресу: 192.0.2.10/24;

Image Added

Схема реализации Destination NAT

Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone WAN
  ip address 128.66.0.6/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 128.66.0.2/30
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone WAN
  ip address 128.66.0.5/30
  vrrp id 3
  vrrp ip 203.0.113.2/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 128.66.0.1/30
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit

Scroll Pagebreak

Решение:

Создадим профиль адреса сервера из WAN сети, с которого будем принимать:

Блок кода
titleESR-1
ESR-1(config)# object-group network INTERNAL
ESR-1(config-object-group-network)# ip address-range 203.0.113.2
ESR-1(config-object-group-network)# exit

Создадим профиль сервиса, доступ к которому будем предоставлять:

Блок кода
titleESR-1
ESR-1(config)# object-group service SERVER_DMZ
ESR-1(config-object-group-service)# port-range 22
ESR-1(config-object-group-service)# exit

Войдем в режим конфигурирования функции DNAT и создадим пул адресов, в которые будут транслироваться адреса пакетов, поступающие на адрес 1.2.3.4 из внешней сети^

Блок кода
titleESR-1
ESR-1(config)# nat destination 
ESR-1(config-dnat)# pool DMZ
ESR-1(config-dnat-pool)# ip address 192.0.2.10
ESR-1(config-dnat-pool)# exit

Создадим набор правил «DNAT», в соответствии с которыми будет производиться трансляция адресов. В атрибутах набора укажем, что правила применяются только для пакетов, пришедших из зоны WAN. Набор правил включает в себя требования соответствия данных по адресу и порту назначения (match destination-address, match destination-port) и по протоколу. Кроме этого, в наборе задано действие, применяемое к данным, удовлетворяющим всем правилам (action destination-nat):

Блок кода
titleESR-1
ESR-1(config-dnat)# ruleset DNAT_SERVER_DMZ
ESR-1(config-dnat-ruleset)# from zone WAN
ESR-1(config-dnat-ruleset)# rule 1
ESR-1(config-dnat-rule)# match protocol tcp
ESR-1(config-dnat-rule)# match destination-address object-group INTERNAL
ESR-1(config-dnat-rule)# match destination-port object-group SERVER_DMZ
ESR-1(config-dnat-rule)# action destination-nat pool DMZ
ESR-1(config-dnat-rule)# enable
ESR-1(config-dnat-rule)# exit
ESR-1(config-dnat-ruleset)# exit
ESR-1(config-dnat)# exit

Scroll Pagebreak

Добавим правило, которое проверяет применение правил исключительно к пакетам, поступающим из зоны WAN. Набор правил включает требования соответствия по адресу назначения (match destination-address) и протоколу. Дополнительно в наборе определено действие (action destination-nat), которое применяется к данным, удовлетворяющим указанным критериям:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair WAN LAN
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SERVER_DMZ  
ESR-1(config-security-zone-pair-rule)# match destination-nat
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Просмотр таблицы NAT-трансляций осуществляется посредством следующей команды:

Блок кода
titleESR-1
ESR-1# show ip nat translations 
Prot   Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        
----   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   
tcp    203.0.113.1:41296       192.0.2.10:22           203.0.113.1:41296       203.0.113.2:22          --           --           

Настройка BGP

Протокол BGP предназначен для обмена информацией о достижимости подсетей между автономными системами (далее АС), то есть группами маршрутизаторов под единым техническим управлением, использующими протокол внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляется исходя из правил, принятых в сети.

Алгоритм настройки описан в разделе Алгоритм настройки BGP.

Пример настройки eBGP с общим IP-адресом

Задача:

Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • соседство устанавливается только с Active-устройством;
  • клиентская подсеть: 192.0.2.0/24;
  • анонсирование подсетей, подключенных напрямую;
  • собственная AS 64500;
  • соседство – подсеть 203.0.113.0/24, vrrp IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, 64501.

Image Added

Схема реализации eBGP с общим IP-адресом

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone WAN
  ip address 128.66.0.2/30
  vrrp id 3
  vrrp ip 203.0.113.1/30
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone WAN
  ip address 128.66.0.1/30
  vrrp id 3
  vrrp ip 203.0.113.1/30
  vrrp group 1
  vrrp
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit
Решение:

Настроем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN:

Блок кода
ESR-1(config)# object-group service og_bgp
ESR-1(config-object-group-service)# port-range 179
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone WAN
ESR-1(config-security-zone)# exit
ESR-1(config)# security zone-pair WAN self 
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group og_bgp 
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Создадим route-map, который будет использоваться в дальнейшем при настройке разрешающих анонсов роутерам из другой AS. В route-map запретим анонсировать подсеть для cluster-interface:

Блок кода
ESR-1(config)# route-map bgp-out
ESR-1(config-route-map)# rule 1
ESR-1(config-route-map-rule)# match ip address 198.51.100.0/24
ESR-1(config-route-map-rule)# action deny
ESR-1(config-route-map-rule)# exit
ESR-1(config-route-map)# rule 2
ESR-1(config-route-map-rule)# action permit
ESR-1(config-route-map-rule)# exit
ESR-1(config-route-map)# exit

Создадим BGP-процесс для AS 64500 и войдем в режим конфигурирования параметров процесса:

Блок кода
ESR-1(config)# router bgp 64500

Сконфигурируем анонсирование подсетей, подключенных напрямую:

Блок кода
ESR-1(config-bgp)# address-family ipv4 unicast 
ESR-1(config-bgp-af)# redistribute connected 
ESR-1(config-bgp-af)# exit

Создадим eBGP с вышестоящим роутером:

Блок кода
ESR-1(config-bgp)# neighbor 203.0.113.2
ESR-1(config-bgp-neighbor)# remote-as 64501
ESR-1(config-bgp-neighbor)# update-source 203.0.113.1

И включим обмен IPv4-маршрутами:

Блок кода
ESR-1(config-bgp-neighbor)# address-family ipv4 unicast
ESR-1(config-bgp-neighbor-af)# route-map bgp-out out
ESR-1(config-bgp-neighbor-af)# enable
ESR-1(config-bgp-neighbor-af)# exit

Включим работу протокола:

Блок кода
ESR-1(config-bgp-neighbor)# enable
ESR-1(config-bgp-neighbor)# exit
ESR-1(config-bgp)# enable
ESR-1(config-bgp)# exit

Применим конфигурацию на Active-устройстве.

Информацию о BGP-пирах можно посмотреть командой show bgp neighbors:

Блок кода
ESR-1# show bgp neighbors 
BGP neighbor is 203.0.113.1
    BGP state:
Блок кода
titleESR-1
ESR-1# show ip firewall failover 
Communication interface:                    bridge 1
Status:                                     Running
Bytes sent:                                 1200
Bytes received:                             1168
Packets sent:                               76
Packets received:                           77
Send errors:                                0
Receive errors:                             0
Resend queue: 
    Active entries:                         1
    Errors: 
        No space left:                      0
Hold queue: 
    Active entries:                         0
    Errors: Established
    Type:    No space left:                      0

Также возможно узнать текущее состояние Firewall-failover сервиса, выполнив команду:    

Блок кода
titleESR-1
ESR-1# show high-availability stateStatic neighbor
DHCP server:
   Neighbor Stateaddress:                   203.0.113.1
    Neighbor AS: Disabled
    Last state change:             --
crypto-sync:
    State:64501
    Neighbor ID:                    Disabled
Firewall sessions and NAT translations:
VRF: 203.0.113.1
    Neighbor caps:                      refresh enhanced-refresh   restart--
    Tracking VRRP Group            1aware AS4
    Tracking VRRP Group stateSession:     Master
    State:                   external AS4
    Source Successfuladdress: synchronization
    Fault Reason:                  --203.0.113.2
    LastWeight: synchronization:          2025-01-09 13:36:13
Итоговая конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address 68:13:e2:7f:22:c0
  exit
  unit 20
    mac-addressHold 68:13:e2:7f:10:30
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

object-group service FAILOVER
  port-range 9999
exit

object-group network SYNC_DST
  ip address-range 198.51.100.253 unit 1
  ip address-range 198.51.100.254 unit 2
exit
object-group network SYNC_SRC
  ip address-range 198.51.100.254 unit 1
  ip address-range 198.51.100.253 unit 2
exit

security zone SYNC
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

ip failover
  local-address object-group SYNC_SRC
  remote-address object-group SYNC_DST
  vrrp-group 1
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
  rule 4
    action permit
    match protocol udp
    match destination-port object-group FAILOVER
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit

ip firewall failover
  sync-type unicast
  port 9999
  enable
exit

Настройка DHCP-failover

DHCP-failover позволяет обеспечить высокую доступность службы DHCP.

С алгоритмом настройки DHCP-failover можно ознакомиться по ссылке в разделе: Алгоритм настройки DHCP-failover.

Пример настройки

Задача:

Настроить DHCP-failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • в качестве default-router используется IP-адрес VRRP;
  • в качестве dns-server используется IP-адрес VRRP;
  • установить в качестве необходимого режима работы резервирования active-standby;
  • клиентская подсеть: 192.0.2.0/24.

Image Removed

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit
  
hostname ESR-1 unit 1
hostname ESR-2 unit 2
  
security zone SYNC
exit
security zone LAN
exit
  
bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit
  
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit
  
security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
Решение:

Выполним настройку DHCP-сервера. В качестве default-router и dns-server используется IP-адрес VRRP:

Блок кода
titleESR-1
ESR-1(config)# ip dhcp-server 
ESR-1(config)# ip dhcp-server pool TRUSTED
ESR-1(config-dhcp-server)# network 192.0.2.0/24
ESR-1(config-dhcp-server)# address-range 192.0.2.10-192.0.2.100
ESR-1(config-dhcp-server)# default-router 192.0.2.1
ESR-1(config-dhcp-server)# dns-server 192.0.2.1
ESR-1(config-dhcp-server)# exit

Разрешим получение DHCP-адресов:

Блок кода
titleESR-1
ESR-1(config)# object-group service DHCP_SERVER
ESR-1(config-object-group-service)# port-range 67
ESR-1(config-object-group-service)# exit
ESR-1(config)# object-group service DHCP_CLIENT
ESR-1(config-object-group-service)# port-range 68
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone-pair LAN self 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match source-port object-group DHCP_CLIENT 
ESR-1(config-security-zone-pair-rule)# match destination-port object-group DHCP_SERVER 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Сконфигурируем object-group для настройки failover-сервисов:

Блок кода
titleESR-1
ESR-1(config)# object-group network SYNC_SRC
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2
ESR-1(config-object-group-network)# exit
ESR-1(config)# object-group network SYNC_DST
ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1
ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2
ESR-1(config-object-group-network)# exit

Перейдем к выбору IP-адреса сетевого интерфейса, с которого будут отправляться сообщения при работе failover-сервисов, указав созданную object-group:

Блок кода
titleESR-1
ESR-1(config)# ip failover
ESR-1(config-failover)# local-address object-group SYNC_SRC

Настроим IP-адреса соседа при работе failover-сервисов, указав созданную object-group:

Блок кода
titleESR-1
ESR-1(config-failover)# remote-address object-group SYNC_DST

Укажем VRRP-группу, на основе которой определяется состояние (основной/резервный) маршрутизатора при работе failover-сервисов:

Блок кода
titleESR-1
ESR-1(config-failover)# vrrp-group 1
ESR-1(config-failover)# exit

Перейдем к настройке резервирования DHCP-сервера:

Блок кода
titleESR-1
ESR-1(config)# ip dhcp-server failover 

Установим режим работы резервирования:

Блок кода
titleESR-1
ESR-1(config-dhcp-server-failover)# mode active-standby 
Примечание

Для работы в кластере необходимо использовать режим active-standby.

Включим DHCP-failover:

Блок кода
titleESR-1
ESR-1(config-dhcp-server-failover)# enable
ESR-1(config-dhcp-server-failover)# exit

Посмотреть состояние резервирования DHCP-сервера можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show ip dhcp server failover 
VRF:                             --
    Mode:                        Active-Standby
    Role:                        Master
    State:                       Synchronized
    Last synchronization:        2025-01-09 12:00:57

Посмотреть состояние резервирования сессий DHCP можно с помощью команды:

Блок кода
titleESR-1
ESR-1# show high-availability state 
DHCP server:
VRF:                               --
    Mode:                          Active-Standby
    State:                         Successful synchronization
    Last synchronization:          2025-01-09 12:01:21
crypto-sync:
    State:                         Disabled
Firewall sessions and NAT translations:
    State:                         Disabled

Выданные адреса DHCP можно просмотреть с помощью команды:

Блок кода
titleESR-1
ESR-1# show ip dhcp binding 
IP address         MAC / Client ID                                                 Binding type   Lease expires at       
----------------   -------------------------------------------------------------   ------------   --------------------   
192.0.2.10         02:00:00:69:91:12                                               active         2025-01-09 23:58:36    
192.0.2.11         02:00:00:2a:a6:85                                               active         2025-01-09 23:58:39    
Итоговая конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address 68:13:e2:7f:22:c0
  exit
  unit 2
    mac-address 68:13:e2:7f:10:30
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

object-group service DHCP_SERVER
  port-range 67
exit
object-group service DHCP_CLIENT
  port-range 68
exit

object-group network SYNC_DST
  ip address-range 198.51.100.253 unit 1
  ip address-range 198.51.100.254 unit 2
exit
object-group network SYNC_SRC
  ip address-range 198.51.100.254 unit 1
  ip address-range 198.51.100.253 unit 2
exit

security zone SYNC
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

ip failover
  local-address object-group SYNC_SRC
  remote-address object-group SYNC_DST
  vrrp-group 1
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol udp
    match source-port object-group DHCP_CLIENT
    match destination-port object-group DHCP_SERVER
    enable
  exit
exit

ip dhcp-server
ip dhcp-server pool TRUSTED
  network 192.0.2.0/24
  address-range 192.0.2.10-192.0.2.100
  default-router 192.0.2.1
  dns-server 192.0.2.1
exit
ip dhcp-server failover
  mode active-standby
  enable
exit

Настройка SNMP

Протокол SNMP позволяет системному администратору проводить мониторинг, контролировать производительность сети и изменять конфигурацию подключенных устройств.

В текущей схеме SNMP-трафик будет идти на интерфейсы Gi1/0/2.7 и Gi2/0/2.7. Необходимо настроить snmp-server и snmp-traps, чтобы удаленно получать информацию о состоянии сети и при необходимости изменять её конфигурацию.

Создайте зону безопасности для MGMT (management):

Блок кода
titleESR-1
ESR-1(config)# security zone MGMT
ESR-1(config-security-zone)# exit

Откройте SNMP-порты и порт для SSH-подключения:

Блок кода
titleESR-1
ESR-1(config)# object-group service SNMP
ESR-1(config-object-group-service)# port-range 161
ESR-1(config-object-group-service)# port-range 162
ESR-1(config-object-group-service)# exit
ESR-1(config)# object-group service SSH
ESR-1(config-object-group-service)# port-range 22
ESR-1(config-object-group-service)# exit

Укажите правила для зоны безопасности MGMT:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair MGMT self
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol icmp 
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol vrrp 
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SSH
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 4
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SNMP
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair MGMT IPsec_VPN
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol icmp 
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SNMP
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair IPsec_VPN MGMT
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match protocol icmp 
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SSH
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 3
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol udp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group SNMP
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Настройте MGMT-интерфейсы:

Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/2.7
ESR-1(config-if-gi)# description "Network: MGMT"
ESR-1(config-if-gi)# security-zone MGMT
ESR-1(config-if-gi)# ip address 192.18.7.254/24
ESR-1(config-if-gi)# vrrp id 7
ESR-1(config-if-gi)# vrrp ip 192.18.7.1/24
ESR-1(config-if-gi)# vrrp group 1
ESR-1(config-if-gi)# vrrp
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/2.7
ESR-1(config-if-gi)# description "Network: MGMT"
ESR-1(config-if-gi)# security-zone MGMT
ESR-1(config-if-gi)# ip address 192.18.7.253/24
ESR-1(config-if-gi)# vrrp id 7
ESR-1(config-if-gi)# vrrp ip 192.18.7.1/24
ESR-1(config-if-gi)# vrrp group 1
ESR-1(config-if-gi)# vrrp
ESR-1(config-if-gi)# exit

Management-сервер, куда должен дойти MGMT-трафик, имеет IP-адрес — 192.18.2.75, который доступен через VTI-туннели.

Создайте object-group и укажите IP-адреса с привязкой к unit, которые будут использоваться в качестве адресов, с которых будут отправляться SNMP-пакеты с ESR:

Блок кода
titleESR-1
ESR-1(config)# object-group network MGMT_SRC
ESR-1(config-object-group-network)# ip address-range 192.18.7.254 unit 1
ESR-1(config-object-group-network)# ip address-range 192.18.7.253 unit 2
ESR-1(config-object-group-network)# exit

Включите SNMP-server, настройте snmp-community:

Блок кода
titleESR-1
ESR-1(config)# snmp-server
ESR-1(config)# snmp-server system-shutdown
ESR-1(config)# snmp-server community MGMT client-list MGMT_SRC rw

Настройте SNMP-сервер:

Блок кода
titleESR-1
ESR-1(config)# snmp-server host 192.18.2.75
ESR-1(config-snmp-host)# source-address object-group MGMT_SRC
ESR-1(config-snmp-host)# exit

Scroll Pagebreak

Настройте SNMP-уведомления на команды конфигурирования commit/confirm:

Блок кода
titleESR-1
ESR-1(config)# snmp-server enable traps config
ESR-1(config)# snmp-server enable traps config commit
ESR-1(config)# snmp-server enable traps config confirm

Настройка Source NAT

Функция Source NAT (SNAT) используется для подмены адреса источника у пакетов, проходящих через сетевой шлюз. При прохождении пакетов из локальной сети в публичную сеть адрес источника заменяется на один из публичных адресов шлюза. Дополнительно к адресу источника может применяться замена порта источника (NATP). При прохождении пакетов из публичной сети в локальную происходит обратная подмена адреса и порта.

Пример настройки

Задача:
  • предоставить доступ в Интернет хостам, находящимся в локальной сети;
  • клиентская подсеть: 192.0.2.0/24;
  • публичный IP адрес  – IP адрес на интерфейсе.
Image Removed
Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit
 
hostname ESR-1 unit 1
hostname ESR-2 unit 2
 
security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
 
bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit
 
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit
 
security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit

Сконфигурируем необходимые сетевые интерфейсы c принадлежностью к зоне безопасности:

Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/1
ESR-1(config-if-gi)# ip address 203.0.113.254/24
ESR-1(config-if-gi)# security-zone WAN
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/1
ESR-1(config-if-gi)# ip address 203.0.113.253/24
ESR-1(config-if-gi)# security-zone WAN
ESR-1(config-if-gi)# exit

Создадим список IP-адресов, которые будут иметь возможность выхода в Интернет:

Блок кода
titleESR-1
ESR-1(config)# object-group network INTERNET_USERS
ESR-1(config-object-group-network)# ip address-range 192.0.2.10-192.0.2.100
ESR-1(config-object-group-network)# exit

Добавим правило, где включена проверка адреса источника данных на принадлежность к диапазону адресов INTERNET_USERS, для соблюдения ограничения на выход в публичную сеть:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair LAN WAN 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# match source-address object-group INTERNET_USERS
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Создадим набор правил SNAT. В атрибутах набора укажем, что правила применяются только для пакетов, направляющихся в зону WAN. Правила включают проверку адреса источника данных на принадлежность к пулу INTERNET_USERS и задают трансляцию в IP-адрес интерфейса:

Блок кода
titleESR-1
ESR-1(config)# nat source 
ESR-1(config-snat)# ruleset SNAT_WAN
ESR-1(config-snat-ruleset)# to zone WAN 
ESR-1(config-snat-ruleset)# rule 1
ESR-1(config-snat-rule)# match source-address object-group INTERNET_USERS
ESR-1(config-snat-rule)# action source-nat interface 
ESR-1(config-snat-rule)# enable 
ESR-1(config-snat-rule)# exit
ESR-1(config-snat-ruleset)# exit
ESR-1(config-snat)# exit
Итоговая конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address 68:13:e2:7f:22:c0
  exit
  unit 2
    mac-address 68:13:e2:7f:10:30
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

object-group network INTERNET_USERS
  ip address-range 192.0.2.10-192.0.2.100
exit

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  security-zone WAN
  ip address 203.0.113.254/24
exit
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/1
  security-zone WAN
  ip address 203.0.113.253/24
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit
security zone-pair LAN WAN
  rule 1
    action permit
    match source-address object-group INTERNET_USERS
    enable
  exit
exit

nat source
  ruleset SNAT_WAN
    rule 1
      match source-address object-group INTERNET_USERS
      action source-nat interface
      enable
    exit
  exit
exit

Настройка Destination NAT

Функция Destination NAT (DNAT) состоит в преобразовании IP-адреса назначения у пакетов, проходящих через сетевой шлюз. DNAT используется для перенаправления трафика, идущего на некоторый «виртуальный» адрес в публичной сети, на «реальный» сервер в локальной сети, находящийся за сетевым шлюзом.

Пример настройки

Задача:
  • организовать публичный доступа к серверу, находящемуся в частной сети и не имеющему публичного сетевого адреса;
  • сервер доступен по адресу: 192.0.2.10/24;

Image Removed

Исходная конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit
  
hostname ESR-1 unit 1
hostname ESR-2 unit 2
  
security zone SYNC
exit
security zone DMZ
exit
security zone WAN
exit
  
bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit
  
interface gigabitethernet 1/0/1
  security-zone WAN
  ip address 203.0.113.254/24
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/1
  security-zone WAN
  ip address 203.0.113.253/24
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit
  
security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    enable
  exit
exit

Сконфигурируем интерфейс в сторону DMZ-сервера в зоне безопасности DMZ:

Блок кода
titleESR-1
ESR-1(config)# interface gigabitethernet 1/0/2
ESR-1(config-subif)# security-zone DMZ 
ESR-1(config-subif)# ip address 192.0.2.254/24
ESR-1(config-subif)# vrrp id 10
ESR-1(config-subif)# vrrp ip 192.0.2.1/24
ESR-1(config-subif)# vrrp group 1
ESR-1(config-subif)# vrrp 
ESR-1(config-subif)# exit
ESR-1(config)# interface gigabitethernet 2/0/2
ESR-1(config-subif)# security-zone DMZ 
ESR-1(config-subif)# ip address 192.0.2.253/24
ESR-1(config-subif)# vrrp id 10
ESR-1(config-subif)# vrrp ip 192.0.2.1/24
ESR-1(config-subif)# vrrp group 1
ESR-1(config-subif)# vrrp 
ESR-1(config-subif)# exit

Создадим профиль адресов публичной сети:

Блок кода
titleESR-1
ESR-1(config)# object-group network EXTERNAL_VIPS
ESR-1(config-object-group-network)# ip address-range 192.18.4.2
ESR-1(config-object-group-network)# ip address-range 192.18.5.2
ESR-1(config-object-group-network)# exit

Создадим профиль портов:

Блок кода
titleESR-1
ESR-1(config)# object-group service SERVER_DMZ
ESR-1(config-object-group-service)# port-range 80
ESR-1(config-object-group-service)# exit

Войдем в режим конфигурирования DNAT и создадим пул адресов, в которые будут транслироваться адреса пакетов, поступающие на адреса 192.18.4.2 и 192.18.5.2 из внешней сети:

Блок кода
titleESR-1
ESR-1(config)# nat destination 
ESR-1(config-dnat)# pool SERVER_DMZ
ESR-1(config-dnat-pool)# ip address 192.0.2.10
ESR-1(config-dnat-pool)# exit

Создадим набор правил «DNAT», в соответствии с которыми будет производиться трансляция адресов. В атрибутах набора укажем, что правила применяются только для пакетов, пришедших из зоны WAN. Набор правил включает в себя требования соответствия данных по адресу и порту назначения (match destination-address, match destination-port) и по протоколу. Кроме этого, в наборе задано действие, применяемое к данным, удовлетворяющим всем правилам (action destination-nat):

Блок кода
titleESR-1
ESR-1(config-dnat)# ruleset DNAT_SERVER_DMZ
ESR-1(config-dnat-ruleset)# from zone WAN 
ESR-1(config-dnat-ruleset)# rule 1
ESR-1(config-dnat-rule)# match protocol tcp
ESR-1(config-dnat-rule)# match destination-address object-group EXTERNAL_VIPS 
ESR-1(config-dnat-rule)# match destination-port object-group SERVER_DMZ 
ESR-1(config-dnat-rule)# action destination-nat pool SERVER_DMZ 
ESR-1(config-dnat-rule)# enable 
ESR-1(config-dnat-rule)# exit
ESR-1(config-dnat-ruleset)# rule 2
ESR-1(config-dnat-rule)# match protocol udp
ESR-1(config-dnat-rule)# match destination-address object-group EXTERNAL_VIPS
ESR-1(config-dnat-rule)# match destination-port object-group SERVER_DMZ 
ESR-1(config-dnat-rule)# action destination-nat pool SERVER_DMZ 
ESR-1(config-dnat-rule)# enable
ESR-1(config-dnat-rule)# exit
ESR-1(config-dnat-ruleset)# exit
ESR-1(config-dnat)# exit

Для пропуска трафика, идущего из зоны WAN в DMZ, создадим еще одно правило. Пропускать следует только трафик, прошедший преобразование DNAT:

Блок кода
titleESR-1
ESR-1(config)# security zone-pair WAN DMZ 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# match destination-nat 
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit 
ESR-1(config-security-zone-pair)# exit 
Итоговая конфигурация кластера:
timer:                         124/180
    Keepalive timer:                    27/60
    RR client:                          No
    Address family ipv4 unicast:       
      Send-label:                       No
      Default originate:                No
      Default information originate:    No
      Outgoing route-map:               bgp-out
      Preference:                       170
      Remove private AS:                No
      Next-hop self:                    No
      Next-hop unchanged:               No
    Uptime (d,h:m:s):                   00,00:03:13
Блок кода
ESR-2# show bgp neighbors 
BGP neighbor is 203.0.113.2
    BGP state:                          Active
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.1
    Neighbor AS:                        64501
    Connect delay:                      2/5
    Last error:                         Socket: Network is unreachable

Scroll Pagebreak

Таблицу маршрутов протокола BGP можно просмотреть с помощью команды:

Блок кода
ESR-1# show bgp ipv4 unicast neighbor 203.0.113.1 advertise-routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.0.2.0/24         203.0.113.2          --      --          --     64500 ?
*  u 192.0.2.0/24         203.0.113.2          --      --          --     64500 ?
*> u 128.66.0.0/30        203.0.113.2          --      --          --     64500 ?
*> u 203.0.113.0/30       203.0.113.2          --      --          --     64500 ?
ESR-1# show bgp ipv4 unicast neighbor 203.0.113.1 routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 0.0.0.0/0            203.0.113.1          --      100         0      64501 ?
Примечание

В случае выхода из строя Active-устройства BGP будет полностью переустанавливаться со Standby-устройством.

Scroll Pagebreak

Пример настройки eBGP с каждым участником кластера по индивидуальным IP-адресам

Задача:

Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • соседство устанавливается с каждым маршрутизатором в кластере индивидуально;
  • клиентская подсеть: 192.0.2.0/24;
  • анонсирование подсетей, подключенных напрямую;
  • собственная AS 64500;
  • соседство для ESR-1 – подсеть 203.0.113.0/30, IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, 64501;
  • соседство для ESR-2 – подсеть 203.0.113.4/30, IP-адрес для подключения 203.0.113.5, IP-адрес соседа 203.0.113.6, 64502.

Image Added

Схема реализации eBGP с каждым участником кластера по индивидуальным IP-адресам

Исходные конфигурации маршрутизаторов в кластере:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address a2:00:00:10:c0:00
  exit
  unit 2
    mac-address a2:00:00:10:d0:00
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  security-zone WAN
  ip address 203.0.113.1/30
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/3
  security-zone WAN
  ip address 203.0.113.5/30
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
exit

Scroll Pagebreak

Решение:

Настроем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN:

Блок кода
ESR-1(config)# object-group service og_bgp
ESR-1(config-object-group-service)# port-range 179
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone-pair WAN self 
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group og_bgp 
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

Создадим track для последующего управления анонсами маршрутов в кластере:

Блок кода
ESR-1(config)# track 1
ESR-1(config-track)# track vrrp id 1 state not master 
ESR-1(config-track)# enable 
ESR-1(config-track)# exit

Создадим route-map, который будет использоваться в дальнейшем при настройке разрешающих анонсов роутерам из другой AS. В route-map запретим анонсировать подсеть для cluster-interface, а также настроим управление as-path prepend для управлениями анонсами bgp:

Блок кода
ESR-1(config)# route-map bgp-out
ESR-1(config-route-map)# rule 1
ESR-1(config-route-map-rule)# match ip address 198.51.100.0/24
ESR-1(config-route-map-rule)# action deny 
ESR-1(config-route-map-rule)# exit
ESR-1(config-route-map)# rule 2
ESR-1(config-route-map-rule)# action set as-path prepend 64500 track 1
ESR-1(config-route-map-rule)# action permit 
ESR-1(config-route-map-rule)# exit
ESR-1(config-route-map)# exit

Создадим BGP-процесс для AS 64500 для ESR-1 и войдем в режим конфигурирования параметров процесса:

Блок кода
ESR-1(config)# router bgp 64500 unit 1

Сконфигурируем анонсирование подсетей, подключенных напрямую:

Блок кода
ESR-1(config-bgp)# address-family ipv4 unicast 
ESR-1(config-bgp-af)# redistribute connected 
ESR-1(config-bgp-af)# exit

Scroll Pagebreak

Создадим eBGP с вышестоящим роутером:

Блок кода
ESR-1(config-bgp)# neighbor 203.0.113.2
ESR-1(config-bgp-neighbor)# remote-as 64501
ESR-1(config-bgp-neighbor)# update-source 203.0.113.1

И включим обмен IPv4-маршрутами:

Блок кода
ESR-1(config-bgp-neighbor)# address-family ipv4 unicast
ESR-1(config-bgp-neighbor-af)# route-map bgp-out out
ESR-1(config-bgp-neighbor-af)# enable
ESR-1(config-bgp-neighbor-af)# exit

Включим работу протокола:

Блок кода
ESR-1(config-bgp-neighbor)# enable
ESR-1(config-bgp-neighbor)# exit
ESR-1(config-bgp)# enable
ESR-1(config-bgp)# exit

Создадим BGP процесс для AS 64500 для ESR-2 и войдем в режим конфигурирования параметров процесса:

Блок кода
ESR-1(config)# router bgp 64500 unit 2

Сконфигурируем анонсирование подсетей, подключенных напрямую:

Блок кода
ESR-1(config-bgp)# address-family ipv4 unicast 
ESR-1(config-bgp-af)# redistribute connected 
ESR-1(config-bgp-af)# exit

Создадим eBGP с вышестоящим роутером:

Блок кода
ESR-1(config-bgp)# neighbor 203.0.113.6
ESR-1(config-bgp-neighbor)# remote-as 64502
ESR-1(config-bgp-neighbor)# update-source 203.0.113.5

И включим обмен IPv4-маршрутами:

Блок кода
ESR-1(config-bgp-neighbor)# address-family ipv4 unicast
ESR-1(config-bgp-neighbor-af)# route-map bgp-out out
ESR-1(config-bgp-neighbor-af)# enable
ESR-1(config-bgp-neighbor-af)# exit

Включим работу протокола:

Блок кода
ESR-1(config-bgp-neighbor)# enable
ESR-1(config-bgp-neighbor)# exit
ESR-1(config-bgp)# enable
ESR-1(config-bgp)# exit

Применим конфигурацию на Active-устройстве.

Информацию о BGP-пирах можно посмотреть командой:

Блок кода
ESR-1# show bgp neighbors 
BGP neighbor is 203.0.113.2
    BGP state:                          Established
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.2
    Neighbor AS:                        64501
    Neighbor ID:                        203.0.113.2
    Neighbor caps:                      refresh enhanced-refresh restart-aware AS4
    Session:                            external AS4
    Source address:                     203.0.113.1
    Weight:                             0
    Hold timer:                         107/180
    Keepalive timer:                    20/60
    RR client:                          No
    Address family ipv4 unicast:       
      Send-label:                       No
      Default originate:                No
      Default information originate:    No
      Outgoing route-map:               bgp-out
      Preference:                       170
      Remove private AS:                No
      Next-hop self:                    No
      Next-hop unchanged:               No
    Uptime (d,h:m:s):                   00,00:00:28
Блок кода
ESR-2# show bgp neighbors 
BGP neighbor is 203.0.113.6
    BGP state:                          Established
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.6
    Neighbor AS:                        64502
    Neighbor ID:                        203.0.113.6
    Neighbor caps:                      refresh enhanced-refresh restart-aware AS4
    Session:                            external AS4
    Source address:                     203.0.113.5
    Weight:                             0
    Hold timer:                         144/180
    Keepalive timer:                    29/60
    RR client:                          No
    Address family ipv4 unicast:       
      Send-label:                       No
      Default originate:                No
      Default information originate:    No
      Outgoing route-map:               bgp-out
      Preference:                       170
      Remove private AS:                No
      Next-hop self:                    No
      Next-hop unchanged:               No
    Uptime (d,h:m:s):                   00,00:00:20

Scroll Pagebreak

Таблицу маршрутов протокола BGP можно просмотреть с помощью команды:

Блок кода
ESR-1# show bgp ipv4 unicast neighbor 203.0.113.2 advertise-routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.0.2.0/24         203.0.113.1          --      --          --     64500 ?
*  u 192.0.2.0/24         203.0.113.1          --      --          --     64500 ?
*> u 203.0.113.0/30       203.0.113.1          --      --          --     64500 ?
ESR-1# show bgp ipv4 unicast neighbor 203.0.113.2 routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 0.0.0.0/0            203.0.113.2          --      100         0      64501 ?
Блок кода
ESR-2# show bgp ipv4 unicast neighbor 203.0.113.6 advertise-routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 192.0.2.0/24         203.0.113.5          --      --          --     64500 64500 ?
*> u 203.0.113.4/30       203.0.113.5          --      --          --     64500 64500 ?
ESR-2# show bgp ipv4 unicast neighbor 203.0.113.6 routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 0.0.0.0/0            203.0.113.6          --      100         0      64502 ?

Настройка DMVPN

DMVPN (Dynamic Multipoint Virtual Private Network) — технология для создания виртуальных частных сетей, с возможностью динамического создания туннелей между узлами. Преимуществом данного решения является высокая масштабируемость и легкость настройки при подключении филиалов к головному офису. DMVPN используется в топологии Hub-and-Spoke, и позволяет строить прямые VPN-туннели Spoke-to-Spoke в дополнение к обычным Spoke-to-Hub туннелям. Это означает, что филиалы смогут общаться друг с другом напрямую, без необходимости прохождения трафика через Hub.

Чтобы установить такое соединение, клиенты (NHC) по шифрованному IPsec-туннелю отправляют соответствие своего внутреннего (туннельного) адреса и внешнего (NBMA) адреса на NHRP-сервер (NHS). Когда клиент захочет соединиться с другим NHC, он посылает на сервер запрос, чтобы узнать его внешний адрес. Получив ответ от сервера, клиент теперь самостоятельно может устанавливать соединение c удалённым филиалом.

Алгоритм настройки описан в разделе Алгоритм настройки DMVPN.

Пример настройки в кластере DMVPN Single Hub Dual Cloud схемы

Задача:

Организовать DMVPN между офисами компании, используя mGRE-туннели, NHRP (Next Hop Resolution Protocol), протокол динамической маршрутизации (BGP), IPsec. В данном примере будет HUB-маршрутизатор, который находится в кластере, и два филиала. HUB – это DMVPN-cервер (NHS), а филиалы – DMPVN-клиенты (NHC).

HUB внешний IP-адрес через Cloud_one — 198.51.100.2/30;
HUB внешний IP-адрес через Cloud_two — 198.51.100.6/30;

SPOKE-1 внешний IP-адрес — 198.51.100.10/30;
SPOKE-2 внешний IP-адрес — 198.51.100.14/30.

Параметры IPsec VPN:

IKE:

  • группа Диффи-Хэллмана: 19;
  • алгоритм шифрования: AES256;
  • алгоритм аутентификации: SHA2-256.

IPsec:

  • группа Диффи-Хэллмана: 19;
  • алгоритм шифрования: AES256;
  • алгоритм аутентификации: SHA2-256.

Image Added

Схема реализации DMVPN Single Hub Dual Cloud в кластере

Исходная конфигурация CLUSTER-HUB:
Блок кода
titleHUB-1
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address 68a2:1300:e200:7f10:22a0:c000
  exit
  unit 2
    mac-address 68a2:1300:e200:7f10:10b0:3000
  exit
  enable
exit
 
hostname ESRHUB-1 unit 1
hostname ESRHUB-2 unit 2
 
object-groupsecurity service SERVER_DMZ
  port-range 80zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
 
objectip access-grouplist networkextended EXTERNAL_VIPSLOCAL_1
  rule 1
    action permit
  ip  match source-address-range 192198.1851.4100.2 255.255.255.255
    enable
  exit
exit
ip addressaccess-range 192.18.5.2
exit

security zone SYNC
exit
security zone DMZ
exit
security zone WAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip addresslist extended LOCAL_2
  rule 1
    action permit
    match source-address 198.51.100.6 255.255.255.255
    enable
  exit
exit
 
route-map PBR_LOCAL
  rule 1
    match ip access-group LOCAL_1
    action set ip next-hop verify-availability 198.51.100.254/241 unit 1
  ipexit
 address 198.51.100.253/24 unit  rule 2
  vrrp id 1  match ip access-group LOCAL_2
  vrrp  action set ip next-hop verify-availability 198.51.100.1/24
  vrrp group5 1
  vrrpexit
  enable
exit

interface gigabitethernet 1/0/route-map DMVPN_BGP_OUT_CLOUD_TWO
  rule 1
  security-zone WAN
 match ip address 2030.0.1130.2540/240
exit
interface  gigabitethernet 1/0/2
 action security-zone DMZ
  ip address 192.0.2.254/24
  vrrp id 10
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/set metric bgp 2000
  exit
exit
route-map DMVPN_BGP_OUT_CLOUD_ONE
  rule 1
    match ip address 0.0.0.0/0
    action set metric bgp 1000
  exit
exit
 
ip local policy route-map PBR_LOCAL
 
bridge 1
  vlan 1
  security-zone WANSYNC
  ip address 203192.0.1132.253/24
exit
interface gigabitethernet 2/0/25/29 unit 1
  security-zone DMZ
  ip address 192.0.2.253/246/29 unit 2
  vrrp id 101
  vrrp ip 192.0.2.1/2429
  vrrp group 1
  vrrp
  enable
exit
 
interface gigabitethernet 21/0/31
  mode switchport
  spanning-tree disable
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    enable
  exit
exit
security zone-pair WAN DMZ
  rule 1
    action permit
    match destination-nat
    enable
  exit
exit

nat destination
  pool SERVER_DMZ
    interface gigabitethernet 1/0/2.100
  security-zone WAN
  ip address 192.0.2.9/29
  vrrp id 2
  vrrp ip 198.51.100.2/30
  vrrp group 1
  vrrp
  wan load-balance nexthop 198.51.100.1
  wan load-balance enable
exit
interface gigabitethernet 1/0/2.200
  security-zone WAN
  ip address 192.0.2.1017/29
  exit
vrrp  ruleset DNAT_SERVER_DMZid 3
  vrrp  from zone WANip 198.51.100.6/30
  vrrp group rule 1
      match protocol tcpvrrp
      match destination-address object-group EXTERNAL_VIPSwan load-balance nexthop 198.51.100.5
      match destination-port object-group SERVER_DMZ
      action destination-nat pool SERVER_DMZ
      enable
    exit
    rule 2
      match protocol udp
      match destination-address object-group EXTERNAL_VIPS
      match destination-port object-group SERVER_DMZ
      action destination-nat pool SERVER_DMZ
      enable
    exit
  exit
exit

Настройка BGP

Протокол BGP предназначен для обмена информацией о достижимости подсетей между автономными системами (далее АС), то есть группами маршрутизаторов под единым техническим управлением, использующими протокол внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляется исходя из правил, принятых в сети.

С алгоритмом настройки BGP можно ознакомиться по ссылке в разделе: Алгоритм настройки BGP.

Пример настройки 1

Задача:

Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • соседство устанавливается только с Active устройством;
  • клиентская подсеть: 192.0.2.0/24;
  • анонсирование подсетей, подключенных напрямую;
  • собственная AS 2500;
  • соседство – подсеть 203.0.113.0/24, vrrp IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, AS3000.

Image Removed

Исходная конфигурация кластера:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit
Решение:

Сконфигурируем необходимые сетевые интерфейсы:

wan load-balance enable
exit
interface gigabitethernet 1/0/3
  security-zone LAN
  ip address 128.66.0.2/24
  vrrp id 4
  vrrp ip 128.66.0.1/24
  vrrp group 1
  vrrp
exit
interface gigabitethernet 2/0/1
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2.100
  security-zone WAN
  ip address 192.0.2.10/29
  vrrp id 2
  vrrp ip 198.51.100.2/30
  vrrp group 1
  vrrp
  wan load-balance nexthop 198.51.100.1
  wan load-balance enable
exit
interface gigabitethernet 2/0/2.200
  security-zone WAN
  ip address 192.0.2.18/29
  vrrp id 3
  vrrp ip 198.51.100.6/30
  vrrp group 1
  vrrp
  wan load-balance nexthop 198.51.100.5
  wan load-balance enable
exit
interface gigabitethernet 2/0/3
  security-zone LAN
  ip address 128.66.0.3/24
  vrrp id 4
  vrrp ip 128.66.0.1/24
  vrrp group 1
  vrrp
exit
 
security zone-pair SYNC self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol ah
    enable
  exit
  rule 3
    action permit
    match protocol icmp
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol ah
    enable
  exit
exit
 
ip route 0.0.0.0/0 wan load-balance rule 1
 
wan load-balance rule 1
  outbound interface gigabitethernet 1/0/2.100
  outbound interface gigabitethernet 1/0/2.200
  outbound interface gigabitethernet 2/0/2.200
  outbound interface gigabitethernet 2/0/2.100
  enable
exit
Исходная конфигурация SPOKE-1:
Блок кода
titleSPOKE-1
hostname SPOKE-1

security zone LAN
exit
security zone WAN
exit

interface gigabitethernet 1/0/1
  security-zone WAN
  ip address 198.51.100.10/30
exit
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 128.66.1.1/24
exit

ip route 198.51.100.0/30 198.51.100.9
ip route 198.51.100.12/30 198.51.100.9
ip route 198.51.100.4/30 198.51.100.9
Исходная конфигурация SPOKE-2:
Блок кода
titleSPOKE-2
hostname SPOKE-2

security zone LAN
exit
security zone WAN
exit

interface gigabitethernet 1/0/1
  security-zone WAN
  ip address 198.51.100.14/30
exit
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 128.66.2.1/24
exit

ip route 198.51.100.0/30 198.51.100.13
ip route 198.51.100.4/30 198.51.100.13
ip route 198.51.100.8/30 198.51.100.13

Scroll Pagebreak

Решение:
  • Конфигурирование HUB

Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:

Блок кода
HUB-1(config)# security zone DMVPN_C_ONE
HUB-1(config-security-zone)# exit
HUB-1(config)# security zone DMVPN_C_TWO
HUB-1(config-security-zone)# exit
HUB-1(config)# tunnel gre 1
HUB-1(config-gre)# key 1000
HUB-1(config-gre)# ttl 64
HUB-1(config-gre)# mtu 1400
HUB-1(config-gre)# multipoint
HUB-1(config-gre)# security-zone DMVPN_C_ONE
HUB-1(config-gre)# local address 198.51.100.2
HUB-1(config-gre
Блок кода
ESR-1(config)# interface gigabitethernet 1/0/1
ESR-1(config-if-gi)# ip address 203.0.113.254/24
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/1
ESR-1(config-if-gi)# ip address 203.0.113.2531/2425
ESRHUB-1(config-if-gigre)# exit

Сконфигурируем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN:

Блок кода
ESR ip tcp adjust-mss 1360
HUB-1(config-gre)# object-groupip servicenhrp og_bgpredirect
ESRHUB-1(config-object-group-service)# port-range 179
ESRgre)# ip nhrp multicast dynamic
HUB-1(config-gre)# ip nhrp enable
HUB-1(config-object-group-servicegre)# enable
HUB-1(config-gre)# exit
ESRHUB-1(config)# securitytunnel zonegre WAN2
ESRHUB-1(config-security-zonegre)# exitkey 2000
ESRHUB-1(config-gre)# security zone-pair WAN self 
ESRttl 64
HUB-1(config-security-zone-pairgre)# rulemtu 11400
ESRHUB-1(config-security-zone-pair-rulegre)# action permitmultipoint
ESRHUB-1(config-gre)# security-zone-pair-rule DMVPN_C_TWO
HUB-1(config-gre)# matchlocal protocol vrrp
ESRaddress 198.51.100.6
HUB-1(config-security-zone-pair-rulegre)# enable
ESR ip address 203.0.113.129/25
HUB-1(config-security-zone-pair-rulegre)# exit
ESR ip tcp adjust-mss 1360
HUB-1(config-security-zone-pairgre)# ip rulenhrp 2redirect
ESRHUB-1(config-security-zone-pair-rulegre)# action permit
ESRip nhrp multicast dynamic
HUB-1(config-security-zone-pair-rulegre)# matchip protocolnhrp ahenable
ESRHUB-1(config-security-zone-pair-rulegre)# enable
ESRHUB-1(config-security-zone-pair-rule)# exit
ESRgre)# exit

Scroll Pagebreak

Произведём настройку протокола динамической маршрутизации для Hub. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей.

Так как в примере используется два CLOUD, необходимо сделать один из них более приоритетным, используя route-map.

Для ускорения переключения в случае выхода из строя Active устройства в кластере включим также bfd для BGP, а также уменьшим таймер error-wait.

Блок кода
HUB-1(config)# route-map DMVPN_BGP_OUT_CLOUD_ONE
HUB-1(config-security-zoneroute-pairmap)# rule 31
ESRHUB-1(config-securityroute-zonemap-pair-rule)# action permit
ESRmatch ip address 0.0.0.0/0
HUB-1(config-securityroute-zone-pairmap-rule)# match protocol icmp
ESRaction set metric bgp 1000
HUB-1(config-securityroute-zone-pairmap-rule)# enableexit
ESRHUB-1(config-security-zone-pair-ruleroute-map)# exit
ESRHUB-1(config-security-zone-pair)# rule 4
ESRroute-map DMVPN_BGP_OUT_CLOUD_TWO
HUB-1(config-security-zone-pair-ruleroute-map)# matchrule protocol tcp1
ESRHUB-1(config-securityroute-zonemap-pair-rule)# match destination-port object-group og_bgp 
ESRip address 0.0.0.0/0
HUB-1(config-securityroute-zonemap-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# enable 
ESRset metric bgp 2000
HUB-1(config-securityroute-zone-pairmap-rule)# exit
ESRHUB-1(config-securityroute-zone-pairmap)# exit

И укажем принадлежность интерфейсов к зоне безопасности:

Блок кода
ESR
HUB-1(config)# interfacerouter gigabitethernet 1/0/1
ESRbgp 64500
HUB-1(config-if-gibgp)# security-zone WAN 
ESR-1(config-if-gi)# exit
ESRdefault-information-originate
HUB-1(config-bgp)# interface gigabitethernet 2/0/1
ESRtimers error-wait 5 10
HUB-1(config-if-gibgp)# securitypeer-zone WAN 
ESRgroup DMVPN_CLOUD_ONE
HUB-1(config-ifbgp-gigroup)# exit

Scroll Pagebreak

Настроем vrrp адрес на интерфейсе, с которого в дальнейшем будем строить BGP соседство:

Блок кода
ESRremote-as 64501
HUB-1(config-bgp-group)# interface gigabitethernet 1/0/1
ESRupdate-source 203.0.113.1
HUB-1(config-ifbgp-gigroup)# vrrp id 4
ESRfall-over bfd
HUB-1(config-ifbgp-gigroup)# vrrpaddress-family ip 203.0.113.1/24
ESRipv4 unicast
HUB-1(config-ifbgp-group-giaf)# vrrp group 1
ESRroute-map DMVPN_BGP_OUT_CLOUD_ONE out
HUB-1(config-ifbgp-group-giaf)# vrrp authentication key ascii-text encrypted 88B11079B51D
ESRnext-hop-self
HUB-1(config-bgp-ifgroup-giaf)# vrrp authentication algorithm md5
ESRenable
HUB-1(config-bgp-ifgroup-giaf)# vrrpexit
ESRHUB-1(config-ifbgp-gigroup)# exit
ESRHUB-1(config-bgp)# interface gigabitethernet 2/0/1
ESRpeer-group DMVPN_CLOUD_TWO
HUB-1(config-ifbgp-gigroup)# vrrp id 4
ESRremote-as 64501
HUB-1(config-ifbgp-gigroup)# vrrp ipupdate-source 203.0.113.1/24129
ESRHUB-1(config-ifbgp-gigroup)# vrrp group 1
ESRfall-over bfd
HUB-1(config-ifbgp-gigroup)# vrrp authentication key ascii-text encrypted 88B11079B51D
ESRaddress-family ipv4 unicast
HUB-1(config-ifbgp-group-giaf)# vrrp authentication algorithm md5
ESRroute-map DMVPN_BGP_OUT_CLOUD_TWO out
HUB-1(config-ifbgp-group-giaf)#   vrrp
ESRnext-hop-self
HUB-1(config-bgp-ifgroup-giaf)# exit

Создадим route-map, который будет использоваться в дальнейшем при настройке разрешающих анонсов роутерам из другой AS. В route-map запретим анонсировать подсеть для cluster-interface:

Блок кода
ESR-1(config)# route-map bgp-out
ESRenable
HUB-1(config-bgp-group-af)# exit
HUB-1(config-routebgp-mapgroup)# rule 1exit
ESRHUB-1(config-route-map-rulebgp)# match ip address 198.51.100listen-range 203.0.113.0/2425
ESRHUB-1(config-route-map-rule)# action deny
ESR-bgp-listen)# peer-group DMVPN_CLOUD_ONE
HUB-1(config-bgp-listen)# enable
HUB-1(config-routebgp-map-rulelisten)# exit
ESRHUB-1(config-route-mapbgp)# rule 2
ESRlisten-range 203.0.113.128/25
HUB-1(config-routebgp-map-rulelisten)# exit
ESRpeer-group DMVPN_CLOUD_TWO
HUB-1(config-routebgp-maplisten)# exit

Создадим BGP процесс для AS 2500 и войдем в режим конфигурирования параметров процесса:

Блок кода
ESRenable
HUB-1(config-bgp-listen)# router bgp 2500

Сконфигурируем анонсирование подсетей, подключенных напрямую:

Блок кода
ESRexit
HUB-1(config-bgp)# address-family ipv4 unicast 
ESRHUB-1(config-bgp-af)# redistribute connected static
ESRHUB-1(config-bgp-af)# exit

Создадим eBGP с вышестоящим роутером:

Блок кода
ESR-1(config-bgp)# neighbor 203.0.113.2
ESR
HUB-1(config-bgp-neighbor)# remote-as 3000
ESRenable
HUB-1(config-bgp-neighbor)# update-source 203.0.113.1

...

exit

Scroll Pagebreak

Произведём настройку IPsec для Hub, для начала настроим ike proposal, ike policy и ike gateway. В ike gateway дополнительно настроим dpd, для ускорения перестроения туннелей в случае если выйдет из строя Active-устройство:

Блок кода
ESRHUB-1(config-bgp-neighbor)# address-family ipv4 unicast
ESRsecurity ike proposal ike_proposal
HUB-1(config-bgpike-neighbor-afproposal)# authentication route-mapalgorithm bgpsha2-out out256
ESRHUB-1(config-bgpike-neighbor-afproposal)# encryption algorithm enableaes256
ESRHUB-1(config-bgpike-neighbor-afproposal)# exit

Включим работу протокола:

Блок кода
ESRdh-group 19
HUB-1(config-bgpike-neighborproposal)# enableexit
ESRHUB-1(config-bgp-neighbor)# exit
ESRHUB-1(config-bgp)# enable
ESR security ike policy ike_policy
HUB-1(config-ike-bgppolicy)# exit

Информацию о BGP-пирах можно посмотреть командой:

Блок кода
ESR-1# show bgp neighbors 
BGP neighbor is 203.0.113.2
    BGP state:                          Established
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.2
    Neighbor AS:                        3000
    Neighbor ID:                        8.8.8.8
    Neighbor caps:                      refresh enhanced-refresh restart-aware AS4
    Session:                            external AS4
    Source address:                     203.0.113.1
    Weight:                             0
    Hold timer:                         111/180
    Keepalive timer:                    23/60
    RR client:                          No
    Address family ipv4 unicast:       
      Send-label:                       No
      Default originate:                No
      Default information originate:    No
      Outgoing route-map:               bgp-out
      Preference:                       170
      Remove private AS:                No
      Next-hop self:                    No
      Next-hop unchanged:               No
    Uptime (d,h:m:s):                   00,00:03:06
Блок кода
ESR-2# show bgp neighbors 
BGP neighbor is 203.0.113.2
    BGP state:                          Active
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.2
    Neighbor AS:                        3000
    Connect delay:                      2/5
    Last error:                         Socket: Network is unreachable

Таблицу маршрутов протокола BGP можно просмотреть с помощью команды:

Блок кода
ESR-1# show bgp ipv4 unicast 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 0.0.0.0/0            203.0.113.2          --      100         0      3000 ? 
Примечание

В случае выхода из строя Active устройства, BGP будет полностью переустанавливаться со Standby устройством.

Итоговая конфигурация кластера:
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

object-group service og_bgp
  port-range 179
exit

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

route-map bgp-out
  rule 1
    match ip address 198.51.100.0/24
    action deny
  exit
  rule 2
  exit
exit

router bgp 2500
  neighbor 203.0.113.2
    remote-as 3000
    update-source 203.0.113.1
    address-family ipv4 unicast
      route-map bgp-out out
      enable
    exit
    enable
  exit
  address-family ipv4 unicast
    redistribute connected
  exit
  enable
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  security-zone WAN
  ip address 203.0.113.254/24
  vrrp id 4
  vrrp ip 203.0.113.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/1
  security-zone WAN
  ip address 203.0.113.253/24
  vrrp id 4
  vrrp ip 203.0.113.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol vrrp
    enable
  exit
  rule 2
    action permit
    match protocol ah
    enable
  exit
  rule 3
    action permit
    match protocol icmp
    enable
  exit
  rule 4
    action permit
    match protocol tcp
    match destination-port object-group og_bgp
    enable
  exit
exit

Пример настройки 2

Задача:

Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

  • соседство устанавливается с каждым маршрутизатором в кластере индивидуально;
  • клиентская подсеть: 192.0.2.0/24;
  • анонсирование подсетей, подключенных напрямую;
  • собственная AS 2500;
  • соседство для ESR-1 – подсеть 203.0.113.0/30, IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, AS3000;
  • соседство для ESR-2 – подсеть 203.0.113.4/30, IP-адрес для подключения 203.0.113.5, IP-адрес соседа 203.0.113.6, AS3500.

Image Removed

Исходные конфигурации маршрутизаторов в кластере:
Блок кода
titleESR-1
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

security zone SYNC
exit
security zone LAN
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit
Решение:

Сконфигурируем необходимые сетевые интерфейсы:

pre-shared-key ascii-text encrypted 8CB5107EA7005AFF
HUB-1(config-ike-policy)# proposal ike_proposal
HUB-1(config-ike-policy)# exit
HUB-1(config)# security ike gateway ike_gateway_cloud_one
HUB-1(config-ike-gw)# version v2-only
HUB-1(config-ike-gw)# ike-policy ike_policy
HUB-1(config-ike-gw)# local address 198.51.100.2
HUB-1(config-ike-gw)# local network 198.51.100.2/32 protocol gre 
HUB-1(config-ike-gw)# remote address any
HUB-1(config-ike-gw)# remote network any protocol gre 
HUB-1(config-ike-gw)# mode policy-based
HUB-1(config-ike-gw)# mobike disable
HUB-1(config-ike-gw)# dead-peer-detection action clear
HUB-1(config-ike-gw)# dead-peer-detection interval 10
HUB-1(config-ike-gw)# dead-peer-detection retransmit timeout 5
HUB-1(config-ike-gw)# dead-peer-detection retransmit tries 2
HUB-1(config-ike-gw)# exit
HUB-1(config)# security ike gateway ike_gateway_cloud_two
HUB-1(config-ike-gw)# version v2-only
HUB-1(config-ike-gw)# ike-policy ike_policy
HUB-1(config-ike-gw)# local address 198.51.100.6
HUB-1(config-ike-gw)# local network 198.51.100.6/32 protocol gre 
HUB-1(config-ike-gw)# remote address any
HUB-1(config-ike-gw)# remote network any protocol gre 
HUB-1(config-ike-gw)# mode policy-based
HUB-1(config-ike-gw)# mobike disable
HUB-1(config-ike-gw)# dead-peer-detection action clear
HUB-1(config-ike-gw)# dead-peer-detection interval 10
HUB-1(config-ike-gw)# dead-peer-detection retransmit timeout 5
HUB-1(config-ike-gw)# dead-peer-detection retransmit tries 2
HUB-1(config-ike-gw)# exit
HUB-1(config)# 
HUB-1(config)# security ike session uniqueids replace

Scroll Pagebreak

Затем настроим IPsec proposal, IPsec policy и IPsec vpn туннели через каждый CLOUD:

Блок кода
HUB-1(config)# security ipsec proposal ipsec_proposal
HUB-1(config-ipsec-proposal)# authentication algorithm sha2-256
HUB-1(config-ipsec-proposal)# encryption algorithm aes256
HUB-1(config-ipsec-proposal)# pfs dh-group 19
HUB-1(config-ipsec-proposal)# exit
HUB-1(config)# security ipsec policy ipsec_policy
HUB-1(config-ipsec-policy)# proposal ipsec_proposal
HUB-1(config-ipsec-policy)# exit
HUB-1(config)# security ipsec vpn ipsec_dynamic_cloud_one
HUB-1(config-ipsec-vpn)# type transport
HUB-1(config-ipsec-vpn)# ike establish-tunnel route
HUB-1(config-ipsec-vpn)# ike gateway ike_gateway_cloud_one
HUB-1(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
HUB-1(config-ipsec-vpn)# enable
HUB-1(config-ipsec-vpn)# exit
HUB-1(config)# security ipsec vpn ipsec_dynamic_cloud_two
HUB-1(config-ipsec-vpn)# type transport
HUB-1(config-ipsec-vpn)# ike establish-tunnel route
HUB-1(config-ipsec-vpn)# ike gateway ike_gateway_cloud_two
HUB-1(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
HUB-1(config-ipsec-vpn)# enable
HUB-1(config-ipsec-vpn)# exit

Скорректируем правила зоны безопасности WAN, разрешим протоколы для GRE over IPSec-туннеля:

Блок кода
HUB-1(config)# object-group service ISAKMP_PORT
HUB-1(config-object-group-service)# port-range 500
HUB-1(config-object-group-service)# port-range 4500
HUB-1(config-object-group-service)# exit
HUB-1(config)# security zone-pair WAN self 
HUB-1(config-security-zone-pair)# rule 3
HUB-1(config-security-zone-pair-rule)# action permit 
HUB-1(config-security-zone-pair-rule)# match protocol udp 
HUB-1(config-security-zone-pair-rule)# match destination-port object-group ISAKMP_PORT 
HUB-1(config-security-zone-pair-rule)# enable 
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# rule 4
HUB-1(config-security-zone-pair-rule)# action permit 
HUB-1(config-security-zone-pair-rule)# match protocol esp 
HUB-1(config-security-zone-pair-rule)# enable 
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# rule 5
HUB-1(config-security-zone-pair-rule)# action permit 
HUB-1(config-security-zone-pair-rule)# match protocol gre 
HUB-1(config-security-zone-pair-rule)# enable 
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# exit

Scroll Pagebreak

Настроим правила зон безопасности DMVPN_C_ONE и DMVPN_C_TWO, разрешим прохождение трафика для протоколов BGP, BFD, ICMP:

Блок кода
HUB-1(config)# object-group service BGP
HUB-1(config-object-group-service)# port-range 179
HUB-1(config-object-group-service)# exit
HUB-1(config)# object-group service BFD
HUB-1(config-object-group-service)# port-range 3784
HUB-1(config-object-group-service)# exit
HUB-1(config)# security zone-pair DMVPN_C_ONE self
HUB-1(config-security-zone-pair)# rule 1
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# match protocol icmp
HUB-1(config-security-zone-pair-rule)# enable
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# rule 2
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# match protocol tcp
HUB-1(config-security-zone-pair-rule)# match destination-port object-group BGP 
HUB-1(config-security-zone-pair-rule)# enable 
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# rule 3
HUB-1(config-security-zone-pair-rule)# action permit 
HUB-1(config-security-zone-pair-rule)# match protocol udp 
HUB-1(config-security-zone-pair-rule)# match destination-port object-group BFD 
HUB-1(config-security-zone-pair-rule)# enable 
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# exit
HUB-1(config)# security zone-pair DMVPN_C_TWO self
HUB-1(config-security-zone-pair)# rule 1
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# match protocol icmp
HUB-1(config-security-zone-pair-rule)# enable
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# rule 2
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# match protocol tcp
HUB-1(config-security-zone-pair-rule)# match destination-port object-group BGP
HUB-1(config-security-zone-pair-rule)# enable 
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# rule 3
HUB-1(config-security-zone-pair-rule)# action permit 
HUB-1(config-security-zone-pair-rule)# match protocol udp
HUB-1(config-security-zone-pair-rule)# match destination-port object-group BFD
HUB-1(config-security-zone-pair-rule)# enable 
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# exit

Scroll Pagebreak

Скорректируем правила зоны безопасности LAN, разрешим прохождение трафика между зонами LAN и DMVPN_C_ONE/DMVPN_C_TWO:

Блок кода
HUB-1(config)# security zone-pair LAN DMVPN_C_ONE
HUB-1(config-security-zone-pair)# rule 1
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# enable
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# exit
HUB-1(config)# security zone-pair LAN DMVPN_C_TWO
HUB-1(config-security-zone-pair)# rule 1
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# enable
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# exit
HUB-1(config)# security zone-pair DMVPN_C_ONE LAN
HUB-1(config-security-zone-pair)# rule 1
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# enable
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# exit
HUB-1(config)# security zone-pair DMVPN_C_TWO LAN
HUB-1(config-security-zone-pair)# rule 1
HUB-1(config-security-zone-pair-rule)# action permit
HUB-1(config-security-zone-pair-rule)# enable
HUB-1(config-security-zone-pair-rule)# exit
HUB-1(config-security-zone-pair)# exit

Scroll Pagebreak

  • Конфигурирование SPOKE-1

Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:

Блок кода
SPOKE-1(config)# security zone DMVPN_C_TWO
SPOKE-1(config-security-zone)# exit
SPOKE-1(config)# security zone DMVPN_C_ONE
SPOKE-1(config-security-zone)# exit
SPOKE-1(config)# tunnel gre 1
SPOKE-1(config-gre)# key 1000
SPOKE-1(config-gre)# ttl 64
SPOKE-1(config-gre)# mtu 1400
SPOKE-1(config-gre)# multipoint
SPOKE-1(config-gre)# security-zone DMVPN_C_ONE
SPOKE-1(config-gre)# local address 198.51.100.10
SPOKE-1(config-gre)# ip address 203.0.113.2/25
SPOKE-1(config-gre)# ip tcp adjust-mss 1360
SPOKE-1(config-gre)# ip nhrp holding-time 60
SPOKE-1(config-gre)# ip nhrp shortcut
SPOKE-1(config-gre)# ip nhrp map 203.0.113.1 198.51.100.2
SPOKE-1(config-gre)# ip nhrp nhs 203.0.113.1
SPOKE-1(config-gre)# ip nhrp multicast nhs
SPOKE-1(config-gre)# ip nhrp enable
SPOKE-1(config-gre)# enable
SPOKE-1(config-gre)# exit
SPOKE-1(config)# tunnel gre 2
SPOKE-1(config-gre)# key 2000
SPOKE-1(config-gre)# ttl 64
SPOKE-1(config-gre)# mtu 1400
SPOKE-1(config-gre)# multipoint
SPOKE-1(config-gre)# security-zone DMVPN_C_TWO
SPOKE-1(config-gre)# local address 198.51.100.10
SPOKE-1(config-gre)# ip address 203.0.113.130/25
SPOKE-1(config-gre)# ip tcp adjust-mss 1360
SPOKE-1(config-gre)# ip nhrp holding-time 60
SPOKE-1(config-gre)# ip nhrp shortcut
SPOKE-1(config-gre)# ip nhrp map 203.0.113.129 198.51.100.6
SPOKE-1(config-gre)# ip nhrp nhs 203.0.113.129
SPOKE-1(config-gre)# ip nhrp multicast nhs
SPOKE-1(config-gre)# ip nhrp enable
SPOKE-1(config-gre)# enable
SPOKE-1(config-gre)# exit

Scroll Pagebreak

Произведём настройку протокола динамической маршрутизации для SPOKE-1. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей. Анонсируем LAN подсети в сторону HUB используя network в address-family.

Для ускорения переключения в случае выхода из строя Active-устройства в кластере включим также bfd для BGP, а также уменьшим таймер error-wait.

Блок кода
SPOKE-1(config)# route-map DMVPN_BGP_OUT
SPOKE-1(config-route-map)# rule 1
SPOKE-1(config-route-map-rule)# exit
SPOKE-1(config-route-map)# exit
SPOKE-1(config)# router bgp 64501
SPOKE-1(config-bgp)# timers error-wait 5 10
SPOKE-1(config-bgp)# neighbor 203.0.113.1
SPOKE-1(config-bgp-neighbor)# remote-as 64500
SPOKE-1(config-bgp-neighbor)# allow-local-as 10
SPOKE-1(config-bgp-neighbor)# update-source 203.0.113.2
SPOKE-1(config-bgp-neighbor)# fall-over bfd
SPOKE-1(config-bgp-neighbor)# address-family ipv4 unicast
SPOKE-1(config-bgp-neighbor-af)# route-map DMVPN_BGP_OUT out
SPOKE-1(config-bgp-neighbor-af)# enable
SPOKE-1(config-bgp-neighbor-af)# exit
SPOKE-1(config-bgp-neighbor)# enable
SPOKE-1(config-bgp-neighbor)# exit
SPOKE-1(config-bgp)# neighbor 203.0.113.129
SPOKE-1(config-bgp-neighbor)# remote-as 64500
SPOKE-1(config-bgp-neighbor)# allow-local-as 10
SPOKE-1(config-bgp-neighbor)# update-source 203.0.113.130
SPOKE-1(config-bgp-neighbor)# fall-over bfd
SPOKE-1(config-bgp-neighbor)# address-family ipv4 unicast
SPOKE-1(config-bgp-neighbor-af)# route-map DMVPN_BGP_OUT out
SPOKE-1(config-bgp-neighbor-af)# enable
SPOKE-1(config-bgp-neighbor-af)# exit
SPOKE-1(config-bgp-neighbor)# enable
SPOKE-1(config-bgp-neighbor)# exit
SPOKE-1(config-bgp)# address-family ipv4 unicast
SPOKE-1(config-bgp-af)# network 128.66.1.0/24
SPOKE-1(config-bgp-af)# exit
SPOKE-1(config-bgp)# enable
SPOKE-1(config-bgp)# exit

Scroll Pagebreak

Произведём настройку IPsec для SPOKE-1, настроим ike proposal, ike policy и ike gateway. В ike gateway дополнительно настроим dpd для ускорения перестроения туннелей, в случае если выйдет из строя Active-устройство:

Блок кода
SPOKE-1(config)# security ike proposal ike_proposal
SPOKE-1(config-ike-proposal)# authentication algorithm sha2-256
SPOKE-1(config-ike-proposal)# encryption algorithm aes256
SPOKE-1(config-ike-proposal)# dh-group 19
SPOKE-1(config-ike-proposal)# exit
SPOKE-1(config)# security ike policy ike_policy
SPOKE-1(config-ike-policy)# pre-shared-key ascii-text encrypted 8CB5107EA7005AFF
SPOKE-1(config-ike-policy)# proposal ike_proposal
SPOKE-1(config-ike-policy)# exit
SPOKE-1(config)# security ike gateway ike_gateway_cloud_one
SPOKE-1(config-ike-gw)# version v2-only
SPOKE-1(config-ike-gw)# ike-policy ike_policy
SPOKE-1(config-ike-gw)# local address 198.51.100.10
SPOKE-1(config-ike-gw)# local network 198.51.100.10/32 protocol gre 
SPOKE-1(config-ike-gw)# remote address 198.51.100.2
SPOKE-1(config-ike-gw)# remote network 198.51.100.2/32 protocol gre 
SPOKE-1(config-ike-gw)# mode policy-based
SPOKE-1(config-ike-gw)# mobike disable
SPOKE-1(config-ike-gw)# dead-peer-detection action clear
SPOKE-1(config-ike-gw)# dead-peer-detection interval 10
SPOKE-1(config-ike-gw)# dead-peer-detection retransmit timeout 5
SPOKE-1(config-ike-gw)# dead-peer-detection retransmit tries 2
SPOKE-1(config-ike-gw)# exit
SPOKE-1(config)# security ike gateway ike_gateway_cloud_two
SPOKE-1(config-ike-gw)# version v2-only
SPOKE-1(config-ike-gw)# ike-policy ike_policy
SPOKE-1(config-ike-gw)# local address 198.51.100.10
SPOKE-1(config-ike-gw)# local network 198.51.100.10/32 protocol gre 
SPOKE-1(config-ike-gw)# remote address 198.51.100.6
SPOKE-1(config-ike-gw)# remote network 198.51.100.6/32 protocol gre 
SPOKE-1(config-ike-gw)# mode policy-based
SPOKE-1(config-ike-gw)# mobike disable
SPOKE-1(config-ike-gw)# dead-peer-detection action clear
SPOKE-1(config-ike-gw)# dead-peer-detection interval 10
SPOKE-1(config-ike-gw)# dead-peer-detection retransmit timeout 5
SPOKE-1(config-ike-gw)# dead-peer-detection retransmit tries 2
SPOKE-1(config-ike-gw)# exit
SPOKE-1(config)# security ike gateway ike_gateway_to_spokes
SPOKE-1(config-ike-gw)# version v2-only
SPOKE-1(config-ike-gw)# ike-policy ike_policy
SPOKE-1(config-ike-gw)# local address 198.51.100.10
SPOKE-1(config-ike-gw)# local network 198.51.100.10/32 protocol gre 
SPOKE-1(config-ike-gw)# remote id any
SPOKE-1(config-ike-gw)# remote address any
SPOKE-1(config-ike-gw)# remote network any protocol gre 
SPOKE-1(config-ike-gw)# mode policy-based
SPOKE-1(config-ike-gw)# mobike disable
SPOKE-1(config-ike-gw)# dead-peer-detection action clear
SPOKE-1(config-ike-gw)# dead-peer-detection interval 10
SPOKE-1(config-ike-gw)# dead-peer-detection retransmit timeout 5
SPOKE-1(config-ike-gw)# dead-peer-detection retransmit tries 2
SPOKE-1(config-ike-gw)# exit

Scroll Pagebreak

Затем настроим IPsec proposal, IPsec policy и IPsec vpn туннели через каждый CLOUD:

Блок кода
SPOKE-1(config)# security ipsec proposal ipsec_proposal
SPOKE-1(config-ipsec-proposal)# authentication algorithm sha2-256
SPOKE-1(config-ipsec-proposal)# encryption algorithm aes256
SPOKE-1(config-ipsec-proposal)# pfs dh-group 19
SPOKE-1(config-ipsec-proposal)# exit
SPOKE-1(config)# security ipsec policy ipsec_policy
SPOKE-1(config-ipsec-policy)# proposal ipsec_proposal
SPOKE-1(config-ipsec-policy)# exit
SPOKE-1(config)# security ipsec vpn ipsec_dynamic_to_spoke
SPOKE-1(config-ipsec-vpn)# type transport
SPOKE-1(config-ipsec-vpn)# ike establish-tunnel route
SPOKE-1(config-ipsec-vpn)# ike gateway ike_gateway_to_spokes
SPOKE-1(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
SPOKE-1(config-ipsec-vpn)# enable
SPOKE-1(config-ipsec-vpn)# exit
SPOKE-1(config)# security ipsec vpn ipsec_static_cloud_one
SPOKE-1(config-ipsec-vpn)# type transport
SPOKE-1(config-ipsec-vpn)# ike establish-tunnel route
SPOKE-1(config-ipsec-vpn)# ike gateway ike_gateway_cloud_one
SPOKE-1(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
SPOKE-1(config-ipsec-vpn)# enable
SPOKE-1(config-ipsec-vpn)# exit
SPOKE-1(config)# security ipsec vpn ipsec_static_cloud_two
SPOKE-1(config-ipsec-vpn)# type transport
SPOKE-1(config-ipsec-vpn)# ike establish-tunnel route
SPOKE-1(config-ipsec-vpn)# ike gateway ike_gateway_cloud_two
SPOKE-1(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
SPOKE-1(config-ipsec-vpn)# enable
SPOKE-1(config-ipsec-vpn)# exit

Скорректируем правила зоны безопасности WAN, разрешим протоколы для GRE over IPSec-туннеля:

Блок кода
SPOKE-1(config)# object-group service ISAKMP_PORT
SPOKE-1(config-object-group-service)# port-range 500
SPOKE-1(config-object-group-service)# port-range 4500
SPOKE-1(config-object-group-service)# exit
SPOKE-1(config)#  security zone-pair WAN self  
SPOKE-1(config-security-zone-pair)# rule 1
SPOKE-1(config-security-zone-pair-rule)# action permit 
SPOKE-1(config-security-zone-pair-rule)# match protocol udp 
SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group ISAKMP_PORT 
SPOKE-1(config-security-zone-pair-rule)# enable 
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# rule 2
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol esp
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# rule 3
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol gre
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# exit

Scroll Pagebreak

Настроим правила зон безопасности DMVPN_C_ONE и DMVPN_C_TWO, разрешим прохождение трафика для протоколов BGP, BFD, ICMP:

Блок кода
SPOKE-1(config)# object-group service BGP
SPOKE-1(config-object-group-service)# port-range 179
SPOKE-1(config-object-group-service)# exit
SPOKE-1(config)# object-group service BFD
SPOKE-1(config-object-group-service)# port-range 3784
SPOKE-1(config-object-group-service)# exit
SPOKE-1(config)# security zone-pair DMVPN_C_ONE self
SPOKE-1(config-security-zone-pair)# rule 1
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol icmp
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# rule 2
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol tcp
SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BGP
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# rule 3
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol udp
SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BFD
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# exit
SPOKE-1(config)# security zone-pair DMVPN_C_TWO self
SPOKE-1(config-security-zone-pair)# rule 1
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol icmp
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# rule 2
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol tcp
SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BGP
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# rule 3
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol udp
SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BFD
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# exit

Scroll Pagebreak

Скорректируем правила зоны безопасности LAN, разрешим прохождение трафика между зонами LAN и DMVPN_C_ONE/DMVPN_C_TWO:

Блок кода
SPOKE-1(config)# security zone-pair LAN DMVPN_C_ONE
SPOKE-1(config-security-zone-pair)# rule 1
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# exit
SPOKE-1(config)# security zone-pair LAN DMVPN_C_TWO
SPOKE-1(config-security-zone-pair)# rule 1
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# exit
SPOKE-1(config)# security zone-pair DMVPN_C_ONE LAN
SPOKE-1(config-security-zone-pair)# rule 1
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol icmp
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# exit
SPOKE-1(config)# security zone-pair DMVPN_C_TWO LAN
SPOKE-1(config-security-zone-pair)# rule 1
SPOKE-1(config-security-zone-pair-rule)# action permit
SPOKE-1(config-security-zone-pair-rule)# match protocol icmp
SPOKE-1(config-security-zone-pair-rule)# enable
SPOKE-1(config-security-zone-pair-rule)# exit
SPOKE-1(config-security-zone-pair)# exit

Scroll Pagebreak

  • Конфигурирование SPOKE-2

Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:

Блок кода
SPOKE-2(config)# security zone DMVPN_C_TWO
SPOKE-2(config-security-zone)# exit
SPOKE-2(config)# security zone DMVPN_C_ONE
SPOKE-2(config-security-zone)# exit
SPOKE-2(config)# tunnel gre 1
SPOKE-2(config-gre)# key 1000
SPOKE-2(config-gre)# ttl 64
SPOKE-2(config-gre)# mtu 1400
SPOKE-2(config-gre)# multipoint
SPOKE-2(config-gre)# security-zone DMVPN_C_ONE
SPOKE-2(config-gre)# local address 198.51.100.14
SPOKE-2(config-gre
Блок кода
ESR-1(config)# interface gigabitethernet 1/0/1
ESR-1(config-if-gi)# ip address 203.0.113.1/30
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/1
ESR-1(config-if-gi)# ip address 203.0.113.53/3025
ESRSPOKE-12(config-if-gigre)# exit

Сконфигурируем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN:

Блок кода
ESR-1(config)# object-group service og_bgp
ESR-1(config-object-group-service)# port-range 179
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone WAN
ESR-1(config-security-zone)# exit
ESR-1(config)# security zone-pair WAN self 
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol icmp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group og_bgp 
ESR-1(config-security-zone-pair-rule)# action permit 
ESR-1(config-security-zone-pair-rule)# enable 
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit

И укажем принадлежность интерфейсов к зоне безопасности:

Блок кода
ESR-1(config)# interface gigabitethernet 1/0/1
ESR-1(config-if-gi)# security-zone WAN 
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/1
ESR-1(config-if-gi)# security-zone WAN 
ESR-1(config-if-gi)# exit

Scroll Pagebreak

Создадим track для последующего управления анонсами маршрутов в кластере.

Блок кода
ESR-1(config)# track 1
ESR-1(config-track)# track vrrp id 1 state not master 
ESR-1(config-track)# enable 
ESR-1(config-track)# exit

Создадим route-map, который будет использоваться в дальнейшем при настройке разрешающих анонсов роутерам из другой AS. В route-map запретим анонсировать подсеть для cluster-interface, а также настроим управление as-path prepend для управлениями анонсами bgp:

 ip tcp adjust-mss 1360
SPOKE-2(config-gre)# ip nhrp holding-time 60
SPOKE-2(config-gre)# ip nhrp shortcut
SPOKE-2(config-gre)# ip nhrp map 203.0.113.1 198.51.100.2
SPOKE-2(config-gre)# ip nhrp nhs 203.0.113.1
SPOKE-2(config-gre)# ip nhrp multicast nhs
SPOKE-2(config-gre)# ip nhrp enable
SPOKE-2(config-gre)# enable
SPOKE-2(config-gre)# exit
SPOKE-2(config)# tunnel gre 2
SPOKE-2(config-gre)# key 2000
SPOKE-2(config-gre)# ttl 64
SPOKE-2(config-gre)# mtu 1400
SPOKE-2(config-gre)# multipoint
SPOKE-2(config-gre)# security-zone DMVPN_C_TWO
SPOKE-2(config-gre)# local address 198.51.100.14
SPOKE-2(config-gre)# ip address 203.0.113.131/25
SPOKE-2(config-gre)# ip tcp adjust-mss 1360
SPOKE-2(config-gre)# ip nhrp holding-time 60
SPOKE-2(config-gre)# ip nhrp shortcut
SPOKE-2(config-gre)# ip nhrp map 203.0.113.129 198.51.100.6
SPOKE-2(config-gre)# ip nhrp nhs 203.0.113.129
SPOKE-2(config-gre)# ip nhrp multicast nhs
SPOKE-2(config-gre)# ip nhrp enable
SPOKE-2(config-gre)# enable
SPOKE-2(config-gre)# exit

Scroll Pagebreak

Произведём настройку протокола динамической маршрутизации для SPOKE-1. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей. Анонсируем LAN подсети в сторону HUB используя network в address-family.

Для ускорения переключения в случае выхода из строя Active-устройства в кластере включим также bfd для BGP, а также уменьшим таймер error-wait.

Блок кода
SPOKE-2
Блок кода
ESR-1(config)# route-map bgp-out
ESR-1DMVPN_BGP_OUT
SPOKE-2(config-route-map)# rule 1
ESRSPOKE-12(config-route-map-rule)# match ip address 198.51.100.0/24
ESR-1exit
SPOKE-2(config-route-map-rule)# exit
SPOKE-2(config)# actionrouter denybgp 64501
ESRSPOKE-12(config-route-map-rule)# exit
ESR-1(config-route-map)# rule 2
ESR-1(config-route-map-rule)# action set as-path prepend 20 track 1
ESR-1(config-route-map-rule)# action permit 
ESR-1(config-route-map-rule)# exit
ESR-1(config-route-map)# exit

Создадим BGP процесс для AS 2500 для ESR-1 и войдем в режим конфигурирования параметров процесса:

Блок кода
ESR-1(config)# router bgp 2500 unit 1

Сконфигурируем анонсирование подсетей, подключенных напрямую:

Блок кода
ESR-1(config-bgp)# address-family ipv4 unicast 
ESR-1(config-bgp-af)# redistribute connected 
ESR-1(config-bgp-af)# exit

Создадим eBGP с вышестоящим роутером:

Блок кода
ESR-1bgp)# timers error-wait 5 10
SPOKE-2(config-bgp)# neighbor 203.0.113.1
SPOKE-2(config-bgp-neighbor)# remote-as 64500
SPOKE-2(config-bgp-neighbor)# allow-local-as 10
SPOKE-2(config-bgp-neighbor)# update-source 203.0.113.3
SPOKE-2(config-bgp-neighbor)# fall-over bfd
SPOKE-2(config-bgp-neighbor)# address-family ipv4 unicast
SPOKE-2(config-bgp-neighbor-af)# route-map DMVPN_BGP_OUT out
SPOKE-2(config-bgp-neighbor-af)# enable
SPOKE-2(config-bgp-neighbor-af)# exit
SPOKE-2(config-bgp-neighbor)# enable
SPOKE-2(config-bgp-neighbor)# exit
SPOKE-2(config-bgp)# neighbor 203.0.113.2129
ESRSPOKE-12(config-bgp-neighbor)# remote-as 300064500
ESRSPOKE-12(config-bgp-neighbor)# updateallow-local-source 203.0.113.1

И включим обмен IPv4-маршрутами:

Блок кода
ESR-1as 10
SPOKE-2(config-bgp-neighbor)# addressupdate-family ipv4 unicast
ESR-1source 203.0.113.131
SPOKE-2(config-bgp-neighbor-af)# routefall-map bgp-out out
ESR-1over bfd
SPOKE-2(config-bgp-neighbor-af)# enable
ESR-1 address-family ipv4 unicast
SPOKE-2(config-bgp-neighbor-af)# exit

Включим работу протокола:

Блок кода
ESR-1route-map DMVPN_BGP_OUT out
SPOKE-2(config-bgp-neighbor-af)# enable
ESRSPOKE-12(config-bgp-neighbor-af)# exit
ESRSPOKE-12(config-bgp-neighbor)# enable
ESRSPOKE-12(config-bgp-neighbor)# exit

Создадим BGP процесс для AS 2500 для ESR-2 и войдем в режим конфигурирования параметров процесса:

Блок кода
ESR-1(config)# router bgp 2500 unit 2

Сконфигурируем анонсирование подсетей, подключенных напрямую:

Блок кода
ESR-1(config
SPOKE-2(config-bgp)# address-family ipv4 unicast 
ESRSPOKE-12(config-bgp-af)# redistribute connected 
ESR-1network 128.66.2.0/24
SPOKE-2(config-bgp-af)# exit

Создадим eBGP с вышестоящим роутером:

Блок кода
ESR-1
SPOKE-2(config-bgp)# neighbor 203.0.113.6
ESR-1enable
SPOKE-2(config-bgp-neighbor)# remote-as 3500
ESR-1(config-bgp-neighbor)# update-source 203.0.113.5

И включим обмен IPv4-маршрутами:

Блок кода
ESR-1(config-bgp-neighbor)# address-family ipv4 unicast
ESR-1(config-bgp-neighbor-af)# route-map bgp-out out
ESR-1(config-bgp-neighbor-af)# enable
ESR-1(config-bgp-neighbor-af)# exit

Включим работу протокола:

Блок кода
ESR-1(config-bgp-neighbor)# enable
ESR-1(config-bgp-neighbor)# exit
ESR-1(config-bgp)# enable
ESR-1(config-bgp)# exit

Информацию о BGP-пирах можно посмотреть командой:

Блок кода
ESR-1# show bgp neighbors 
BGP neighbor is 203.0.113.2
    BGP state:                          Established
    Type:                               Static neighbor
    Neighbor address:                   203.0.113.2
    Neighbor AS:                        3000
    Neighbor ID:                        8.8.8.8
    Neighbor caps:                      refresh enhanced-refresh restart-aware AS4
    Session:                            external AS4
    Source address:                     203.0.113.1
    Weight:                             0
    Hold timer:                         120/180
    Keepalive timer:                    49/60
    RR client:                          No
    Address family ipv4 unicast:       
      Send-label:                       No
      Default originate:                No
      Default information originate:    No
      Outgoing route-map:               bgp-out
      Preference:                       170
      Remove private AS:                No
      Next-hop self:                    No
      Next-hop unchanged:               No
    Uptime (d,h:m:s):                   00,00:03:40  
exit

Scroll Pagebreak

Произведём настройку IPsec для SPOKE-1, настроим ike proposal, ike policy и ike gateway. В ike gateway дополнительно настроим dpd, для ускорения перестроения туннелей в случае если выйдет из строя Active-устройство:

Блок кода
SPOKE-2(config)# security ike proposal ike_proposal
SPOKE-2(config-ike-proposal)# authentication algorithm sha2-256
SPOKE-2(config-ike-proposal)# encryption algorithm aes256
SPOKE-2(config-ike-proposal)# dh-group 19
SPOKE-2(config-ike-proposal)# exit
SPOKE-2(config)# security ike policy ike_policy
SPOKE-2(config-ike-policy)# pre-shared-key ascii-text encrypted 8CB5107EA7005AFF
SPOKE-2(config-ike-policy)# proposal ike_proposal
SPOKE-2(config-ike-policy)# exit
SPOKE-2(config)# security ike gateway ike_gateway_cloud_one
SPOKE-2(config-ike-gw)# version v2-only
SPOKE-2(config-ike-gw)# ike-policy ike_policy
SPOKE-2(config-ike-gw)# local address 198.51.100.14
SPOKE-2(config-ike-gw)# local network 198.51.100.14/32 protocol gre 
SPOKE-2(config-ike-gw)# remote address 198.51.100.2
SPOKE-2(config-ike-gw)# remote network 198.51.100.2/32 protocol gre 
SPOKE-2(config-ike-gw)# mode policy-based
SPOKE-2(config-ike-gw)# mobike disable
SPOKE-2(config-ike-gw)# dead-peer-detection action clear
SPOKE-2(config-ike-gw)# dead-peer-detection interval 10
SPOKE-2(config-ike-gw)# dead-peer-detection retransmit timeout 5
SPOKE-2(config-ike-gw)# dead-peer-detection retransmit tries 2
SPOKE-2(config-ike-gw)# exit
SPOKE-2(config)# security ike gateway ike_gateway_cloud_two
SPOKE-2(config-ike-gw)# version v2-only
SPOKE-2(config-ike-gw)# ike-policy ike_policy
SPOKE-2(config-ike-gw)# local address 198.51.100.14
SPOKE-2(config-ike-gw)# local network 198.51.100.14/32 protocol gre 
SPOKE-2(config-ike-gw)# remote address 198.51.100.6
SPOKE-2(config-ike-gw)# remote network 198.51.100.6/32 protocol gre 
SPOKE-2(config-ike-gw)# mode policy-based
SPOKE-2(config-ike-gw)# mobike disable
SPOKE-2(config-ike-gw)# dead-peer-detection action clear
SPOKE-2(config-ike-gw)# dead-peer-detection interval 10
SPOKE-2(config-ike-gw)# dead-peer-detection retransmit timeout 5
SPOKE-2(config-ike-gw)# dead-peer-detection retransmit tries 2
SPOKE-2(config-ike-gw)# exit
SPOKE-2(config)# security ike gateway ike_gateway_to_spokes
SPOKE-2(config-ike-gw)# version v2-only
SPOKE-2(config-ike-gw)# ike-policy ike_policy
SPOKE-2(config-ike-gw)# local address 198.51.100.14
SPOKE-2(config-ike-gw)# local network 198.51.100.14/32 protocol gre 
SPOKE-2(config-ike-gw)# remote id any
SPOKE-2(config-ike-gw)# remote address any
SPOKE-2(config-ike-gw)# remote network any protocol gre 
SPOKE-2(config-ike-gw)# mode policy-based
SPOKE-2(config-ike-gw)# mobike disable
SPOKE-2(config-ike-gw)# dead-peer-detection action clear
SPOKE-2(config-ike-gw)# dead-peer-detection interval 10
SPOKE-2(config-ike-gw)# dead-peer-detection retransmit timeout 5
SPOKE-2(config-ike-gw)# dead-peer-detection retransmit tries 2
SPOKE-2(config-ike-gw)# exit

Scroll Pagebreak

Затем настроим IPsec proposal, IPsec policy и IPsec vpn туннели через каждый CLOUD:

Блок кода
SPOKE-2(config)# security ipsec proposal ipsec_proposal
SPOKE-2(config-ipsec-proposal)# authentication algorithm sha2-256
SPOKE-2(config-ipsec-proposal)# encryption algorithm aes256
SPOKE-2(config-ipsec-proposal)# pfs dh-group 19
SPOKE-2(config-ipsec-proposal)# exit
SPOKE-2(config)# security ipsec policy ipsec_policy
SPOKE-2(config-ipsec-policy)# proposal ipsec_proposal
SPOKE-2(config-ipsec-policy)# exit
SPOKE-2(config)# security ipsec vpn ipsec_dynamic_to_spoke
SPOKE-2(config-ipsec-vpn)# type transport
SPOKE-2(config-ipsec-vpn)# ike establish-tunnel route
SPOKE-2(config-ipsec-vpn)# ike gateway ike_gateway_to_spokes
SPOKE-2(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
SPOKE-2(config-ipsec-vpn)# enable
SPOKE-2(config-ipsec-vpn)# exit
SPOKE-2(config)# security ipsec vpn ipsec_static_cloud_one
SPOKE-2(config-ipsec-vpn)# type transport
SPOKE-2(config-ipsec-vpn)# ike establish-tunnel route
SPOKE-2(config-ipsec-vpn)# ike gateway ike_gateway_cloud_one
SPOKE-2(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
SPOKE-2(config-ipsec-vpn)# enable
SPOKE-2(config-ipsec-vpn)# exit
SPOKE-2(config)# security ipsec vpn ipsec_static_cloud_two
SPOKE-2(config-ipsec-vpn)# type transport
SPOKE-2(config-ipsec-vpn)# ike establish-tunnel route
SPOKE-2(config-ipsec-vpn)# ike gateway ike_gateway_cloud_two
SPOKE-2(config-ipsec-vpn)# ike ipsec-policy ipsec_policy
SPOKE-2(config-ipsec-vpn)# enable
SPOKE-2(config-ipsec-vpn)# exit

Скорректируем правила зоны безопасности WAN, разрешим протоколы для GRE over IPSec-туннеля:

Блок кода
SPOKE-2(config)# object-group service ISAKMP_PORT
SPOKE-2(config-object-group-service)# port-range 500
SPOKE-2(config-object-group-service)# port-range 4500
SPOKE-2(config-object-group-service)# exit
SPOKE-2(config)#  security zone-pair WAN self  
SPOKE-2(config-security-zone-pair)# rule 1
SPOKE-2(config-security-zone-pair-rule)# action permit 
SPOKE-2(config-security-zone-pair-rule)# match protocol udp 
SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group ISAKMP_PORT 
SPOKE-2(config-security-zone-pair-rule)# enable 
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# rule 2
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol esp
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# rule 3
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol gre
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# exit

Scroll Pagebreak

Настроим правила зон безопасности DMVPN_C_ONE и DMVPN_C_TWO, разрешим прохождение трафика для протоколов BGP, BFD, ICMP:

Блок кода
SPOKE-2(config)# object-group service BGP
SPOKE-2(config-object-group-service)# port-range 179
SPOKE-2(config-object-group-service)# exit
SPOKE-2(config)# object-group service BFD
SPOKE-2(config-object-group-service)# port-range 3784
SPOKE-2(config-object-group-service)# exit
SPOKE-2(config)# security zone-pair DMVPN_C_ONE self
SPOKE-2(config-security-zone-pair)# rule 1
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol icmp
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# rule 2
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol tcp
SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BGP
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# rule 3
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol udp
SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BFD
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# exit
SPOKE-2(config)# security zone-pair DMVPN_C_TWO self
SPOKE-2(config-security-zone-pair)# rule 1
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol icmp
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# rule 2
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol tcp
SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BGP
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# rule 3
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol udp
SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BFD
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# exit

Scroll Pagebreak

Скорректируем правила зоны безопасности LAN, разрешим прохождение трафика между зонами LAN и DMVPN_C_ONE/DMVPN_C_TWO:

Блок кода
SPOKE-2(config)# security zone-pair LAN DMVPN_C_ONE
SPOKE-2(config-security-zone-pair)# rule 1
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# exit
SPOKE-2(config)# security zone-pair LAN DMVPN_C_TWO
SPOKE-2(config-security-zone-pair)# rule 1
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# exit
SPOKE-2(config)# security zone-pair DMVPN_C_ONE LAN
SPOKE-2(config-security-zone-pair)# rule 1
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol icmp
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# exit
SPOKE-2(config)# security zone-pair DMVPN_C_TWO LAN
SPOKE-2(config-security-zone-pair)# rule 1
SPOKE-2(config-security-zone-pair-rule)# action permit
SPOKE-2(config-security-zone-pair-rule)# match protocol icmp
SPOKE-2(config-security-zone-pair-rule)# enable
SPOKE-2(config-security-zone-pair-rule)# exit
SPOKE-2(config-security-zone-pair)# exit
Проверка работы:

Состояние IPsec-туннелей можно посмотреть командой:

Блок кода
HUB-1# show security ipsec vpn status 
Name     
Блок кода
ESR-2# show bgp neighbors 
BGP neighbor is 203.0.113.6
    BGP state:                         Local Established
host    Type:    Remote host       Initiator spi        Responder spi         StaticState neighbor
    Neighbor address:                   203.0.113.6
    Neighbor AS:             
-------------------------------   ---------------   ---------------   ------------------   ------------------   -----------   
ipsec_dynamic_cloud_one           3500
198.51.100.2    Neighbor ID:  198.51.100.14     0x22d11891e06edf92            0x40469d552e93e47c   Established   8.8.8.8

ipsec_dynamic_cloud_two    Neighbor  caps:     198.51.100.6      198.51.100.14     0x61f7a205eeef5d06   0x141239e7309d351c   refreshEstablished enhanced-refresh restart-aware AS4
ipsec_dynamic_cloud_one    Session:       198.51.100.2      198.51.100.10     0x3dbf984518584d5e   0x08563e2683776071   Established    external AS4

ipsec_dynamic_cloud_two      Source address:    198.51.100.6      198.51.100.10     0x500adbe8428c7d35   0x9c83c7a2255cb0ed   203.0.113.5
Established    Weight:      
Блок кода
SPOKE-1# show security ipsec vpn status 
Name                       0
    Hold timer:  Local host        Remote host       Initiator spi     138/180
   Responder spi Keepalive timer:      State         
-------------------------------   ---------------  56/60
    RR client:         ---------------   ------------------   ------------------   -----------   
ipsec_static_cloud_one            198.51.100.10      No
198.51.100.2     Address family0x3dbf984518584d5e ipv4 unicast: 0x08563e2683776071   Established   
ipsec_static_cloud_two      Send-label:      198.51.100.10     198.51.100.6      0x500adbe8428c7d35   0x9c83c7a2255cb0ed   No
Established     
Блок кода
SPOKE-2# show Defaultsecurity originate:ipsec vpn status 
Name             No
      Default information originate:    No
     Local Outgoinghost route-map:       Remote host       bgp-out
   Initiator spi   Preference:     Responder spi        State         170
      Remove private AS:                No
      Next-hop self:  
-------------------------------   ---------------   ---------------   ------------------   ------------------   -----------   
ipsec_static_cloud_one            198.51.100.14      No
198.51.100.2      0x22d11891e06edf92 Next-hop unchanged: 0x40469d552e93e47c   Established   
ipsec_static_cloud_two        No
    Uptime (d,h:m:s):198.51.100.14     198.51.100.6      0x61f7a205eeef5d06   0x141239e7309d351c   Established   00,00:03:42 

...

Состояние NHRP-записей можно посмотреть командой:

Блок кода
ESRHUB-1# show bgpip ipv4 unicast neighbor 203.0.113.2 advertise-routesnhrp peers 
Status codesFlags: uE - unicastunique, bR - broadcastnhs, mU - multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete
used, L - lower-up
     Network   C - connected, G - group, Q - qos, N - Nextnat
 Hop       P - protected, I - Redirect-ignored, MetricX - LocPrfundefined

Tunnel address     Weight Path   NBMA address    
*> u 192.0.2.0/24  Tunnel      Expire  203.0.113.1    Created      --    Type  --          --  Flags   2500 ?
*  u 192.0.2.0/24  
        203.0.113.1          --      --          --     2500 ?
*> u 203.0.113.0/30       203.0.113.1     (h:m:s)     --(d,h:m:s)      --          --     2500 ?
ESR-1# show bgp ipv4 unicast neighbor 203.0.113.2 routes 
Status codes: u - unicast, b - broadcast, m 
- multicast, a - anycast
              * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

     Network    -------------------   ----------------   ---------   ---------   --------------   ---------------   ----------   
203.0.113.2            198.51.100.10      gre 1       00:00:51   Next Hop 00,00:04:41      dynamic       Metric  LocPrf    LCP  Weight Path        
*> u 0
203.0.0113.0/03            203198.051.113.2100.14      gre 1       -- 00:00:48    00,00:04:44     100 dynamic        0   LCP   3000 ?
Блок кода
ESR-2# show bgp ipv4 unicast neighbor 
203.0.113.6130 advertise-routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
   198.51.100.10      gre 2       00:00:51     * - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete

00,00:04:41      dynamic          Network LCP          
203.0.113.131   Next Hop      198.51.100.14      gre Metric2  LocPrf     00:00:48 Weight Path  00,00:04:44      
*>dynamic u 192.0.2.0/24         203.0.113.5LCP          
Блок кода
SPOKE-1# show ip nhrp peers 
 Flags: E - unique, R - nhs, U - used, L - lower-up
--      --          --     2500 20 ?
*> u 203.0.113.4/30       203.0.113.5   C - connected, G - group, Q - qos, N - nat
       -- P - protected, I - Redirect--ignored, X -    undefined

Tunnel address    --     2500NBMA 20address ?
ESR-2# show bgp ipv4 unicast neighbor 203.0.113.6 routes 
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
 Tunnel      Expire      Created          Type       * - valid, > - best
Origin codes: iFlags - IGP, e - EGP, ? - incomplete

       Network              Next Hop             Metric  LocPrf      Weight Path        
*> u 0.0.0.0/0 (h:m:s)     (d,h:m:s)       203.0.113.6          --      100         0      3500 ?
Итоговая конфигурация кластера:

--------------------   ----------------   ---------   ---------   --------------   ---------------   ----------   
203.0.113.1            198.51.100.2       gre 1       --          00,00:00:13      static            RULCP        
203.0.113.129          198.51.100.6       gre 2       --          00,00:00:13      static            RULCP        
Блок кода
SPOKE-2# show ip nhrp peers 
 Flags: E - unique, R - nhs, U - used, L - lower-up
        C - connected, G - group, Q - qos, N - nat
        P - protected, I - Redirect-ignored, X - undefined

Tunnel address         NBMA address       Tunnel      Expire      Created          Type              Flags        
                                                      (h:m:s)     (d,h:m:s)                                       
--------------------   ----------------   ---------   ---------   --------------   ---------------   ----------   
203.0.113.1            198.51.100.2       gre 1       --          00,00:00:16      static            RULCP        
203.0.113.129          198.51.100.6       gre 2       --          00,00:00:16      static            RULCP        
Блок кода
cluster
  cluster-interface bridge 1
  unit 1
    mac-address cc:9d:a2:71:83:78
  exit
  unit 2
    mac-address cc:9d:a2:71:82:38
  exit
  enable
exit

hostname ESR-1 unit 1
hostname ESR-2 unit 2

object-group service og_bgp
  port-range 179
exit

security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit

route-map bgp-out
  rule 1
    match ip address 198.51.100.0/24
    action deny
  exit
  rule 2
    action set as-path prepend 20 track 1
  exit
exit

router bgp 2500 unit 1
  neighbor 203.0.113.2
    remote-as 3000
    update-source 203.0.113.1
    address-family ipv4 unicast
      route-map bgp-out out
      enable
    exit
    enable
  exit
  address-family ipv4 unicast
    redistribute connected
  exit
  enable
exit
router bgp 2500 unit 2
  neighbor 203.0.113.6
    remote-as 3500
    update-source 203.0.113.5
    address-family ipv4 unicast
      route-map bgp-out out
      enable
    exit
    enable
  exit
  address-family ipv4 unicast
    redistribute connected
  exit
  enable
exit

bridge 1
  vlan 1
  security-zone SYNC
  ip address 198.51.100.254/24 unit 1
  ip address 198.51.100.253/24 unit 2
  vrrp id 1
  vrrp ip 198.51.100.1/24
  vrrp group 1
  vrrp
  enable
exit

interface gigabitethernet 1/0/1
  security-zone WAN
  ip address 203.0.113.1/30
exit
interface gigabitethernet 1/0/2
  security-zone LAN
  ip address 192.0.2.254/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 1/0/3
  mode switchport
  spanning-tree disable
exit
interface gigabitethernet 2/0/1
  security-zone WAN
  ip address 203.0.113.5/30
exit
interface gigabitethernet 2/0/2
  security-zone LAN
  ip address 192.0.2.253/24
  vrrp id 2
  vrrp ip 192.0.2.1/24
  vrrp group 1
  vrrp authentication key ascii-text encrypted 88B11079B51D
  vrrp authentication algorithm md5
  vrrp
exit
interface gigabitethernet 2/0/3
  mode switchport
  spanning-tree disable
exit

security zone-pair SYNC self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol vrrp
    enable
  exit
  rule 3
    action permit
    match protocol ah
    enable
  exit
exit
security zone-pair LAN self
  rule 1
    action permit
    enable
  exit
exit
security zone-pair WAN self
  rule 1
    action permit
    match protocol icmp
    enable
  exit
  rule 2
    action permit
    match protocol tcp
    match destination-port object-group og_bgp
    enable
  exit
exit

track 1
  track vrrp id 1 state not master
  enable
exit