Kinzersky.ru

ipsec

Подписаться на эту метку по RSS

DMVPN (часть 1)

Просмотров: 4222Комментарии: 0

Введение

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. IPSec

4. Протокол динамической маршрутизации. Обычно это OSPF или EIGRP, в зависимости от устройства сети. Например, если кроме оборудования Cisco есть еще и другие маршрутизаторы, имеет смысл пользоваться OSPF, чтобы не извращаться с редистрибьюцией маршрутов.

С другой стороны, в 4 различных технологиях сложнее локализовать проблему и решить её, чем в туннелях точка-точка. Но, несмотря на это, в свое время данная технология меня очень сильно выручила. На тот момент пришлось вычистить настройки точка-точка всего-лишь с 5 роутеров, доставшихся мне "по наследству", да и весь трафик ходил через центральный. Теперь же настройка нового оборудования для использования в корпоративной сети занимает время, сравнимое с вытаскиванием роутера из коробкиsmile

Также из минусов хотелось бы отметить неприятное поведение при наличии двух интернет каналов в филиале, когда в центральном офисе канал всего один. Тут придется мудрить с eem и трэкингом, при изменении канала меняя tunnel source на интерфейсе. Подробнее напишу в следующих статьях.

Пример настроек для трех маршрутизаторов

Рассмотрим следующую сложнейшую топологию:

dmvpn1.jpg

Соотв-но, имена роутеров будут: 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

Настройки для OSPF добавлю позже.

Настройка 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

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

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