Cluster используется для резервирования работы устройств в сети. Резервирование обеспечивается за счет синхронизации работы различных сервисов между устройствами, а также за счет организации единой точки управления устройствами.
Нумерация портов зависима от номера юнита. У юнита 1 нумерация интерфейса будет 1/0/x. У юнита 2 нумерация интерфейсов будет 2/0/x. и т.д. для юнита 3 и 4. Чтобы не потерять доступ до устройства после смены номера юнита необходимо настроить интерфейсы с нумерацией 2/0/x, 3/0/x, 4/0/x заранее. |
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Перейти в режим конфигурирования сетевого моста, который будет использован в качестве кластерного интерфейса. | wlc(config)# bridge <BR-NUM> | <BR-NUM> – номер сетевого моста. |
| 2 | Указать IPv4-адрес и маску подсети для кластерного интерфейса. Необходимо установить адрес для всех юнитов кластера. (Для работы кластерного интерфейса поддерживается только IPv4-адресация.) | wlc(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-адресации. |
| 3 | Установить идентификатор VRRP-маршрутизатора. | wlc(config-bridge)# vrrp id <VRID> | <VRID> – идентификатора VRRP-маршрутизатора, принимает значения [1..255]. |
| 4 | Установить виртуальный IP-адрес VRRP-маршрутизатора (адрес должен быть из той же подсети, что и ip address). | wlc(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-адреса. |
| 5 | Установить принадлежность VRRP-маршрутизатора к группе. Группа предоставляет возможность синхронизировать несколько VRRP-процессов, так если в одном из процессов произойдет смена мастера, то в другом процессе также произойдёт смена ролей. | wlc(config-bridge)# vrrp group <GRID> | <GRID> – идентификатор группы VRRP-маршрутизатора, принимает значения [1..32]. |
| 6 | Включить VRRP-процесс на IP-интерфейсе. | wlc(config-bridge)# vrrp | |
| 7 | Активировать сетевой мост. | wlc(config-bridge)# enable | |
8 | Перейти в режим конфигурирования кластера. | wlc(config)# cluster | |
| 9 | Установить интерфейс, через который будет происходить обмен служебными сообщениями между юнитами в кластере. | wlc(config-cluster)# cluster-interface bridge [<BRIDGE-ID>] | <BRIDGE-ID> – идентификационный номер моста, задается в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора. |
| 10 | Отключить синхронизацию конфигураций в кластере между юнитами (не обязательно). | wlc(config-cluster)# sync config disable | |
| 11 | Перейти в режим конфигурирования юнита в кластере. | wlc(config-cluster)# unit <ID> | <ID> – номер юнита, принимает значения [1..2]. |
| 12 | Настроить MAC-адрес для определенного юнита. | wlc(config-cluster-unit)# mac-address <ADDR> | <ADDR> – МАС-адрес сетевого моста, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF]. |
| 13 | Включить работу кластера. | wlc(config-cluster)# enable | |
| 14 | Сменить юнит у устройства (смена юнита устройства вступает в силу после перезагрузки.) | wlc# set unit id <ID> | <ID> – номер юнита, принимает значения [1..2]. |
Данные между юнитами кластера через канал синхронизации передаются в открытом виде. Также все вводимые команды конфигурирования, содержащие чувствительную информацию не в encrypted-виде, будут переданы в том же виде, в котором введены, после чего будут преобразованы в encrypted-вид. |
В настоящем руководстве приведено описание настройки кластера для администратора сервисного маршрутизатора wlc (далее — маршрутизатор).

Схема реализации HA Cluster
Для более удобного и ясного восприятия рекомендуется переименовать устройства. В кластерной версии прошивки предусмотрена возможность указать имя устройства с привязкой к юниту. Устройство будет использовать только тот hostname, юнитом которого он является:
wlc# configure wlc(config)# hostname wlc-1 unit 1 wlc(config)# hostname wlc-2 unit 2 |
Более приоритетным является hostname, указанный с привязкой к unit. |
Необходимо удалить заводские настройки Bridge, чтобы далее сконфигурировать его с нуля:
wlc-1(config)# no bridge 1 |
Создайте VLAN 2449, который будет выступать как vlan управления для ТД:
wlc-1(config)# vlan 2449 |
Укажите параметр, который отвечает за постоянное состояние UP:
wlc-1(config-vlan)# force-up wlc-1(config-vlan)# exit |
Для того чтобы задать адресацию на Bridge, предварительно необходимо удалить заводские настройки интерфейса:
wlc-1(config)# no interface gigabitethernet 1/0/2 |
Создайте Bridge для управления ТД:
wlc-1(config)# bridge 5 |
Укажите VLAN:
wlc-1(config-bridge)# vlan 2449 |
Задайте зону безопасности:
wlc-1(config-bridge)# security-zone trusted |
Необходимо задать адресацию для первого и второго юнита кластера:
wlc-1(config-bridge)# ip address 192.168.1.3/24 unit 1 wlc-1(config-bridge)# ip address 192.168.1.2/24 unit 2 |
Настройте VRRP:
wlc-1(config-bridge)# vrrp id 2 wlc-1(config-bridge)# vrrp ip 192.168.1.1/32 wlc-1(config-bridge)# vrrp group 1 wlc-1(config-bridge)# vrrp |
Отключите работу spanning-tree и включите работу Bridge:
wlc-1(config-bridge)# no spanning-tree wlc-1(config-bridge)# enable wlc-1(config-bridge)# exit |
Перейдите к конфигурированию интерфейса Первого юнита:
wlc-1(config)# interface gigabitethernet 1/0/2 |
Для удобства укажите описание интерфейса:
wlc-1(config-if-gi)# description "Local" |
Переведите режим работы интерфейса в L2:
wlc-1(config-if-gi)# mode switchport |
Укажите режим работы интерфейса trunk:
wlc-1(config-if-gi)# switchport mode trunk |
Добавьте VLAN 3 и 2449, которые будут обрабатываться интерфейсом:
wlc-1(config-if-gi)# switchport trunk allowed vlan add 3,2449 wlc-1(config-if-gi)# exit |
Сконфигурируйте интерфейс Второго юнита. Настройки идентичны с интерфейсом, сконфигурированным выше:
wlc-1(config)# interface gigabitethernet 2/0/2 wlc-1(config-if-gi)# description "Local" wlc-1(config-if-gi)# mode switchport wlc-1(config-if-gi)# switchport mode trunk wlc-1(config-if-gi)# switchport trunk allowed vlan add 3,2449 wlc-1(config-if-gi)# exit |
Для полноценной работы кластера требуется сконфигурировать кластерный интерфейс, который будет использоваться для передачи control plane трафика. В качестве кластерного интерфейса назначен bridge. В качестве механизма, отвечающего за определение ролей устройств, участвующих в резервировании, назначен протокол VRRP. Настройки cluster-интерфейса должны быть идентичны для всех участников кластера.
Так как кластер выполняет синхронизацию состояний между устройствами, необходимо создать зону безопасности SYNC (synchronization) и разрешить прохождение трафика протокола VRRP:
wlc-1(config)# security zone SYNC wlc-1(config-security-zone)# exit wlc-1(config)# security zone-pair SYNC self wlc-1(config-security-zone-pair)# rule 1 wlc-1(config-security-zone-pair-rule)# action permit wlc-1(config-security-zone-pair-rule)# match protocol icmp wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# rule 2 wlc-1(config-security-zone-pair-rule)# action permit wlc-1(config-security-zone-pair-rule)# match protocol vrrp wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Перейдите к настройкам кластерного интерфейса:
wlc-1(config)# bridge 1 |
В версии ПО 1.30.4 в качестве cluster-интерфейса поддержан только bridge. |
Укажите, к какому VLAN относится bridge, и зону безопасности:
wlc-1(config-bridge)# vlan 1 wlc-1(config-bridge)# security-zone SYNC |
Далее укажите IP-адреса:
wlc-1(config-bridge)# ip address 198.51.100.254/24 unit 1 wlc-1(config-bridge)# ip address 198.51.100.253/24 unit 2 |
Для работы кластерного интерфейса поддерживается только IPv4-адресация. На cluster-интерфейсе необходима настройка адресов с привязкой к unit. |
Настройте идентификатор VRRP, принадлежность VRRP-маршрутизатора к группе, IP-адрес VRRP:
wlc-1(config-bridge)# vrrp id 1 wlc-1(config-bridge)# vrrp group 1 wlc-1(config-bridge)# vrrp ip 198.51.100.1/24 |
Для настройки кластера адрес VRRP должен быть исключительно из той же подсети, что и адреса на интерфейсе. |
Включите протокол VRRP и bridge:
wlc-1(config-bridge)# vrrp wlc-1(config-bridge)# enable wlc-1(config-bridge)# exit |
Настройте физические порты для выделенного линка синхронизации маршрутизаторов wlc-1 и wlc-2:
wlc-1(config)# interface gigabitethernet 1/0/3 wlc-1(config-if-gi)# description "Network: SYNC" wlc-1(config-if-gi)# mode switchport wlc-1(config-if-gi)# exit wlc-1(config)# interface gigabitethernet 2/0/3 wlc-1(config-if-gi)# description "Network: SYNC" wlc-1(config-if-gi)# mode switchport wlc-1(config-if-gi)# exit |
Для проверки работы протокола VRRP выполните следующую команду:
wlc-1# show vrrp Virtual router Virtual IP Priority Preemption State -------------- --------------------------------- -------- ---------- ------ 1 198.51.100.1/24 100 Enabled Backup 2 192.168.1.1/32 100 Enabled Backup |
Можно увидеть, что устройство приняло состояние Backup. Через 10 секунд устройство примет состояние Master.
Для запуска кластера необходимо указать заранее настроенный кластерный интерфейс и юниты, которые будут выполнять роли Active и Standby.
Перейдите в режим настройки кластера:
wlc-1(config)# cluster |
Настройте юниты:
wlc-1(config-cluster)# unit 1 wlc-1(config-cluster-unit)# mac-address E4:5A:D4:A0:BE:35 wlc-1(config-cluster-unit)# exit wlc-1(config-cluster)# unit 2 wlc-1(config-cluster-unit)# mac-address A8:F9:4B:AF:35:84 wlc-1(config-cluster-unit)# exit |
В качестве mac-address указывается системный MAC-адрес устройства, его можно узнать с помощью команды show system | include MAC. Данный блок настройки кластера должен присутствовать на обоих юнитах. |
Укажите кластерный интерфейс, созданный ранее, и активируйте кластер:
wlc-1(config-cluster)# cluster-interface bridge 1 wlc-1(config-cluster)# enable wlc-1(config-cluster)# exit |
Перейдите к настройке NTP:
wlc-1(config)# ntp server 100.110.0.65 |
Для работы синхронизации сервисов WLC, а также кластера необходима синхронизация времени между юнитами. |
Укажите минимальное время опроса и максимальное время опроса:
wlc-1(config-ntp-server)# minpoll 1 wlc-1(config-ntp-server)# maxpoll 4 wlc-1(config-ntp-server)# exit |
Отключите ntp broadcast-client:
wlc-1(config)# no ntp broadcast-client enable |
Укажите часовой пояс:
wlc-1(config)# clock timezone gmt +7 wlc-1(config)# exit |
После настроек кластера конфигурация на wlc-1 и wlc-2 должны выглядеть идентично, следующим образом:
|
Первое устройство полностью настроено и готово к работе.
Аналогичные настройки необходимо произвести на втором устройстве. Также возможна настройка второго устройства средствами ZTP.
Для активации процесса ZTP необходимо на втором устройстве запустить dhcp-client на bridge-интерфейсе, физический интерфейс которого будет включен в кластерный интерфейс первого устройства. В качестве примера такой конфигурации подойдет factory-конфигурация. (В factory-конфигурации для vwlc нет настроенного dhcp-client). В процессе ZTP устройство автоматически выставит себе: 1) Конфигурацию; 2) Юнит; 3) Версию ПО, на котором работает Active wlc; 4) Лицензию, если она предварительно загружена на Active wlc. |
Чтобы изменить юнит второго устройства, выполните следующие команды:
wlc-2# set unit id 2 Unit ID will be 2 after reboot wlc-2# reload system Do you really want to reload system now? (y/N): y |
На заводской конфигурации unit принимает значение по умолчанию (unit = 1). Смена юнита устройства вступает в силу после перезагрузки. |
При изменении номера юнита контролера не происходит автоматической конвертации конфигурации. |
В заводской конфигурации присутствуют настройки интерфейсов только для юнита по умолчанию (unit = 1). |
Убедитесь, что настройка юнита применилась успешно:
wlc-2# show unit id Unit ID is 2 Unit ID will be 2 after reboot |
Объединение устройств в кластер невозможно, если они относятся к одному и тому же юниту. |
После выполнения этих шагов кластер будет успешно запущен. Текущее состояние кластера можно узнать, выполнив команду:
wlc-1# show cluster status Unit Hostname Role MAC address State IP address ---- -------------------- ---------- ----------------- -------------- --------------- 1* wlc-1 Active e4:5a:d4:a0:be:35 Joined 198.51.100.254 2 wlc-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, то синхронизации не будет. Есть возможность отключения синхронизации командой sync config disable. Если между юнитами кластера не будет синхронизирована версия ПО, то команды commit, confirm не будут синхронизироваться на Standby устройство. |
После выполнения этих шагов кластер будет успешно запущен. Текущее состояние синхронизации подсистем кластера можно узнать, выполнив команду:
wlc-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.30.4 не поддержана синхронизация шифрованных паролей. |
Через минуту после включения кластера синхронизируется время, на Standby установится время Active-юнита. Синхронизация времени проверяется раз в минуту, в случае расхождения время синхронизируется. |
Для синхронизации файлов лицензий в кластере необходимо загрузить их все на Active-устройство командой copy в директорию system:cluster-unit-licences.
Все загруженные лицензии в данной директории передаются остальным участникам кластера.
wlc-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences |*************************| 100% (680B) Licence loaded successfully. |
На каждый wlc нужна отдельная лицензия (Wi-Fi, BRAS и т. д.). Для активации функций кластера отдельная лицензия не нужна. |
Установить лицензию в кластере можно одним из способов:
1. Загрузить индивидуально лицензию на каждое устройство, как в случае с обычным wlc вне кластера.
2. Загрузить лицензию для Active-юнита в system:licence (данная лицензия также автоматически загрузится и в system:cluster-unit-licences), лицензии для Standby загрузить в system:cluster-unit-licences на Active-юните, после чего либо выполнить команду sync cluster system force либо подключить Standby по ZTP.
wlc-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences |*************************| 100% (680B) Licence loaded successfully. wlc-1# wlc-1# wlc-1# wlc-1# show cluster-unit-licences Serial number Features --------------- ------------------------------------------------------------ NP0B003634 BRAS,IPS,WIFI NP0B009033 BRAS,IPS,WIFI wlc-1# sync cluster system force |
Команда sync cluster system force выполняет синхронизацию подсистем, включая в себя синхронизацию конфигурации running-config, candidate-config, версии ПО, лицензии. По окончанию синхронизации Stanby устройство кластера перезагрузится для применения новой версии прошивки, а также лицензии. При использовании команды sync cluster system force, даже если все подсистемы кластеры синхронизированы (команда show cluster sync status), Stanby устройство начнет синхронизацию подсистем и по окончанию перезагрузится. |
После успешной настройки кластера можно приступать к конфигурации сервисов.
Настройка резервирования функционала WLC включает в себя резервирования ТД, SoftGRE-туннелей и сертификатов между юнитами. Данная настройка реализует отказоустойчивую работу сети для клиентов, подключенных к ТД во время выхода из строя одного из юнита. В момент переключения мастерства VRRP ТД переподключаются ко второй ноде, для клиента это происходит бесшовно.
Для настройки синхронизации требуется сконфигурировать несколько обязательных сервисов, таких как:
Настройка резервирования остальных сервисов выходит за рамки настройки WLC. Ознакомится с настройкой других сервисов можно в других главах данной статьи.
На клиентских интерфейсах, где включен vrrp, необходимо включить:
Данная команда определяет интервал, по истечении которого будет происходить периодическая отправка Gratuituous ARP-сообщений, пока маршрутизатор находится в состоянии Master. Настройку нужно включать, если клиентский трафик туннелируется. |
Настройка будет выполнена на базе заводской конфигурации с преднастроенным функционалом кластера. Интерфейсы Gi 1/0/3 + Gi 2/0/3 связывают два юнита между собой для реализации функционала кластера, интерфейсы Gi 1/0/2 + Gi 2/0/2 смотрят в сторону точки доступа.

Схема реализации WLC
cluster
cluster-interface bridge 1
unit 1
mac-address e4:5a:d4:a0:be:35
exit
unit 2
mac-address a8:f9:4b:af:35:84
exit
enable
exit
hostname wlc-1
hostname wlc-1 unit 1
hostname wlc-2 unit 2
vlan 2449
force-up
exit
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
bridge 5
vlan 2449
security-zone trusted
ip address 192.168.1.3/24 unit 1
ip address 192.168.1.2/24 unit 2
vrrp id 2
vrrp ip 192.168.1.1/32
vrrp group 1
vrrp
no spanning-tree
enable
exit
interface gigabitethernet 1/0/2
description "Local"
mode switchport
switchport mode trunk
switchport trunk allowed vlan add 3,2449
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
description "Local"
mode switchport
switchport mode trunk
switchport trunk allowed vlan add 3,2449
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 |
Перейдите в режим конфигурации:
wlc-1# config |
Создайте object-group для открытия портов в настройках Firewall, через которые синхронизируются сертификаты:
wlc-1(config)# object-group service sync |
Укажите порт, который используется для синхронизации сертификатов:
wlc-1(config-object-group-service)# port-range 873 wlc-1(config-object-group-service)# exit |
Создайте object-group для открытия портов в настройках Firewall, через которые синхронизируются журналы WLC:
wlc-1(config)# object-group service journal_sync |
Укажите порт, который используется для синхронизации журналов WLC:
wlc-1(config-object-group-service)# port-range 5432 wlc-1(config-object-group-service)# exit |
Создайте object-group для открытия портов в настройках Firewall, через которые синхронизируются туннели SoftGRE:
wlc-1(config)# object-group service softgre_controller |
Укажите порт, который используется для синхронизации туннелей SoftGRE:
wlc-1(config-object-group-service)# port-range 1337 wlc-1(config-object-group-service)# exit |
Сконфигурируйте object-group для настройки failover-сервисов SYNC_SRC:
wlc-1(config)# object-group network SYNC_SRC |
Укажите IP-адреса для Первого и Второго юнитов кластера:
wlc-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1 wlc-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2 wlc-1(config-object-group-network)# exit |
Сконфигурируйте object-group для настройки failover-сервисов SYNC_SRC:
wlc-1(config)# object-group network SYNC_DST |
Укажите IP-адреса для Первого и Второго юнитов кластера:
wlc-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1 wlc-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2 wlc-1(config-object-group-network)# exit |
Перейдите в Bridge 3.
wlc-1(config)# bridge 3 |
Удалите IP-адрес, который стоит по умолчанию в заводской конфигурации, затем укажите IP-address для первого и второго юнитов кластера:
wlc-1(config-bridge)# no ip address all wlc-1(config-bridge)# ip address 192.168.2.3/24 unit 1 wlc-1(config-bridge)# ip address 192.168.2.2/24 unit 2 |
Укажите индентификатор VRRP:
wlc-1(config-bridge)# vrrp id 3 |
Укажите виртуальный VRRP-адрес:
wlc-1(config-bridge)# vrrp ip 192.168.2.1/24 |
Укажите группу VRRP:
wlc-1(config-bridge)# vrrp group 1 |
Включить периодическую отправку Gratuituous ARP-сообщений, когда контроллер находится в состоянии Master:
wlc-1(config-bridge)# vrrp timers garp refresh 60 |
Включите работу VRRP:
wlc-1(config-bridge)# vrrp |
Отключите работу spanning-tree:
wlc-1(config-bridge)# no spanning-tree |
Включите Bridge:
wlc-1(config-bridge)# enable wlc-1(config-bridge)# exit |
Перейдите в режим конфигурирования резервирования ip failover:
wlc-1(config)# ip failover |
В качестве локального адреса укажите object-group SYNC_SRC:
wlc-1(config-failover)# local-address object-group SYNC_SRC |
В качестве удаленного адреса укажите object-group SYNC_DST:
wlc-1(config-failover)# remote-address object-group SYNC_DST |
Укажите группу VRRP:
wlc-1(config-failover)# vrrp-group 1 wlc-1(config-failover)# exit |
Перейдите в блок конфигурации синхронизации сертификатов:
wlc-1(config)# crypto-sync |
Укажите режим работы:
wlc-1(config-crypto-sync)# remote-delete |
Включите работу синхронизации сертификатов:
wlc-1(config-crypto-sync)# enable wlc-1(config-crypto-sync)# exit |
Перейдите в блок настройки SoftGRE-туннелей:
wlc-1(config)# softgre-controller |
Включите работу синхронизации:
wlc-1(config-softgre-controller)# failover wlc-1(config-softgre-controller)# exit |
Перейдите в блок конфигурации WLC:
wlc-1(config)# wlc |
Включите работу синхронизации сервиса WLC:
wlc-1(config-wlc)# failover wlc-1(config-wlc)# exit |
Перейдите в конфигурацию security-zone, где добавьте разрешение на прохождение VRRP трафика:
wlc-1(config)# security zone-pair trusted self |
Создайте правило:
wlc-1(config-security-zone-pair)# rule 11 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу VRRP:
wlc-1(config-security-zone-pair-rule)# match protocol vrrp |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit |
Создайте правило:
wlc-1(config-security-zone-pair)# rule 12 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу TCP:
wlc-1(config-security-zone-pair-rule)# match protocol tcp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group sync |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Перейдите в конфигурацию security-zone и откройте порты для синхронизации сертификатов, SoftGRE-туннелей и журналов WLC:
wlc-1(config)# security zone-pair SYNC self |
Создайте новое правило:
wlc-1(config-security-zone-pair)# rule 4 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу TCP:
wlc-1(config-security-zone-pair-rule)# match protocol tcp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group softgre_controller |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Создайте новое правило:
wlc-1(config-security-zone-pair)# rule 10 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу TCP:
wlc-1(config-security-zone-pair-rule)# match protocol tcp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group journal_sync |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Перейдите в конфигурацию security-zone, где добавьте разрешение на прохождение VRRP-трафика в клиентской зоне:
wlc-1(config)# security zone-pair users self |
Создайте правило:
wlc-1(config-security-zone-pair)# rule 11 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу VRRP:
wlc-1(config-security-zone-pair-rule)# match protocol vrrp |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Для настройки правил зон безопасности создайте профиль для порта Firewall-failover:
wlc-1(config)# object-group service FAILOVER |
Укажите порт, который используется для синхронизации сессий Firewall:
wlc-1(config-object-group-service)# port-range 9999 wlc-1(config-object-group-service)# exit |
Перейдите в конфигурацию security zone-pair для синхронизации сервисов кластера:
wlc-1(config)# security zone-pair SYNC self |
Создайте новое правило:
wlc-1(config-security-zone-pair)# rule 5 |
Укажите действие правила:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу UDP:
wlc-1(config-security-zone-pair-rule)# match protocol udp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group FAILOVER |
Включите работу нового правила:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Перейдите к настройке Firewall-failover:
wlc-1(config)# ip firewall failover |
Укажите режим резервирования сессий unicast:
wlc-1(config-firewall-failover)# sync-type unicast |
Укажите номер UDP-порта службы резервирования сессий Firewall:
wlc-1(config-firewall-failover)# port 9999 |
Включите резервирование сессий Firewall:
wlc-1(config-firewall-failover)# enable wlc-1(config-firewall-failover)# exit |
Нужно удалить пулы, заданные в заводской конфигурации и задать новые, в которых будут исключены VRRP-адреса:
Перейдите в конфигурирование пула DHCP-сервера для ТД:
wlc-1(config)# ip dhcp-server pool ap-pool |
Удалите пул и создайте новый:
wlc-1(config-dhcp-server)# no address-range 192.168.1.2-192.168.1.254 wlc-1(config-dhcp-server)# address-range 192.168.1.4-192.168.1.254 wlc-1(config-dhcp-server)# exit |
Перейдите в конфигурирование пула DHCP-сервера для клиентов:
wlc-1(config)# ip dhcp-server pool users-pool |
Удалите пул и создайте новый:
wlc-1(config-dhcp-server)# no address-range 192.168.2.2-192.168.2.254 wlc-1(config-dhcp-server)# address-range 192.168.2.4-192.168.2.254 wlc-1(config-dhcp-server)# exit |
Перейдите к настройке синхронизации DHCP-сервера между юнитами:
wlc-1(config)# ip dhcp-server failover |
Укажите режим работы:
wlc-1(config-dhcp-server-failover)# mode active-standby |
Включите работу синхронизации:
wlc-1(config-dhcp-server-failover)# enable wlc-1(config-dhcp-server-failover)# exit |
Включите синхронизацию WEB-интерфейса:
wlc-1(config)# ip http failover |
Примените и подтвердите внесенные изменения:
wlc-1# commit wlc-1# confirm |
|
Статус синхронизации сервисов можно посмотреть командой:
wlc-1# show high-availability state
VRRP role: Master
AP Tunnels:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:12
DHCP option 82 table:
State: Disabled
Last state change: --
DHCP server:
VRF: --
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:28
crypto-sync:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:29
Firewall:
Firewall sessions and NAT translations:
Tracking VRRP Group 1
Tracking VRRP Group state: Master
State: Successful synchronization
Fault Reason: --
Last synchronization: 2025-02-05 16:38:30
WLC:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:29
WEB profiles:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:36 |
Статус синхронизации VRRP можно посмотреть командой:
wlc-1# show vrrp Virtual router Virtual IP Priority Preemption State Synchronization group ID -------------- --------------------------------- -------- ---------- ------ ------------------------- 1 198.51.100.1/32 100 Enabled Master 1 2 192.168.1.1/32 100 Enabled Master 1 3 192.168.2.1/32 100 Enabled Master 1 |
Настройка резервирования функционала WLC включает в себя резервирования ТД, SoftGRE-туннелей и сертификатов между юнитами. Данная настройка реализует отказоустойчивую работу сети для клиентов, подключенных к ТД во время выхода из строя одного из юнита. В момент переключения мастерства VRRP ТД переподключаются ко второй ноде, для клиента это происходит бесшовно.
Настройка схемы 1+2 и 1+3 производится по аналогии со схемой 1+1 и указанием необходимых параметров для дополнительных юнитов. |
Для настройки синхронизации требуется сконфигурировать несколько обязательных сервисов, таких как:
Настройка резервирования остальных сервисов выходит за рамки настройки WLC. Ознакомится с настройкой других сервисов можно в других главах данной статьи.
На клиентских интерфейсах, где включен vrrp, необходимо включить:
Данная команда определяет интервал, по истечении которого будет происходить периодическая отправка Gratuituous ARP-сообщений, пока маршрутизатор находится в состоянии Master. Настройку нужно включать, если клиентский трафик туннелируется. |
Настройка будет выполнена на базе заводской конфигурации с преднастроенным функционалом кластера. Интерфейсы Gi 1/0/3 + Gi 2/0/3 + Gi 3/0/3 связывают два юнита между собой для реализации функционала кластера, интерфейсы Gi 1/0/2 + Gi 2/0/2 + Gi 3/0/2 смотрят в сторону точки доступа.

Схема реализации WLC
cluster
cluster-interface bridge 1
unit 1
mac-address e4:5a:d4:a0:be:35
exit
unit 2
mac-address a8:f9:4b:af:35:84
exit
unit 3
mac-address 68:13:e2:7e:80:46
exit
enable
exit
hostname wlc-1 unit 1
hostname wlc-2 unit 2
hostname wlc-2 unit 3
vlan 2449
force-up
exit
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
ip address 198.51.100.252/24 unit 3
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp
enable
exit
bridge 5
vlan 2449
security-zone trusted
ip address 192.168.1.4/24 unit 1
ip address 192.168.1.3/24 unit 2
ip address 192.168.1.2/24 unit 3
vrrp id 2
vrrp ip 192.168.1.1/32
vrrp group 1
vrrp
no spanning-tree
enable
exit
interface gigabitethernet 1/0/2
description "Local"
mode switchport
switchport mode trunk
switchport trunk allowed vlan add 3,2449
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
description "Local"
mode switchport
switchport mode trunk
switchport trunk allowed vlan add 3,2449
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 3/0/2
description "Local"
mode switchport
switchport mode trunk
switchport trunk allowed vlan add 3,2449
exit
interface gigabitethernet 3/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 |
Перейдите в режим конфигурации:
wlc-1# config |
Создайте object-group для открытия портов в настройках Firewall, через которые синхронизируются сертификаты:
wlc-1(config)# object-group service sync |
Укажите порт, который используется для синхронизации сертификатов:
wlc-1(config-object-group-service)# port-range 873 wlc-1(config-object-group-service)# exit |
Создайте object-group для открытия портов в настройках Firewall, через которые синхронизируются журналы WLC:
wlc-1(config)# object-group service journal_sync |
Укажите порт, который используется для синхронизации журналов WLC:
wlc-1(config-object-group-service)# port-range 5432 wlc-1(config-object-group-service)# exit |
Создайте object-group для открытия портов в настройках Firewall, через которые синхронизируются туннели SoftGRE:
wlc-1(config)# object-group service softgre_controller |
Укажите порт, который используется для синхронизации туннелей SoftGRE:
wlc-1(config-object-group-service)# port-range 1337 wlc-1(config-object-group-service)# exit |
Сконфигурируйте object-group для настройки failover-сервисов SYNC_SRC:
wlc-1(config)# object-group network SYNC_SRC |
Укажите IP-адреса для Первого, Второго и Третьего юнитов кластера:
wlc-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1 wlc-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2 wlc-1(config-object-group-network)# ip address-range 198.51.100.252 unit 3 wlc-1(config-object-group-network)# exit |
Сконфигурируйте object-group для настройки failover-сервисов SYNC_DST:
wlc-1(config)# object-group network SYNC_DST |
Адреса для удаленных устройств необходимо указывать по следующей схеме: индекс текущего юнита указывается адресам удаленных устройств для синхронизации. Например: индекса юнита 2 необходимо указать адреса юнитов 1,3,4(при наличии), юниту 1 необходимо указать адреса юнитов 2,3 |
Укажите IP-адреса для удаленных устройств для Первого, Второго и Третьего юнитов кластера:
wlc-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1 wlc-1(config-object-group-network)# ip address-range 198.51.100.252 unit 1 wlc-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2 wlc-1(config-object-group-network)# ip address-range 198.51.100.252 unit 2 wlc-1(config-object-group-network)# ip address-range 198.51.100.253 unit 3 wlc-1(config-object-group-network)# ip address-range 198.51.100.254 unit 3 wlc-1(config-object-group-network)# exit |
Перейдите в Bridge 3.
wlc-1(config)# bridge 3 |
Удалите IP-адрес, который стоит по умолчанию в заводской конфигурации, затем укажите IP-address для первого и второго юнитов кластера:
wlc-1(config-bridge)# no ip address all wlc-1(config-bridge)# ip address 192.168.2.4/24 unit 1 wlc-1(config-bridge)# ip address 192.168.2.3/24 unit 2 wlc-1(config-bridge)# ip address 192.168.2.2/24 unit 3 |
Укажите индентификатор VRRP:
wlc-1(config-bridge)# vrrp id 3 |
Укажите виртуальный VRRP-адрес:
wlc-1(config-bridge)# vrrp ip 192.168.2.1/24 |
Укажите группу VRRP:
wlc-1(config-bridge)# vrrp group 1 |
Включить периодическую отправку Gratuituous ARP-сообщений, когда контроллер находится в состоянии Master:
wlc-1(config-bridge)# vrrp timers garp refresh 60 |
Включите работу VRRP:
wlc-1(config-bridge)# vrrp |
Отключите работу spanning-tree:
wlc-1(config-bridge)# no spanning-tree |
Включите Bridge:
wlc-1(config-bridge)# enable wlc-1(config-bridge)# exit |
Перейдите в режим конфигурирования резервирования ip failover:
wlc-1(config)# ip failover |
В качестве локального адреса укажите object-group SYNC_SRC:
wlc-1(config-failover)# local-address object-group SYNC_SRC |
В качестве удаленного адреса укажите object-group SYNC_DST:
wlc-1(config-failover)# remote-address object-group SYNC_DST |
Укажите группу VRRP:
wlc-1(config-failover)# vrrp-group 1 wlc-1(config-failover)# exit |
Перейдите в блок конфигурации синхронизации сертификатов:
wlc-1(config)# crypto-sync |
Укажите режим работы:
wlc-1(config-crypto-sync)# remote-delete |
Включите работу синхронизации сертификатов:
wlc-1(config-crypto-sync)# enable wlc-1(config-crypto-sync)# exit |
Перейдите в блок настройки SoftGRE-туннелей:
wlc-1(config)# softgre-controller |
Включите работу синхронизации:
wlc-1(config-softgre-controller)# failover wlc-1(config-softgre-controller)# exit |
Перейдите в блок конфигурации WLC:
wlc-1(config)# wlc |
Включите работу синхронизации сервиса WLC:
wlc-1(config-wlc)# failover wlc-1(config-wlc)# exit |
Перейдите в конфигурацию security-zone, где добавьте разрешение на прохождение VRRP трафика:
wlc-1(config)# security zone-pair trusted self |
Создайте правило:
wlc-1(config-security-zone-pair)# rule 11 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу VRRP:
wlc-1(config-security-zone-pair-rule)# match protocol vrrp |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit |
Создайте правило:
wlc-1(config-security-zone-pair)# rule 12 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу TCP:
wlc-1(config-security-zone-pair-rule)# match protocol tcp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group sync |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Перейдите в конфигурацию security-zone и откройте порты для синхронизации сертификатов, SoftGRE-туннелей и журналов WLC:
wlc-1(config)# security zone-pair SYNC self |
Создайте новое правило:
wlc-1(config-security-zone-pair)# rule 4 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу TCP:
wlc-1(config-security-zone-pair-rule)# match protocol tcp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group softgre_controller |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Создайте новое правило:
wlc-1(config-security-zone-pair)# rule 10 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу TCP:
wlc-1(config-security-zone-pair-rule)# match protocol tcp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group journal_sync |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Перейдите в конфигурацию security-zone, где добавьте разрешение на прохождение VRRP-трафика в клиентской зоне:
wlc-1(config)# security zone-pair users self |
Создайте правило:
wlc-1(config-security-zone-pair)# rule 11 |
Укажите действие правила – разрешение:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу VRRP:
wlc-1(config-security-zone-pair-rule)# match protocol vrrp |
Включите правило:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Для настройки правил зон безопасности создайте профиль для порта Firewall-failover:
wlc-1(config)# object-group service FAILOVER |
Укажите порт, который используется для синхронизации сессий Firewall:
wlc-1(config-object-group-service)# port-range 9999 wlc-1(config-object-group-service)# exit |
Перейдите в конфигурацию security zone-pair для синхронизации сервисов кластера:
wlc-1(config)# security zone-pair SYNC self |
Создайте новое правило:
wlc-1(config-security-zone-pair)# rule 5 |
Укажите действие правила:
wlc-1(config-security-zone-pair-rule)# action permit |
Укажите совпадение по протоколу UDP:
wlc-1(config-security-zone-pair-rule)# match protocol udp |
Укажите совпадение по порту назначения, в качестве которого выступает object-group:
wlc-1(config-security-zone-pair-rule)# match destination-port object-group FAILOVER |
Включите работу нового правила:
wlc-1(config-security-zone-pair-rule)# enable wlc-1(config-security-zone-pair-rule)# exit wlc-1(config-security-zone-pair)# exit |
Перейдите к настройке Firewall-failover:
wlc-1(config)# ip firewall failover |
Укажите режим резервирования сессий unicast:
wlc-1(config-firewall-failover)# sync-type unicast |
Укажите номер UDP-порта службы резервирования сессий Firewall:
wlc-1(config-firewall-failover)# port 9999 |
Включите резервирование сессий Firewall:
wlc-1(config-firewall-failover)# enable wlc-1(config-firewall-failover)# exit |
Нужно удалить пулы, заданные в заводской конфигурации и задать новые, в которых будут исключены VRRP-адреса:
Перейдите в конфигурирование пула DHCP-сервера для ТД:
wlc-1(config)# ip dhcp-server pool ap-pool |
Удалите пул и создайте новый:
wlc-1(config-dhcp-server)# no address-range 192.168.1.2-192.168.1.254 wlc-1(config-dhcp-server)# address-range 192.168.1.4-192.168.1.254 wlc-1(config-dhcp-server)# exit |
Перейдите в конфигурирование пула DHCP-сервера для клиентов:
wlc-1(config)# ip dhcp-server pool users-pool |
Удалите пул и создайте новый:
wlc-1(config-dhcp-server)# no address-range 192.168.2.2-192.168.2.254 wlc-1(config-dhcp-server)# address-range 192.168.2.4-192.168.2.254 wlc-1(config-dhcp-server)# exit |
Перейдите к настройке синхронизации DHCP-сервера между юнитами:
wlc-1(config)# ip dhcp-server failover |
Укажите режим работы:
wlc-1(config-dhcp-server-failover)# mode active-standby |
Включите работу синхронизации:
wlc-1(config-dhcp-server-failover)# enable wlc-1(config-dhcp-server-failover)# exit |
Включите синхронизацию WEB-интерфейса:
wlc-1(config)# ip http failover |
Примените и подтвердите внесенные изменения:
wlc-1# commit wlc-1# confirm |
|
Статус синхронизации сервисов можно посмотреть командой:
wlc-1# show high-availability state
VRRP role: Master
AP Tunnels:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:12
DHCP option 82 table:
State: Disabled
Last state change: --
DHCP server:
VRF: --
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:28
crypto-sync:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:29
Firewall:
Firewall sessions and NAT translations:
Tracking VRRP Group 1
Tracking VRRP Group state: Master
State: Successful synchronization
Fault Reason: --
Last synchronization: 2025-02-05 16:38:30
WLC:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:29
WEB profiles:
State: Successful synchronization
Last synchronization: 2025-02-05 16:38:36 |
Статус синхронизации VRRP можно посмотреть командой:
wlc-1# show vrrp Unit 1* 'wlc-1' ------------------ wlc-1# show vrrp Virtual router Virtual IP Priority Preemption State Synchronization group ID -------------- --------------------------------- -------- ---------- ------ ------------------------- 1 198.51.100.1/32 100 Enabled Master 1 2 192.168.1.1/32 100 Enabled Master 1 3 192.168.2.1/32 100 Enabled Master 1 Unit 2 'wlc-2' ------------------ wlc-1# show vrrp Virtual router Virtual IP Priority Preemption State Synchronization group ID -------------- --------------------------------- -------- ---------- ------ ------------------------- 1 198.51.100.1/32 100 Enabled Backup 1 2 192.168.1.1/32 100 Enabled Backup 1 3 192.168.2.1/32 100 Enabled Backup 1 Unit 3 'wlc-3' ------------------ wlc-1# show vrrp Virtual router Virtual IP Priority Preemption State Synchronization group ID -------------- --------------------------------- -------- ---------- ------ ------------------------- 1 198.51.100.1/32 100 Enabled Backup 1 2 192.168.1.1/32 100 Enabled Backup 1 3 192.168.2.1/32 100 Enabled Backup 1 |
После успешной настройки кластера можно приступать к конфигурации различных сервисов.
System prompt позволяет отобразить оперативное состояние кластера непосредственно в строке приглашения CLI устройства, что упрощает получение актуальной информации.
Варианты настройки system prompt, включая доступные параметры и синтаксис команды, приведены в разделе Настройка общесистемных параметров.
Настроить system prompt в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 |
Перейдем в режим конфигурирования устройства:
ESR-1# configure ESR-1(config)# |
Добавим в system prompt информацию о статусе полной синхронизации кластера:
ESR-1(config)# system prompt '(Cluster: %s%)' |
Добавим в system prompt информацию о номере юнита администрируемого устройства:
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u%)' |
Добавим в system prompt информацию о роли устройства в кластере:
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r%)' |
Добавим в system prompt информацию о статусе кластерного VRRP:
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r% | VRRP id 1: %v1%)' |
Добавим в system prompt информацию о hostname устройства:
ESR-1(config)# system prompt '(Cluster: %s% | Unit: %u% | State: %r% | VRRP id 1: %v1%)|%h%' |
Применим конфигурацию и обновим пользовательскую сессию CLI:
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 на втором устройстве:
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 корректно работал, необходимо обновить пользовательскую сессию. |
Технология MultiWAN позволяет организовать отказоустойчивое соединение с резервированием линков от нескольких провайдеров.
Алгоритм настройки MultiWAN описан в разделе Алгоритм настройки MultiWAN.
Настроить MultiWAN в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

Схема реализации MultiWAN
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 3
ip address 128.66.0.2/30
group 1
enable
exit
exit
interface gigabitethernet 1/0/2.4
security-zone WAN
ip address 128.66.0.10/30
vrrp 4
ip address 128.66.0.14/30
group 1
enable
exit
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 192.0.2.254/24
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 3
ip address 128.66.0.2/30
group 1
enable
exit
exit
interface gigabitethernet 2/0/2.4
security-zone WAN
ip address 128.66.0.9/30
vrrp 4
ip address 128.66.0.14/30
group 1
enable
exit
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 192.0.2.253/24
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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-адресов для проверки целостности соединения:
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:
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:
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 |
Укажем статический маршрут и создадим правило для балансировки трафика:
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 можно с помощью команды:
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 можно проверить с помощью команды:
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 — это набор протоколов, обеспечивающих защиту данных, передаваемых по протоколу IP. Данный набор протоколов позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и шифрование IP-пакетов, а также включает в себя протоколы для защищённого обмена ключами в сети Интернет.
Алгоритм настройки Route-based IPsec VPN описан в разделе Алгоритм настройки Route-based IPsec VPN.
IKE:
IP sec:

Схема реализации 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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 192.0.2.254/24
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 192.0.2.253/24
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 |
Создадим профиль ISAKMP-портов, необходимых для работы протокола IPsec, включающий разрешение UDP-пакетов на порту 500 (а также на порту 4500 для поддержки NAT-T при необходимости):
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-туннель:
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-адрес соответствующего интерфейса:
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 |
Добавим правило, разрешающее прохождение трафика между зонами LAN и IPSEC:
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-соединения:
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, по которым могут согласовываться узлы и ключ аутентификации:
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:
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, обеспечивая надежную защиту передаваемых данных:
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-туннеля, используемых для согласования параметров безопасности между узлами:
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-туннеля, режим обмена ключами и способ установления соединения:
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 туннель:
ESR-1(config)# ip route 128.66.1.0/24 128.66.0.5 |
Аналогичную настройку требуется выполнить на встречном устройстве. |
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 |
Посмотреть состояние IPsec-туннеля можно с помощью команды:
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.
IKE:
IP sec:

Схема реализации 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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 192.0.2.254/24
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 192.0.2.253/24
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 |
Создадим профиль ISAKMP-портов, необходимых для работы протокола IPsec, включающий разрешение UDP-пакетов на порту 500 (а также на порту 4500 для поддержки NAT-T при необходимости):
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-туннель:
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 |
Добавим правило, разрешающее прохождение трафика между зонами LAN и WAN для клиентских подсетей:
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 network LAN ESR-1(config-security-zone-pair-rule)# match destination-address object-group network 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 network IPSEC ESR-1(config-security-zone-pair-rule)# match destination-address object-group network 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-соединения:
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, по которым могут согласовываться узлы и ключ аутентификации:
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, определив применимую IKE-политику, локальные и удалённые параметры, а также режим перенаправления трафика в туннель. В качестве локального шлюза назначим VIP IP-адрес, настроенный на интерфейсах в сторону зоны WAN, с локальной подсетью 192.0.2.0/24, а удалённым – IP-адрес 203.0.113.1 с удаленной подсетью 128.66.1.0/24. Режим перенаправления трафика установлен как policy-based:
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, обеспечивая надежную защиту передаваемых данных:
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-туннеля, используемых для согласования параметров безопасности между узлами:
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-туннеля, режим обмена ключами и способ установления соединения:
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 |
Добавим статический маршрут до встречной клиентской подсети через IPsec-туннель:
ESR-1(config)# ip route 128.66.1.0/24 203.0.113.1 |
Аналогичную настройку требуется выполнить на устройстве, находящемся на другой стороне туннеля |
Посмотреть состояние IPsec-туннеля можно с помощью команды:
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 failover необходим для резервирования сессий firewall.
Алгоритм настройки firewall/NAT failover описан в разделе Алгоритм настройки firewall failover.
Настроить firewall failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

Схема реализации Firewall failover
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/30
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 128.66.0.1/30
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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-сервисов:
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-сервисов:
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:
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:
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:
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 можно посмотреть информацию о сервисе с помощью команды:
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 |
Также возможно узнать текущее состояние firewall failover сервиса, выполнив команду:
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-сессии, которые синхронизируются между устройствами, можно командами:
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 |
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 |
Посмотреть счетчики для кэшей firewall failover можно командой:
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 в кластере маршрутизаторов ESR-1 и ESR-2, каждый в своем VRF, со следующими параметрами:

Схема реализации 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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 4
ip address 192.0.2.1/24
priority 120
group 2
enable
exit
exit
interface gigabitethernet 1/0/2.3
ip vrf forwarding PAIR_TWO
security-zone LAN_TWO
ip address 203.0.113.22/30
vrrp 5
ip address 128.66.0.1/24
priority 110
group 3
enable
exit
exit
interface gigabitethernet 1/0/3.2
ip vrf forwarding PAIR_ONE
security-zone WAN_ONE
ip address 203.0.113.10/30
vrrp 2
ip address 203.0.113.2/30
group 2
enable
exit
exit
interface gigabitethernet 1/0/3.3
ip vrf forwarding PAIR_TWO
security-zone WAN_TWO
ip address 203.0.113.14/30
vrrp 3
ip address 203.0.113.6/30
group 3
enable
exit
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 4
ip address 192.0.2.1/24
priority 110
group 2
enable
exit
exit
interface gigabitethernet 2/0/2.3
ip vrf forwarding PAIR_TWO
security-zone LAN_TWO
ip address 203.0.113.21/30
vrrp 5
ip address 128.66.0.1/24
priority 120
group 3
enable
exit
exit
interface gigabitethernet 2/0/3.2
ip vrf forwarding PAIR_ONE
security-zone WAN_ONE
ip address 203.0.113.9/30
vrrp 2
ip address 203.0.113.2/30
group 2
enable
exit
exit
interface gigabitethernet 2/0/3.3
ip vrf forwarding PAIR_TWO
security-zone WAN_TWO
ip address 203.0.113.13/30
vrrp 3
ip address 203.0.113.6/30
group 3
enable
exit
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-сервисов:
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, на основе которых будет определяться, какой из маршрутизаторов будет синхронизировать сессии:
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, а также включить его:
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 в соответствующих зонах:
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 |
Просмотреть VRRP-статусы в разных VRF можно используя команду show vrrp. Убедимся что в одном VRF устройство находится в статусе Master, а в другом VRF – в статусе Backup:
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 |
Посмотреть информацию о сервисе firewall failover в каждом VRF можно с помощью следующей команды:
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 |
Также возможно узнать текущее состояние firewall failover сервисов во всех VRF, выполнив команду:
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:
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 |
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 |
Посмотреть вывод активных синхронизируемых сессий, используемых для работы firewal failover, на устройстве можно с помощью команды show ip firewall session failover external/internal. Убедимся что для одного из VRF сессия находится в internal cash, а для второго VRF сессия находится в external cash:
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 |
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.
Алгоритм настройки DHCP failover описан в разделе Алгоритм настройки DHCP failover.
Настроить DHCP failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

Схема реализации DHCP failover
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
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 |
Сконфигурируем object-group для настройки failover-сервисов:
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-сервисов:
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:
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. |
Создадим разрешающие правило для зоны безопасности SYNC, разрешив прохождение необходимого трафика для работы DHCP failover:
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-сервера можно с помощью команды:
ESR-1# show ip dhcp server failover
VRF: --
Mode: Active-Standby
Role: Master
State: Synchronized
Last synchronization: 2025-02-12 07:56:40 |
Посмотреть состояние резервирования сессий DHCP можно с помощью команды:
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 |
Выданные адреса DHCP можно просмотреть с помощью команды:
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, в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

Схема реализации DHCP 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
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 4
ip address 192.0.2.1/24
priority 120
group 2
enable
exit
exit
interface gigabitethernet 1/0/2.3
ip vrf forwarding LAN_TWO
security-zone LAN_TWO
ip address 128.66.0.254/24
vrrp 5
ip address 128.66.0.1/24
priority 110
group 3
enable
exit
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 4
ip address 192.0.2.1/24
priority 110
group 2
enable
exit
exit
interface gigabitethernet 2/0/2.3
ip vrf forwarding LAN_TWO
security-zone LAN_TWO
ip address 128.66.0.253/24
vrrp 5
ip address 128.66.0.1/24
priority 120
group 3
enable
exit
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 |
Сконфигурируем object-group для настройки DHCP failover-сервисов:
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, на основе которых будет определяться, кто из маршрутизаторов будет выдавать адреса:
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, а также включить его:
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 |
Разрешим в настройках firewall работу dhcp-failover в соответствующих зонах:
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:
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: LAN_TWO
Mode: Active-Standby
Role: Backup
State: Synchronized
Last synchronization: 2025-02-18 09:34:46 |
Также статусы работы DHCP-серверов можно посмотреть с помощью команды:
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: Disabled
Firewall sessions and NAT translations:
State: Disabled |
Выданные адреса DHCP можно просмотреть с помощью команды:
ESR-1# show ip dhcp binding vrf LAN_ONE IP address MAC / Client ID Binding type Lease expires at ---------------- ------------------------------------------------------------- ------------ -------------------- 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 (Simple Network Management Protocol) реализует модель «менеджер–агент» для централизованного управления сетевыми устройствами: агенты, установленные на устройствах, собирают данные, структурированные в MIB, а менеджер запрашивает информацию, мониторит состояние сети, контролирует производительность и вносит изменения в конфигурацию оборудования.
Подробный алгоритм настройки SNMP описан в разделе Настройка SNMP-сервера и отправки SNMP TRAP.

Схема реализации SNMP
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
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 зону безопасности:
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-портов:
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)# exit ESR-1(config-security-zone-pair)# exit |
Активируем SNMP-сервер, настроив параметр snmp-community для обеспечения аутентификации и корректного доступа к данным мониторинга:
ESR-1(config)# snmp-server ESR-1(config)# snmp-server community cluster rw |
Благодаря данной настройке обеспечивается возможность централизованного мониторинга и управления юнитами кластера как отдельными устройствами, так и устройством, выполняющим роль VRRP Master:
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 (SNAT) представляет собой механизм, осуществляющий замену исходного IP-адреса в заголовках IP-пакетов, проходящих через сетевой шлюз. При передаче трафика из внутренней (локальной) сети в внешнюю (публичную) сеть исходный адрес заменяется на один из назначенных публичных IP-адресов шлюза. В ряде случаев осуществляется дополнительное преобразование исходного порта (NATP – Network Address and Port Translation), что обеспечивает корректное направление обратного трафика. При поступлении пакетов из публичной сети в локальную происходит обратная процедура – восстановление оригинальных значений IP-адреса и порта для обеспечения корректной маршрутизации внутри внутренней сети.
Алгоритм Source NAT описан в разделе Алгоритм настройки Source NAT.
публичный IP-адрес – VIP-адрес на интерфейсе.

Схема реализации 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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/30
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 128.66.0.1/30
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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-адресов, которые будут иметь возможность выхода в Интернет:
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-интерфейсу:
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-адрес интерфейса:
ESR-1(config-snat)# ruleset SNAT 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 network INTERNET_USERS ESR-1(config-snat-rule)# action source-nat pool TRANSLATE_ADDRESS ESR-1(config-snat-rule)# enable ESR-1(config-snat-rule)# exit ESR-1(config-snat-ruleset)# exit ESR-1(config-snat)# exit |
Просмотр таблицы NAT трансляций осуществляется посредством следующей команды:
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 (DNAT) выполняет преобразование IP-адреса назначения в заголовках пакетов, проходящих через сетевой шлюз. DNAT применяется для перенаправления трафика, адресованного на IP-адрес в публичном сегменте сети, на «реальный» IP-адрес сервера, расположенного в локальной сети за шлюзом.
Алгоритм настройки Destination NAT описан в разделе Алгоритм настройки DNAT.

Схема реализации 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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/30
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 3
ip address 203.0.113.2/30
group 1
enable
exit
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 128.66.0.1/30
vrrp 2
ip address 192.0.2.1/24
group 1
enable
exit
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 |
Создадим профиль адреса сервера из WAN сети, с которого будем принимать:
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 |
Создадим профиль сервиса, доступ к которому будем предоставлять:
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 из внешней сети^
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):
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 |
Добавим правило, которое проверяет применение правил исключительно к пакетам, поступающим из зоны WAN. Набор правил включает требования соответствия по адресу назначения (match destination-address) и протоколу. Дополнительно в наборе определено действие (action destination-nat), которое применяется к данным, удовлетворяющим указанным критериям:
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-трансляций осуществляется посредством следующей команды:
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-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

Схема реализации eBGP с общим IP-адресом
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
exit
interface gigabitethernet 1/0/3
security-zone WAN
ip address 128.66.0.2/30
vrrp 3
ip address 203.0.113.1/30
group 1
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
exit
interface gigabitethernet 2/0/3
security-zone WAN
ip address 128.66.0.1/30
vrrp 3
ip address 203.0.113.1/30
group 1
enable
exit
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: Established
Type: Static neighbor
Neighbor address: 203.0.113.1
Neighbor AS: 64501
Neighbor ID: 203.0.113.1
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 203.0.113.2
Weight: 0
Hold 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 |
Таблицу маршрутов протокола 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-устройством. |
Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:

Схема реализации eBGP с каждым участником кластера по индивидуальным IP-адресам
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 1
ip address 198.51.100.1/24
group 1
authentication key ascii-text encrypted 88B11079B51D
authentication algorithm md5
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
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 2
ip address 192.0.2.1/24
group 1
enable
exit
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 |
Настроем 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 |
Создадим 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 |
Таблицу маршрутов протокола 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 (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 между офисами компании, используя 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:
IPsec:

Схема реализации DMVPN Single Hub Dual Cloud в кластере
cluster
cluster-interface bridge 1
unit 1
mac-address a2:00:00:10:a0:00
exit
unit 2
mac-address a2:00:00:10:b0:00
exit
enable
exit
hostname HUB-1 unit 1
hostname HUB-2 unit 2
security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
ip access-list extended LOCAL_1
rule 1
action permit
match source-address 198.51.100.2 255.255.255.255
enable
exit
exit
ip access-list 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.1 1
exit
rule 2
match ip access-group LOCAL_2
action set ip next-hop verify-availability 198.51.100.5 1
exit
exit
route-map DMVPN_BGP_OUT_CLOUD_TWO
rule 1
match ip address 0.0.0.0/0
action 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 SYNC
ip address 192.0.2.5/29 unit 1
ip address 192.0.2.6/29 unit 2
vrrp 1
ip address 192.0.2.1/29
group 1
enable
exit
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2.100
security-zone WAN
ip address 192.0.2.9/29
vrrp 2
ip address 198.51.100.2/30
group 1
enable
exit
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.17/29
vrrp 3
ip address 198.51.100.6/30
group 1
enable
exit
wan load-balance nexthop 198.51.100.5
wan load-balance enable
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/24
vrrp 4
ip address 128.66.0.1/24
group 1
enable
exit
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 2
ip address 198.51.100.2/30
group 1
enable
exit
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 3
ip address 198.51.100.6/30
group 1
enable
exit
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 4
ip address 128.66.0.1/24
group 1
enable
exit
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 |
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 |
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 |
Создадим туннели 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)# ip address 203.0.113.1/25 HUB-1(config-gre)# ip tcp adjust-mss 1360 HUB-1(config-gre)# ip nhrp redirect HUB-1(config-gre)# ip nhrp multicast dynamic HUB-1(config-gre)# ip nhrp enable HUB-1(config-gre)# enable HUB-1(config-gre)# exit HUB-1(config)# tunnel gre 2 HUB-1(config-gre)# key 2000 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_TWO HUB-1(config-gre)# local address 198.51.100.6 HUB-1(config-gre)# ip address 203.0.113.129/25 HUB-1(config-gre)# ip tcp adjust-mss 1360 HUB-1(config-gre)# ip nhrp redirect HUB-1(config-gre)# ip nhrp multicast dynamic HUB-1(config-gre)# ip nhrp enable HUB-1(config-gre)# enable HUB-1(config-gre)# exit |
Произведём настройку протокола динамической маршрутизации для Hub. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей.
Так как в примере используется два CLOUD, необходимо сделать один из них более приоритетным, используя route-map.
Для ускорения переключения в случае выхода из строя Active устройства в кластере включим также bfd для BGP, а также уменьшим таймер error-wait.
HUB-1(config)# route-map DMVPN_BGP_OUT_CLOUD_ONE HUB-1(config-route-map)# rule 1 HUB-1(config-route-map-rule)# match ip address 0.0.0.0/0 HUB-1(config-route-map-rule)# action set metric bgp 1000 HUB-1(config-route-map-rule)# exit HUB-1(config-route-map)# exit HUB-1(config)# route-map DMVPN_BGP_OUT_CLOUD_TWO HUB-1(config-route-map)# rule 1 HUB-1(config-route-map-rule)# match ip address 0.0.0.0/0 HUB-1(config-route-map-rule)# action set metric bgp 2000 HUB-1(config-route-map-rule)# exit HUB-1(config-route-map)# exit HUB-1(config)# router bgp 64500 HUB-1(config-bgp)# default-information-originate HUB-1(config-bgp)# timers error-wait 5 10 HUB-1(config-bgp)# peer-group DMVPN_CLOUD_ONE HUB-1(config-bgp-group)# remote-as 64501 HUB-1(config-bgp-group)# update-source 203.0.113.1 HUB-1(config-bgp-group)# fall-over bfd HUB-1(config-bgp-group)# address-family ipv4 unicast HUB-1(config-bgp-group-af)# route-map DMVPN_BGP_OUT_CLOUD_ONE out HUB-1(config-bgp-group-af)# next-hop-self HUB-1(config-bgp-group-af)# enable HUB-1(config-bgp-group-af)# exit HUB-1(config-bgp-group)# exit HUB-1(config-bgp)# peer-group DMVPN_CLOUD_TWO HUB-1(config-bgp-group)# remote-as 64501 HUB-1(config-bgp-group)# update-source 203.0.113.129 HUB-1(config-bgp-group)# fall-over bfd HUB-1(config-bgp-group)# address-family ipv4 unicast HUB-1(config-bgp-group-af)# route-map DMVPN_BGP_OUT_CLOUD_TWO out HUB-1(config-bgp-group-af)# next-hop-self HUB-1(config-bgp-group-af)# enable HUB-1(config-bgp-group-af)# exit HUB-1(config-bgp-group)# exit HUB-1(config-bgp)# listen-range 203.0.113.0/25 HUB-1(config-bgp-listen)# peer-group DMVPN_CLOUD_ONE HUB-1(config-bgp-listen)# enable HUB-1(config-bgp-listen)# exit HUB-1(config-bgp)# listen-range 203.0.113.128/25 HUB-1(config-bgp-listen)# peer-group DMVPN_CLOUD_TWO HUB-1(config-bgp-listen)# enable HUB-1(config-bgp-listen)# exit HUB-1(config-bgp)# address-family ipv4 unicast HUB-1(config-bgp-af)# redistribute static HUB-1(config-bgp-af)# exit HUB-1(config-bgp)# enable HUB-1(config-bgp)# exit |
Произведём настройку IPsec для Hub, для начала настроим ike proposal, ike policy и ike gateway. В ike gateway дополнительно настроим dpd, для ускорения перестроения туннелей в случае если выйдет из строя Active-устройство:
HUB-1(config)# security ike proposal ike_proposal HUB-1(config-ike-proposal)# authentication algorithm sha2-256 HUB-1(config-ike-proposal)# encryption algorithm aes256 HUB-1(config-ike-proposal)# dh-group 19 HUB-1(config-ike-proposal)# exit HUB-1(config)# HUB-1(config)# security ike policy ike_policy HUB-1(config-ike-policy)# 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 |
Затем настроим 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 |
Настроим правила зон безопасности 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 |
Скорректируем правила зоны безопасности 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 |
Создадим туннели 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 |
Произведём настройку протокола динамической маршрутизации для 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 |
Произведём настройку 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 |
Затем настроим 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 |
Настроим правила зон безопасности 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 |
Скорректируем правила зоны безопасности 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 |
Создадим туннели 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)# ip address 203.0.113.3/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.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 |
Произведём настройку протокола динамической маршрутизации для SPOKE-1. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей. Анонсируем LAN подсети в сторону HUB используя network в address-family.
Для ускорения переключения в случае выхода из строя Active-устройства в кластере включим также bfd для BGP, а также уменьшим таймер error-wait.
SPOKE-2(config)# route-map DMVPN_BGP_OUT SPOKE-2(config-route-map)# rule 1 SPOKE-2(config-route-map-rule)# exit SPOKE-2(config-route-map)# exit SPOKE-2(config)# router bgp 64501 SPOKE-2(config-bgp)# 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.129 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.131 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)# address-family ipv4 unicast SPOKE-2(config-bgp-af)# network 128.66.2.0/24 SPOKE-2(config-bgp-af)# exit SPOKE-2(config-bgp)# enable SPOKE-2(config-bgp)# exit |
Произведём настройку 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 |
Затем настроим 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 |
Настроим правила зон безопасности 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 |
Скорректируем правила зоны безопасности 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 Local host Remote host Initiator spi Responder spi State ------------------------------- --------------- --------------- ------------------ ------------------ ----------- ipsec_dynamic_cloud_one 198.51.100.2 198.51.100.14 0x22d11891e06edf92 0x40469d552e93e47c Established ipsec_dynamic_cloud_two 198.51.100.6 198.51.100.14 0x61f7a205eeef5d06 0x141239e7309d351c Established ipsec_dynamic_cloud_one 198.51.100.2 198.51.100.10 0x3dbf984518584d5e 0x08563e2683776071 Established ipsec_dynamic_cloud_two 198.51.100.6 198.51.100.10 0x500adbe8428c7d35 0x9c83c7a2255cb0ed Established |
SPOKE-1# show security ipsec vpn status Name Local host Remote host Initiator spi Responder spi State ------------------------------- --------------- --------------- ------------------ ------------------ ----------- ipsec_static_cloud_one 198.51.100.10 198.51.100.2 0x3dbf984518584d5e 0x08563e2683776071 Established ipsec_static_cloud_two 198.51.100.10 198.51.100.6 0x500adbe8428c7d35 0x9c83c7a2255cb0ed Established |
SPOKE-2# show security ipsec vpn status Name Local host Remote host Initiator spi Responder spi State ------------------------------- --------------- --------------- ------------------ ------------------ ----------- ipsec_static_cloud_one 198.51.100.14 198.51.100.2 0x22d11891e06edf92 0x40469d552e93e47c Established ipsec_static_cloud_two 198.51.100.14 198.51.100.6 0x61f7a205eeef5d06 0x141239e7309d351c Established |
Состояние NHRP-записей можно посмотреть командой:
HUB-1# 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.2 198.51.100.10 gre 1 00:00:51 00,00:04:41 dynamic LCP
203.0.113.3 198.51.100.14 gre 1 00:00:48 00,00:04:44 dynamic LCP
203.0.113.130 198.51.100.10 gre 2 00:00:51 00,00:04:41 dynamic LCP
203.0.113.131 198.51.100.14 gre 2 00:00:48 00,00:04:44 dynamic LCP |
SPOKE-1# 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: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 |