...
| Блок кода |
|---|
ESR-2# show bgp neighbors
BGP neighbor is 203.0.113.2
BGP state: Active
Type: Static neighbor
Neighbor address: 203.0.113.1
Neighbor AS: 64501
Connect delay: 2/5
Last error: Socket: Network is unreachable |
| Scroll Pagebreak |
|---|
Таблицу маршрутов протокола BGP можно просмотреть с помощью команды:
...
| Примечание |
|---|
В случае выхода из строя Active-устройства BGP будет полностью переустанавливаться со Standby-устройством. |
| Scroll Pagebreak |
|---|
Пример настройки eBGP настройки eBGP с каждым участником кластера по индивидуальным IP-адресам
...
- соседство устанавливается с каждым маршрутизатором в кластере индивидуально;
- клиентская подсеть: 192.0.2.0/24;
- анонсирование подсетей, подключенных напрямую;
- собственная AS 64500;
- соседство для ESR-1 – подсеть 203.0.113.0/30, IP-адрес для подключения 203.0.113.1, IP-адрес соседа 203.0.113.2, 64501;
- соседство для ESR-2 – подсеть 203.0.113.4/30, IP-адрес для подключения 203.0.113.5, IP-адрес соседа 203.0.113.6, 64502.
Схема реализации eBGP с каждым участником кластера по индивидуальным IP-адресам
Исходные конфигурации маршрутизаторов в кластере:
| Блок кода | ||
|---|---|---|
| ||
cluster
cluster-interface bridge 1
unit 1
mac-address a2:00:00:10:c0:00
exit
unit 2
mac-address a2:00:00:10:d0:00
exit
enable
exit
hostname ESR-1 unit 1
hostname ESR-2 unit 2
security zone SYNC
exit
security zone LAN
exit
security zone WAN
exit
bridge 1
vlan 1
security-zone SYNC
ip address 198.51.100.254/24 unit 1
ip address 198.51.100.253/24 unit 2
vrrp id 1
vrrp ip 198.51.100.1/24
vrrp group 1
vrrp authentication key ascii-text encrypted 88B11079B51D
vrrp authentication algorithm md5
vrrp
enable
exit
interface gigabitethernet 1/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 1/0/2
security-zone LAN
ip address 192.0.2.254/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 1/0/3
security-zone WAN
ip address 203.0.113.1/30
exit
interface gigabitethernet 2/0/1
mode switchport
spanning-tree disable
exit
interface gigabitethernet 2/0/2
security-zone LAN
ip address 192.0.2.253/24
vrrp id 2
vrrp ip 192.0.2.1/24
vrrp group 1
vrrp
exit
interface gigabitethernet 2/0/3
security-zone WAN
ip address 203.0.113.5/30
exit
security zone-pair SYNC self
rule 1
action permit
match protocol icmp
enable
exit
rule 2
action permit
match protocol vrrp
enable
exit
rule 3
action permit
match protocol ah
enable
exit
exit
security zone-pair LAN self
rule 1
action permit
match protocol vrrp
enable
exit
rule 2
action permit
match protocol ah
enable
exit
exit
security zone-pair WAN self
rule 1
action permit
match protocol vrrp
enable
exit
exit |
| Scroll Pagebreak |
|---|
Решение:
Настроем firewall для приема маршрутизатором BGP-трафика из зоны безопасности WAN:
...
| Блок кода |
|---|
ESR-1(config-bgp)# neighbor 203.0.113.2 ESR-1(config-bgp-neighbor)# remote-as 64501 ESR-1(config-bgp-neighbor)# update-source 203.0.113.1 |
| Scroll Pagebreak |
|---|
И включим обмен IPv4-маршрутами:
...
Применим конфигурацию на Active-устройстве.
| Scroll Pagebreak |
|---|
Информацию о BGP-пирах можно посмотреть командой:
...
| Блок кода |
|---|
ESR-2# show bgp neighbors
BGP neighbor is 203.0.113.6
BGP state: Established
Type: Static neighbor
Neighbor address: 203.0.113.6
Neighbor AS: 64502
Neighbor ID: 203.0.113.6
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 203.0.113.5
Weight: 0
Hold timer: 144/180
Keepalive timer: 29/60
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Outgoing route-map: bgp-out
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:00:20 |
| Scroll Pagebreak |
|---|
Таблицу маршрутов протокола BGP можно просмотреть с помощью команды:
...
Пример настройки в кластере DMVPN Single Hub Dual Cloud схемы
Задача:
Организовать DMVPN между офисами компании, используя mGRE-туннели, NHRP (Next Hop Resolution Protocol), протокол динамической маршрутизации (BGP), IPsec. В данном примере будет HUB-маршрутизатор, который находится в кластере, и два филиала. HUB – это DMVPN-cервер (NHS), а филиалы – DMPVN-клиенты (NHC).
...
- группа Диффи-Хэллмана: 19;
- алгоритм шифрования: AES256;
- алгоритм аутентификации: SHA2-256.
Схема реализации DMVPN Single Hub Dual Cloud в кластере
Исходная конфигурация CLUSTER-HUB:
...
| Блок кода | ||
|---|---|---|
| ||
hostname SPOKE-2 security zone LAN exit security zone WAN exit interface gigabitethernet 1/0/1 security-zone WAN ip address 198.51.100.14/30 exit interface gigabitethernet 1/0/2 security-zone LAN ip address 128.66.2.1/24 exit ip route 198.51.100.0/30 198.51.100.13 ip route 198.51.100.4/30 198.51.100.13 ip route 198.51.100.8/30 198.51.100.13 |
| Scroll Pagebreak |
|---|
Решение:
- Конфигурирование HUB
Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:
| Блок кода |
|---|
HUB-1(config)# security zone DMVPN_C_ONE HUB-1(config-security-zone)# exit HUB-1(config)# security zone DMVPN_C_TWO HUB-1(config-security-zone)# exit HUB-1(config)# tunnel gre 1 HUB-1(config-gre)# key 1000 HUB-1(config-gre)# ttl 64 HUB-1(config-gre)# mtu 1400 HUB-1(config-gre)# multipoint HUB-1(config-gre)# security-zone DMVPN_C_ONE HUB-1(config-gre)# local address 198.51.100.2 HUB-1(config-gre)# 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 |
| Scroll Pagebreak |
|---|
Произведём настройку протокола динамической маршрутизации для Hub. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей.
...
| Блок кода |
|---|
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 |
| Scroll Pagebreak |
|---|
Произведём настройку 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 |
Scroll Pagebreak
Затем настроим IPsec proposal, IPsec policy и IPsec vpn туннели через каждый CLOUD:
| Блок кода |
|---|
HUB-1(config)# security ipsec proposal ipsec_proposal HUB-1(config-ipsec-proposal)# authentication algorithm sha2-256 HUB-1(config-ipsec-proposal)# encryption algorithm aes256 HUB-1(config-ipsec-proposal)# pfs dh-group 19 HUB-1(config-ipsec-proposal)# exit HUB-1(config)# security ipsec policy ipsec_policy HUB-1(config-ipsec-policy)# proposal ipsec_proposal HUB-1(config-ipsec-policy)# exit HUB-1(config)# security ipsec vpn ipsec_dynamic_cloud_one HUB-1(config-ipsec-vpn)# type transport HUB-1(config-ipsec-vpn)# ike establish-tunnel route HUB-1(config-ipsec-vpn)# ike gateway ike_gateway_cloud_one HUB-1(config-ipsec-vpn)# ike ipsec-policy ipsec_policy HUB-1(config-ipsec-vpn)# enable HUB-1(config-ipsec-vpn)# exit HUB-1(config)# security ipsec vpn ipsec_dynamic_cloud_two HUB-1(config-ipsec-vpn)# type transport HUB-1(config-ipsec-vpn)# ike establish-tunnel route HUB-1(config-ipsec-vpn)# ike gateway ike_gateway_cloud_two HUB-1(config-ipsec-vpn)# ike ipsec-policy ipsec_policy HUB-1(config-ipsec-vpn)# enable HUB-1(config-ipsec-vpn)# exit |
| Scroll Pagebreak |
|---|
Скорректируем правила зоны безопасности WAN,разрешим разрешим протоколы для GRE over IPSec-туннеля:
| Блок кода |
|---|
HUB-1(config)# object-group service ISAKMP_PORT HUB-1(config-object-group-service)# port-range 500 HUB-1(config-object-group-service)# port-range 4500 HUB-1(config-object-group-service)# exit HUB-1(config)# security zone-pair WAN self HUB-1(config-security-zone-pair)# rule 3 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol udp HUB-1(config-security-zone-pair-rule)# match destination-port object-group ISAKMP_PORT HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# rule 4 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol esp HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# rule 5 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol gre HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Настроим правила зон безопасности DMVPN_C_ONE и DMVPN_C_TWO, разрешим прохождение трафика для протоколов BGP, BFD, ICMP:
| Блок кода |
|---|
HUB-1(config)# object-group service BGP HUB-1(config-object-group-service)# port-range 179 HUB-1(config-object-group-service)# exit HUB-1(config)# object-group service BFD HUB-1(config-object-group-service)# port-range 3784 HUB-1(config-object-group-service)# exit HUB-1(config)# security zone-pair DMVPN_C_ONE self HUB-1(config-security-zone-pair)# rule 1 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol icmp HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# rule 2 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol tcp HUB-1(config-security-zone-pair-rule)# match destination-port object-group BGP HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# rule 3 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol udp HUB-1(config-security-zone-pair-rule)# match destination-port object-group BFD HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# exit HUB-1(config)# security zone-pair DMVPN_C_TWO self HUB-1(config-security-zone-pair)# rule 1 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol icmp HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# rule 2 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol tcp HUB-1(config-security-zone-pair-rule)# match destination-port object-group BGP HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# rule 3 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# match protocol udp HUB-1(config-security-zone-pair-rule)# match destination-port object-group BFD HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Скорректируем правила зоны безопасности LAN, разрешим прохождение трафика между зонами LAN и DMVPN_C_ONE/DMVPN_C_TWO:
| Блок кода |
|---|
HUB-1(config)# security zone-pair LAN DMVPN_C_ONE HUB-1(config-security-zone-pair)# rule 1 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# exit HUB-1(config)# security zone-pair LAN DMVPN_C_TWO HUB-1(config-security-zone-pair)# rule 1 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# exit HUB-1(config)# security zone-pair DMVPN_C_ONE LAN HUB-1(config-security-zone-pair)# rule 1 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# exit HUB-1(config)# security zone-pair DMVPN_C_TWO LAN HUB-1(config-security-zone-pair)# rule 1 HUB-1(config-security-zone-pair-rule)# action permit HUB-1(config-security-zone-pair-rule)# enable HUB-1(config-security-zone-pair-rule)# exit HUB-1(config-security-zone-pair)# exit |
Scroll Pagebreak
- Конфигурирование SPOKE-1
Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:
| Блок кода |
|---|
SPOKE-1(config)# security zone DMVPN_C_TWO SPOKE-1(config-security-zone)# exit SPOKE-1(config)# security zone DMVPN_C_ONE SPOKE-1(config-security-zone)# exit SPOKE-1(config)# tunnel gre 1 SPOKE-1(config-gre)# key 1000 SPOKE-1(config-gre)# ttl 64 SPOKE-1(config-gre)# mtu 1400 SPOKE-1(config-gre)# multipoint SPOKE-1(config-gre)# security-zone DMVPN_C_ONE SPOKE-1(config-gre)# local address 198.51.100.10 SPOKE-1(config-gre)# ip address 203.0.113.2/25 SPOKE-1(config-gre)# ip tcp adjust-mss 1360 SPOKE-1(config-gre)# ip nhrp holding-time 60 SPOKE-1(config-gre)# ip nhrp shortcut SPOKE-1(config-gre)# ip nhrp map 203.0.113.1 198.51.100.2 SPOKE-1(config-gre)# ip nhrp nhs 203.0.113.1 SPOKE-1(config-gre)# ip nhrp multicast nhs SPOKE-1(config-gre)# ip nhrp enable SPOKE-1(config-gre)# enable SPOKE-1(config-gre)# exit SPOKE-1(config)# tunnel gre 2 SPOKE-1(config-gre)# key 2000 SPOKE-1(config-gre)# ttl 64 SPOKE-1(config-gre)# mtu 1400 SPOKE-1(config-gre)# multipoint SPOKE-1(config-gre)# security-zone DMVPN_C_TWO SPOKE-1(config-gre)# local address 198.51.100.10 SPOKE-1(config-gre)# ip address 203.0.113.130/25 SPOKE-1(config-gre)# ip tcp adjust-mss 1360 SPOKE-1(config-gre)# ip nhrp holding-time 60 SPOKE-1(config-gre)# ip nhrp shortcut SPOKE-1(config-gre)# ip nhrp map 203.0.113.129 198.51.100.6 SPOKE-1(config-gre)# ip nhrp nhs 203.0.113.129 SPOKE-1(config-gre)# ip nhrp multicast nhs SPOKE-1(config-gre)# ip nhrp enable SPOKE-1(config-gre)# enable SPOKE-1(config-gre)# exit |
| Scroll Pagebreak |
|---|
Произведём настройку протокола динамической маршрутизации для SPOKE-1. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей. Анонсируем LAN подсети в сторону HUB используя network в address-family.
...
| Блок кода |
|---|
SPOKE-1(config)# route-map DMVPN_BGP_OUT SPOKE-1(config-route-map)# rule 1 SPOKE-1(config-route-map-rule)# exit SPOKE-1(config-route-map)# exit SPOKE-1(config)# router bgp 64501 SPOKE-1(config-bgp)# timers error-wait 5 10 SPOKE-1(config-bgp)# neighbor 203.0.113.1 SPOKE-1(config-bgp-neighbor)# remote-as 64500 SPOKE-1(config-bgp-neighbor)# allow-local-as 10 SPOKE-1(config-bgp-neighbor)# update-source 203.0.113.2 SPOKE-1(config-bgp-neighbor)# fall-over bfd SPOKE-1(config-bgp-neighbor)# address-family ipv4 unicast SPOKE-1(config-bgp-neighbor-af)# route-map DMVPN_BGP_OUT out SPOKE-1(config-bgp-neighbor-af)# enable SPOKE-1(config-bgp-neighbor-af)# exit SPOKE-1(config-bgp-neighbor)# enable SPOKE-1(config-bgp-neighbor)# exit SPOKE-1(config-bgp)# neighbor 203.0.113.129 SPOKE-1(config-bgp-neighbor)# remote-as 64500 SPOKE-1(config-bgp-neighbor)# allow-local-as 10 SPOKE-1(config-bgp-neighbor)# update-source 203.0.113.130 SPOKE-1(config-bgp-neighbor)# fall-over bfd SPOKE-1(config-bgp-neighbor)# address-family ipv4 unicast SPOKE-1(config-bgp-neighbor-af)# route-map DMVPN_BGP_OUT out SPOKE-1(config-bgp-neighbor-af)# enable SPOKE-1(config-bgp-neighbor-af)# exit SPOKE-1(config-bgp-neighbor)# enable SPOKE-1(config-bgp-neighbor)# exit SPOKE-1(config-bgp)# address-family ipv4 unicast SPOKE-1(config-bgp-af)# network 128.66.1.0/24 SPOKE-1(config-bgp-af)# exit SPOKE-1(config-bgp)# enable SPOKE-1(config-bgp)# exit |
| Scroll Pagebreak |
|---|
Произведём настройку IPsec для SPOKE-1, настроим ike proposal, ike policy и ike gateway. В ike gateway дополнительно настроим dpd для ускорения перестроения туннелей, в случае если выйдет из строя Active-устройство:
| Блок кода |
|---|
SPOKE-1(config)# security ike proposal ike_proposal SPOKE-1(config-ike-proposal)# authentication algorithm sha2-256 SPOKE-1(config-ike-proposal)# encryption algorithm aes256 SPOKE-1(config-ike-proposal)# dh-group 19 SPOKE-1(config-ike-proposal)# exit SPOKE-1(config)# security ike policy ike_policy SPOKE-1(config-ike-policy)# pre-shared-key ascii-text encrypted 8CB5107EA7005AFF SPOKE-1(config-ike-policy)# proposal ike_proposal SPOKE-1(config-ike-policy)# exit SPOKE-1(config)# security ike gateway ike_gateway_cloud_one SPOKE-1(config-ike-gw)# version v2-only SPOKE-1(config-ike-gw)# ike-policy ike_policy SPOKE-1(config-ike-gw)# local address 198.51.100.10 SPOKE-1(config-ike-gw)# local network 198.51.100.10/32 protocol gre SPOKE-1(config-ike-gw)# remote address 198.51.100.2 SPOKE-1(config-ike-gw)# remote network 198.51.100.2/32 protocol gre SPOKE-1(config-ike-gw)# mode policy-based SPOKE-1(config-ike-gw)# mobike disable SPOKE-1(config-ike-gw)# dead-peer-detection action clear SPOKE-1(config-ike-gw)# dead-peer-detection interval 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 |
Scroll Pagebreak
Затем настроим IPsec proposal, IPsec policy и IPsec vpn туннели через каждый CLOUD:
...
Скорректируем правила зоны безопасности WAN, разрешим протоколы для GRE over IPSec-туннеля:
| Блок кода |
|---|
SPOKE-1(config)# object-group service ISAKMP_PORT SPOKE-1(config-object-group-service)# port-range 500 SPOKE-1(config-object-group-service)# port-range 4500 SPOKE-1(config-object-group-service)# exit SPOKE-1(config)# security zone-pair WAN self SPOKE-1(config-security-zone-pair)# rule 1 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol udp SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group ISAKMP_PORT SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# rule 2 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol esp SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# rule 3 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol gre SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Настроим правила зон безопасности DMVPN_C_ONE и DMVPN_C_TWO, разрешим прохождение трафика для протоколов BGP, BFD, ICMP:
| Блок кода |
|---|
SPOKE-1(config)# object-group service BGP SPOKE-1(config-object-group-service)# port-range 179 SPOKE-1(config-object-group-service)# exit SPOKE-1(config)# object-group service BFD SPOKE-1(config-object-group-service)# port-range 3784 SPOKE-1(config-object-group-service)# exit SPOKE-1(config)# security zone-pair DMVPN_C_ONE self SPOKE-1(config-security-zone-pair)# rule 1 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol icmp SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# rule 2 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol tcp SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BGP SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# rule 3 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol udp SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BFD SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# exit SPOKE-1(config)# security zone-pair DMVPN_C_TWO self SPOKE-1(config-security-zone-pair)# rule 1 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol icmp SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# rule 2 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol tcp SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BGP SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# rule 3 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol udp SPOKE-1(config-security-zone-pair-rule)# match destination-port object-group BFD SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Скорректируем правила зоны безопасности LAN, разрешим прохождение трафика между зонами LAN и DMVPN_C_ONE/DMVPN_C_TWO:
| Блок кода |
|---|
SPOKE-1(config)# security zone-pair LAN DMVPN_C_ONE SPOKE-1(config-security-zone-pair)# rule 1 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# exit SPOKE-1(config)# security zone-pair LAN DMVPN_C_TWO SPOKE-1(config-security-zone-pair)# rule 1 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# exit SPOKE-1(config)# security zone-pair DMVPN_C_ONE LAN SPOKE-1(config-security-zone-pair)# rule 1 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol icmp SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# exit SPOKE-1(config)# security zone-pair DMVPN_C_TWO LAN SPOKE-1(config-security-zone-pair)# rule 1 SPOKE-1(config-security-zone-pair-rule)# action permit SPOKE-1(config-security-zone-pair-rule)# match protocol icmp SPOKE-1(config-security-zone-pair-rule)# enable SPOKE-1(config-security-zone-pair-rule)# exit SPOKE-1(config-security-zone-pair)# exit |
Scroll Pagebreak
- Конфигурирование SPOKE-2
Создадим туннели mGRE, каждый через свой CLOUD, определим принадлежность к зоне безопасности, настроим NHRP и включим туннель и NHRP командой enable:
| Блок кода |
|---|
SPOKE-2(config)# security zone DMVPN_C_TWO SPOKE-2(config-security-zone)# exit SPOKE-2(config)# security zone DMVPN_C_ONE SPOKE-2(config-security-zone)# exit SPOKE-2(config)# tunnel gre 1 SPOKE-2(config-gre)# key 1000 SPOKE-2(config-gre)# ttl 64 SPOKE-2(config-gre)# mtu 1400 SPOKE-2(config-gre)# multipoint SPOKE-2(config-gre)# security-zone DMVPN_C_ONE SPOKE-2(config-gre)# local address 198.51.100.14 SPOKE-2(config-gre)# 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 |
| Scroll Pagebreak |
|---|
Произведём настройку протокола динамической маршрутизации для SPOKE-1. В примере это будет eBGP, для которого необходимо явно разрешить анонсирование подсетей. Анонсируем LAN подсети в сторону HUB используя network в address-family.
...
| Блок кода |
|---|
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 |
| Scroll Pagebreak |
|---|
Произведём настройку IPsec для SPOKE-1, настроим ike proposal, ike policy и ike gateway. В ike gateway дополнительно настроим dpd, для ускорения перестроения туннелей в случае если выйдет из строя Active-устройство:
| Блок кода |
|---|
SPOKE-2(config)# security ike proposal ike_proposal SPOKE-2(config-ike-proposal)# authentication algorithm sha2-256 SPOKE-2(config-ike-proposal)# encryption algorithm aes256 SPOKE-2(config-ike-proposal)# dh-group 19 SPOKE-2(config-ike-proposal)# exit SPOKE-2(config)# security ike policy ike_policy SPOKE-2(config-ike-policy)# pre-shared-key ascii-text encrypted 8CB5107EA7005AFF SPOKE-2(config-ike-policy)# proposal ike_proposal SPOKE-2(config-ike-policy)# exit SPOKE-2(config)# security ike gateway ike_gateway_cloud_one SPOKE-2(config-ike-gw)# version v2-only SPOKE-2(config-ike-gw)# ike-policy ike_policy SPOKE-2(config-ike-gw)# local address 198.51.100.14 SPOKE-2(config-ike-gw)# local network 198.51.100.14/32 protocol gre SPOKE-2(config-ike-gw)# remote address 198.51.100.2 SPOKE-2(config-ike-gw)# remote network 198.51.100.2/32 protocol gre SPOKE-2(config-ike-gw)# mode policy-based SPOKE-2(config-ike-gw)# mobike disable SPOKE-2(config-ike-gw)# dead-peer-detection action clear SPOKE-2(config-ike-gw)# dead-peer-detection interval 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 |
Scroll Pagebreak
Затем настроим IPsec proposal, IPsec policy и IPsec vpn туннели через каждый CLOUD:
...
Скорректируем правила зоны безопасности WAN, разрешим протоколы для GRE over IPSec-туннеля:
| Блок кода |
|---|
SPOKE-2(config)# object-group service ISAKMP_PORT SPOKE-2(config-object-group-service)# port-range 500 SPOKE-2(config-object-group-service)# port-range 4500 SPOKE-2(config-object-group-service)# exit SPOKE-2(config)# security zone-pair WAN self SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol udp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group ISAKMP_PORT SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 2 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol esp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 3 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol gre SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Настроим правила зон безопасности DMVPN_C_ONE и DMVPN_C_TWO, разрешим прохождение трафика для протоколов BGP, BFD, ICMP:
| Блок кода |
|---|
SPOKE-2(config)# object-group service BGP SPOKE-2(config-object-group-service)# port-range 179 SPOKE-2(config-object-group-service)# exit SPOKE-2(config)# object-group service BFD SPOKE-2(config-object-group-service)# port-range 3784 SPOKE-2(config-object-group-service)# exit SPOKE-2(config)# security zone-pair DMVPN_C_ONE self SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol icmp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 2 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol tcp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BGP SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 3 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol udp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BFD SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit SPOKE-2(config)# security zone-pair DMVPN_C_TWO self SPOKE-2(config-security-zone-pair)# rule 1 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol icmp SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 2 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol tcp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BGP SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# rule 3 SPOKE-2(config-security-zone-pair-rule)# action permit SPOKE-2(config-security-zone-pair-rule)# match protocol udp SPOKE-2(config-security-zone-pair-rule)# match destination-port object-group BFD SPOKE-2(config-security-zone-pair-rule)# enable SPOKE-2(config-security-zone-pair-rule)# exit SPOKE-2(config-security-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Скорректируем правила зоны безопасности LAN, разрешим прохождение трафика между зонами LAN и DMVPN_C_ONE/DMVPN_C_TWO:
...

