VyOS настройка DMVPN с использованием OSPF

Dynamic Multipoint VPN (DMVPN) это вид VPN сетей, с возможностью динамического создания туннелей.
DMVPN это дальнейшее развитие VPN сетей, которое основывается на протоколах NHRP, mGRE, IPSec и протоколов динамической маршрутизации(OSPF, ODR, RIP, EIGRP, BGP).
Главные преимущества Dynamic Multipoint VPN с динамической маршрутизацией:

  • при добавлении нового узла не требуется изменение конфигурации остальных узлов;
  • маршруты между всеми узлами добавятся автоматически при подключении узлов.

В сети DMVPN существует два типа сетевых узлов:

  • HUB — главный маршрутизатор, который сообщает остальным участникам сети о всех туннелях;
  • SPOKE — остальные участники VPN сети, которые могут получать настройки от HUB и динамически строить туннели между собой

Так же рекомендуется использовать протоколы динамической маршрутизации (OSPF, RIP, BGP и т.д.), чтобы автоматически строить маршруты между соединенными сетями.

В данной статье мы рассмотрим настройку DMVPN с протоколом динамической маршрутизации OSPF на базе программного маршрутизатора VyOS.
Как установить и первично настроить VyOS мы рассказывали в статьях:
Установка VyOS
Настройка VyOS

Топология сети

Топология тестовой сети изображена на рисунке ниже.

Маршрутизаторы:

  • HUB — главный маршрутизатор для сети DMVPN;
  • SPOKE1, SPOKE2 — маршрутизаторы сети DMVPN.


Интерфейсы:

  • tun1 — интерфейс для DMVPN;
  • eth1 — внешний интерфейс маршрутизатора.

IP адресация:

  • 10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24 — внутренние подсети;
  • 1.1.1.1, 2.2.2.2, 3.3.3.3 — внешние адреса маршрутизаторов;
  • 172.20.0.0/24 — подсеть для DMVPN;
  • 172.20.0.1, 172.20.0.1, 172.20.0.1 — адреса маршрутизаторов в сети DMVPN.

Начнем настройку.

Настройка tun интерфейсов

Настраиваются идентично для HUB, SPOKE1 и SPOKE2. Различие только в IP адресах. Требуется указать внутренний адрес для туннеля (tun1) и внешний адрес маршрутизатора.

set interfaces tunnel tun1 address XXX.XXX.XXX.XXX/XX
set interfaces tunnel tun1 encapsulation gre
set interfaces tunnel tun1 local-ip YYY.YYY.YYY.YYY
set interfaces tunnel tun1 multicast enable
set interfaces tunnel tun1 parameters ip key 1

XXX.XXX.XXX.XXX/XX — внутренний IP адрес туннеля и маска сети. Должен быть уникальным для каждого маршрутизатора;
YYY.YYY.YYY.YYY — внешний адрес маршрутизатора.

Соответственно:
Для HUB:
XXX.XXX.XXX.XXX/XX172.20.0.1/24;
YYY.YYY.YYY.YYY1.1.1.1.

Для SPOKE1:
XXX.XXX.XXX.XXX/XX172.20.0.2/24;
YYY.YYY.YYY.YYY2.2.2.2.

Для SPOKE2:
XXX.XXX.XXX.XXX/XX172.20.0.3/24;
YYY.YYY.YYY.YYY3.3.3.3.

Настройка IPsec

IPsec на всех узлах настраивается полностью идентично (HUB, SPOKE1, SPOKE2).

Настройка фаз IPSec (IKE и ESP):

set vpn ipsec ipsec-interfaces interface eth1
set vpn ipsec ike-group ike_dmvpn proposal 1
set vpn ipsec ike-group ike_dmvpn proposal 1 encryption aes256
set vpn ipsec ike-group ike_dmvpn proposal 1 hash sha1
set vpn ipsec ike-group ike_dmvpn proposal 2 encryption aes128
set vpn ipsec ike-group ike_dmvpn proposal 2 hash sha1
set vpn ipsec ike-group ike_dmvpn lifetime 3600
set vpn ipsec ike-group ike_dmvpn proposal 1 dh-group 2
set vpn ipsec esp-group esp_dmvpn proposal 1 encryption aes256
set vpn ipsec esp-group esp_dmvpn proposal 1 hash sha1
set vpn ipsec esp-group esp_dmvpn proposal 2 encryption 3des
set vpn ipsec esp-group esp_dmvpn proposal 2 hash md5
set vpn ipsec esp-group esp_dmvpn lifetime 1800
set vpn ipsec esp-group esp_dmvpn pfs dh-group2

Создание IPsec профиля и привязка к созданному интерфейсу tun1.
PSK ключ в примере: blackdiver.net

set vpn ipsec profile dmvpn
set vpn ipsec profile dmvpn authentication mode pre-shared-secret
set vpn ipsec profile dmvpn authentication pre-shared-secret blackdiver.net
set vpn ipsec profile dmvpn bind tunnel tun1
set vpn ipsec profile dmvpn esp-group esp_dmvpn
set vpn ipsec profile dmvpn ike-group ike_dmvpn

Настройка NHRP

Центральный маршрутизатор (HUB)

set protocols nhrp tunnel tun1 cisco-authentication blackdiver.net
set protocols nhrp tunnel tun1 holding-time 300
set protocols nhrp tunnel tun1 multicast dynamic
set protocols nhrp tunnel tun1 redirect

Клиенты (SPOKE1, SPOKE2)

set protocols nhrp tunnel tun1 cisco-authentication blackdiver.net
set protocols nhrp tunnel tun1 map XXX.XXX.XXX.XXX/XX nbma-address YYY.YYY.YYY.YYY
set protocols nhrp tunnel tun1 map XXX.XXX.XXX.XXX/XX register
set protocols nhrp tunnel tun1 multicast nhs
set protocols nhrp tunnel tun1 redirect
set protocols nhrp tunnel tun1 shortcut

XXX.XXX.XXX.XXX/XXIP адрес и маска подсети интерфейса tun1 главного маршрутизатора;
YYY.YYY.YYY.YYY — внешний IP адрес главного маршрутизатора (HUB).

Соответственно:

XXX.XXX.XXX.XXX/XX172.20.0.1/24;
YYY.YYY.YYY.YYY1.1.1.1.

Настройка OSPF

Настраиваем OSPF на маршрутизаторах таким образом, что DR всегда будет только HUB.

Центральный маршрутизатор (HUB)

set interfaces tunnel tun1 ip ospf priority 255
set protocols ospf area 0 network XXX.XXX.XXX.XXX/XX
set protocols ospf area 0 network YYY.YYY.YYY.YYY/YY

XXX.XXX.XXX.XXX/XX — подсеть DMVPN;
YYY.YYY.YYY.YYY/YY — внутренная сеть маршрутизатора.

Соответственно для HUB:
XXX.XXX.XXX.XXX/XX172.20.0.0/24;
YYY.YYY.YYY.YYY/YY10.0.0.0/24.

Клиенты (SPOKE1, SPOKE2)

set interfaces tunnel tun1 ip ospf priority 0
set protocols ospf area 0 network XXX.XXX.XXX.XXX/XX
set protocols ospf area 0 network YYY.YYY.YYY.YYY/YY

Соответственно:
Для SPOKE1:
XXX.XXX.XXX.XXX/XX172.20.0.0/24;
YYY.YYY.YYY.YYY/YY10.0.1.0/24.

Для SPOKE2:
XXX.XXX.XXX.XXX/XX172.20.0.0/24;
YYY.YYY.YYY.YYY/YY10.0.2.0/24.

Настройка завершена. Остается применить и сохранить:

commit
save

Через несколько секунд запустятся туннели и трафик начнет ходить через IPsec туннели.

Диагностика

Показать существующие туннели NHRP:

run show nhrp tunnel

Показать соседей OSPF:

run show ip ospf neighbor

Показать маршруты, переданные через OSPF:

run show ip route ospf

Это основные команды для диагностики.
Желаем удачной настройки.

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.