Кластер организуется из двух одинаковых устройств. Работает в режиме Active-Standby, т. е. на Active запущены все модули ESBC, и он занимается обработкой сигнальных сообщений SIP и медиаданных (RTP-потоков). Устройство Standby не обрабатывает сигнальные сообщений SIP и медиаданные.
Резервирование соединения осуществляется протоколом VRRP.
Конфигурация, файлы ПО, зарегистрированные абоненты синхронизируются между устройствами в реальном времени. В случае обрыва соединения или отключения Active устройства, все существующие вызовы будут разрушены.
| Примечание |
|---|
Время до начала обработки вызовов при failover зависит от вызывной нагрузки на устройство и составляет от 2 до 12 секунд. |
Более подробное описание настройки кластера приведено в документации ESR. Ниже представлен пример настройки ESBC-3200 для обработки вызовов.
| Примечание |
|---|
Значения параметров для ESBC-3200 идентичны значениям для ESR-3200. |
Пример настройки HA кластера ESBC
Схема:
Image Added
| Примечание |
|---|
Настроить cluster можно двумя способами: 1) Настроить каждый unit отдельно; 2) Настроить один unit, а затем второй включить в cluster по ZTP. Ниже приведён пример ручной настройки, настройка с ZTP описана в документации ESR. |
Первичная настройка кластера
После включения устройства необходимо применить конфигурацию по умолчанию на устройствах, предназначенных для объединения в кластер:
| Блок кода |
|---|
|
ESBC-3200# copy system:default-config system:candidate-config
Entire candidate configuration will be reset to default, all settings will be lost upon commit.
Do you really want to continue? (y/N): y
|******************************************| 100% (59B) Default configuration loaded successfully.
|
Для более удобного и ясного восприятия рекомендуется переименовать устройства. В кластерной версии прошивки предусмотрена возможность указать имя устройства с привязкой к юниту. Устройство будет использовать только тот hostname, юнитом которого он является:
| Блок кода |
|---|
|
ESBC-3200# configure
ESBC-3200(config)# hostname ESBC-1 unit 1
ESBC-3200(config)# hostname ESBC-2 unit 2
|
Чтобы изменить юнит устройства, выполните следующие команды:
| Блок кода |
|---|
|
ESBC-1# set unit id 1
Unit ID will be 1 after reboot
ESBC-1# reload system
Do you really want to reload system now? (y/N): y
|
| Блок кода |
|---|
|
ESBC-2# set unit id 2
Unit ID will be 2 after reboot
ESBC-2# reload system
Do you really want to reload system now? (y/N): y
|
Убедитесь в том, что настройки юнитов применились успешно:
| Блок кода |
|---|
|
ESBC-1# show unit id
Unit ID is 1
Unit ID will be 1 after reboot |
| Блок кода |
|---|
|
ESBC-2# show unit id
Unit ID is 2
Unit ID will be 2 after reboot
|
В текущей схеме служебная информация по управлению кластером будет передаваться через выделенный линк синхронизации между интерфейсами twe1/0/3 и twe2/0/3.
| Блок кода |
|---|
|
ESBC-1(config)# interface twentyfivegigabitethernet 1/0/3
ESBC-1(config-if-twe)# description "Network: SYNC"
ESBC-1(config-if-twe)# mode switchport
ESBC-1(config-if-twe)# exit
ESBC-1(config)# interface twentyfivegigabitethernet 2/0/3
ESBC-1(config-if-twe)# description "Network: SYNC"
ESBC-1(config-if-twe)# mode switchport
ESBC-1(config-if-twe)# exit
|
Настройка внешних сетевых интерфейсов
На обоих устройствах необходимо настроить IP-адрес и VRRP на внешних интерфейсах. В текущей схеме это интерфейсы twe1/0/7 и twe2/0/7.
| Блок кода |
|---|
|
ESBC-1(config)# interface twentyfivegigabitethernet 1/0/7
ESBC-1(config-if-twe)# ip address 192.168.83.80/22
ESBC-1(config-if-twe)# vrrp
ESBC-1(config-if-twe)# vrrp id 10
ESBC-1(config-if-twe)# vrrp ip 192.168.83.82/22
ESBC-1(config-if-twe)# vrrp group 2
ESBC-1(config-if-twe)# exit
ESBC-1(config)# interface twentyfivegigabitethernet 2/0/7
ESBC-1(config-if-twe)# ip address 192.168.83.79/22
ESBC-1(config-if-twe)# vrrp
ESBC-1(config-if-twe)# vrrp id 10
ESBC-1(config-if-twe)# vrrp ip 192.168.83.82/22
ESBC-1(config-if-twe)# vrrp group 2
ESBC-1(config-if-twe)# exit
|
Настройка кластерного интерфейса
Для полноценной работы кластера требуется сконфигурировать кластерный интерфейс, который будет использоваться для передачи control plane трафика, необходимого для полноценного функционирования кластера. В качестве кластерного интерфейса назначен bridge. В качестве механизма, отвечающего за определение ролей устройств, участвующих в резервировании, назначен протокол VRRP. Настройки cluster-интерфейса должны быть идентичны для всех участников кластера. Так как кластер выполняет синхронизацию состояний между устройствами, необходимо создать зону безопасности SYNC (synchronization) и разрешить прохождение трафика протокола vrrp:
| Блок кода |
|---|
|
ESBC-1(config)# security zone SYNC
ESBC-1(config-zone)# exit
ESBC-1(config)#
ESBC-1(config)# security zone-pair SYNC self
ESBC-1(config-zone-pair)# rule 1
ESBC-1(config-zone-pair-rule)# action permit
ESBC-1(config-zone-pair-rule)# match protocol vrrp
ESBC-1(config-zone-pair-rule)# enable
ESBC-1(config-zone-pair-rule)# exit
ESBC-1(config-zone-pair)# exit
|
Далее перейдите к настройкам кластерного интерфейса:
| Блок кода |
|---|
|
ESBC-1# configure
ESBC-1(config)# bridge 1
ESBC-1(config-bridge)# vlan 1
ESBC-1(config-bridge)# security-zone SYNC
ESBC-1(config-bridge)# ip address 192.18.1.10/24 unit 1
ESBC-1(config-bridge)# ip address 192.18.1.20/24 unit 2
ESBC-1(config-bridge)# vrrp id 1
ESBC-1(config-bridge)# vrrp group 2
ESBC-1(config-bridge)# vrrp ip 192.18.1.100/24
ESBC-1(config-bridge)# vrrp
ESBC-1(config-bridge)# enable |
Настройка кластера
Для запуска кластера нужно только указать заранее настроенный кластерный интерфейс и юниты, которые будут выполнять роли Active и Standby.
Перейдите в настройку кластера:
| Блок кода |
|---|
|
ESBC-1# configure
ESBC-1(config)# cluster
ESBC-1(config-cluster)# unit 1
ESBC-1(config-cluster-unit)# mac-address 68:13:e2:e1:28:90
ESBC-1(config-cluster-unit)# exit
ESBC-1(config-cluster)# unit 2
ESBC-1(config-cluster-unit)# mac-address 68:13:e2:e1:25:30
ESBC-1(config-cluster-unit)# exit |
| Примечание |
|---|
В качестве mac-address указывается системный MAC-адрес устройства, его можно узнать с помощью команды show system | include MAC. |
Укажите кластерный интерфейс, созданный ранее, и активируйте кластер:
| Блок кода |
|---|
|
ESBC-1(config-cluster)# cluster-interface bridge 1
ESBC-1(config-cluster)# enable |
После выполнения этих шагов кластер будет успешно запущен. Текущее состояние кластера можно узнать, выполнив команду:
| Блок кода |
|---|
|
ESBC-1# show cluster status
Unit Hostname |
Настройка кластера
Кластер используется для резервирования устройств в сети. Резервирование обеспечивается за счет синхронизации работы различных сервисов между устройствами, а также за счет организации единой конфигурации и единой точки управления устройствами.
Алгоритм настройки
...
Шаг
...
Описание
...
Команда
...
Ключи
...
Создать VLAN, который будет использоваться в кластерном интерфейсе. Можно также использовать vlan 1, созданный по умолчанию.
...
esr(config)# vlan <VID>
...
<VID> – идентификатор VLAN, задаётся в диапазоне [2..4094].
...
Перейти в режим конфигурирования физических интерфейсов, которые будут использованы для работы кластерного интерфейса. Необходимо настроить интерфейсы всех юнитов, которые будут участвовать в кластере.
...
esr(config)# interface gigabitethernet
esr(config)# interface tengigabitethernet
esr(config)# interface fourtygigabitethernet
esr(config)# interface twentyfivegigabitethernet
...
Только для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/
100/200/3100/3200/3200L/3300.
Данный режим является режимом по умолчанию и не отображается в конфигурации.
...
Только для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/
100/200/3100/3200/3200L/3300.
...
Только для ESR-1000/1200/1500/
1511 (rev.B)/1700.
Данный режим является режимом по умолчанию и не отображается в конфигурации.
...
Только для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/
100/200/3100/3200/3200L/3300.
<VID> – идентификационный номер VLAN, задаётся в диапазоне [1…4094].
...
esr(config-if-gi)# switchport trunk allowed vlan <ACT> <VID>
...
Для ESR-10/12V(F)/15/15R/15VF/20/21/30/31/100/200/
3100/3200/3200L/3300.
<ACT> – назначаемое действие:
add – включение интерфейса во VLAN;
remove – исключение интерфейса из VLAN.
<VID> – идентификационный номер VLAN, задаётся в диапазоне [2…4094]. Можно задать диапазоном через «-» или перечислением через «,».
...
esr(config-if-gi)# switchport general allowed vlan <ACT> <VID> [<TYPE>]
...
Для ESR-1000/1200/1500/
1511 (rev.B)/1700.
<ACT> – назначаемое действие:
add – включение интерфейса во VLAN;
remove – исключение интерфейса из VLAN.
<VID> – идентификационный номер VLAN, задаётся в диапазоне [2…4094]. Можно задать диапазоном через «-» или перечислением через «,»;
<TYPE> – тип пакета:
tagged – интерфейс будет передавать и принимать пакеты в указанных VLAN тегированными;
untagged – интерфейс будет передавать пакеты в указанных VLAN нетегированными.
VLAN, в который будут направлены входящие нетегированные пакеты, настраивается командой switchport general pvid.
...
<VID> – идентификационный номер VLAN, задаётся в диапазоне [1…4094].
...
<ADDR/LEN> – IP-адрес и длина маски подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].
<ID> – номер юнита, принимает значения [1..2].
Дополнительные функции IPv4-адресации см. в разделе Настройка IP-адресации.
...
15
...
Перейти в режим конфигурирования кластера.
...
esr(config)# cluster
...
<BRIDGE-ID> – идентификационный номер моста, задается в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора.
...
<ADDR> – МАС-адрес сетевого моста, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF].
...
| Примечание |
|---|
Данные между юнитами кластера через канал синхронизации передаются в открытом виде. Также все вводимые команды конфигурирования, содержащие чувствительную информацию не в encrypted-виде, будут переданы в том же виде, в котором введены, после чего будут преобразованы в encrypted-вид. |
Пример настройки кластера
В настоящем руководстве приведено описание настройки кластера для администратора сервисного маршрутизатора ESR (далее — маршрутизатор).
Image Removed
Схема реализации HA Cluster
Первичная настройка кластера
Для начала работы необходимо полностью настроить одно устройство из кластера.
После включения устройства примените конфигурацию по умолчанию на устройствах, предназначенных для объединения в кластер:
| Блок кода |
|---|
|
esr# copy system:default-config system:candidate-config
Entire candidate configuration will be reset to default, all settings will be lost upon commit.
Do you really want to continue? (y/N): y
|******************************************| 100% (59B) Default configuration loaded successfully. |
Для более удобного и ясного восприятия рекомендуется переименовать устройства. В кластерной версии прошивки предусмотрена возможность указать имя устройства с привязкой к юниту. Устройство будет использовать только тот hostname, юнитом которого он является:
| Блок кода |
|---|
|
esr# configure
esr(config)# hostname ESR-1 unit 1
esr(config)# hostname ESR-2 unit 2 |
| Примечание |
|---|
Более приоритетным является hostname, указанный с привязкой к unit. |
Чтобы изменить юнит устройства, выполните следующие команды:
| Блок кода |
|---|
|
ESR-1# set unit id 1
Unit ID will be 1 after reboot
ESR-1# reload system
Do you really want to reload system now? (y/N): y |
| Примечание |
|---|
Смена юнита устройства вступает в силу после перезагрузки. |
| Примечание |
|---|
При изменении номера юнита маршрутизатора не происходит автоматической конвертации конфигурации. В случае если до маршрутизатора настроен удаленный доступ и у него меняется номер юнита, необходимо до перезагрузки настроить ip-интерфейсы для нового юнита аналогично текущим. |
| Примечание |
|---|
В заводской конфигурации присутствуют настройки интерфейсов только для юнита по умолчанию (unit = 1). При копировании и применении заводской конфигурации настройка номера юнита не изменяется на значение по умолчанию. Установить номер юнита по умолчанию возможно следующими способами: 1. используя консольное подключение; 2. зажав функциональную кнопку "F" на 15 секунд. |
Убедитесь в том, что настройка юнита применилась успешно:
| Блок кода |
|---|
|
ESR-1# show unit id
Unit ID is 1
Unit ID will be 1 after reboot |
| Примечание |
|---|
Объединение устройств в кластер невозможно, если они относятся к одному и тому же юниту. Исключение — процесс ZTP, так как в процессе ZTP нужный unit у устройства выставится автоматически. |
| Примечание |
|---|
Для объединения в кластер vESR предварительно необходимо сделать разные системные MAC-адреса на устройствах путем смены серийного номера. |
Настройка кластерного интерфейса
Для полноценной работы кластера требуется сконфигурировать кластерный интерфейс, который будет использоваться для передачи control plane трафика. В качестве кластерного интерфейса назначен bridge. В качестве механизма, отвечающего за определение ролей устройств, участвующих в резервировании, назначен протокол VRRP. Настройки cluster-интерфейса должны быть идентичны для всех участников кластера.
Так как кластер выполняет синхронизацию состояний между устройствами, необходимо создать зону безопасности SYNC (synchronization) и разрешить прохождение трафика протокола VRRP:
| Блок кода |
|---|
|
ESR-1(config)# security zone SYNC
ESR-1(config-security-zone)# exit
ESR-1(config)# security zone-pair SYNC self
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# match protocol vrrp
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit |
Далее перейдите к настройкам кластерного интерфейса:
| Блок кода |
|---|
|
ESR-1(config)# bridge 1
|
| Примечание |
|---|
В версии ПО 1.28 в качестве cluster-интерфейса поддержан только bridge. |
Укажите, к какому VLAN относится bridge, и зону безопасности:
| Блок кода |
|---|
|
ESR-1(config-bridge)# vlan 1
ESR-1(config-bridge)# security-zone SYNC |
Далее укажите IP-адреса:
| Блок кода |
|---|
|
ESR-1(config-bridge)# ip address 198.51.100.254/24 unit 1
ESR-1(config-bridge)# ip address 198.51.100.253/24 unit 2 |
| Примечание |
|---|
Для работы кластерного интерфейса поддерживается только IPv4-адресация. На cluster-интерфейсе необходима настройка адресов с привязкой к unit. |
Настройте идентификатор VRRP, принадлежность VRRP-маршрутизатора к группе, IP-адрес VRRP:
| Блок кода |
|---|
|
ESR-1(config-bridge)# vrrp id 1
ESR-1(config-bridge)# vrrp group 1
ESR-1(config-bridge)# vrrp ip 198.51.100.1/24 |
| Примечание |
|---|
Адрес VRRP должен быть из той же подсети, что и адреса на интерфейсе. |
Включите протокол VRRP и bridge:
| Блок кода |
|---|
|
ESR-1(config-bridge)# vrrp
ESR-1(config-bridge)# enable
ESR-1(config-bridge)# exit |
Настройте физические порты для выделенного линка синхронизации маршрутизаторов ESR-1 и ESR-2:
| Блок кода |
|---|
|
ESR-1(config)# interface gigabitethernet 1/0/1
ESR-1(config-if-gi)# description "Network: SYNC"
ESR-1(config-if-gi)# mode switchport
ESR-1(config-if-gi)# exit
ESR-1(config)# interface gigabitethernet 2/0/1
ESR-1(config-if-gi)# description "Network: SYNC"
ESR-1(config-if-gi)# mode switchport
ESR-1(config-if-gi)# exit |
Для проверки работы протокола VRRP выполните следующую команду:
| Блок кода |
|---|
|
esr-30# show vrrp
Virtual router Virtual IP Priority Preemption State Inherit Sync group ID
-------------- --------------------------------- -------- ---------- ------ ------- -----------
1 198.51.100.1/24 100 Disabled Backup -- 1 |
Можно увидеть, что устройство приняло состояние Backup. Через 10 секунд устройство примет состояние Master.
Настройка кластера
Для запуска кластера необходимо указать заранее настроенный кластерный интерфейс и юниты, которые будут выполнять роли Active и Standby.
Перейдите в режим настройки кластера:
| Блок кода |
|---|
|
ESR-1(config)# cluster |
Настройте юниты:
| Блок кода |
|---|
|
ESR-1(config-cluster)# unit 1
ESR-1(config-cluster-unit)# mac-address E4:5A:D4:A0:BE:35
ESR-1(config-cluster-unit)# exit
ESR-1(config-cluster)# unit 2
ESR-1(config-cluster-unit)# mac-address A8:F9:4B:AF:35:84
ESR-1(config-cluster-unit)# exit |
| Примечание |
|---|
В качестве mac-address указывается системный MAC-адрес устройства, его можно узнать с помощью команды show system | include MAC. |
Укажите кластерный интерфейс, созданный ранее, и активируйте кластер:
| Блок кода |
|---|
|
ESR-1(config-cluster)# cluster-interface bridge 1
ESR-1(config-cluster)# enable
ESR-1(config-cluster)# exit |
Первое устройство полностью настроено и готово к работе.
Аналогичные настройки необходимо произвести на втором устройстве, предварительно сменив у него unit на требуемый. Также возможна настройка второго устройства средствами ZTP.
| Примечание |
|---|
Для активации процесса ZTP необходимо на втором устройстве запустить dhcp-client на bridge-интерфейсе, логический или физический интерфейс которого будет включен в кластерный интерфейс первого устройства. В качестве примера такой конфигурации подойдет factory-конфигурация (в factory-конфигурации для vESR нет настроенного dhcp-client). В процессе ZTP устройство автоматически выставит себе: 1) Конфигурацию; 2) Юнит; 3) Версию ПО, на котором работает Active ESR; 4) Лицензию, если она предварительно загружена на Active ESR. |
После выполнения этих шагов кластер будет успешно запущен. Текущее состояние кластера можно узнать, выполнив команду:
| Блок кода |
|---|
|
ESR-1# show cluster status
Unit Hostname Role MAC address State IP address
---- -------------------- ---------- ----------------- -------------- ---------------
1* ESR-1 Active e4:5a:d4:a0:be:35 Joined 198.51.100.254
2 ESR-2 Standby a8:f9:4b:af:35:84 Joined 198.51.100.253 |
| Примечание |
|---|
После включения кластера и установления юнитов в состояние Joined дальнейшее конфигурирование устройств осуществляется настройкой Active-устройства. Синхронизируются команды конфигурации, а также команды: commit, confirm, rollback, restore, save, copy <source> system:candidate-config. В случае, если конфигурирование осуществляется на Standby, то внесенные изменения в конфигурацию засинхронизированы не будут. Все внесённые изменения в конфигурацию Standby будут потеряны при выполнении commit на Active-устройстве. Есть возможность отключения синхронизации командой sync config disable. |
Текущее состояние синхронизации подсистем кластера можно узнать, выполнив команду:
| Блок кода |
|---|
|
ESR-1# show cluster sync status
System part Synced
---------------------- ------
candidate-config Yes
running-config Yes
SW version Yes
licence Yes
licence (After reboot) Yes
date Yes |
| Примечание |
|---|
В текущей версии ПО не поддержано синхронное шифрование паролей, вводимых не в encryption-виде. Такие пароли будут зашифрованы каждым из участников кластера самостоятельно. |
| Примечание |
|---|
Через минуту после включения кластера синхронизируется время, на Standby установится время Active-юнита. Синхронизация времени проверяется раз в минуту, в случае расхождения время синхронизируется. |
Синхронизация файлов лицензий
Для синхронизации файлов лицензий в кластере необходимо загрузить их все на Active-устройство командой copy в директорию system:cluster-unit-licences.
Все загруженные лицензии в данной директории передаются остальным участникам кластера.
| Блок кода |
|---|
|
ESR-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences
|*************************| 100% (680B) Licence loaded successfully. |
| Примечание |
|---|
На каждый ESR нужна отдельная лицензия (Wi-Fi, BRAS и т. д.). Для активации функций кластера не нужна отдельная лицензия. |
Установка файлов лицензий
Установить лицензию в кластере можно двумя способами:
1. Загрузить индивидуально лицензию на каждое устройство, как в случае с обычным ESR вне кластера.
2. Загрузить лицензию для Active-юнита в system:licence (данная лицензия также автоматически загрузится и в system:cluster-unit-licences), активировать её перезагрузкой, лицензии для Standby загрузить в system:cluster-unit-licences на Active-юните, после чего либо выполнить команду sync cluster system force, либо подключить Standby по ZTP.
| Блок кода |
|---|
|
ESR-1# copy tftp://<IP_address>:/licence system:cluster-unit-licences
|*************************| 100% (680B) Licence loaded successfully.
ESR-1#
ESR-1#
ESR-1#
ESR-1# show cluster-unit-licences
Serial number Features
--------------- ------------------------------------------------------------
NP0B003634 BRAS,IPS,WIFI
NP0B009033 BRAS,IPS,WIFI
ESR-1# sync cluster system force |
Подключение сервисов
После успешной настройки кластера можно приступать к конфигурации различных сервисов.
Настройка System prompt
System prompt позволяет отобразить оперативное состояние кластера непосредственно в строке приглашения CLI устройства, что упрощает получение актуальной информации.
Варианты настройки system prompt, включая доступные параметры и синтаксис команды, приведены в разделе Настройка общесистемных параметров.
Пример настройки
Задача:
Настроить system prompt в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- необходимо получать информацию о статусе полной синхронизации кластера;
- необходимо получать информацию о номере юнита администрируемого устройства;
- необходимо получать информацию о роли устройства в кластере;
- необходимо получать информацию о статусе кластерного VRRP;
- необходимо получать информацию о hostname устройства.
Исходная конфигурация кластера:
| Блок кода |
|---|
|
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit |
Решение:
Перейдем в режим конфигурирования устройства:
| Блок кода |
|---|
|
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.
Пример настройки
Задача:
Настроить MultiWAN в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- обеспечить резервирование линков от нескольких провайдеров;
- обеспечить балансировку трафика в соотношении 70/30.
Image Removed
Схема реализации 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 id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2.3
security-zone WAN
ip address 128.66.0.6/30
vrrp id 3
vrrp ip 128.66.0.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/2.4
security-zone WAN
ip address 128.66.0.10/30
vrrp id 4
vrrp ip 128.66.0.14/30
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2.3
security-zone WAN
ip address 128.66.0.5/30
vrrp id 3
vrrp ip 128.66.0.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/2.4
security-zone WAN
ip address 128.66.0.9/30
vrrp id 4
vrrp ip 128.66.0.14/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
Создадим список IP-адресов для проверки целостности соединения:
| Блок кода |
|---|
|
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 VPN
IPsec — это набор протоколов, обеспечивающих защиту данных, передаваемых по протоколу IP. Данный набор протоколов позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и шифрование IP-пакетов, а также включает в себя протоколы для защищённого обмена ключами в сети Интернет.
Пример настройки Route-based IPsec VPN
Алгоритм настройки Route-based IPsec VPN описан в разделе Алгоритм настройки Route-based IPsec VPN.
Задача:
- Настроить IPsec туннель. Туннель необходимо поднять между адресами: кластер – 203.0.113.2 (VIP адрес), ответная сторона – 203.0.113.6;
IKE:
- группа Диффи-Хэллмана: 2;
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5.
IP sec:
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5.
Image Removed
Схема реализации Route-based IPsec VPN
Исходная конфигурация кластера:
| Блок кода |
|---|
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone WAN
exit
security zone LAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone WAN
ip address 128.66.0.2/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone WAN
ip address 128.66.0.1/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
Решение:
Создадим профиль 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 |
| Примечание |
|---|
Аналогичную настройку требуется выполнить на встречном устройстве. |
Просмотреть состояние VTI туннеля можно с помощью команды:
| Блок кода |
|---|
|
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 описан в разделе Алгоритм настройки Policy-based IPsec VPN.
Задача:
- Настроить IPsec туннель. Туннель необходимо поднять между адресами: кластер – 203.0.113.2 (VIP адрес), ответная сторона – 203.0.113.6. Туннель необходим для организации доступа между клиентскими подсетями 192.0.2.0/24 и 128.66.1.0/24;
IKE:
- группа Диффи-Хэллмана: 2;
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5.
IP sec:
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5.
Image Removed
Схема реализации Policy-based IPsec VPN
Исходная конфигурация кластера:
| Блок кода |
|---|
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone WAN
exit
security zone LAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone WAN
ip address 128.66.0.2/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone WAN
ip address 128.66.0.1/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
Решение:
Создадим профиль 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 LAN
ESR-1(config-security-zone-pair-rule)# match destination-address object-group IPSEC
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit
ESR-1(config)# security zone-pair WAN LAN
ESR-1(config-security-zone-pair)# rule 1
ESR-1(config-security-zone-pair-rule)# match source-address object-group IPSEC
ESR-1(config-security-zone-pair-rule)# match destination-address object-group LAN
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit |
Создадим профиль протокола IKE, в котором зададим следующие параметры безопасности: группу Диффи-Хэллмана 2, алгоритм шифрования AES 128 bit и алгоритм аутентификации MD5. Данные настройки обеспечивают надежную защиту IKE-соединения:
| Блок кода |
|---|
|
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/NAT failover
Firewall failover необходим для резервирования сессий firewall.
Алгоритм настройки firewall/NAT failover описан в разделе Алгоритм настройки firewall failover.
Пример настройки firewall failover
Задача:
Настроить firewall failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- режим резервирования сессий unicast;
- номер UDP-порта службы резервирования 9999;
- клиентская подсеть: 192.0.2.0/24.
Image Removed
Схема реализации 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 id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone WAN
ip address 128.66.0.6/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/30
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone WAN
ip address 128.66.0.5/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 128.66.0.1/30
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair LAN WAN
rule 1
action permit
enable
exit
exit
ip route 0.0.0.0/0 203.0.113.1 |
Решение:
Сконфигурируем object-group для настройки failover-сервисов:
| Блок кода |
|---|
|
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, каждый – в своём VRF
Задача:
Настроить несколько экземпляров firewall failover в кластере маршрутизаторов ESR-1 и ESR-2, каждый в своем VRF, со следующими параметрами:
- режим резервирования сессий unicast;
- номер UDP-порта службы резервирования 9999;
- настроить приоритеты у разных firewall failover так, чтобы один из юнитов кластера был Master в одном VRF, а в другом был Backup;
- клиентская подсеть через первый VRF: 192.0.2.0/24;
- клиентская подсеть через второй VRF: 128.66.0.0/24.
Image Removed
Схема реализации firewall failover в нескольких VRF
Исходная конфигурация кластера:
| Блок кода |
|---|
cluster
cluster-interface bridge 1
unit 1
mac-address a2:00:00:10:c0:00
exit
unit 2
mac-address a2:00:00:10:d0:00
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
ip vrf PAIR_ONE
exit
ip vrf PAIR_TWO
exit
security zone SYNC
exit
security zone LAN_ONE
ip vrf forwarding PAIR_ONE
exit
security zone LAN_TWO
ip vrf forwarding PAIR_TWO
exit
security zone WAN_ONE
ip vrf forwarding PAIR_ONE
exit
security zone WAN_TWO
ip vrf forwarding PAIR_TWO
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 8CB5107EA7005AFF
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
exit
interface gigabitethernet 1/0/2.2
ip vrf forwarding PAIR_ONE
security-zone LAN_ONE
ip address 203.0.113.18/30
vrrp id 4
vrrp ip 192.0.2.1/24
vrrp priority 120
vrrp group 2
vrrp
exit
interface gigabitethernet 1/0/2.3
ip vrf forwarding PAIR_TWO
security-zone LAN_TWO
ip address 203.0.113.22/30
vrrp id 5
vrrp ip 128.66.0.1/24
vrrp priority 110
vrrp group 3
vrrp
exit
interface gigabitethernet 1/0/3.2
ip vrf forwarding PAIR_ONE
security-zone WAN_ONE
ip address 203.0.113.10/30
vrrp id 2
vrrp ip 203.0.113.2/30
vrrp group 2
vrrp
exit
interface gigabitethernet 1/0/3.3
ip vrf forwarding PAIR_TWO
security-zone WAN_TWO
ip address 203.0.113.14/30
vrrp id 3
vrrp ip 203.0.113.6/30
vrrp group 3
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
exit
interface gigabitethernet 2/0/2.2
ip vrf forwarding PAIR_ONE
security-zone LAN_ONE
ip address 203.0.113.17/30
vrrp id 4
vrrp ip 192.0.2.1/24
vrrp priority 110
vrrp group 2
vrrp
exit
interface gigabitethernet 2/0/2.3
ip vrf forwarding PAIR_TWO
security-zone LAN_TWO
ip address 203.0.113.21/30
vrrp id 5
vrrp ip 128.66.0.1/24
vrrp priority 120
vrrp group 3
vrrp
exit
interface gigabitethernet 2/0/3.2
ip vrf forwarding PAIR_ONE
security-zone WAN_ONE
ip address 203.0.113.9/30
vrrp id 2
vrrp ip 203.0.113.2/30
vrrp group 2
vrrp
exit
interface gigabitethernet 2/0/3.3
ip vrf forwarding PAIR_TWO
security-zone WAN_TWO
ip address 203.0.113.13/30
vrrp id 3
vrrp ip 203.0.113.6/30
vrrp group 3
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN_ONE self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair LAN_TWO self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair WAN_ONE self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair WAN_TWO self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair LAN_ONE WAN_ONE
rule 1
action permit
enable
exit
exit
security zone-pair LAN_TWO WAN_TWO
rule 1
action permit
enable
exit
exit |
Решение:
Сконфигурируем object-group для настройки failover-сервисов:
| Блок кода |
|---|
|
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-failover позволяет обеспечить высокую доступность службы DHCP.
Алгоритм настройки DHCP failover описан в разделе Алгоритм настройки DHCP failover.
Пример настройки
Задача:
Настроить DHCP failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- в качестве default-router используется IP-адрес VRRP;
- установить в качестве необходимого режима работы резервирования active-standby;
- клиентская подсеть: 192.0.2.0/24.
Image Removed
Схема реализации 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 id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol udp
match source-port object-group DHCP_CLIENT
match destination-port object-group DHCP_SERVER
enable
exit
exit
ip dhcp-server
ip dhcp-server pool TRUSTED
network 192.0.2.0/24
address-range 192.0.2.10-192.0.2.100
default-router 192.0.2.1
exit |
Решение:
Сконфигурируем 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
Задача:
Настроить два экземпляра DHCP failover, каждый в своём VRF, в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- в качестве default-router используется IP-адрес VRRP;
- установить в качестве необходимого режима работы резервирования active-standby;
- настроить приоритеты у разных DHCP failover так, чтобы один из юнитов кластера был Master в одном VRF, а в другом был Backup;
- клиентская подсеть в первом VRF: 192.0.2.0/24;
- клиентская подсеть в втором VRF: 128.66.0.0/24.
Image Removed
Схема реализации 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 id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 8CB5107EA7005AFF
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
exit
interface gigabitethernet 1/0/2.2
ip vrf forwarding LAN_ONE
security-zone LAN_ONE
ip address 192.0.2.254/24
vrrp id 4
vrrp ip 192.0.2.1/24
vrrp priority 120
vrrp group 2
vrrp
exit
interface gigabitethernet 1/0/2.3
ip vrf forwarding LAN_TWO
security-zone LAN_TWO
ip address 128.66.0.254/24
vrrp id 5
vrrp ip 128.66.0.1/24
vrrp priority 110
vrrp group 3
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
exit
interface gigabitethernet 2/0/2.2
ip vrf forwarding LAN_ONE
security-zone LAN_ONE
ip address 192.0.2.253/24
vrrp id 4
vrrp ip 192.0.2.1/24
vrrp priority 110
vrrp group 2
vrrp
exit
interface gigabitethernet 2/0/2.3
ip vrf forwarding LAN_TWO
security-zone LAN_TWO
ip address 128.66.0.253/24
vrrp id 5
vrrp ip 128.66.0.1/24
vrrp priority 120
vrrp group 3
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN_ONE self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol udp
match source-port object-group DHCP_CLIENT
match destination-port object-group DHCP_SERVER
enable
exit
exit
security zone-pair LAN_TWO self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol udp
match source-port object-group DHCP_CLIENT
match destination-port object-group DHCP_SERVER
enable
exit
exit
ip dhcp-server vrf LAN_ONE
ip dhcp-server pool LAN_ONE vrf LAN_ONE
network 192.0.2.0/24
address-range 192.0.2.10-192.0.2.253
default-router 192.0.2.1
exit
ip dhcp-server vrf LAN_TWO
ip dhcp-server pool LAN_TWO vrf LAN_TWO
network 128.66.0.0/24
address-range 128.66.0.10-128.66.0.253
default-router 128.66.0.1
exit |
Решение:
Сконфигурируем 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
Протокол SNMP (Simple Network Management Protocol) реализует модель «менеджер–агент» для централизованного управления сетевыми устройствами: агенты, установленные на устройствах, собирают данные, структурированные в MIB, а менеджер запрашивает информацию, мониторит состояние сети, контролирует производительность и вносит изменения в конфигурацию оборудования.
Подробный алгоритм настройки SNMP описан в разделе Настройка SNMP-сервера и отправки SNMP TRAP.
Пример настройки
Image Removed
Схема реализации SNMP
Задача:
- обеспечить возможность мониторинга сети через management-интерфейс каждого устройства в кластере:
- обеспечить возможность мониторинга состояния сети и внесения изменений в конфигурацию устройства, выполняющего роль VRRP Master;
- устройство управления (MGMT) доступно по IP-адресу 192.0.2.10.
Исходная конфигурация кластера:
| Блок кода |
|---|
cluster
cluster-interface bridge 1
unit 1
mac-address a2:00:00:10:c0:00
exit
unit 2
mac-address a2:00:00:10:d0:00
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone MGMT
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone MGMT
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone MGMT
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair MGMT self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
Решение:
Создадим профиль SNMP-портов, предоставляющий доступ в MGMT зону безопасности:
| Блок кода |
|---|
|
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
Source NAT (SNAT) представляет собой механизм, осуществляющий замену исходного IP-адреса в заголовках IP-пакетов, проходящих через сетевой шлюз. При передаче трафика из внутренней (локальной) сети в внешнюю (публичную) сеть исходный адрес заменяется на один из назначенных публичных IP-адресов шлюза. В ряде случаев осуществляется дополнительное преобразование исходного порта (NATP – Network Address and Port Translation), что обеспечивает корректное направление обратного трафика. При поступлении пакетов из публичной сети в локальную происходит обратная процедура – восстановление оригинальных значений IP-адреса и порта для обеспечения корректной маршрутизации внутри внутренней сети.
Алгоритм Source NAT описан в разделе Алгоритм настройки Source NAT.
Пример настройки
Задача:
- предоставить доступ в Интернет хостам, находящимся в локальной сети;
- клиентская подсеть: 192.0.2.0/24;
публичный IP-адрес – VIP-адрес на интерфейсе.
Image Removed
Схема реализации Source NAT
Исходная конфигурация кластера:
| Блок кода |
|---|
cluster
cluster-interface bridge 1
unit 1
mac-address a2:00:00:10:c0:00
exit
unit 2
mac-address a2:00:00:10:d0:00
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone WAN
ip address 128.66.0.6/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/30
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone WAN
ip address 128.66.0.5/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 128.66.0.1/30
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair LAN WAN
rule 1
action permit
enable
exit
exit |
Решение:
Создадим список IP-адресов, которые будут иметь возможность выхода в Интернет:
| Блок кода |
|---|
|
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 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
Функция Destination NAT (DNAT) выполняет преобразование IP-адреса назначения в заголовках пакетов, проходящих через сетевой шлюз. DNAT применяется для перенаправления трафика, адресованного на IP-адрес в публичном сегменте сети, на «реальный» IP-адрес сервера, расположенного в локальной сети за шлюзом.
Алгоритм настройки Destination NAT описан в разделе Алгоритм настройки DNAT.
Пример настройки
Задача:
- организовать публичный доступа к серверу, находящемуся в частной сети и не имеющему публичного сетевого адреса;
- сервер доступен по адресу: 192.0.2.10/24;
Image Removed
Схема реализации Destination NAT
Исходная конфигурация кластера:
| Блок кода |
|---|
cluster
cluster-interface bridge 1
unit 1
mac-address a2:00:00:10:c0:00
exit
unit 2
mac-address a2:00:00:10:d0:00
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone WAN
ip address 128.66.0.6/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/30
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone WAN
ip address 128.66.0.5/30
vrrp id 3
vrrp ip 203.0.113.2/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 128.66.0.1/30
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
Решение:
Создадим профиль адреса сервера из 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.
Пример настройки eBGP с общим IP-адресом
Задача:
Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- соседство устанавливается только с Active-устройством;
- клиентская подсеть: 192.0.2.0/24;
- анонсирование подсетей, подключенных напрямую;
- собственная AS 64500;
- соседство – подсеть 203.0.113.0/24, vrrp IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, 64501.
Image Removed
Схема реализации 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 id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone WAN
ip address 128.66.0.2/30
vrrp id 3
vrrp ip 203.0.113.1/30
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone WAN
ip address 128.66.0.1/30
vrrp id 3
vrrp ip 203.0.113.1/30
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol ah
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
Решение:
Настроем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN:
| Блок кода |
|---|
ESR-1(config)# object-group service og_bgp
ESR-1(config-object-group-service)# port-range 179
ESR-1(config-object-group-service)# exit
ESR-1(config)# security zone WAN
ESR-1(config-security-zone)# exit
ESR-1(config)# security zone-pair WAN self
ESR-1(config-security-zone-pair)# rule 2
ESR-1(config-security-zone-pair-rule)# match protocol tcp
ESR-1(config-security-zone-pair-rule)# match destination-port object-group og_bgp
ESR-1(config-security-zone-pair-rule)# action permit
ESR-1(config-security-zone-pair-rule)# enable
ESR-1(config-security-zone-pair-rule)# exit
ESR-1(config-security-zone-pair)# exit |
Создадим route-map, который будет использоваться в дальнейшем при настройке разрешающих анонсов роутерам из другой AS. В route-map запретим анонсировать подсеть для cluster-interface:
| Блок кода |
|---|
ESR-1(config)# route-map bgp-out
ESR-1(config-route-map)# rule 1
ESR-1(config-route-map-rule)# match ip address 198.51.100.0/24
ESR-1(config-route-map-rule)# action deny
ESR-1(config-route-map-rule)# exit
ESR-1(config-route-map)# rule 2
ESR-1(config-route-map-rule)# action permit
ESR-1(config-route-map-rule)# exit
ESR-1(config-route-map)# exit |
Создадим BGP-процесс для AS 64500 и войдем в режим конфигурирования параметров процесса:
| Блок кода |
|---|
ESR-1(config)# router bgp 64500 |
Сконфигурируем анонсирование подсетей, подключенных напрямую:
| Блок кода |
|---|
ESR-1(config-bgp)# address-family ipv4 unicast
ESR-1(config-bgp-af)# redistribute connected
ESR-1(config-bgp-af)# exit |
Создадим eBGP с вышестоящим роутером:
| Блок кода |
|---|
ESR-1(config-bgp)# neighbor 203.0.113.2
ESR-1(config-bgp-neighbor)# remote-as 64501
ESR-1(config-bgp-neighbor)# update-source 203.0.113.1 |
И включим обмен IPv4-маршрутами:
| Блок кода |
|---|
ESR-1(config-bgp-neighbor)# address-family ipv4 unicast
ESR-1(config-bgp-neighbor-af)# route-map bgp-out out
ESR-1(config-bgp-neighbor-af)# enable
ESR-1(config-bgp-neighbor-af)# exit |
Включим работу протокола:
| Блок кода |
|---|
ESR-1(config-bgp-neighbor)# enable
ESR-1(config-bgp-neighbor)# exit
ESR-1(config-bgp)# enable
ESR-1(config-bgp)# exit |
Применим конфигурацию на Active-устройстве.
Информацию о BGP-пирах можно посмотреть командой show bgp neighbors:
| Блок кода |
|---|
ESR-1# show bgp neighbors
BGP neighbor is 203.0.113.1
BGP state: 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-устройством. |
Пример настройки eBGP с каждым участником кластера по индивидуальным IP-адресам
Задача:
Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- соседство устанавливается с каждым маршрутизатором в кластере индивидуально;
- клиентская подсеть: 192.0.2.0/24;
- анонсирование подсетей, подключенных напрямую;
- собственная AS 64500;
- соседство для ESR-1 – подсеть 203.0.113.0/30, IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, 64501;
- соседство для ESR-2 – подсеть 203.0.113.4/30, IP-адрес для подключения 203.0.113.5, IP-адрес соседа 203.0.113.6, 64502.
Image Removed
Схема реализации 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 id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone WAN
ip address 203.0.113.1/30
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone WAN
ip address 203.0.113.5/30
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol ah
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
Решение:
Настроем 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
DMVPN (Dynamic Multipoint Virtual Private Network) — технология для создания виртуальных частных сетей, с возможностью динамического создания туннелей между узлами. Преимуществом данного решения является высокая масштабируемость и легкость настройки при подключении филиалов к головному офису. DMVPN используется в топологии Hub-and-Spoke, и позволяет строить прямые VPN-туннели Spoke-to-Spoke в дополнение к обычным Spoke-to-Hub туннелям. Это означает, что филиалы смогут общаться друг с другом напрямую, без необходимости прохождения трафика через Hub.
Чтобы установить такое соединение, клиенты (NHC) по шифрованному IPsec-туннелю отправляют соответствие своего внутреннего (туннельного) адреса и внешнего (NBMA) адреса на NHRP-сервер (NHS). Когда клиент захочет соединиться с другим NHC, он посылает на сервер запрос, чтобы узнать его внешний адрес. Получив ответ от сервера, клиент теперь самостоятельно может устанавливать соединение c удалённым филиалом.
Алгоритм настройки описан в разделе Алгоритм настройки DMVPN.
Пример настройки в кластере DMVPN Single Hub Dual Cloud схемы
Задача:
Организовать DMVPN между офисами компании, используя mGRE-туннели, NHRP (Next Hop Resolution Protocol), протокол динамической маршрутизации (BGP), IPsec. В данном примере будет HUB-маршрутизатор, который находится в кластере, и два филиала. HUB – это DMVPN-cервер (NHS), а филиалы – DMPVN-клиенты (NHC).
HUB внешний IP-адрес через Cloud_one — 198.51.100.2/30;
HUB внешний IP-адрес через Cloud_two — 198.51.100.6/30;
SPOKE-1 внешний IP-адрес — 198.51.100.10/30;
SPOKE-2 внешний IP-адрес — 198.51.100.14/30.
Параметры IPsec VPN:
IKE:
- группа Диффи-Хэллмана: 19;
- алгоритм шифрования: AES256;
- алгоритм аутентификации: SHA2-256.
IPsec:
- группа Диффи-Хэллмана: 19;
- алгоритм шифрования: AES256;
- алгоритм аутентификации: SHA2-256.
Image Removed
Схема реализации DMVPN Single Hub Dual Cloud в кластере
Исходная конфигурация CLUSTER-HUB:
| Блок кода |
|---|
|
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 id 1
vrrp ip 192.0.2.1/29
vrrp group 1
vrrp
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 id 2
vrrp ip 198.51.100.2/30
vrrp group 1
vrrp
wan load-balance nexthop 198.51.100.1
wan load-balance enable
exit
interface gigabitethernet 1/0/2.200
security-zone WAN
ip address 192.0.2.17/29
vrrp id 3
vrrp ip 198.51.100.6/30
vrrp group 1
vrrp
wan load-balance nexthop 198.51.100.5
wan load-balance enable
exit
interface gigabitethernet 1/0/3
security-zone LAN
ip address 128.66.0.2/24
vrrp id 4
vrrp ip 128.66.0.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2.100
security-zone WAN
ip address 192.0.2.10/29
vrrp id 2
vrrp ip 198.51.100.2/30
vrrp group 1
vrrp
wan load-balance nexthop 198.51.100.1
wan load-balance enable
exit
interface gigabitethernet 2/0/2.200
security-zone WAN
ip address 192.0.2.18/29
vrrp id 3
vrrp ip 198.51.100.6/30
vrrp group 1
vrrp
wan load-balance nexthop 198.51.100.5
wan load-balance enable
exit
interface gigabitethernet 2/0/3
security-zone LAN
ip address 128.66.0.3/24
vrrp id 4
vrrp ip 128.66.0.1/24
vrrp group 1
vrrp
exit
security zone-pair SYNC self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol ah
enable
exit
rule 3
action permit
match protocol icmp
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol ah
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol ah
enable
exit
exit
ip route 0.0.0.0/0 wan load-balance rule 1
wan load-balance rule 1
outbound interface gigabitethernet 1/0/2.100
outbound interface gigabitethernet 1/0/2.200
outbound interface gigabitethernet 2/0/2.200
outbound interface gigabitethernet 2/0/2.100
enable
exit |
Исходная конфигурация SPOKE-1:
| Блок кода |
|---|
|
hostname SPOKE-1
security zone LAN
exit
security zone WAN
exit
interface gigabitethernet 1/0/1
security-zone WAN
ip address 198.51.100.10/30
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 128.66.1.1/24
exit
ip route 198.51.100.0/30 198.51.100.9
ip route 198.51.100.12/30 198.51.100.9
ip route 198.51.100.4/30 198.51.100.9 |
Исходная конфигурация SPOKE-2:
| Блок кода |
|---|
|
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
Role (h:m:s) (d,h:m:s)MAC address State IP address
----
-------------------- ---------------- --------- --------- -------------- --------------- ----------
203.0.113.1* 198.51.100.2 gre 1 -- 00,00:00:13 static RULCP
203.0.113.129 198.51.100.6ESBC-1 gre 2 -- Active 00,00:00:13 68:13:e2:e1:28:90 Joined static 192.18.1.10 RULCP
2 |
| Блок кода |
|---|
SPOKE-2# show ip nhrp peers
Flags: E - unique, R - nhs, U - used, L - lower-up
ESBC-2 Standby 68:13:e2:e1:25:30 CJoined - connected, G - group, Q - qos, N - nat
192.18.1.20 P - protected, I - Redirect-ignored, X - undefined
Tunnel address |
| Примечание |
|---|
После включения кластера и установления юнитов в состояние Joined дальнейшая настройка кластера осуществляется путем настройки Active-юнита. Синхронизируются команды конфигурации, а также команды: commit, confirm, rollback, restore, save. В случае если конфигурирование осуществляется на Standby, то синхронизации не будет. Есть возможность отключения синхронизации командой sync config disable. |
Для проверки работы протокола VRRP выполните следующую команду:
| Блок кода |
|---|
|
ESBC-1# show vrrp
Virtual router Virtual IP NBMA address Priority Preemption Tunnel State ExpireSynchronization group ID Created
-------------- ----------------- -------- ---------- Type ------ -------------------------
1 Flags
192.18.1.100/24 100 Enabled Master 2
10 192.168.83.82/22 100 Enabled (h:m:s) Master 2 |
Также можно посмотреть состояние синхронизации различных подсистем в кластере, выполнив команду:
| Блок кода |
|---|
|
ESBC-1# show cluster sync status
System part(d,h:m:s) Synced
-------------------- ---------------- --------- ---------
candidate-config -------------- --------------- ----------Yes
203.0.113.1
running-config 198.51.100.2 Yes gre 1
SW version -- 00,00:00:16 Yes static
licence RULCP
203.0.113.129Yes
licence (After reboot) 198.51.100.6Yes
date gre 2 -- 00,00:00:16 Yes static
E-SBC version RULCP Yes |