отмена
Отображаются результаты для 
Вместо этого искать 
Вы имели в виду: 

Пример настройки DMVPN (Настройка mGRE, NHRP, DMVPN)

На работе мне заказчик поставил задачу подключить их сеть филиалов к центральному офису посредством различных интернет провайдеров в разных регионах. В Центральном Офисе крутится OSPF, нужно чтоб, также он работал.
Было принято решение реализовать DMVPN. Ниже предоставлю карту подключения, а также конфигурацию устройств с комментариями. Делая впервые обращался к документам cisco:
Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC
Configuring Dynamic Multipoint VPN (DMVPN) using GRE over IPsec between Multiple Routers

Cisco IOS IP Addressing Services Command Reference


Для проекта использовалось:


Spoke: CISCO881-SEC-K9 IOS Version 15.2(4)M4 (использовалось 12 штук, но в примере указал только 2, т.к. остальные идентичны по конфигурации)
Hub: CISCO2921/K9 IOS Version 15.2(4)M3
Сеть для туннелей: 10.0.0.0 255.255.255.224

Немного теории:
Каждый spoke маршрутизатор имеет статический IPSec туннель до HUB (центральный маршрутизатор).
Каждый spoke регистрируется на сервере NHRP как клиент.
Если spoke A хочет отправить пакет в сеть, которая находится на spoke B, он запрашивает NHRP о реальном внешнем ИП адресе spoke B. Когда он получает ответ поднимается динамический IPSec туннель между Spoke A и Spoke B.
Spoke-to-Spoke туннели строятся поверх интерфейса mGRE (tunnel 10 в нашем случае)

dmvpn.png

Конфигурация HUB маршрутизатора

! Создаем политику для согласования 1-ой Фазы
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
!

!

!
! Создаем динамический ключ. 0.0.0.0 = любой VPN сервер. Замените значение presharedkey на ваше. Оно должно быть одинаково на всех маршрутизаторах.
!

crypto isakmp key presharedkey address 0.0.0.0
!

!

!
! Создаем политику шифрования для 2-ой фазы

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

!
! Создаем профиль IPsec который будет динамически назначается всем нашим туннелям.

!
crypto ipsec profile dmvpn_profile
set transform-set dmvpn_ts
!

!

!

!
! Создаем туннельный интерфейс.
interface Tunnel1

!
! Назначаем ИП адрес. Все наши туннели сидят внутри сети 10.0.0.0 /27

!
ip address 10.0.0.1 255.255.255.224

!
! Отключаем переадресацию ICMP запросов. Это рекомендуется для увеличение безопасности и производительности.

!
no ip redirects

!
! Из-за того, что IPSEC в режиме(transport) использует MTU1440, а GRE добавляет дополнительно 24 байта к заголовку IP-пакета, то наше MTU будет 1440 - 24 = 1416. Если вы используйте режим туннеля в IPsec то MTU рекомендуется ставить 1400. Более детально касательно какое MTU нужно ставить можете прочесть тут:

!
ip mtu 1416

!
! Включаем процесс NHRP на интерфейсе. Номер можете выбрать любой.

!
ip nhrp network-id 2014

!
! Указываем ключ для аутентификации в NHRP. Замените nhrpkey на ваше значение. Должно быть идентично на всех маршрутизаторах.
!

ip nhrp authentication nhrpkey

!
! Указываем, чтобы автоматически добавлялись соответствия ИП адресов spoke маршрутизаторов.

!
ip nhrp map multicast dynamic

!
! Далее конфигурация касающаяся OSPF. Главное что отмечу, приоритет ставлю высокий, чтобы этот маршрутизатор был всегда DR. На всех других приоритет стоит 0. Тип сети указываем Broadcast чтоб не задавать вручную соседей. Значение ospf_key замените на ваше если используете аутентификацию в OSPF.

!
ip ospf authentication message-digest
ip ospf authentication-key ospf_key
ip ospf network broadcast
ip ospf hello-interval 3
ip ospf priority 100

!
! Указываем адрес отправителя. В нашем случае интерфейс смотрящий в интернет.

!
tunnel source Gig0/0

!

! Указываем что данный туннель является mGRE
tunnel mode gre multipoint

!
! Это нужно для идентификации туннеля, параметр не обязательный.
tunnel key 2014

!
! Вешаем наш IPsec профиль
tunnel protection ipsec profile dmvpn_profile
!

!

!

!

!
! Параметры OSPF описывать не буду, т.к. он использовался только проверить работу.
router ospf 10
router-id 1.1.1.1
auto-cost reference-bandwidth 1000
area 0 authentication message-digest
area 192.168.1.0 authentication message-digest
redistribute static subnets
passive-interface default
no passive-interface Tunnel1
network 10.0.0.0 0.0.0.31 area 0
network 192.168.1.0 0.0.0.255 area 192.168.1.0

!

!
! Настройки интерфейсов, они могут быть как физические, так и саб-интерфейсы, или SVI в зависимости от вашего оборудования и топологии сети.

!
interface GigabitEthernet0/0
description [to:isp]
ip address 100.0.1.2 255.255.255.252

!
interface GigabitEthernet0/1
description [to:lan]
ip address 192.168.1.1 255.255.255.0

!

!
! Шлюз по умолчанию

!
ip route 0.0.0.0 0.0.0.0 100.0.1.1

=================================================
Конфигурация Spoke A маршрутизатора
=================================================

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

!
crypto isakmp key presharedkey address 0.0.0.0
!
crypto ipsec transform-set dmvpn_ts esp-3des esp-md5-hmac
mode transport

!
crypto ipsec profile dmvpn_profile
set transform-set dmvpn_ts

!

!

!

!
interface Tunnel1
ip address 10.0.0.2 255.255.255.224
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey

! В отличии от HUB тут мы вручную указываем соответствие где 10.0.0.1 ип тонеля HUB маршрутизатора, а 100.0.1.2 его внешний адрес
ip nhrp map 10.0.0.1 100.0.1.2
ip nhrp map multicast 100.0.1.2
ip nhrp network-id 2014

! Адрес HUB маршрутизатора
ip nhrp nhs 10.0.0.1
! Говорим клиентам NHRP не использовать уникальный флаг в запросах NHRP. Т.е. не привязываться к ИП адресам. Если вдруг сменится внешний ИП адрес на HUB маршрутизаторе то все будет работать. Без этой команды выходила бы ошибка.
ip nhrp registration no-unique

!
ip ospf authentication message-digest
ip ospf authentication-key ospf_key
ip ospf network broadcast
ip ospf hello-interval 3
ip ospf priority 0
tunnel source FastEthernet 4
tunnel mode gre multipoint
tunnel key 2014
tunnel protection ipsec profile dmvpn_profile

!

!

!

!
router ospf 10
router-id 2.2.2.2
auto-cost reference-bandwidth 1000
area 0 authentication message-digest
passive-interface default
no passive-interface Tunnel1
network 10.0.0.0 0.0.0.31 area 0
network 192.168.2.0 0.0.0.255 area 192.168.2.0

!

!
! Настройки интерфейсов, они могут быть как физические, так и саб-интерфейсы, или SVI в зависимости от вашего оборудования и топологии сети.

!
interface FastEthernet4
description [to:isp]
ip address 100.0.2.2 255.255.255.252

!
interface vlan 10
description [to:lan]
ip address 192.168.2.1 255.255.255.0

!

!
! Шлюз по умолчанию
ip route 0.0.0.0 0.0.0.0 100.0.2.1

=================================================
Конфигурация Spoke B маршрутизатора
=================================================

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
!
crypto isakmp key presharedkey address 0.0.0.0
!
crypto ipsec transform-set dmvpn_ts esp-3des esp-md5-hmac
mode transport
!
crypto ipsec profile dmvpn_profile
set transform-set dmvpn_ts
!
interface Tunnel1
ip address 10.0.0.3 255.255.255.224
no ip redirects
ip mtu 1416
ip nhrp authentication nhrpkey
ip nhrp map 10.0.0.1 100.0.1.2
ip nhrp map multicast 100.0.1.2
ip nhrp network-id 2014
ip nhrp nhs 10.0.0.1
ip nhrp registration no-unique
ip ospf authentication message-digest
ip ospf authentication-key ospf_key
ip ospf network broadcast
ip ospf hello-interval 3
ip ospf priority 0
tunnel source FastEthernet 4
tunnel mode gre multipoint
tunnel key 2014
tunnel protection ipsec profile dmvpn_profile
!
router ospf 10
router-id 3.3.3.3
auto-cost reference-bandwidth 1000
area 0 authentication message-digest
passive-interface default
no passive-interface Tunnel1
network 10.0.0.0 0.0.0.31 area 0
network 192.168.3.0 0.0.0.255 area 192.168.3.0
!
interface FastEthernet4
description [to:isp]
ip address 100.0.3.2 255.255.255.252
!
interface vlan 10
description [to:lan]
ip address 192.168.3.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 100.0.3.1

Далее копируется конфигурация на все spoke маршрутизаторы.

Для проверки можете использовать следующие команды:

  • show dmvpn
  • show crypto engine connection active
  • show crypto ipsec sa
  • show crypto isakmp sa

Ниже скрин проверки с маршрутизатора Spoke_A

dmvpn_check.png

Для поиска неисправностей будут полезны следующие команды:

  • debug crypto ipsec
  • debug crypto isakmp
  • debug crypto engine

.

Если вам статья показалась полезной не забывайте оценивать ее.

Внимание. Если вы нашли ошибку в тексте прошу вас сообщить о ней мне.

10 Комментарии
New Member

супер решения ,спасибо ....

New Member

Delete. Спасибо, нашел у себя ошибку.

New Member

Виталий, добрый день!

Можете немного помочь с теорией? 

1. Вот на последних скринах вы с точки А пингуете внутренний адрес точки В - 192.168..3.1, но в настройках тока А мы никак обозначили подсеть 192.168.3.*

Я по вашему примеру настроил две циски, одна из них HUB, а вторая точка А. Настроил, все видится по адресам тунелей они друг друга пингуют, но если я пробую пинговать не 10.0.0.1(2) а адреса из внутренней подсети, то они не пингуются. А у вас на скрине пинг явно есть - это как то настраивается отдельно ?

2. Я хочу настроить, чтобы люди из филиала подключались по RDP на наш сервер используя как раз-таки выше описанный мануал, но видимо из-за того, что внутренние адреса не пингуются, то и соотвенно и не пашет RDP. Хотел попробовать вариант с переадресация портов ip nat inside source static tcp 192.168.0.2 3389 10.0.0.1 3389 но также не сработал.

Помогите разобраться в данной сиутации.

Добрый день.

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

Я на каждом маршрутизаторе поднял процесс OSPF. В конфигурации это указанно

 

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

Все должно работать на основе маршрутизации будто маршрутизаторы находятся в одной сети. Прибегать к нату не потребуется нам. 

New Member

Виталий, с этим новым интерфейсом на сайте не разобрался где писать ЛС, поэтому отправил на почту, которая указана в профиле.

New Member

Разобрался с сообщениями. Отравил Вам в личку, но есть вероятность, что понял-таки в чем проблема.

У меня на "хабе" 0-ая подсеть, а на точке "А" 10-я. Соответсвенно, как в Вашем примере я добавил строку network 192.168.0.0 0.0.0.255 area 192.168.0.0 на хабе, а на точке А строку network 192.168.10.0 0.0.0.255 area 192.168.10.0.

Вопрос: Будет ли корректно вместо этих двух строчек добавить одну по маске 0.0.255.255. Т.е. на хабе и на точке А заменить строку на network 192.168.0.0 0.0.255.255 area 0.

Так же я заметил, что в на хабе вы обозначили строку area 192.168.1.0 authentication message-digest. Но на точках А и В подобной строки с подсетью 2 и 3 нет. Насколько это критично?

New Member

Не прокатила идея. Все равно не работает. Видимо что-то надо дополнительно настраивать в моем конфиге, т.к. все по текущему примеру сделал, но внутренняя сеть все равно не видится. Буду копать в сторону маршрутов.

New Member

Вопрос снят, была ошибка с ip mtu. На концах разные значения были. Спасибо за желание помочь.

New Member

Доброго времени суток!

Возникла сложность; использую эту схему, как мне добраться до внешней сети скажем 1.1.2.1 через маршрутизатор spoke2 в туннеле.

Например, стоит маршрутизатор in ip 192.168.0.1 внешний адрес 3.3.3.3 -  поднят туннель до spoke2 - 192.168.3.1 внешний ip у него 1.1.1.1 в его внешней сети находиться адрес, на который есть доступ только из 1.1.1.1 скажем 1.1.2.1 (отличается 3им октетом) Как я могу скажем настроить ospf или прописать статический маршрут, что бы трафик из подсети 192.168.0.X ходила на ip 1.1.2.1 через spoke2, что бы подсеть была доступна так сказать?

New Member

Виталий добрый день !

Возможно ли реализовать схему DMvpn на много филиалов (70-80) и в каждом филиале по два резервных канала  и все являются spoke маршрутиризаторы , и обращаються в центральный офис где стоит один 2911 тоже с двумя резервными каналами, можете посоветовать или хотяб  дать рекомендации

7619
Просмотры
35
Полезный материал
10
Комментарии