Найти тему
Merion Academy

Настройка DMVPN на оборудовании Cisco

Оглавление

В сегодняшней статье покажем пример настройки DMVPN – Dynamic Multipoint VPN, что является VPN решением компании Cisco. Данное решение используется, когда требуется высокая масштабируемость и легкость настройки при подключении филиалов к головному офису.

DMPVN одно из самых масштабируемых и эффективных решений VPN поддерживаемых компанией Cisco. В основном оно используется при топологии Hub-and-Spoke, где вы хотели бы видеть прямые VPN туннели Spoke-to-Spoke в дополнение к обычным Spoke-to-Hub туннелям. Это означает, что филиалы смогут общаться с друг другом напрямую, без необходимости прохождение трафика через HQ. Как уже упоминали, эта технология является проприетарной технологией Cisco.

Если вам необходимо подключить более десяти сайтов к головному офису, то DMPVN будет идеальным выбором. Кроме того, DMPVN поддерживает не только Hub-and-Spoke, но и Full-Mesh топологию, так как все сайты имеют между собой связность без необходимости настройки статических VPN туннелей между сайтами.

НЕКОТОРЫЕ ХАРАКТЕРИСТИКИ DMVPN

Для начала перечислим важные характеристики данного способа организации Site-to-Site VPN для лучшего понимания:

  • Центральный маршрутизатор (HUB) - данный роутер работает как DMVPN сервер, и Spoke маршрутизаторы работают как DMVPN клиенты;
  • У данного маршрутизатора есть публичный статический IP-адрес на WAN интерфейсе;
  • У Spoke маршрутизаторов на WAN интерфейсах может как статический, так и динамический публичный IP-адрес;
  • У каждого филиала (Spoke) есть IPSEC туннель к головному офису (Hub);
  • Spoke-to-Spoke - туннели устанавливаются при возникновении необходимости, когда есть движение трафика между филиалами. Таким образом, трафик может не ходить через головной офис, а использовать прямые туннели между филиалами;
  • Все туннели используют Multipoint GRE c IPSEC;
  • NHRP (Next Hop Resolution Protocol) - данный протокол используется для установления соответствий между приватными IP туннельных интерфейсов с публичными WAN адресами
  • Описанные выше NHRP соответствия будут храниться на NHRP сервере, чем в нашем случае является HUB роутер. Каждый филиал устанавливает соединение с головным офисом и регистрирует свой публичный IP-адрес и его приватный IP-адрес тунеля;
  • Когда филиалу необходимо отправить пакеты в подсеть другого филиала, он запрашивает NHRP сервер для получения информации о внешнем публичном адресе целевого филиала;
  • Для лучшей масштабируемости советуем использовать один из протоколов динамический маршрутизации между всеми роутерами – например, EIGRP;

Еще раз кратко о технологиях, которые использует DMVPN:

  • Multipoint GRE;
  • IPSEC;
  • NHRP – Next Hop Resolution Protocol;
  • Статическая или динамическая маршрутизация;

НАСТРОЙКА МАРШРУТИЗАТОРА

Конкретно в нашем примере у нас будет HUB маршрутизатор и два филиала. И, как было описано ранее, HUB – это DMVPN cервер, а филиалы – DMPVN клиенты.

В нашем примере в качестве маршрутизатора используется CISCO1921/K9

Сначала настраиваем HUB маршрутизатор – ему необходимо присвоить статический IP – адрес на внешнем WAN-интерфейсе:

! Настраиваем интерфейсы
interface GigabitEthernet0/0
description to Internet-WAN
ip address 10.10.10.1 255.255.255.252
!
interface GigabitEthernet0/1
description to LAN
ip address 192.168.160.1 255.255.255.0
duplex auto
! Настраиваем туннельный интерфейс, который является улучшенным GRE (Multipoint GRE)
interface Tunnel1
description DMVPN Tunnel
ip address 172.16.1.1 255.255.255.0 // выбираем приватную подсеть для туннелей
no ip redirects
ip nhrp authentication nhrp1234 // аутентификация между маршрутизаторами
ip nhrp network-id 1 // сетевой идентификатор, который должен быть одинаковым на всех маршрутизаторах
load-interval 30
keepalive 5 10
tunnel source GigabitEthernet0/0 // назначаем источником туннеля WAN интерфейс
tunnel mode gre multipoint // определяем туннель как mGRE
tunnel protection ipsec profile protect-gre // шифруем трафик в туннеле с помощью IPSEC
ip mtu 1440 // уменьшаем MTU для того, чтобы разрешить оверхед на mGRE и IPSEC
ip nhrp map multicast dynamic // разрешаем форвардить мультикаст трафик между туннелями.
! Настраиваем IPSEC на главном роутере
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
crypto isakmp key isakmp1234 address 0.0.0.0 0.0.0.0 // принимать соединения от любого источника при наличии динамических филиалов
!
crypto ipsec transform-set TS esp-3des esp-md5-hmac
mode tunnel
!
!
crypto ipsec profile protect-gre // профиль добавленный к mGRE туннелю для шифрования
set security-association lifetime seconds 86400
set transform-set TS
! Настраиваем статическую маршрутизацию на HUB маршрутизаторе
ip route 192.168.164.0 255.255.255.0 172.16.1.2 // удаленные подсети доступны через IP удаленного туннеля
ip route 192.168.161.0 255.255.255.0 172.16.1.3 // удаленные подсети доступны через IP удаленного туннеля

Затем настраиваем маршрутизаторы в филиалах (Spoke роутеры) - у одного маршрутизатора статический айпишник на WAN интерфейсе, и у другого динамический, получаемый по DHCP. Первый маршрутизатор в филиале, с динамическим IP:


interface GigabitEthernet0/0
description WAN to Internet
ip address dhcp
duplex auto
speed auto
interface GigabitEthernet0/1
description To LAN
ip address 192.168.164.1 255.255.255.0
duplex auto
speed auto
interface Tunnel1
ip address 172.16.1.2 255.255.255.0 // помещаем в ту же подсеть что и другие туннели
no ip redirects
ip nhrp map multicast dynamic // разрешаем форвардить мультикаст трафик между туннелями
tunnel source GigabitEthernet0/0 // “source”- WAN интерфейс
tunnel mode gre multipoint
tunnel protection ipsec profile protect-gre
ip nhrp authentication nhrp1234
ip nhrp map 172.16.1.1 10.10.10.1 // соответствие HUB адреса туннеля с HUB адресом WAN
ip nhrp network-id 1
ip nhrp nhs 172.16.1.1 // настройка NHRP
ip nhrp registration no-unique // если NHRP процесс завершился (поиск соответствия) для определенного IP, то больше данный процесс не запустится
ip nhrp map multicast 10.10.10.1 // Отправка milticast трафика только в Hub. Головной маршрутизатор будет получать весь мультикаст трафик (например, обновления протокола маршрутизации) и отправлять его всем Spoke маршрутизаторам
ip mtu 1440
load-interval 30
keepalive 5 10
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
crypto isakmp key isakmp1234 address 0.0.0.0 0.0.0.0 // Филиалы должны разрешать подклюения с любого адреса для формирования IPSEC VPN туннелей с другими филиалами
!
!
crypto ipsec transform-set TS esp-3des esp-md5-hmac
mode tunnel
!
crypto ipsec profile protect-gre
set security-association lifetime seconds 86400
set transform-set TS
ip route 192.168.160.0 255.255.255.0 172.16.1.1 // Маршрут для HUB
ip route 192.168.161.0 255.255.255.0 172.16.1.3 // Маршрут для другого филиала Spoke site

Второй филиальный маршрутизатор, со статическим IP:


interface GigabitEthernet0/0
description TO Internet
ip address 10.10.10.9 255.255.255.252
duplex auto
speed auto
interface GigabitEthernet0/1
description To: LAN
ip address 192.168.161.1 255.255.255.0
duplex auto
speed auto
interface Tunnel1
ip address 172.16.1.3 255.255.255.0 // должен быть в той же подсети что и другие туннели
no ip redirects
ip nhrp map multicast dynamic // разрешаем форвард мульткастов между туннелями.
tunnel source GigabitEthernet0/0
tunnel mode gre multipoint
tunnel protection ipsec profile protect-gre
ip nhrp authentication nhrp1234
ip nhrp map 172.16.1.1 10.10.10.1 // мапируем адрес HUB тунеля к WAN адресу
ip nhrp network-id 1
ip nhrp nhs 172.16.1.1 // настраиваем NHRP клиент с указанием адреса сервера
ip nhrp registration no-unique
ip nhrp map multicast 10.10.10.1
ip mtu 1440
load-interval 30
keepalive 5 10
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
crypto isakmp key isakmp1234 address 0.0.0.0 0.0.0.0
!
crypto ipsec transform-set TS esp-3des esp-md5-hmac
mode tunnel
!
!crypto ipsec profile protect-gre
set security-association lifetime seconds 86400
set transform-set TS
ip route 192.168.160.0 255.255.255.0 172.16.1.1 // маршрут до головного маршрутизатор
ip route 192.168.164.0 255.255.255.0 172.16.1.2 // маршрут до другого филиала

Переходим к тестированию:

show dmvpn // проверяем статус DMVPN и NHRP
show crypto isakmp sa // проверяем IPSEC cвязность между маршрутизаторами
ping 192.168.164.1 // пингуем для проверки
ping 192.168.1.1
В нашем примере использовалась статическая маршрутизация, но при большом количестве филиалов необходимо использовать протоколы динамический маршрутизации для уменьшения ручного труда и риска ошибки.