Отказоустойчивая топология с BGP, DMVPN, HSRP и IPSEC Stateful Failover

Топология тестировалась на UNL, информация собиралась из разных источников.

(схема кликабельна)

 

 

 

 

 

 

Описание:

  • MAINOFFICE — пример машины работающей в нашей подсети
  • HUB1, HUB2 — центральные маршрутизаторы в ДЦ, с которых строяться DMVPN тоннели до удаленной сети.
  • SPOKE1, SPOKE2 — маршрутизаторы, терминирующие сеть в удаленной сети.
  • BACKOFFICE — пример машины работающей в удаленной сети
  • SomeProvider1 — маршрутизатор, например, провайдера SIP телефонии (кто угодно, работающий по IPSEC)
  • Prov1srv — пример машины провайдера

При штатном функционировании сети траффик в удаленную сеть/из удаленной сети идет следующим образом:

  • MAINOFFICE  <—>  HUB1 <—> SPOKE1 <—> BACKOFFICE

Траффик из удаленной сети в сторону провайдера:

  • SPOKE1 <—> SomeProvider1 <—> Prov1srv

Задачи:

  1. Чтобы при падении HUB1 и/или SPOKE1 оставалась связь между нашей подсетью и удаленной
  2. Чтобы при падении SPOKE1 оставалась связь между подсетью проекта и платежным провайдером.

В данной топологии по умолчанию все маршрутитазоры (и машины) имеют дефолтный маршрут в сторону интернет.

Основные моменты конфигурации (некоторые вещи упрощены, только для примера):


HUB1 — основной

#Создаем полиси isakmp

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2

#Указываем ключ для авторизации в ISAKMP (для примера для всех пиров ключ один)

crypto isakmp key presharedkey address 0.0.0.0 0.0.0.0

#Включаем Dead peer detection для автоматического сброса умерших ipsec (в противном случае ipsec не подниметься обратно при поднятии спока)

crypto isakmp invalid-spi-recovery
crypto isakmp keepalive 10 periodic

#Создаем трансформсет и профайл для дмвпн

crypto ipsec transform-set dmvpn_ts esp-3des esp-md5-hmac
mode transport

crypto ipsec profile dmvpn_profile
set transform-set dmvpn_ts

#Настраиваем тоннельный интерфейс на который будут строиться тоннели из удаленной подсети

interface Tunnel0
ip address 10.0.0.1 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey
ip nhrp map multicast dynamic
ip nhrp network-id 2014
tunnel source FastEthernet0/0
tunnel mode gre multipoint
tunnel key 2014
tunnel protection ipsec profile dmvpn_profile

#Настраиваем резервирование внутреннего адреса роутера (выставляем приоритет чтобы при включении обратно он становился главным, выставляем задержку смены роли после включения)

interface FastEthernet0/1
ip address 192.168.0.2 255.255.255.0
duplex auto
speed auto
standby 1 ip 192.168.0.1

standby 1 priority 255 #

standby 1 preempt delay minimum 120

#Настраиваем динамическую маршрутизацию, выставляем приоритет на SPOKE1

router bgp 65501
no synchronization
bgp router-id 10.0.0.1
bgp log-neighbor-changes
network 192.168.0.0
neighbor 10.0.0.2 remote-as 65502
neighbor 10.0.0.2 weight 999
neighbor 10.0.0.12 remote-as 65502
no auto-summary

 


HUB2 — резервный

#Конфигурация схожа с основным, но разумеется есть отличия в части HSRP и тоннеле

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2

crypto isakmp key presharedkey address 0.0.0.0 0.0.0.0
crypto isakmp invalid-spi-recovery
crypto isakmp keepalive 10 periodic

crypto ipsec transform-set dmvpn_ts esp-3des esp-md5-hmac
mode transport

interface Tunnel0
ip address 10.0.10.1 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey
ip nhrp map multicast dynamic
ip nhrp network-id 2015
tunnel source FastEthernet0/0
tunnel mode gre multipoint
tunnel key 2015

tunnel protection ipsec profile dmvpn_profile

interface FastEthernet0/0
ip address 200.0.0.11 255.255.255.0
duplex auto
speed auto

interface FastEthernet0/1
ip address 192.168.0.3 255.255.255.0
duplex auto
speed auto
standby 1 ip 192.168.0.1

router bgp 65501
no synchronization
bgp router-id 10.0.10.1
bgp log-neighbor-changes
network 192.168.0.0
neighbor 10.0.10.2 remote-as 65502
neighbor 10.0.10.2 weight 999
neighbor 10.0.10.12 remote-as 65502
no auto-summary

 


SPOKE1
#Включаем SSO для переезда IPSEC с провайдером

redundancy inter-device
scheme standby OUT #Имя HSRP группы

#Настраиваем его

ipc zone default
association 1
no shutdown
protocol sctp
local-port 21999
local-ip 200.0.0.101
remote-port 21999
remote-ip 200.0.0.102

#Полиси для хабов и, в нашем случае для примера, с провайдером

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2

#Ключ для всех IPSEC

crypto isakmp key presharedkey address 0.0.0.0 0.0.0.0

#Не забываем DPD

crypto isakmp invalid-spi-recovery
crypto isakmp keepalive 10 periodic

#Трансформсет для дмвпн

crypto ipsec transform-set dmvpn_ts esp-3des esp-md5-hmac
mode transport

#Трансформсет для провайдера

crypto ipsec transform-set TS ah-sha-hmac esp-aes

#Настроиваем профайл для дмвпн

crypto ipsec profile dmvpn_profile
set transform-set dmvpn_ts

#Конфигурируем крипто-мап

crypto map IPSEC 1 ipsec-isakmp
set peer 200.0.0.201
set transform-set TS
match address PROV1
reverse-route #опционально, автоматически добавляет маршрут в сеть провайдера

#Тоннель в сторону HUB1

interface Tunnel0
ip address 10.0.0.2 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey
ip nhrp map 10.0.0.1 200.0.0.1
ip nhrp map multicast 200.0.0.1
ip nhrp network-id 2014
ip nhrp nhs 10.0.0.1
ip nhrp registration no-unique
tunnel source 200.0.0.101
tunnel mode gre multipoint
tunnel key 2014
tunnel protection ipsec profile dmvpn_profile

#Тоннель в сторону HUB2

interface Tunnel1
ip address 10.0.10.2 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey
ip nhrp map 10.0.10.1 200.0.0.11
ip nhrp map multicast 200.0.0.11
ip nhrp network-id 2015
ip nhrp nhs 10.0.10.1
ip nhrp registration no-unique
tunnel source 200.0.0.101
tunnel mode gre multipoint
tunnel key 2015

tunnel protection ipsec profile dmvpn_profile

#HSRP на внешнем интерфейсе, не забываем выставить приоритет и задержку. Еще: без имени стендбай процесса не получится прикрепить резервируемую криптомапу и настроить SSO

interface FastEthernet0/0
ip address 200.0.0.101 255.255.255.0
duplex auto
speed auto
standby 2 ip 200.0.0.100
standby 2 priority 255
standby 2 preempt delay minimum 120
standby 2 name OUT
crypto map IPSEC redundancy OUT stateful

#HSRP на внутреннем

interface FastEthernet0/1
ip address 192.168.10.2 255.255.255.0
duplex auto
speed auto
standby 1 ip 192.168.10.1
standby 1 priority 255
standby 1 preempt delay minimum 120

#BGP с приоритетом на HUB1

router bgp 65502
no synchronization
bgp router-id 10.0.0.2
bgp log-neighbor-changes
network 192.168.10.0
neighbor 10.0.0.1 remote-as 65501
neighbor 10.0.0.1 weight 999
neighbor 10.0.10.1 remote-as 65501
no auto-summary

#ALC для крипто-мапы провайдера

ip access-list extended PROV1
permit ip 192.168.10.0 0.0.0.255 172.16.0.0 0.0.0.255


SPOKE2 — резервный
#Настройки идентичны, исключая тоннели, HSRP, и параметры подключения SSO

redundancy inter-device
scheme standby OUT

ipc zone default
association 1
no shutdown
protocol sctp
local-port 21999
local-ip 200.0.0.102
remote-port 21999
remote-ip 200.0.0.101

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2

crypto isakmp key presharedkey address 0.0.0.0 0.0.0.0

crypto isakmp invalid-spi-recovery
crypto isakmp keepalive 10 periodic

crypto ipsec transform-set dmvpn_ts esp-3des esp-md5-hmac
mode transport

crypto ipsec transform-set TS ah-sha-hmac esp-aes

crypto ipsec profile dmvpn_profile
set transform-set dmvpn_ts

crypto map IPSEC 1 ipsec-isakmp
set peer 200.0.0.201
set transform-set TS
match address PROV1
reverse-route

interface Tunnel0
ip address 10.0.0.12 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey
ip nhrp map 10.0.0.1 200.0.0.1
ip nhrp map multicast 200.0.0.1
ip nhrp network-id 2014
ip nhrp nhs 10.0.0.1
ip nhrp registration no-unique
tunnel source 200.0.0.102
tunnel mode gre multipoint
tunnel key 2014
tunnel protection ipsec profile dmvpn_profile

interface Tunnel1
ip address 10.0.10.12 255.255.255.0
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey
ip nhrp map 10.0.10.1 200.0.0.11
ip nhrp map multicast 200.0.0.11
ip nhrp network-id 2015
ip nhrp nhs 10.0.10.1
ip nhrp registration no-unique
tunnel source 200.0.0.102
tunnel mode gre multipoint
tunnel key 2015

tunnel protection ipsec profile dmvpn_profile

interface FastEthernet0/0
ip address 200.0.0.102 255.255.255.0
duplex auto
speed auto
standby 2 ip 200.0.0.100
standby 2 name OUT
crypto map IPSEC redundancy OUT stateful

interface FastEthernet0/1
ip address 192.168.10.3 255.255.255.0
duplex auto
speed auto
standby 1 ip 192.168.10.1

router bgp 65502
no synchronization
bgp router-id 10.0.10.2
bgp log-neighbor-changes
network 192.168.10.0
neighbor 10.0.0.1 remote-as 65501
neighbor 10.0.0.1 weight 999
neighbor 10.0.10.1 remote-as 65501
no auto-summary

ip access-list extended PROV1
permit ip 192.168.10.0 0.0.0.255 172.16.0.0 0.0.0.255


SomeProvider1
#Для примера конфиг на стороне провайдера

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2

crypto isakmp key presharedkey address 0.0.0.0 0.0.0.0

crypto ipsec transform-set TS ah-sha-hmac esp-aes

#В качестве пира с нашей стороны используется standby ip, провайдер ничего не будет знать о резервировании с нашей стороны =)

crypto map IPSEC 1 ipsec-isakmp
set peer 200.0.0.100
set transform-set TS
match address BACKOFFICE
reverse-route

interface FastEthernet0/0
ip address 200.0.0.201 255.255.255.0
duplex auto
speed auto
crypto map IPSEC

interface FastEthernet0/1
ip address 172.16.0.1 255.255.255.0
duplex auto
speed auto

ip access-list extended BACKOFFICE
permit ip 172.16.0.0 0.0.0.255 192.168.10.0 0.0.0.255


That’s all, folks! Схема успешно проверена в UNL.

Использованы материалы http://twistedminds.ru/2012/08/cisco-ipsec-vpns-high-availability/

0

Добавить комментарий

Ваш e-mail не будет опубликован.