Настройка Cluster
Cluster используется для резервирования работы устройств в сети. Резервирование обеспечивается за счет синхронизации работы различных сервисов между устройствами, а также за счет организации единой точки управления устройствами.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Сменить юнит у устройства (смена юнита устройства вступает в силу после перезагрузки.) | esr# set unit id <ID> | <ID> – номер юнита, принимает значения [1..2]. |
| 2 | Перейти в режим конфигурирования сетевого моста, который будет использован в качестве кластерного интерфейса. | esr(config)# bridge <BR-NUM> | <BR-NUM> – номер сетевого моста. |
| 3 | Указать IPv4-адрес и маску подсети для кластерного интерфейса. Необходимо установить адрес для все юнитов кластера. (для работы кластерного интерфейса поддерживается только IPv4-адресация.) | esr(config-bridge)# ip address <ADDR/LEN> [unit <ID>] | <ADDR/LEN> – IP-адрес и длина маски подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. <ID> – номер юнита, принимает значения [1..2]. Дополнительные функции IPv4-адресации см. в разделе Настройка IP-адресации. |
| 4 | Установить идентификатор VRRP-маршрутизатора. | esr(config-bridge)# vrrp id <VRID> | <VRID> – идентификатора VRRP-маршрутизатора, принимает значения [1..255]. |
| 5 | Установить виртуальный IP-адрес VRRP-маршрутизатора (адрес должен быть из той же подсети, что и ip address). | esr(config-bridge)# vrrp ip <ADDR/LEN> [ secondary ] | <ADDR/LEN> – виртуальный IP-адрес и длина маски, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. Можно указать несколько IP-адресов перечислением через запятую. Может быть назначено до 8 IP-адресов на интерфейс. secondary – ключ для установки дополнительного IP-адреса. |
| 6 | Установить принадлежность VRRP-маршрутизатора к группе. Группа предоставляет возможность синхронизировать несколько VRRP-процессов, так если в одном из процессов произойдет смена мастера, то в другом процессе также произойдёт смена ролей. | esr(config-bridge)# vrrp group <GRID> | <GRID> – идентификатор группы VRRP-маршрутизатора, принимает значения [1..32] |
| 7 | Включить VRRP-процесс на IP-интерфейсе. | esr(config-bridge)# vrrp | |
| 8 | Активировать сетевой мост. | esr(config-bridge)# enable | |
9 | Перейти в режим конфигурирования кластера. | esr(config)# cluster | |
| 10 | Установить интерфейс, через который будет происходить обмен служебными сообщениями между юнитами в кластере. | esr(config-cluster)# cluster-interface bridge [<BRIDGE-ID>] | <BRIDGE-ID> – идентификационный номер моста, задается в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора. |
| 11 | Отключить синхронизацию конфигураций в кластере между юнитами (не обязательно). | esr(config-cluster)# sync config disable | |
| 12 | Перейти в режим конфигурирования юнита в кластере. | esr(config-cluster)# unit <ID> | <ID> – номер юнита, принимает значения [1..2]. |
| 13 | Настроить MAC-адрес для определенного юнита. | esr(config-cluster-unit)# mac-address <ADDR> | <ADDR> – МАС-адрес сетевого моста, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF]. |
| 14 | Включить работу кластера. | esr(config-cluster)# enable |
Пример настройки кластера
В настоящем руководстве приведено описание настройки кластера для администратора сервисного маршрутизатора ESR (далее — маршрутизатор).
Рисунок 1 — Схема реализации 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
На заводской конфигурации unit принимает значение по умолчанию (unit = 1).
Смена юнита устройства вступает в силу после перезагрузки.
Убедитесь в том, что настройка юнита применилась успешно:
ESR-1# show unit id Unit ID is 1 Unit ID will be 1 after reboot
Объединение устройств в кластер невозможно, если они относятся к одному и тому же юниту.
Исключение — процесс ZTP, так как в процессе ZTP нужный unit у устройства выставится автоматически.
Настройка кластерного интерфейса
Для полноценной работы кластера требуется сконфигурировать кластерный интерфейс, который будет использоваться для передачи control plane трафика. В качестве кластерного интерфейса назначен bridge. В качестве механизма, отвечающего за определение ролей устройств, участвующих в резервировании, назначен протокол VRRP. Настройки cluster-интерфейса должны быть идентичны для всех участников кластера.
Так как кластер выполняет синхронизацию состояний между устройствами, необходимо создать зону безопасности SYNC (synchronization) и разрешить прохождение трафика протокола VRRP:
ESR-1(config)# security zone SYNC ESR-1(config-security-zone)# exit ESR-1(config)# security zone-pair SYNC self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol icmp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# rule 2 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol vrrp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
Далее перейдите к настройкам кластерного интерфейса:
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-1# show vrrp Virtual router Virtual IP Priority Preemption State -------------- --------------------------------- -------- ---------- ------ 1 198.51.100.1/24 100 Enabled Backup
Можно увидеть, что устройство приняло состояние 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
Первое устройство полностью настроено и готово к работе.
Аналогичные настройки необходимо произвести на втором устройстве. Также возможна настройка второго устройства средствами 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, то синхронизации не будет.
Есть возможность отключения синхронизации командой 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
В версии 1.28 не поддержана синхронизация шифрованных паролей.
Через минуту после включения кластера синхронизируется время, на 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
enable
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
Решение:
Перейдем в режим конфигурирования устройства:
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.
Рисунок 2 — Схема реализации MultiWAN
Исходная конфигурация кластера:
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp
enable
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
Создадим локальную зону безопасности и зону безопасности в сторону интернета:
ESR-1(config)# security zone TRUSTED ESR-1(config-security-zone)# exit ESR-1(config)# security zone ISP1_ISP2 ESR-1(config-security-zone)# exit
Создадим список IP-адресов для проверки целостности соединения:
ESR-1(config)# wan load-balance target-list ISP1_ISP2 ESR-1(config-wan-target-list)# target 1 ESR-1(config-wan-target)# resp-time 1 ESR-1(config-wan-target)# ip address 8.8.8.8 ESR-1(config-wan-target)# enable ESR-1(config-wan-target)# exit ESR-1(config-wan-target-list)# exit
Настроим интерфейсы в зону TRUSTED:
ESR-1(config)# interface gigabitethernet 1/0/2 ESR-1(config-if-gi)# description "Network: TRUSTED" ESR-1(config-if-gi)# security-zone TRUSTED ESR-1(config-if-gi)# ip address 192.0.2.254/24 ESR-1(config-if-gi)# vrrp id 3 ESR-1(config-if-gi)# vrrp ip 192.0.2.1/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/2 ESR-1(config-if-gi)# description "Network: TRUSTED" ESR-1(config-if-gi)# security-zone TRUSTED ESR-1(config-if-gi)# ip address 192.0.2.253/24 ESR-1(config-if-gi)# vrrp id 3 ESR-1(config-if-gi)# vrrp ip 192.0.2.1/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit
Настроим интерфейсы в зону ISP1:
ESR-1(config)# interface gigabitethernet 1/0/3.111 ESR-1(config-subif)# description "Network: ISP1" ESR-1(config-subif)# security-zone ISP1_ISP2 ESR-1(config-subif)# ip address 203.0.112.254/24 ESR-1(config-subif)# vrrp id 111 ESR-1(config-subif)# vrrp ip 203.0.112.2/24 ESR-1(config-subif)# vrrp group 1 ESR-1(config-subif)# vrrp ESR-1(config-subif)# wan load-balance nexthop 203.0.112.1 ESR-1(config-subif)# wan load-balance success-count 1 ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2 ESR-1(config-subif)# wan load-balance enable ESR-1(config-subif)# exit ESR-1(config)# interface gigabitethernet 2/0/3.111 ESR-1(config-subif)# description "Network: ISP1" ESR-1(config-subif)# security-zone ISP1_ISP2 ESR-1(config-subif)# ip address 203.0.112.253/24 ESR-1(config-subif)# vrrp id 111 ESR-1(config-subif)# vrrp ip 203.0.112.2/24 ESR-1(config-subif)# vrrp group 1 ESR-1(config-subif)# vrrp ESR-1(config-subif)# wan load-balance nexthop 203.0.112.1 ESR-1(config-subif)# wan load-balance success-count 1 ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2 ESR-1(config-subif)# wan load-balance enable ESR-1(config-subif)# exit
Настроим интерфейсы в зону ISP2:
ESR-1(config)# interface gigabitethernet 1/0/3.222 ESR-1(config-subif)# description "Network: ISP2" ESR-1(config-subif)# security-zone ISP1_ISP2 ESR-1(config-subif)# ip address 203.0.113.254/24 ESR-1(config-subif)# vrrp id 222 ESR-1(config-subif)# vrrp ip 203.0.113.2/24 ESR-1(config-subif)# vrrp group 1 ESR-1(config-subif)# vrrp ESR-1(config-subif)# wan load-balance nexthop 203.0.113.1 ESR-1(config-subif)# wan load-balance success-count 1 ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2 ESR-1(config-subif)# wan load-balance enable ESR-1(config-subif)# exit ESR-1(config)# interface gigabitethernet 2/0/3.222 ESR-1(config-subif)# description "Network: ISP2" ESR-1(config-subif)# security-zone ISP1_ISP2 ESR-1(config-subif)# ip address 203.0.113.253/24 ESR-1(config-subif)# vrrp id 222 ESR-1(config-subif)# vrrp ip 203.0.113.2/24 ESR-1(config-subif)# vrrp group 1 ESR-1(config-subif)# vrrp ESR-1(config-subif)# wan load-balance nexthop 203.0.113.1 ESR-1(config-subif)# wan load-balance success-count 1 ESR-1(config-subif)# wan load-balance target-list ISP1_ISP2 ESR-1(config-subif)# wan load-balance enable ESR-1(config-subif)# exit
Укажем статический маршрут и создадим правило для балансировки трафика:
ESR-1(config)# ip route 0.0.0.0/0 wan load-balance rule 1 10 ESR-1(config)# wan load-balance rule 1 ESR-1(config-wan-rule)# outbound interface gigabitethernet 1/0/3.111 70 ESR-1(config-wan-rule)# outbound interface gigabitethernet 1/0/3.222 30 ESR-1(config-wan-rule)# outbound interface gigabitethernet 2/0/3.222 30 ESR-1(config-wan-rule)# outbound interface gigabitethernet 2/0/3.111 70 ESR-1(config-wan-rule)# enable ESR-1(config-wan-rule)# exit
Разрешим работу протокола VRRP и протокола ICMP в зоне ISP1_ISP2 и TRUSTED:
ESR-1(config)# security zone-pair ISP1_ISP2 self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol icmp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# rule 2 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol vrrp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit ESR-1(config)# security zone-pair TRUSTED self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol icmp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# rule 2 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol vrrp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
Проверить состояние можно с помощью команды:
ESR-1# show wan interfaces status Interface Nexthop Status Uptime/Downtime -------------------- ----------------------- -------- ------------------------------------------ gi1/0/3.111 203.0.112.1 Active 7 minute and 58 seconds gi1/0/3.222 203.0.113.1 Active 7 minute and 58 seconds
Настройка IPsec VPN
IPsec — это набор протоколов, обеспечивающих защиту данных, передаваемых по протоколу IP. Данный набор протоколов позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и шифрование IP-пакетов, а также включает в себя протоколы для защищённого обмена ключами в сети Интернет.
IPsec представляет собой совокупность протоколов, предназначенных для защиты данных, передаваемых по IP. Данный набор обеспечивает аутентификацию, проверку целостности и шифрование IP-пакетов, а также включает механизмы для безопасного обмена ключами в сети Интернет.
Задача:
- обеспечить безопасность данных, передаваемых между LAN-сетями, посредством использования протокола IPsec, предоставляющего аутентификацию, проверку целостности и шифрование IP-пакетов;
- обеспечить, чтобы IPsec применялся для шифрования VTI-туннеля;
- создадим зашифрованный IPsec-туннель, основанный на VIP IP-адресе.
Исходная конфигурация кластера:
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 TUNNEL
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp
enable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 3
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 3
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
Решение:
Сконфигурируем необходимые сетевые интерфейсы для подключения к провайдеру с указанием их принадлежности к зоне безопасности:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# ip address 192.0.3.1/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 203.0.113.252/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# ip address 192.0.3.2/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 203.0.113.252/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# 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
Добавим правило, разрешающее прохождение пакетов протокола ESP, а также UDP-пакетов с портами 500 и 4500, через IPsec-туннель:
ESR-1(config)# security zone-pair WAN self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol 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 2 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol esp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# rule 3 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol icmp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
Создадим туннель VTI, через который будет перенаправляться трафик в IPsec-туннель. В качестве локального шлюза назначим VIP IP-адрес, а в качестве удалённого шлюза – IP-адрес соответствующего интерфейса:
ESR-1(config)# tunnel vti 1 ESR-1(config-vti)# security-zone TUNNEL ESR-1(config-vti)# local address 203.0.113.252 ESR-1(config-vti)# remote address 203.0.113.1 ESR-1(config-vti)# ip address 192.168.0.1/30 ESR-1(config-vti)# enable ESR-1(config-vti)# exit
Добавим правило, разрешающее прохождение ICMP-трафика через туннель:
ESR-1(config)# security zone-pair TUNNEL self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol icmp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
Создадим профиль протокола 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-туннеля, применимой политики, версии протокола и режима перенаправления трафика в туннель. Для route-based IPsec поддержка 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
Аналогичную настройку требуется выполнить на устройстве, находящемся на другой стороне туннеля
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.252 203.0.113.1 00,03:34:00
Посмотреть состояние IPsec-туннеля можно с помощью команды:
ESR-1# show security ipsec vpn status Name Local host Remote host Initiator spi Responder spi State ------------------------------- --------------- --------------- ------------------ ------------------ ----------- ipsec 203.0.113.252 203.0.113.1 0x1c0c2099fb85d30b 0x3af77a1a17302fb9 Established
ESR-1# show security ipsec vpn authentication ipsec Local host Remote host Local subnet Remote subnet Authentication State --------------- --------------- ------------------- ------------------- ----------------------------------------- ----------- 203.0.113.252 203.0.113.1 no child SA no child SA Pre-shared key Established
Посмотреть конфигурацию IPsec-VPN можно с помощью следующей команды:
ESR-1# show security ipsec vpn configuration ipsec
VRF: --
Description: --
State: Enabled
IKE:
Establish tunnel: route
IPsec policy: ipsec_pol
IKE gateway: ike_gw
IKE DSCP: 63
IKE idle-time: 0s
IKE rekeying: Enabled
Margin time: 540s
Margin kilobytes: 0
Margin packets: 0
Randomization: 100%
Настройка Firewall-failover
Firewall failover необходим для резервирования сессий Firewall.
С алгоритмом настройки Firewall-failover можно ознакомиться по ссылке в разделе: Алгоритм настройки Firewall-failover.
Пример настройки
Задача:
Настроить Firewall-failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- режим резервирования сессий unicast;
- номер UDP-порта службы резервирования 9999;
- клиентская подсеть: 192.0.2.0/24.
Рисунок 3 — Схема реализации 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 LAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp
enable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
enable
exit
exit
Решение:
Сконфигурируем object-group для настройки failover-сервисов:
ESR-1(config)# object-group network SYNC_SRC ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1 ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2 ESR-1(config-object-group-network)# exit ESR-1(config)# object-group network SYNC_DST ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1 ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2 ESR-1(config-object-group-network)# exit
Перейдем к выбору IP-адреса сетевого интерфейса, с которого будут отправляться сообщения при работе failover-сервисов, указав созданную object-group:
ESR-1(config)# ip failover ESR-1(config-failover)# local-address object-group SYNC_SRC
Настроим IP-адреса соседа при работе failover-сервисов, указав созданную object-group:
ESR-1(config-failover)# remote-address object-group SYNC_DST
Укажем VRRP-группу, на основе которой определяется состояние (основной/резервный) маршрутизатора при работе failover-сервисов:
ESR-1(config-failover)# vrrp-group 1 ESR-1(config-failover)# exit
При включенном кластере использование object-group в настройке failover-сервисов обязательно.
Для настройки правил зон безопасности создадим профиль для порта 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:
ESR-1(config)# ip firewall failover ESR-1(config-firewall-failover)# sync-type unicast
Настроим номер UDP-порта службы резервирования сессий Firewall:
ESR-1(config-firewall-failover)# port 9999
Включим резервирование сессий Firewall:
ESR-1(config-firewall-failover)# enable ESR-1(config-firewall-failover)# exit
После успешного запуска Firewall-failover можно посмотреть состояние резервирования сессий Firewall с помощью следующей команды:
ESR-1# show ip firewall failover
Communication interface: bridge 1
Status: Running
Bytes sent: 1200
Bytes received: 1168
Packets sent: 76
Packets received: 77
Send errors: 0
Receive errors: 0
Resend queue:
Active entries: 1
Errors:
No space left: 0
Hold queue:
Active entries: 0
Errors:
No space left: 0
Также возможно узнать текущее состояние Firewall-failover сервиса, выполнив команду:
ESR-1# show high-availability state
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-01-09 13:36:13
Настройка DHCP-failover
DHCP-failover позволяет обеспечить высокую доступность службы DHCP.
С алгоритмом настройки DHCP-failover можно ознакомиться по ссылке в разделе: Алгоритм настройки DHCP-failover.
Пример настройки
Задача:
Настроить DHCP-failover в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- в качестве default-router используется IP-адрес VRRP;
- в качестве dns-server используется IP-адрес VRRP;
- установить в качестве необходимого режима работы резервирования active-standby;
- клиентская подсеть: 192.0.2.0/24.
Рисунок 4 — Схема реализации DHCP-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 LAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp
enable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
Решение:
Выполним настройку DHCP-сервера. В качестве default-router и dns-server используется IP-адрес VRRP:
ESR-1(config)# ip dhcp-server ESR-1(config)# ip dhcp-server pool TRUSTED ESR-1(config-dhcp-server)# network 192.0.2.0/24 ESR-1(config-dhcp-server)# address-range 192.0.2.10-192.0.2.100 ESR-1(config-dhcp-server)# default-router 192.0.2.1 ESR-1(config-dhcp-server)# dns-server 192.0.2.1 ESR-1(config-dhcp-server)# exit
Разрешим получение DHCP-адресов:
ESR-1(config)# object-group service DHCP_SERVER ESR-1(config-object-group-service)# port-range 67 ESR-1(config-object-group-service)# exit ESR-1(config)# object-group service DHCP_CLIENT ESR-1(config-object-group-service)# port-range 68 ESR-1(config-object-group-service)# exit ESR-1(config)# security zone-pair LAN self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol udp ESR-1(config-security-zone-pair-rule)# match source-port object-group DHCP_CLIENT ESR-1(config-security-zone-pair-rule)# match destination-port object-group DHCP_SERVER ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
Сконфигурируем object-group для настройки failover-сервисов:
ESR-1(config)# object-group network SYNC_SRC ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 1 ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 2 ESR-1(config-object-group-network)# exit ESR-1(config)# object-group network SYNC_DST ESR-1(config-object-group-network)# ip address-range 198.51.100.253 unit 1 ESR-1(config-object-group-network)# ip address-range 198.51.100.254 unit 2 ESR-1(config-object-group-network)# exit
Перейдем к выбору IP-адреса сетевого интерфейса, с которого будут отправляться сообщения при работе failover-сервисов, указав созданную object-group:
ESR-1(config)# ip failover ESR-1(config-failover)# local-address object-group SYNC_SRC
Настроим IP-адреса соседа при работе failover-сервисов, указав созданную object-group:
ESR-1(config-failover)# remote-address object-group SYNC_DST
Укажем VRRP-группу, на основе которой определяется состояние (основной/резервный) маршрутизатора при работе failover-сервисов:
ESR-1(config-failover)# vrrp-group 1 ESR-1(config-failover)# exit
Перейдем к настройке резервирования DHCP-сервера:
ESR-1(config)# ip dhcp-server failover
Установим режим работы резервирования:
ESR-1(config-dhcp-server-failover)# mode active-standby
Для работы в кластере необходимо использовать режим active-standby.
Включим DHCP-failover:
ESR-1(config-dhcp-server-failover)# enable ESR-1(config-dhcp-server-failover)# exit
Посмотреть состояние резервирования DHCP-сервера можно с помощью команды:
ESR-1# show ip dhcp server failover
VRF: --
Mode: Active-Standby
Role: Master
State: Synchronized
Last synchronization: 2025-01-09 12:00:57
Посмотреть состояние резервирования сессий DHCP можно с помощью команды:
ESR-1# show high-availability state
DHCP server:
VRF: --
Mode: Active-Standby
State: Successful synchronization
Last synchronization: 2025-01-09 12:01:21
crypto-sync:
State: Disabled
Firewall sessions and NAT translations:
State: Disabled
Выданные адреса DHCP можно просмотреть с помощью команды:
ESR-1# show ip dhcp binding IP address MAC / Client ID Binding type Lease expires at ---------------- ------------------------------------------------------------- ------------ -------------------- 192.0.2.10 02:00:00:69:91:12 active 2025-01-09 23:58:36 192.0.2.11 02:00:00:2a:a6:85 active 2025-01-09 23:58:39
Настройка SNMP
Протокол SNMP (Simple Network Management Protocol) реализует модель «менеджер–агент» для централизованного управления сетевыми устройствами: агенты, установленные на устройствах, собирают данные, структурированные в MIB, а менеджер запрашивает информацию, мониторит состояние сети, контролирует производительность и вносит изменения в конфигурацию оборудования.
С алгоритмом настройки можно ознакомиться по ссылке в разделе: Настройка SNMP-сервера и отправки SNMP TRAP.
Пример настройки
Задача:
- обеспечить возможность мониторинга сети через management-интерфейс каждого устройства в кластере:
- обеспечить возможность мониторинга состояния сети и внесения изменений в конфигурацию устройства, выполняющего роль VRRP Master;
- устройство управления (MGMT) доступно по IP-адресу 192.0.2.12.
Исходная конфигурация кластера:
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 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
enable
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
Решение:
Сконфигурируем необходимые сетевые интерфейсы для подключения к устройству управления с указанием их принадлежности к зоне безопасности:
ESR-1(config)# interface gigabitethernet 1/0/2 ESR-1(config-if-gi)# security-zone MGMT ESR-1(config-if-gi)# ip address 192.0.2.254/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 192.0.2.1/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/2 ESR-1(config-if-gi)# security-zone MGMT ESR-1(config-if-gi)# ip address 192.0.2.253/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 192.0.2.1/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# 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 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol udp ESR-1(config-security-zone-pair-rule)# match 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:
cluester@cluester-System:~$ snmpset -v2c -c public 192.0.2.253 .1.3.6.1.2.1.1.5.0 s 'ESR-1' SNMPv2-MIB::sysName.0 = STRING: ESR-1 cluester@cluester-System:~$ snmpset -v2c -c public 192.0.2.254 .1.3.6.1.2.1.1.5.0 s 'ESR-2' SNMPv2-MIB::sysName.0 = STRING: ESR-2 cluester@cluester-System:~$ snmpset -v2c -c public 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.
Пример настройки
Задача:
- предоставить доступ в Интернет хостам, находящимся в локальной сети;
- клиентская подсеть: 192.0.2.0/24;
публичный IP адрес – VIP адрес на интерфейсе.
Рисунок 5 — Схема реализации Source NAT
Исходная конфигурация кластера:
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp
enable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 3
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 3
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
Решение:
Сконфигурируем необходимые сетевые интерфейсы для подключения к провайдеру с указанием их принадлежности к зоне безопасности:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# ip address 192.0.3.1/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 203.0.113.252/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# ip address 192.0.3.2/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 203.0.113.252/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# 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.252 ESR-1(config-object-group-network)# exit
Добавим правило, предусматривающее проверку, принадлежит ли адрес источника диапазону INTERNET_USERS, что обеспечивает соблюдение установленных ограничений на выход в публичную сеть:
ESR-1(config)# security zone-pair LAN WAN ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match source-address object-group INTERNET_USERS ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
Создадим пул исходных 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.252 ESR-1(config-snat-pool)# exit
Добавим набор правил SNAT. В атрибутах набора укажем применение правил исключительно для пакетов, направляемых в зону WAN. При этом правила осуществляют проверку адреса источника на принадлежность к пулу INTERNET_USERS и выполняют трансляцию исходного адреса в VIP IP-адрес интерфейса:
ESR-1(config)# nat source 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 ---- --------------------- --------------------- --------------------- --------------------- ---------- ---------- icmp 192.0.2.12 203.0.113.1 203.0.113.252 203.0.113.1 -- --
Настройка Destination NAT
Функция Destination NAT (DNAT) выполняет преобразование IP-адреса назначения в заголовках пакетов, проходящих через сетевой шлюз. DNAT применяется для перенаправления трафика, адресованного на IP-адрес в публичном сегменте сети, на «реальный» IP-адрес сервера, расположенного в локальной сети за шлюзом.
Пример настройки
Задача:
- организовать публичный доступа к серверу, находящемуся в частной сети и не имеющему публичного сетевого адреса;
- сервер доступен по адресу: 192.0.2.12/24;
Рисунок 6 — Схема реализации Destination NAT
Исходная конфигурация кластера:
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp
enable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 3
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 3
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
Решение:
Сконфигурируем необходимые сетевые интерфейсы для подключения к DMZ-серверу с указанием их принадлежности к зоне безопасности:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# security-zone DMZ ESR-1(config-if-gi)# ip address 192.0.3.1/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 203.0.113.252/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# security-zone DMZ ESR-1(config-if-gi)# ip address 192.0.3.2/24 ESR-1(config-if-gi)# vrrp id 2 ESR-1(config-if-gi)# vrrp ip 203.0.113.252/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit
Создадим профиль адресов публичной сети:
ESR-1(config)# object-group network EXTERNAL ESR-1(config-object-group-network)# ip address-range 203.0.113.252 ESR-1(config-object-group-network)# exit
Создадим профиль профиль адресов DMZ-сервера:
ESR-1(config)# object-group network INTERNAL ESR-1(config-object-group-network)# ip address-range 192.0.2.12 ESR-1(config-object-group-network)# exit
Добавим правило, которое проверяет применение правил исключительно к пакетам, поступающим из зоны WAN. Набор правил включает требования соответствия по адресу назначения (match destination-address) и протоколу. Дополнительно в наборе определено действие (action destination-nat), которое применяется к данным, удовлетворяющим указанным критериям:
ESR-1(config)# security zone-pair WAN DMZ ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol icmp ESR-1(config-security-zone-pair-rule)# match destination-address object-group INTERNAL 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-адресов, в который будут транслироваться адреса пакетов, поступающих на виртуальный IP-адрес (VIP), назначенный WAN-интерфейсу:
ESR-1(config)# nat destination ESR-1(config-dnat)# pool DMZ ESR-1(config-dnat-pool)# ip address 192.0.2.12 ESR-1(config-dnat-pool)# exit
Просмотр таблицы NAT трансляций осуществляется посредством следующей команды:
ESR-1# show ip nat translations Prot Inside source Inside destination Outside source Outside destination Pkts Bytes ---- --------------------- --------------------- --------------------- --------------------- ---------- ---------- icmp 203.0.113.1 192.0.2.12 203.0.113.1 203.0.113.252 -- --
Настройка BGP
Протокол BGP предназначен для обмена информацией о достижимости подсетей между автономными системами (далее АС), то есть группами маршрутизаторов под единым техническим управлением, использующими протокол внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляется исходя из правил, принятых в сети.
С алгоритмом настройки можно ознакомиться по ссылке в разделе: Алгоритм настройки BGP.
Пример настройки eBGP с общим IP-адресом
Задача:
Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- соседство устанавливается только с Active устройством;
- клиентская подсеть: 192.0.2.0/24;
- анонсирование подсетей, подключенных напрямую;
- собственная AS 2500;
- соседство – подсеть 203.0.113.0/24, vrrp IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, AS3000.
Рисунок 7 — Схема реализации eBGP с общим IP-адресом
Исходная конфигурация кластера:
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone LAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 1/0/3
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
exit
interface gigabitethernet 2/0/3
mode switchport
spanning-tree disable
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol ah
enable
exit
exit
Решение:
Сконфигурируем необходимые сетевые интерфейсы:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# ip address 203.0.113.254/24 ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# ip address 203.0.113.253/24 ESR-1(config-if-gi)# exit
Сконфигурируем зону безопасности WAN, настроем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN, а также разрешим прохождение трафика из зоны LAN в зону WAN:
ESR-1(config)# object-group service og_bgp ESR-1(config-object-group-service)# port-range 179 ESR-1(config-object-group-service)# exit ESR-1(config)# security zone WAN ESR-1(config-security-zone)# exit ESR-1(config)# security zone-pair WAN self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol vrrp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# rule 2 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol ah 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 icmp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# rule 4 ESR-1(config-security-zone-pair-rule)# match protocol tcp ESR-1(config-security-zone-pair-rule)# match destination-port object-group og_bgp ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit ESR-1(config)# security zone-pair LAN WAN ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
Укажем принадлежность интерфейсов к зоне безопасности:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# exit
Настроем vrrp адрес на интерфейсе, с которого в дальнейшем будем строить BGP соседство:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# vrrp id 4 ESR-1(config-if-gi)# vrrp ip 203.0.113.1/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# vrrp id 4 ESR-1(config-if-gi)# vrrp ip 203.0.113.1/24 ESR-1(config-if-gi)# vrrp group 1 ESR-1(config-if-gi)# vrrp authentication key ascii-text encrypted 88B11079B51D ESR-1(config-if-gi)# vrrp authentication algorithm md5 ESR-1(config-if-gi)# vrrp ESR-1(config-if-gi)# 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 2500 и войдем в режим конфигурирования параметров процесса:
ESR-1(config)# router bgp 2500
Сконфигурируем анонсирование подсетей, подключенных напрямую:
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 3000 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.2
BGP state: Established
Type: Static neighbor
Neighbor address: 203.0.113.2
Neighbor AS: 3000
Neighbor ID: 8.8.8.8
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 203.0.113.1
Weight: 0
Hold timer: 111/180
Keepalive timer: 23/60
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Outgoing route-map: bgp-out
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:03:06
ESR-2# show bgp neighbors
BGP neighbor is 203.0.113.2
BGP state: Active
Type: Static neighbor
Neighbor address: 203.0.113.2
Neighbor AS: 3000
Connect delay: 2/5
Last error: Socket: Network is unreachable
Таблицу маршрутов протокола BGP можно просмотреть с помощью команды:
ESR-1# show bgp ipv4 unicast
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
* - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> u 0.0.0.0/0 203.0.113.2 -- 100 0 3000 ?
В случае выхода из строя Active устройства, BGP будет полностью переустанавливаться со Standby устройством.
Пример настройки eBGP с каждым участником кластера по индивидуальным IP-адресам
Задача:
Настроить BGP-протокол в кластере маршрутизаторов ESR-1 и ESR-2 со следующими параметрами:
- соседство устанавливается с каждым маршрутизатором в кластере индивидуально;
- клиентская подсеть: 192.0.2.0/24;
- анонсирование подсетей, подключенных напрямую;
- собственная AS 2500;
- соседство для ESR-1 – подсеть 203.0.113.0/30, IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, AS3000;
- соседство для ESR-2 – подсеть 203.0.113.4/30, IP-адрес для подключения 203.0.113.5, IP-адрес соседа 203.0.113.6, AS3500.
Рисунок 8 — Схема реализации eBGP с каждым участником кластера по индивидуальным IP-адресам
Исходные конфигурации маршрутизаторов в кластере:
cluster
cluster-interface bridge 1
unit 1
mac-address cc:9d:a2:71:83:78
exit
unit 2
mac-address cc:9d:a2:71:82:38
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone LAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1.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/1.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/2
mode switchport
spanning-tree disable
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.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/1.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/2
mode switchport
spanning-tree disable
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 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
Решение:
Сконфигурируем необходимые сетевые интерфейсы:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# ip address 203.0.113.1/30 ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# ip address 203.0.113.5/30 ESR-1(config-if-gi)# exit
Сконфигурируем зону безопасности WAN, настроем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN, а также разрешим прохождение трафика из зоны LAN в зону WAN:
ESR-1(config)# object-group service og_bgp ESR-1(config-object-group-service)# port-range 179 ESR-1(config-object-group-service)# exit ESR-1(config)# security zone WAN ESR-1(config-security-zone)# exit ESR-1(config)# security zone-pair WAN self ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# match protocol icmp ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# rule 2 ESR-1(config-security-zone-pair-rule)# match protocol tcp ESR-1(config-security-zone-pair-rule)# match destination-port object-group og_bgp ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit ESR-1(config)# security zone-pair LAN WAN ESR-1(config-security-zone-pair)# rule 1 ESR-1(config-security-zone-pair-rule)# action permit ESR-1(config-security-zone-pair-rule)# enable ESR-1(config-security-zone-pair-rule)# exit ESR-1(config-security-zone-pair)# exit
И укажем принадлежность интерфейсов к зоне безопасности:
ESR-1(config)# interface gigabitethernet 1/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# exit ESR-1(config)# interface gigabitethernet 2/0/1 ESR-1(config-if-gi)# security-zone WAN ESR-1(config-if-gi)# exit
Создадим 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 20 track 1 ESR-1(config-route-map-rule)# action permit ESR-1(config-route-map-rule)# exit ESR-1(config-route-map)# exit
Создадим BGP процесс для AS 2500 для ESR-1 и войдем в режим конфигурирования параметров процесса:
ESR-1(config)# router bgp 2500 unit 1
Сконфигурируем анонсирование подсетей, подключенных напрямую:
ESR-1(config-bgp)# address-family ipv4 unicast ESR-1(config-bgp-af)# redistribute connected ESR-1(config-bgp-af)# exit
Создадим eBGP с вышестоящим роутером:
ESR-1(config-bgp)# neighbor 203.0.113.2 ESR-1(config-bgp-neighbor)# remote-as 3000 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 2500 для ESR-2 и войдем в режим конфигурирования параметров процесса:
ESR-1(config)# router bgp 2500 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 3500 ESR-1(config-bgp-neighbor)# update-source 203.0.113.5
И включим обмен IPv4-маршрутами:
ESR-1(config-bgp-neighbor)# address-family ipv4 unicast ESR-1(config-bgp-neighbor-af)# route-map bgp-out out ESR-1(config-bgp-neighbor-af)# enable ESR-1(config-bgp-neighbor-af)# exit
Включим работу протокола:
ESR-1(config-bgp-neighbor)# enable ESR-1(config-bgp-neighbor)# exit ESR-1(config-bgp)# enable ESR-1(config-bgp)# exit
Применим конфигурацию на 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: 3000
Neighbor ID: 8.8.8.8
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 203.0.113.1
Weight: 0
Hold timer: 120/180
Keepalive timer: 49/60
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Outgoing route-map: bgp-out
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:03:40
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: 3500
Neighbor ID: 8.8.8.8
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 203.0.113.5
Weight: 0
Hold timer: 138/180
Keepalive timer: 56/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:42
Таблицу маршрутов протокола 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 -- -- -- 2500 ?
* u 192.0.2.0/24 203.0.113.1 -- -- -- 2500 ?
*> u 203.0.113.0/30 203.0.113.1 -- -- -- 2500 ?
ESR-1# show bgp ipv4 unicast neighbor 203.0.113.2 routes
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
* - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> u 0.0.0.0/0 203.0.113.2 -- 100 0 3000 ?
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 -- -- -- 2500 20 ?
*> u 203.0.113.4/30 203.0.113.5 -- -- -- 2500 20 ?
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 3500 ?
Настройка 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-адрес — 150.115.0.5;
SPOKE-1 внешний IP-адрес — 180.100.0.10;
SPOKE-2 внешний IP-адрес — 140.114.0.4.
Параметры IPsec VPN:
IKE:
- группа Диффи-Хэллмана: 19;
- алгоритм шифрования: AES256;
- алгоритм аутентификации: SHA2-256.
IPsec:
- группа Диффи-Хэллмана: 19;
- алгоритм шифрования: AES256;
- алгоритм аутентификации: SHA2-256.
Рисунок 9 — Схема реализации 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.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/1.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/2
mode switchport
spanning-tree disable
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.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/1.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/2
mode switchport
spanning-tree disable
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/1.100
outbound interface gigabitethernet 1/0/1.200
outbound interface gigabitethernet 2/0/1.200
outbound interface gigabitethernet 2/0/1.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
Решение:
- Конфигурирование HUB
Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:
HUB-1(config)# security zone DMVPN_C_ONE HUB-1(config-security-zone)# exit HUB-1(config)# security zone DMVPN_C_TWO HUB-1(config-security-zone)# exit HUB-1(config)# tunnel gre 1 HUB-1(config-gre)# key 1000 HUB-1(config-gre)# ttl 64 HUB-1(config-gre)# mtu 1400 HUB-1(config-gre)# multipoint HUB-1(config-gre)# security-zone DMVPN_C_ONE HUB-1(config-gre)# local address 198.51.100.2 HUB-1(config-gre)# 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 3 HUB-1(config-ike-gw)# dead-peer-detection retransmit timeout 1 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 3 HUB-1(config-ike-gw)# dead-peer-detection retransmit timeout 1 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)# 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)# 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
- Конфигурирование SPOKE-1
Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:
SPOKE-1(config)# security zone DMVPN_C_TWO SPOKE-1(config-security-zone)# exit SPOKE-1(config)# security zone DMVPN_C_ONE SPOKE-1(config-security-zone)# exit SPOKE-1(config)# tunnel gre 1 SPOKE-1(config-gre)# key 1000 SPOKE-1(config-gre)# ttl 64 SPOKE-1(config-gre)# mtu 1400 SPOKE-1(config-gre)# multipoint SPOKE-1(config-gre)# security-zone DMVPN_C_ONE SPOKE-1(config-gre)# local address 198.51.100.10 SPOKE-1(config-gre)# ip address 203.0.113.2/25 SPOKE-1(config-gre)# ip tcp adjust-mss 1360 SPOKE-1(config-gre)# ip nhrp holding-time 60 SPOKE-1(config-gre)# ip nhrp shortcut SPOKE-1(config-gre)# ip nhrp map 203.0.113.1 198.51.100.2 SPOKE-1(config-gre)# ip nhrp nhs 203.0.113.1 SPOKE-1(config-gre)# ip nhrp multicast nhs SPOKE-1(config-gre)# ip nhrp enable SPOKE-1(config-gre)# enable SPOKE-1(config-gre)# exit SPOKE-1(config)# tunnel gre 2 SPOKE-1(config-gre)# key 2000 SPOKE-1(config-gre)# ttl 64 SPOKE-1(config-gre)# mtu 1400 SPOKE-1(config-gre)# multipoint SPOKE-1(config-gre)# security-zone DMVPN_C_TWO SPOKE-1(config-gre)# local address 198.51.100.10 SPOKE-1(config-gre)# ip address 203.0.113.130/25 SPOKE-1(config-gre)# ip tcp adjust-mss 1360 SPOKE-1(config-gre)# ip nhrp holding-time 60 SPOKE-1(config-gre)# ip nhrp shortcut SPOKE-1(config-gre)# ip nhrp map 203.0.113.129 198.51.100.6 SPOKE-1(config-gre)# ip nhrp nhs 203.0.113.129 SPOKE-1(config-gre)# ip nhrp multicast nhs SPOKE-1(config-gre)# ip nhrp enable SPOKE-1(config-gre)# enable SPOKE-1(config-gre)# exit
Произведём настройку протокола динамической маршрутизации для 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 3 SPOKE-1(config-ike-gw)# dead-peer-detection retransmit timeout 1 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 3 SPOKE-1(config-ike-gw)# dead-peer-detection retransmit timeout 1 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 3 SPOKE-1(config-ike-gw)# dead-peer-detection retransmit timeout 1 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
- Конфигурирование SPOKE-2
Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:
SPOKE-2(config)# security zone DMVPN_C_TWO SPOKE-2(config-security-zone)# exit SPOKE-2(config)# security zone DMVPN_C_ONE SPOKE-2(config-security-zone)# exit SPOKE-2(config)# tunnel gre 1 SPOKE-2(config-gre)# key 1000 SPOKE-2(config-gre)# ttl 64 SPOKE-2(config-gre)# mtu 1400 SPOKE-2(config-gre)# multipoint SPOKE-2(config-gre)# security-zone DMVPN_C_ONE SPOKE-2(config-gre)# local address 198.51.100.14 SPOKE-2(config-gre)# 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 3 SPOKE-2(config-ike-gw)# dead-peer-detection retransmit timeout 1 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 3 SPOKE-2(config-ike-gw)# dead-peer-detection retransmit timeout 1 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 3 SPOKE-2(config-ike-gw)# dead-peer-detection retransmit timeout 1 SPOKE-2(config-ike-gw)# dead-peer-detection retransmit tries 2 SPOKE-2(config-ike-gw)# exit
Затем настроим IPsec proposal, IPsec policy и IPsec vpn туннели через каждый CLOUD:
SPOKE-2(config)# security ipsec proposal ipsec_proposal SPOKE-2(config-ipsec-proposal)# authentication algorithm sha2-256 SPOKE-2(config-ipsec-proposal)# encryption algorithm aes256 SPOKE-2(config-ipsec-proposal)# pfs dh-group 19 SPOKE-2(config-ipsec-proposal)# exit SPOKE-2(config)# security ipsec policy ipsec_policy SPOKE-2(config-ipsec-policy)# proposal ipsec_proposal SPOKE-2(config-ipsec-policy)# exit SPOKE-2(config)# security ipsec vpn ipsec_dynamic_to_spoke SPOKE-2(config-ipsec-vpn)# type transport SPOKE-2(config-ipsec-vpn)# ike establish-tunnel route SPOKE-2(config-ipsec-vpn)# ike gateway ike_gateway_to_spokes SPOKE-2(config-ipsec-vpn)# ike ipsec-policy ipsec_policy SPOKE-2(config-ipsec-vpn)# enable SPOKE-2(config-ipsec-vpn)# exit SPOKE-2(config)# security ipsec vpn ipsec_static_cloud_one SPOKE-2(config-ipsec-vpn)# type transport SPOKE-2(config-ipsec-vpn)# ike establish-tunnel route SPOKE-2(config-ipsec-vpn)# ike gateway ike_gateway_cloud_one SPOKE-2(config-ipsec-vpn)# ike ipsec-policy ipsec_policy SPOKE-2(config-ipsec-vpn)# enable SPOKE-2(config-ipsec-vpn)# exit SPOKE-2(config)# security ipsec vpn ipsec_static_cloud_two SPOKE-2(config-ipsec-vpn)# type transport SPOKE-2(config-ipsec-vpn)# ike establish-tunnel route SPOKE-2(config-ipsec-vpn)# ike gateway ike_gateway_cloud_two SPOKE-2(config-ipsec-vpn)# ike ipsec-policy ipsec_policy SPOKE-2(config-ipsec-vpn)# enable SPOKE-2(config-ipsec-vpn)# exit
Подкорректируем правила зоны безопасности WAN необходимо разрешить протоколы для GRE over IPSec-туннеля.
SPOKE-2(config)# object-group service ISAKMP_PORT SPOKE-2(config-object-group-service)# port-range 500 SPOKE-2(config-object-group-service)# port-range 4500 SPOKE-2(config-object-group-service)# exit SPOKE-2(config)# security zone-pair WAN self SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol udp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group ISAKMP_PORT SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 2 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol esp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 3 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol gre SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit
Настроим правила зон безопасности DMVPN_C_ONE и DMVPN_C_TWO, разрешим прохождение трафика для протоколов BGP, BFD, ICMP.
SPOKE-2(config)# object-group service BGP SPOKE-2(config-object-group-service)# port-range 179 SPOKE-2(config-object-group-service)# exit SPOKE-2(config)# object-group service BFD SPOKE-2(config-object-group-service)# port-range 3784 SPOKE-2(config-object-group-service)# exit SPOKE-2(config)# security zone-pair DMVPN_C_ONE self SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol icmp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 2 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol tcp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BGP SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 3 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol udp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BFD SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit SPOKE-2(config)# security zone-pair DMVPN_C_TWO self SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol icmp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 2 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol tcp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BGP SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 3 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol udp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BFD SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit
Подкорректируем правила зоны безопасности LAN, разрешим прохождение трафика между зонами LAN и DMVPN_C_ONE/DMVPN_C_TWO.
SPOKE-2(config)# security zone-pair LAN DMVPN_C_ONE SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit SPOKE-2(config)# security zone-pair LAN DMVPN_C_TWO SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit SPOKE-2(config)# security zone-pair DMVPN_C_ONE LAN SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol icmp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit SPOKE-2(config)# security zone-pair DMVPN_C_TWO LAN SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol icmp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit
Проверка работы:
Состояние IPsec-туннелей можно посмотреть командой:
HUB-1# show security ipsec vpn status Name Local host Remote host Initiator spi Responder spi State ------------------------------- --------------- --------------- ------------------ ------------------ ----------- ipsec_dynamic_cloud_one 198.51.100.2 198.51.100.14 0x22d11891e06edf92 0x40469d552e93e47c Established ipsec_dynamic_cloud_two 198.51.100.6 198.51.100.14 0x61f7a205eeef5d06 0x141239e7309d351c Established ipsec_dynamic_cloud_one 198.51.100.2 198.51.100.10 0x3dbf984518584d5e 0x08563e2683776071 Established ipsec_dynamic_cloud_two 198.51.100.6 198.51.100.10 0x500adbe8428c7d35 0x9c83c7a2255cb0ed Established
SPOKE-1# show security ipsec vpn status Name Local host Remote host Initiator spi Responder spi State ------------------------------- --------------- --------------- ------------------ ------------------ ----------- ipsec_static_cloud_one 198.51.100.10 198.51.100.2 0x3dbf984518584d5e 0x08563e2683776071 Established ipsec_static_cloud_two 198.51.100.10 198.51.100.6 0x500adbe8428c7d35 0x9c83c7a2255cb0ed Established
SPOKE-2# show security ipsec vpn status Name Local host Remote host Initiator spi Responder spi State ------------------------------- --------------- --------------- ------------------ ------------------ ----------- ipsec_static_cloud_one 198.51.100.14 198.51.100.2 0x22d11891e06edf92 0x40469d552e93e47c Established ipsec_static_cloud_two 198.51.100.14 198.51.100.6 0x61f7a205eeef5d06 0x141239e7309d351c Established
Состояние NHRP-записей можно посмотреть командой:
HUB-1# show ip nhrp peers
Flags: E - unique, R - nhs, U - used, L - lower-up
C - connected, G - group, Q - qos, N - nat
P - protected, I - Redirect-ignored, X - undefined
Tunnel address NBMA address Tunnel Expire Created Type Flags
(h:m:s) (d,h:m:s)
-------------------- ---------------- --------- --------- -------------- --------------- ----------
203.0.113.2 198.51.100.10 gre 1 00:00:51 00,00:04:41 dynamic LCP
203.0.113.3 198.51.100.14 gre 1 00:00:48 00,00:04:44 dynamic LCP
203.0.113.130 198.51.100.10 gre 2 00:00:51 00,00:04:41 dynamic LCP
203.0.113.131 198.51.100.14 gre 2 00:00:48 00,00:04:44 dynamic LCP
SPOKE-1# show ip nhrp peers
Flags: E - unique, R - nhs, U - used, L - lower-up
C - connected, G - group, Q - qos, N - nat
P - protected, I - Redirect-ignored, X - undefined
Tunnel address NBMA address Tunnel Expire Created Type Flags
(h:m:s) (d,h:m:s)
-------------------- ---------------- --------- --------- -------------- --------------- ----------
203.0.113.1 198.51.100.2 gre 1 -- 00,00:00:13 static RULCP
203.0.113.129 198.51.100.6 gre 2 -- 00,00:00:13 static RULCP
SPOKE-2# show ip nhrp peers
Flags: E - unique, R - nhs, U - used, L - lower-up
C - connected, G - group, Q - qos, N - nat
P - protected, I - Redirect-ignored, X - undefined
Tunnel address NBMA address Tunnel Expire Created Type Flags
(h:m:s) (d,h:m:s)
-------------------- ---------------- --------- --------- -------------- --------------- ----------
203.0.113.1 198.51.100.2 gre 1 -- 00,00:00:16 static RULCP
203.0.113.129 198.51.100.6 gre 2 -- 00,00:00:16 static RULCP








