Cisco - базовая настройка DMVPN

Cisco - базовая настройка DMVPN

07.08.2019

Введение

DMVPN - Dynamic Multipoint VPN - под данным названием объединяется пачка технологий, позволяющая организовать защищенную корпоративную сеть с помощью оборудования Cisco.
Основными преимуществами построения туннелей на основе DMVPN, на мой взгляд, являются 4 фактора:
1. Возможность создать туннель через NAT.
2. Минимальные (шаблонные) настройки на spoke-маршрутизаторах. 
3. Создание динамических туннелей между spoke-маршрутизаторами. 
4. Возможность держать на spoke-маршрутизаторах динамический внешний IP-адрес.

DMVPN состоит из следующий частей:
1. NHRP - Next Hop Resolution Protocol - протокол, позволяющий хостам, находящимся в NBMA-сети (Non Broadcast Multi Access - например, Интернет!), общаться напрямую между собой. База адресов находится на Hub-маршрутизаторе, который является Next Hop Server'ом, и клиенты (Spoke-маршрутизаторы) при необходимости её запрашивают.
2. Multipoint GRE - GRE-туннели, позволяющие на одном туннельном интерфейсе содержать несколько ipsec-подключений к различным маршрутизаторам.
3. url=http://ru.wikipedia.org/wiki/IPsec — IPSec
4. Протокол динамической маршрутизации. Обычно это OSPF или EIGRP, в зависимости от устройства сети. Например, если кроме оборудования Cisco есть еще и другие маршрутизаторы, имеет смысл пользоваться OSPF, чтобы не извращаться с редистрибьюцией маршрутов.

С другой стороны, в 4 различных технологиях сложнее локализовать проблему и решить её, чем в туннелях точка-точка. Но, несмотря на это, в свое время данная технология меня очень сильно выручила. На тот момент пришлось вычистить настройки точка-точка всего-лишь с 5 роутеров, доставшихся мне "по наследству", да и весь трафик ходил через центральный. Теперь же настройка нового оборудования для использования в корпоративной сети занимает время, сравнимое с вытаскиванием роутера из коробки:)
Также из минусов хотелось бы отметить неприятное поведение при наличии двух интернет каналов в филиале, когда в центральном офисе канал всего один. Тут придется мудрить с eem и трэкингом, при изменении канала меняя tunnel source на интерфейсе. Подробнее напишу в следующих статьях.
Пример настроек для трех маршрутизаторов[
Рассмотрим следующую сложнейшую топологию:

Соотв-но, имена роутеров будут: Hub1, Spoke1, Spoke2. В следующих статьях усложним, добавив бэкапный hub2.
Адресация:
Внешние IP: 10.0.0.1/24 (hub1), 10.2.0.1/24(spoke1), 10.3.0.1/24 (spoke2) (int fa1) (10.1 оставим в резерве)
Внутренние IP: 192.168.0.0/24 (int fa2)
Туннели: 172.16.0.0/24 (int tu0)
А в серединке будет роутер с 3 интерфейсами, смотрящий во все эти сети. Вместо интернета. (0.2 на конце)

Базовые настройки сети
1. Маршрутизация.
Т.к. у нас не Интернет, настроим статические маршруты между роутерами.
Пример на Hub1. На остальных аналогично.

Hub1(Config)# ip route 10.2.0.0 255.255.255.0 10.0.0.2
Hub1(Config)# ip route 10.3.0.0 255.255.255.0 10.0.0.2


Настройки маршрутизаторов

Данные настройки - общие для всех трех роутеров.
Создаем туннель:
Hub1(config)#interface Tunnel0
IP-адрес
Hub1(config-if)#ip address 172.16.0.1 255.255.255.0
Указываем источник туннеля
Hub1(config-if)#tunnel source FastEthernet1/0
Говорим нашему роутеру, что это не point-to-point GRE, a mGRE.
Hub1(config-if)#tunnel mode gre multipoint
Указываем ключик. Должен быть одинаковым в пределах одной DMVPN-сети.
Hub1(config-if)#tunnel key 123
Снижаем MTU на интерфейсе, т.к. GRE увеличивает длину заголовка

Hub1(config-if)#ip mtu 1416
Hub1(config-if)#ip tcp adjust-mss 1416


Настройка NHRP


Пока без описания. Скоро добавлю.
Hub-маршрутизатор:

Hub1(config)#int Tu0
Hub1(config-if)#ip nhrp network-id 666
Hub1(config-if)#ip nhrp map multicast dynamic
Hub1(config-if)#ip nhrp authentication authpass


Spoke-Маршрутизатор

Spoke1(config)#interface Tunnel0
Spoke1(config-if)#ip nhrp network-id 666

Адрес туннельного интерфейса hub-маршрутизатора указывается как next-hop-сервер:
Spoke1(config-if)#ip nhrp authentication nhrppass
Spoke1(config-if)#ip nhrp map multicast 172.16.0.1 10.0.0.1
Spoke1(config-if)#ip nhrp map 10.0.0.1
Spoke1(config-if)#ip nhrp nhs 10.10.10.1
Spoke1(config-if)#ip nhrp registration no-unique



Настройка EIGRP
Hub1(config)#router eigrp 20
Hub1(config-router)#network 10.0.0.0 0.0.0.255
Hub1(config-router)#network 172.16.0.0 0.0.0.255
Hub1(config-router)#no auto-summary 


Только на Hub-маршрутизаторе (int tu0) отключим Split Horizon и next hop self
Hub1(config-if)#no ip split-horizon eigrp 20
Hub1(config-if)#no ip next-hop-self eigrp 20



Настройка IPSec
Hub1(config)#crypto isakmp policy 10
Hub1(config-isakmp)#authentication pre-share
Hub1(config)#crypto isakmp key 0 ciscovpnkey address 0.0.0.0 0.0.0.0
Hub1(config)#crypto ipsec transform-set DMVPNset esp-des 
Hub1(cfg-crypto-trans)#mode transport 
Hub1(config)#crypto ipsec profile DMVPN-profile
Hub1(config-profile)#set transform-set DMVPNset
Hub1(config)#interface Tunnel0
Hub1(config-if)#tunnel protection ipsec profile DMVPN-profile




Если нигде не ошиблись, должно работать:)

Показать комментарии ()