Tag: cisco

  • Настройка DMVPN на маршрутизаторах Cisco

    Dynamic Multipoint VPN (DMVPN) — виртуальная частная сеть с возможностью динамического создания туннелей между узлами.

    На этой странице детально описывается процедура организации сети DMPVN на маршрутизаторах Cisco. Рассматриваются варианты настройки проколов динамической маршрутизации OSPF и EIGRP, аутентификация маршрутизаторов по сертификатам и pre-shared key.

    На странице dmvpn/config представлена схема и конфигурационные файлы для виртуальной сети Xentaur, которая рассматривается на этой странице.

    Задача

    Центральный офис (находящийся за dyn1) соединён с несколькими удалёнными (находящимися за dyn3 и dyn5). Необходимо обеспечить связь удалённых офисов с центральным и, при необходимости, устанавливать туннель между удалёнными офисами.

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

    \"\"

    Изображенная топология называется — звезда (hub-and-spoke), где:

    dyn1 — центр звезды, hub-маршрутизатор;
    dyn3 и dyn5 — вершины звезды, spoke-маршрутизаторы.

    Решение

    Если в данной схеме использовать обычную виртуальную частную сеть, соединяющую сети (site-to-site VPN), то на маршрутизаторах, которые находятся в удалённых офисах, необходимо будет настроить туннель для связи с центральным офисом и туннели для связи с другими удалёнными офисами. Для того чтобы все удалённые офисы могли работать между собой напрямую, необходимо будет настроить туннели со всеми офисами, что приведёт к созданию полносвязной топологии (full mesh). Как следствие, количество настроек на маршрутизаторах, как в центральном офисе, так и в удалённых существенно увеличивается.
    Технология DMVPN позволяет решить эту задачу более масштабируемым методом, чем создание связей точка-точка между всеми офисами и объединения их в полносвязную топологию:

    При добавлении новых маршрутизаторов в существующую сеть DMVPN, необходимо настроить только новый маршрутизатор, изменений на уже существующих маршрутизаторах не требуется.

    DMVPN позволяет использовать динамически назначенные IP-адреса на spoke-маршрутизаторах.

    Если двум spoke-маршрутизаторам необходимо установить туннель напрямую, то он устанавливается динамически.

    В основе DMVPN лежат несколько технологий:
    mGRE-туннели;
    Протокол NHRP (Next Hop Resolution Protocol);
    Протоколы динамической маршрутизации;
    Профили IPsec (IPsec profiles).

    Так как DMVPN использует несколько технологий, то поиск неисправностей в его настройках может занимать достаточно много времени. Для того чтобы избежать ошибок, желательно пошагово проверять выполненные настройки, работу соответствующих протоколов и доступность сетей.

    Схематическое изображение последовательности выполнения необходимых настроек:

    \"\"

    Базовые настройки сети

    Настройку сети DMVPN будем выполнять на условном примере, отражающем ключевые особенности сетей, в которых целесообразно использовать эту технологию.

    За каждым маршрутизатором находится сеть, которая имитирует локальную сеть офисов:

    dyn1 — 10.1.1.0/24;
    dyn3 — 10.1.3.0/24;
    dyn5 — 10.1.5.0/24.

    Для внешних интерфейсов выбраны сети:

    dyn1 — 192.168.1.0/24;
    dyn3 — 192.168.3.0/24;
    dyn5 — 192.168.5.0/24.

    Настройка маршрутизации между внешними интерфейсами маршрутизаторов

    В данной тестовой сети на каждом маршрутизаторе прописаны статические маршруты к сетям внешних интерфейсов других маршрутизаторов.
    Статические маршруты на hub-маршрутизаторе (dyn1):

    dyn1(config)# ip route 192.168.3.0 255.255.255.0 192.168.1.2
    dyn1(config)# ip route 192.168.5.0 255.255.255.0 192.168.1.2

    mGRE-туннели

    В топологии звезда (hub-n-spoke) использование GRE-туннелей точка-точка приведёт к большому количеству настроек, так как IP-адреса всех spoke-маршрутизаторов должны быть известны и настроены на центральном маршрутизаторе (hub).

    Альтернативой GRE-туннелей точка-точка является multipoint GRE (mGRE) туннель, который позволяет терминировать на себе несколько GRE-туннелей. mGRE-туннель позволяет одному GRE-интерфейсу поддерживать несколько IPsec-туннелей и упрощает количество и сложность настроек, по сравнению с GRE-туннелями точка-точка.

    Кроме того, mGRE-интерфейс позволяет использовать динамически назначенные IP-адреса на spoke-маршрутизаторах.

    \"\"

    Настройка mGRE-туннелей

    Для адресации туннелей выделена сеть 10.10.10.0/24, все туннели находятся в одной сети. На hub-маршрутизаторе и spoke-маршрутизаторах mGRE-туннели настраиваются аналогично (далее пример для hub-маршрутизатора).
    Создание туннельного интерфейса:

    dyn1(config)#interface Tunnel0

    Задание IP-адреса на интерфейсе:

    dyn1(config-if)#ip address 10.10.10.1 255.255.255.0

    Так как GRE добавляет дополнительные заголовки к IP-пакету, необходимо изменить значение MTU на интерфейсе:

    dyn1(config-if)#ip mtu 1416

    В качестве адреса отправителя в пакете выходящем из mGRE-интерфейса будет использоваться IP-адрес физического интерфейса, а адрес получателя будет выучен динамически с помощью протокола NHRP.

    Настройка соответствия между туннельным интерфейсом и физическим:

    dyn1(config-if)#tunnel source FastEthernet1/0

    Включение mGRE-туннеля:

    dyn1(config-if)#tunnel mode gre multipoint

    (Опционально) Задание ключа, который идентифицирует туннель:

    dyn1(config-if)#tunnel key 999

    Если будет использоваться топология с двумя hub-маршрутизаторами и, соответственно, двумя сетями DMVPN, то ключ указывает на принадлежность интерфейса одной из сетей DMVPN.

    Next Hop Resolution Protocol (NHRP)

    Next Hop Resolution Protocol (NHRP) — клиент-серверный протокол преобразования адресов, позволяющий всем хостам, которые находятся в NBMA(Non Broadcast Multiple Access)-сети, динамически выучить NBMA-адреса (физические адреса) друг друга обращаясь к next-hop-серверу (NHS). После этого хосты могут обмениваться информацией друг с другом напрямую.
    В сети DMVPN:

    Hub-маршрутизатор будет работать как NHS, а spoke-маршрутизаторы будут клиентами.

    Hub-маршрутизатор хранит и обслуживает базу данных NHRP, в которой хранятся соответствия между физическими адресами и адресами mGRE-туннелей spoke-маршрутизаторов.

    На каждом spoke-маршрутизаторе hub-маршрутизатор статически указан как NHS и задано соответствие между физическим адресом и адресом mGRE-туннеля hub-маршрутизатора.

    При включении каждый spoke-маршрутизатор регистрируется на NHS и, при необходимости, запрашивает у сервера информацию об адресах других spoke-маршрутизаторов для построения spoke-to-spoke туннелей.

    Network ID – характеристика локальная для каждого маршрутизатора (аналогия – OSPF process ID). Разные интерфейсы могут участвовать в разных NHRP сессиях; это просто разграничитель того, что сессия NHRP на одном интерфейсе не та что на другом. Соответственно, совершенно не обязательно, чтобы Network ID совпадали на разных маршрутизаторах.

    Настройка NHRP

    Настройка NHRP на hub-маршрутизаторе

    Включение NHRP на интерфейсе:

    dyn1(config)#interface Tunnel0
    dyn1(config-if)#ip nhrp network-id 999

    Hub-маршрутизатор будет автоматически добавлять соответствия между адресами spoke-маршрутизаторов:

    dyn1(config-if)#ip nhrp map multicast dynamic

    (Опционально) Настройка аутентификации:

    dyn1(config-if)#ip nhrp authentication nhrppass

    Настройка NHRP на spoke-маршрутизаторах

    Включение NHRP на интерфейсе:

    dyn3(config)#interface Tunnel0
    dyn3(config-if)#ip nhrp network-id 999

    Адрес туннельного интерфейса hub-маршрутизатора указывается как next-hop-сервер:

    dyn3(config-if)#ip nhrp nhs 10.10.10.1

    Статическое соответствие между адресом mGRE-туннеля и физическим адресом hub-маршрутизатора (первый адрес — адрес туннельного интерфейса, второй — адрес внешнего физического интерфейса):

    dyn3(config-if)#ip nhrp map 10.10.10.1 192.168.1.1

    Адрес внешнего физического интерфейса hub-маршрутизатора указывается как получатель multicast-пакетов от локального маршрутизатора:

    dyn3(config-if)#ip nhrp map multicast 192.168.1.1

    (Опционально) Настройка аутентификации:

    dyn3(config-if)#ip nhrp authentication nhrppass

    (Опционально) Настройка флага неуникальности ip-адреса туннеля в базе nhrp на hub-маршрутизаторе:

    dyn3(config-if)#ip nhrp registration no-unique

    Если изменится внешний адрес spoke-маршрутизатора и этой команды не будет, то hub-маршрутизатор не обновит свою базу nhrp из-за ошибки: unique address registered already

    Проверка работы mGRE-туннелей и протокола NHRP

    Проверка туннельных интерфейсов

    После того, как на маршрутизаторах настроены mGRE-туннели и настроен протокол NHRP, туннели находятся в состоянии up и все IP-адреса туннелей доступны.

    На dyn5:

    dyn5#sh ip int br
    Interface IP-Address OK? Method Status Protocol
    FastEthernet0/0 192.168.5.5 YES manual up up
    FastEthernet1/0 10.1.5.5 YES manual up up
    Tunnel0 10.10.10.5 YES manual up up

    Просмотр информации о туннельном интерфейсе:

    dyn5#sh int tunnel 0
    Tunnel0 is up, line protocol is up
    Hardware is Tunnel
    Internet address is 10.10.10.5/24
    MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
    reliability 255/255, txload 1/255, rxload 1/255
    Encapsulation TUNNEL, loopback not set
    Keepalive not set
    Tunnel source 192.168.5.5 (FastEthernet0/0), destination UNKNOWN
    Tunnel protocol/transport multi-GRE/IP
    Key 0x3E7, sequencing disabled
    Checksumming of packets disabled
    ……
    С dyn5 пингуется и dyn1 и dyn3:
    dyn5#ping 10.10.10.1

    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 10.10.10.1, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 148/200/280 ms
    dyn5#ping 10.10.10.3

    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 10.10.10.3, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 104/199/296 ms

    Проверка NHRP на spoke-маршрутизаторе

    Информация о NHS:

    dyn5#sh ip nhrp nhs
    Legend: E=Expecting replies, R=Responding
    Tunnel0: 10.10.10.1 RE

    Суммарная информация NHRP (уже установлен динамический туннель с dyn3):

    dyn5#sh ip nhrp brief
    Target Via NBMA Mode Intfc Claimed
    10.10.10.1/32 10.10.10.1 192.168.1.1 static Tu0 < >
    10.10.10.3/32 10.10.10.3 192.168.3.3 dynamic Tu0 < >

    Подробная информация о других маршрутизаторах полученная по NHRP:

    dyn5#sh ip nhrp
    10.10.10.1/32 via 10.10.10.1, Tunnel0 created 00:12:29, never expire
    Type: static, Flags: nat used
    NBMA address: 192.168.1.1
    10.10.10.3/32 via 10.10.10.3, Tunnel0 created 00:11:17, expire 01:47:19
    Type: dynamic, Flags: router
    NBMA address: 192.168.3.3

    Получатель multicast-трафика:

    dyn5#sh ip nhrp multicast
    I/F NBMA address
    Tunnel0 192.168.1.1 Flags: static

    Суммарная информация о записях NHRP:

    dyn5#sh ip nhrp summary
    IP NHRP cache 2 entries, 528 bytes
    1 static 1 dynamic 0 incomplete

    Статистика по пакетам NHRP:

    dyn5#sh ip nhrp traffic
    Tunnel0: Max-send limit:100Pkts/10Sec, Usage:0%
    Sent: Total 3
    1 Resolution Request 0 Resolution Reply 2 Registration Request
    0 Registration Reply 0 Purge Request 0 Purge Reply
    0 Error Indication 0 Traffic Indication
    Rcvd: Total 2
    0 Resolution Request 1 Resolution Reply 0 Registration Request
    1 Registration Reply 0 Purge Request 0 Purge Reply
    0 Error Indication 0 Traffic Indication

    Проверка NHRP на hub-маршрутизаторе

    Суммарная информация NHRP:

    dyn1#sh ip nhrp brief
    Target Via NBMA Mode Intfc Claimed
    10.10.10.3/32 10.10.10.3 192.168.3.3 dynamic Tu0 < >
    10.10.10.5/32 10.10.10.5 192.168.5.5 dynamic Tu0 < >

    Подробная информация о других маршрутизаторах полученная по NHRP:

    dyn1#sh ip nhrp
    10.10.10.3/32 via 10.10.10.3, Tunnel0 created 00:25:05, expire 01:34:54
    Type: dynamic, Flags: authoritative unique registered
    NBMA address: 192.168.3.3
    10.10.10.5/32 via 10.10.10.5, Tunnel0 created 00:25:29, expire 01:34:30
    Type: dynamic, Flags: authoritative unique registered
    NBMA address: 192.168.5.5

    Получатели multicast-трафика:

    dyn1#sh ip nhrp multicast
    I/F NBMA address
    Tunnel0 None Flags: dynamic
    Tunnel0 None Flags: dynamic

    Суммарная информация о записях NHRP:

    dyn1#sh ip nhrp summary
    IP NHRP cache 2 entries, 496 bytes
    0 static 2 dynamic 0 incomplete

    Статистика по пакетам NHRP:

    dyn1#sh ip nhrp traffic
    Tunnel0
    Sent: Total 4
    0 Resolution Request 2 Resolution Reply 0 Registration Request
    2 Registration Reply 0 Purge Request 0 Purge Reply
    0 Error Indication
    Rcvd: Total 5
    2 Resolution Request 0 Resolution Reply 3 Registration Request
    0 Registration Reply 0 Purge Request 0 Purge Reply
    0 Error Indication

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

    Рассматривается использование протоколов EIGRP и OSPF для настройки маршрутизации между сетями офисов. Для реального использования достаточно выбрать один из этих протоколов, и выполнить соответствующие ему настройки.

    Настройка EIGRP

    Если в качестве протокола маршрутизации будет использоваться EIGRP, то необходимо:

    Включить EIGRP для сетей mGRE-интерфейсов и локальных сетей;
    Отключить автоматическое суммирование сетей по классовому признаку;
    Настроить EIGRP на mGRE-интерфейсе.

    Включение EIGRP для сетей mGRE-интерфейсов и локальных сетей:

    dyn1(config)#router eigrp 1
    dyn1(config-router)#network 10.10.10.0 0.0.0.255
    dyn1(config-router)#network 10.1.1.0 0.0.0.255

    Отключение автоматического суммирования сетей:

    dyn1(config-router)#no auto-summary

    Настройка EIGRP на mGRE-интерфейсах

    Для работы в сети DMVPN необходимо дополнительно настроить EIGRP.

    На hub-маршрутизаторе необходимо отключить правило расщепления горизонта (split horizon), иначе EIGRP не будет анонсировать маршруты, выученные через mGRE-интерфейс назад в этот же интерфейс:

    dyn1(config-if)#no ip split-horizon eigrp 1

    По умолчанию EIGRP будет подставлять IP-адрес hub-маршрутизатора в качестве next-hop для маршрутов которые он анонсирует, даже когда анонсирует маршруты назад через тот же интерфейс, на котором они были выучены. Для сети DMVPN необходимо чтобы EIGRP использовал в качестве next-hop адреса spoke-маршрутизаторов. Поэтому на hub-маршрутизаторе необходимо отключить это правило:

    dyn1(config-if)#no ip next-hop-self eigrp 1

    При использовании DMVPN в больших сетях время сходимости сети может увеличиваться. Для того чтобы избежать возможных проблем с маршрутизацией, на маршрутизаторах необходимо изменить hold time (по умолчанию 15 секунд):

    dyn1(config-if)#ip hold-time eigrp 1 35

    Если на одном из маршрутизаторов этот параметр изменен, то соседи этого маршрутизатора будут использовать этот таймер. Для того чтобы маршрутизатор сам использовал определенное значение таймера, необходимо изменить таймер на соответствующем интерфейсе соседа.

    Проверка работы EIGRP

    Соседи EIGRP на dyn1:

    dyn1#sh ip eigrp neighbors
    IP-EIGRP neighbors for process 1
    H Address Interface Hold Uptime SRTT RTO Q Seq
    (sec) (ms) Cnt Num
    1 10.10.10.5 Tu0 31 00:01:08 384 5000 0 22
    0 10.10.10.3 Tu0 32 00:01:31 327 5000 0 25

    Соседи EIGRP на dyn5:

    dyn5#sh ip eigr neighbors
    IP-EIGRP neighbors for process 1
    H Address Interface Hold Uptime SRTT RTO Q Seq
    (sec) (ms) Cnt Num
    0 10.10.10.1 Tu0 33 00:03:29 235 5000 0 35

    Таблица маршрутизации dyn1:

    dyn1#sh ip route
    Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
    D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
    N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
    E1 – OSPF external type 1, E2 – OSPF external type 2
    i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
    ia – IS-IS inter area, * – candidate default, U – per-user static route
    o – ODR, P – periodic downloaded static route

    Gateway of last resort is not set

    S 192.168.5.0/24 [1/0] via 192.168.1.2
    10.0.0.0/24 is subnetted, 4 subnets
    D 10.1.3.0 [90/297246976] via 10.10.10.3, 00:01:34, Tunnel0
    C 10.10.10.0 is directly connected, Tunnel0
    C 10.1.1.0 is directly connected, FastEthernet0/0
    D 10.1.5.0 [90/297246976] via 10.10.10.5, 00:01:34, Tunnel0
    C 192.168.1.0/24 is directly connected, FastEthernet1/0
    S 192.168.3.0/24 [1/0] via 192.168.1.2

    Таблица маршрутизации dyn3 (сеть 10.1.5.0 доступна через dyn5, а не через dyn1):

    dyn3#sh ip route
    Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
    D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
    N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
    E1 – OSPF external type 1, E2 – OSPF external type 2
    i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
    ia – IS-IS inter area, * – candidate default, U – per-user static route
    o – ODR, P – periodic downloaded static route

    Gateway of last resort is not set

    S 192.168.5.0/24 [1/0] via 192.168.3.2
    10.0.0.0/24 is subnetted, 4 subnets
    C 10.1.3.0 is directly connected, FastEthernet1/0
    C 10.10.10.0 is directly connected, Tunnel0
    D 10.1.1.0 [90/297270016] via 10.10.10.1, 00:01:24, Tunnel0
    D 10.1.5.0 [90/310046976] via 10.10.10.5, 00:01:16, Tunnel0
    S 192.168.1.0/24 [1/0] via 192.168.3.2
    C 192.168.3.0/24 is directly connected, FastEthernet0/0

    Настройка OSPF

    Для OSPF выбрана топология в которой mGRE-интерфейсы находятся в зоне 0, а локальные сети — каждая в своей зоне. Сеть разбита на зоны, так как это позволяет суммировать сети внутри зоны и не передавать в другие офисы подробную информацию о сетях (для данного примера это не актуально, но в реальной сети может существенно уменьшить таблицу маршрутизации и количество вычислений кратчайшего пути).

    \"\"

    На маршрутизаторах необходимо:

    1. Включить OSPF для сетей mGRE-интерфейсов в зоне 0;
    2. Включить OSPF для локальных сетей в соответствующей зоне;
    3. Настроить OSPF на mGRE-интерфейсе.

    Включение OSPF для сетей mGRE-интерфейсов в зоне 0:

    dyn1(config)#router ospf 1
    dyn1(config-router)#network 10.10.10.0 0.0.0.255 area 0

    Включение OSPF для локальных сетей в соответствующей зоне (офису за dyn1 соответствует зона 1):

    dyn1(config-router)#network 10.1.1.0 0.0.0.255 area 1

    Настройка OSPF на mGRE-интерфейсе

    Так как mGRE-интерфейсы образуют NBMA-сеть, то на этих интерфейсах необходимо изменить настройки OSPF. Подробнее о работе OSPF в NBMA-сетях на странице OSPF в Cisco.

    На hub-маршрутизаторе и spoke-маршрутизаторах отличаются настройки приоритетов, остальные настройки совпадают.

    Приоритет интерфейса влияет на то, какой маршрутизатор будет выбран выделенным маршрутизатором (DR) для сети. В топологии \”звезда\” роль DR должен взять на себя центральный маршрутизатор.

    На hub-маршрутизаторе приоритет устанавливается 10:

    dyn1(config)#interface Tunnel0
    dyn1(config-if)#ip ospf priority 10

    На spoke-маршрутизаторах приоритет устанавливается 0 для того чтобы маршрутизаторы не могли участвовать в выборах DR:

    dyn3(config)#interface Tunnel0
    dyn3(config-if)#ip ospf priority 0

    Указание типа сети OSPF на mGRE-интерфейсе:

    dyn1(config-if)#ip ospf network broadcast

    Изменение интервала между отправкой hello-пакетов:

    dyn1(config-if)#ip ospf hello-interval 30

    Проверка работы OSPF

    Соседи OSPF на dyn1:

    dyn1#sh ip ospf neigh

    Neighbor ID Pri State Dead Time Address Interface
    192.168.3.3 0 FULL/DROTHER 00:01:51 10.10.10.3 Tunnel0
    192.168.5.5 0 FULL/DROTHER 00:01:52 10.10.10.5 Tunnel0

    Соседи OSPF на dyn3:

    dyn3#sh ip ospf neighbor

    Neighbor ID Pri State Dead Time Address Interface
    192.168.1.1 10 FULL/DR 00:01:55 10.10.10.1 Tunnel0

    Таблица маршрутизации на dyn1:

    dyn1#sh ip route
    Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
    D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
    N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
    E1 – OSPF external type 1, E2 – OSPF external type 2
    i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
    ia – IS-IS inter area, * – candidate default, U – per-user static route
    o – ODR, P – periodic downloaded static route

    Gateway of last resort is not set

    S 192.168.5.0/24 [1/0] via 192.168.1.2
    10.0.0.0/24 is subnetted, 4 subnets
    O IA 10.1.3.0 [110/11112] via 10.10.10.3, 00:02:48, Tunnel0
    C 10.10.10.0 is directly connected, Tunnel0
    C 10.1.1.0 is directly connected, FastEthernet0/0
    O IA 10.1.5.0 [110/11112] via 10.10.10.5, 00:02:48, Tunnel0
    C 192.168.1.0/24 is directly connected, FastEthernet1/0
    S 192.168.3.0/24 [1/0] via 192.168.1.2

    Таблица маршрутизации на dyn3:

    dyn3#sh ip route
    Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
    D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
    N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
    E1 – OSPF external type 1, E2 – OSPF external type 2
    i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
    ia – IS-IS inter area, * – candidate default, U – per-user static route
    o – ODR, P – periodic downloaded static route

    Gateway of last resort is not set

    S 192.168.5.0/24 [1/0] via 192.168.3.2
    10.0.0.0/24 is subnetted, 4 subnets
    C 10.1.3.0 is directly connected, FastEthernet1/0
    C 10.10.10.0 is directly connected, Tunnel0
    O IA 10.1.1.0 [110/11121] via 10.10.10.1, 00:01:26, Tunnel0
    O IA 10.1.5.0 [110/11112] via 10.10.10.5, 00:01:26, Tunnel0
    S 192.168.1.0/24 [1/0] via 192.168.3.2
    C 192.168.3.0/24 is directly connected, FastEthernet0/0

    Настройка IPsec

    Первая фаза (настройка IKE)

    Для тестовой сети в политике isakmp используются настройки по умолчанию:

    Алгоритм шифрования: DES – Data Encryption Standard (56 bit keys);
    Алгоритм хеширования: Secure Hash Standard;
    Метод аутентификации: Rivest-Shamir-Adleman Signature;
    Группа Diffie-Hellman: #1 (768 bit);
    Время жизни SA: 86400 seconds, no volume limit.

    Аутентификация по pre-shared key

    В политике с аутентификацией по pre-shared key, метод аутентификации изменен, так как по умолчанию используется аутентификация по сертификатам.

    Остальные параметры используют значения по умолчанию.

    Создать политику isakmp:

    dyn1(config)#crypto isakmp policy 20
    dyn1(config-isakmp)#authentication pre-share

    Так как адрес peer заранее не известен и может быть получен динамически, то при настройке pre-shared key необходимо указывать шаблонный адрес (wildcard address).

    Настроить isakmp pre-shared key:

    dyn1(config)#crypto isakmp key 0 isakmpkey address 0.0.0.0 0.0.0.0

    Аутентификация по сертификатам

    Аутентификацию по pre-shared key не рекомендуется использовать для DMVPN, так как pre-shared key должен быть указан с шаблонным адресом, и нет привязки к адресу маршрутизатора с которым устанавливается туннель.

    В тестовой сети hub-маршрутизатор будет выполнять роль центра сертификатов.

    Всем маршрутизаторам выданы сертификаты.

    Более подробно о настройке центра сертификатов на маршрутизаторе Cisco и процедуре выдачи сертификатов маршрутизаторам на странице Центр сертификатов на маршрутизаторе Cisco.

    Создать политику isakmp (так как по умолчанию используется аутентификация по сертификатам, то в тестовых целях можно оставить все настройки политики по умолчанию):

    dyn1(config)#crypto isakmp policy 10
    dyn1(config-isakmp)#

    Вторая фаза (настройка IPsec-профиля)

    Так как hub-маршрутизатор не знает заранее IP-адреса spoke-маршрутизаторов, то для второй фазы IPsec нужна динамическая crypto map (dynamic crypto map), но для туннельных интерфейсов эквивалентом dynamic crypto map является IPSec-profile:

    применяется на туннельном интерфейсе;
    после применения любой трафик исходящий из туннельного интерфейса инициирует создание IPsec-туннеля (нет необходимости использовать ACL, как в обычной crypto map);
    source и destination адреса туннельного интерфейса используются для создания IPsec-туннеля. Адреса могут быть прописаны в настройках интерфейса или получены динамически с помощью NHRP (не задаётся адрес peer, как в обычной crypto map);

    Создаем transform set:

    dyn1(config)#crypto ipsec transform-set DMVPN-TR esp-des

    Так как mGRE-интерфейс обеспечивает создание туннеля, то IPsec можно перевести в транспортный режим (по умолчанию используется туннельный режим):

    dyn1(cfg-crypto-trans)#mode transport

    Создать IPSec-профиль:

    dyn1(config)#crypto ipsec profile DMVPN
    dyn1(config-profile)#set transform-set DMVPN-TR

    Применение IPsec-профиля

    Применение IPsec-профиля на mGRE-интерфейсе:

    dyn1(config)#interface Tunnel0
    dyn1(config-if)#tunnel protection ipsec profile DMVPN

    Проверка работы IPsec

    Проверка работы IKE с аутентификацией по pre-shared key

    Проверка isakmp SA на dyn1:

    dyn1#show crypto isakmp sa
    dst src state conn-id slot status
    192.168.1.1 192.168.5.5 QM_IDLE 2 0 ACTIVE
    192.168.1.1 192.168.3.3 QM_IDLE 1 0 ACTIVE

    Проверка isakmp SA на dyn3 до установки туннеля spoke-to-spoke:

    dyn3#show crypto isakmp sa
    IPv4 Crypto ISAKMP SA
    dst src state conn-id slot status
    192.168.1.1 192.168.3.3 QM_IDLE 1004 0 ACTIVE

    IPv6 Crypto ISAKMP SA

    Проверка isakmp SA на dyn3 после установки туннеля spoke-to-spoke. Для этого достаточно просто пропинговать туннельный интерфейс соседнего spoke-маршрутизатора (но пакетов icmp желательно послать штук 10):

    dyn3#sh cry isa sa
    IPv4 Crypto ISAKMP SA
    dst src state conn-id slot status
    192.168.1.1 192.168.3.3 QM_IDLE 1004 0 ACTIVE
    192.168.5.5 192.168.3.3 QM_IDLE 1005 0 ACTIVE

    IPv6 Crypto ISAKMP SA

    Более подробная информация про isakmp SA (аутентификация по pre-shared key):

    dyn1#show crypto isakmp sa detail
    Codes: C – IKE configuration mode, D – Dead Peer Detection
    K – Keepalives, N – NAT-traversal
    X – IKE Extended Authentication
    psk – Preshared key, rsig – RSA signature
    renc – RSA encryption

    C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap.
    2 192.168.1.1 192.168.5.5 ACTIVE des sha psk 1 23:56:14
    Connection-id:Engine-id = 2:1(software)
    1 192.168.1.1 192.168.3.3 ACTIVE des sha psk 1 23:56:12
    Connection-id:Engine-id = 1:1(software)

    Проверка работы IKE с аутентификацией по сертификатам

    Проверка isakmp SA на dyn1:

    dyn1#sh cry isa sa
    dst src state conn-id slot status
    192.168.1.1 192.168.5.5 QM_IDLE 2 0 ACTIVE
    192.168.1.1 192.168.3.3 QM_IDLE 1 0 ACTIVE

    Проверка isakmp SA на dyn3 до установки туннеля spoke-to-spoke:
    dyn3#sh crypto isakmp sa
    IPv4 Crypto ISAKMP SA
    dst src state conn-id slot status
    192.168.1.1 192.168.3.3 QM_IDLE 1006 0 ACTIVE

    IPv6 Crypto ISAKMP SA

    Проверка isakmp SA на dyn3 после установки туннеля spoke-to-spoke. Для этого достаточно просто пропинговать туннельный интерфейс соседнего spoke-маршрутизатора (но пакетов icmp желательно послать штук 10):

    dyn3#sh crypto isakmp sa detail
    Codes: C – IKE configuration mode, D – Dead Peer Detection
    K – Keepalives, N – NAT-traversal
    X – IKE Extended Authentication
    psk – Preshared key, rsig – RSA signature
    renc – RSA encryption
    IPv4 Crypto ISAKMP SA

    C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap.

    1006 192.168.3.3 192.168.1.1 ACTIVE des sha rsig 1 23:57:00
    Engine-id:Conn-id = SW:6

    1007 192.168.3.3 192.168.5.5 ACTIVE des sha rsig 1 23:59:26
    Engine-id:Conn-id = SW:7

    Более подробная информация про isakmp SA (аутентификация по сертификатам):

    dyn1#show crypto isakmp sa detail
    X – IKE Extended Authentication
    psk – Preshared key, rsig – RSA signature
    renc – RSA encryption

    C-id Local Remote I-VRF Status Encr Hash Auth DH Lifetime Cap.
    2 192.168.1.1 192.168.5.5 ACTIVE des sha rsig 1 23:59:43
    Connection-id:Engine-id = 2:1(software)
    1 192.168.1.1 192.168.3.3 ACTIVE des sha rsig 1 23:59:34
    Connection-id:Engine-id = 1:1(software)

    Проверка работы IPsec

    Просмотр информации о crypto map на dyn1:

    dyn1#sh crypto map
    Crypto Map \”Tunnel0-head-0\” 65536 ipsec-isakmp
    Profile name: DMVPN
    Security association lifetime: 4608000 kilobytes/3600 seconds
    PFS (Y/N): N
    Transform sets={
    DMVPN-TR,
    }

    Crypto Map \”Tunnel0-head-0\” 65537 ipsec-isakmp
    Map is a PROFILE INSTANCE.
    Peer = 192.168.3.3
    Extended IP access list
    access-list permit gre host 192.168.1.1 host 192.168.3.3
    Current peer: 192.168.3.3
    Security association lifetime: 4608000 kilobytes/3600 seconds
    PFS (Y/N): N
    Transform sets={
    DMVPN-TR,
    }

    Crypto Map \”Tunnel0-head-0\” 65538 ipsec-isakmp
    Map is a PROFILE INSTANCE.
    Peer = 192.168.5.5
    Extended IP access list
    access-list permit gre host 192.168.1.1 host 192.168.5.5
    Current peer: 192.168.5.5
    Security association lifetime: 4608000 kilobytes/3600 seconds
    PFS (Y/N): N
    Transform sets={
    DMVPN-TR,
    }
    Interfaces using crypto map Tunnel0-head-0:
    Tunnel0

    Просмотр информации о crypto map на dyn3 до создания динамического туннеля с dyn5:

    dyn3#sh crypto map
    Crypto Map \”Tunnel0-head-0\” 65536 ipsec-isakmp
    Profile name: DMVPN
    Security association lifetime: 4608000 kilobytes/3600 seconds
    PFS (Y/N): N
    Transform sets={
    DMVPN-TR,
    }

    Crypto Map \”Tunnel0-head-0\” 65537 ipsec-isakmp
    Map is a PROFILE INSTANCE.
    Peer = 192.168.1.1
    Extended IP access list
    access-list permit gre host 192.168.3.3 host 192.168.1.1
    Current peer: 192.168.1.1
    Security association lifetime: 4608000 kilobytes/3600 seconds
    PFS (Y/N): N
    Transform sets={
    DMVPN-TR,
    }
    Interfaces using crypto map Tunnel0-head-0:
    Tunnel0

    Проверка IPsec SA на dyn1:

    dyn1#show crypto ipsec sa

    interface: Tunnel0
    Crypto map tag: Tunnel0-head-0, local addr 192.168.1.1

    protected vrf: (none)
    local ident (addr/mask/prot/port): (192.168.1.1/255.255.255.255/47/0)
    remote ident (addr/mask/prot/port): (192.168.3.3/255.255.255.255/47/0)
    current_peer 192.168.3.3 port 500
    PERMIT, flags={origin_is_acl,}
    #pkts encaps: 144, #pkts encrypt: 144, #pkts digest: 144
    #pkts decaps: 110, #pkts decrypt: 110, #pkts verify: 110
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

    local crypto endpt.: 192.168.1.1, remote crypto endpt.: 192.168.3.3
    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet1/0
    current outbound spi: 0x76324587(1983006087)

    inbound esp sas:
    spi: 0x68D0FDFE(1758526974)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 2008, flow_id: SW:8, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4576176/3198)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    inbound ah sas:

    inbound pcp sas:

    outbound esp sas:
    spi: 0x76324587(1983006087)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 2005, flow_id: SW:5, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4576171/3184)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    outbound ah sas:

    outbound pcp sas:

    protected vrf: (none)
    local ident (addr/mask/prot/port): (192.168.1.1/255.255.255.255/47/0)
    remote ident (addr/mask/prot/port): (192.168.5.5/255.255.255.255/47/0)
    current_peer 192.168.5.5 port 500
    PERMIT, flags={origin_is_acl,}
    #pkts encaps: 144, #pkts encrypt: 144, #pkts digest: 144
    #pkts decaps: 106, #pkts decrypt: 106, #pkts verify: 106
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

    local crypto endpt.: 192.168.1.1, remote crypto endpt.: 192.168.5.5
    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet1/0
    current outbound spi: 0xF5CB7B75(4123753333)

    inbound esp sas:
    spi: 0x31209EB8(824221368)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 2006, flow_id: SW:6, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4604536/3177)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    inbound ah sas:

    inbound pcp sas:

    outbound esp sas:
    spi: 0xF5CB7B75(4123753333)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 2007, flow_id: SW:7, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4604530/3161)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    outbound ah sas:

    outbound pcp sas:

    Проверка IPsec SA на dyn3 после установки туннеля spoke-to-spoke:

    dyn3#sh crypto ipsec sa

    interface: Tunnel0
    Crypto map tag: Tunnel0-head-0, local addr 192.168.3.3

    protected vrf: (none)
    local ident (addr/mask/prot/port): (192.168.3.3/255.255.255.255/47/0)
    remote ident (addr/mask/prot/port): (192.168.1.1/255.255.255.255/47/0)
    current_peer 192.168.1.1 port 500
    PERMIT, flags={origin_is_acl,}
    #pkts encaps: 56, #pkts encrypt: 56, #pkts digest: 56
    #pkts decaps: 69, #pkts decrypt: 69, #pkts verify: 69
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 10, #recv errors 0

    local crypto endpt.: 192.168.3.3, remote crypto endpt.: 192.168.1.1
    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
    current outbound spi: 0x68D0FDFE(1758526974)

    inbound esp sas:
    spi: 0x76324587(1983006087)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 47, flow_id: SW:47, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4598083/3535)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    inbound ah sas:

    inbound pcp sas:

    outbound esp sas:
    spi: 0x68D0FDFE(1758526974)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 48, flow_id: SW:48, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4598082/3475)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    outbound ah sas:

    outbound pcp sas:

    protected vrf: (none)
    local ident (addr/mask/prot/port): (192.168.3.3/255.255.255.255/47/0)
    remote ident (addr/mask/prot/port): (192.168.5.5/255.255.255.255/47/0)
    current_peer 192.168.5.5 port 500
    PERMIT, flags={origin_is_acl,}
    #pkts encaps: 6, #pkts encrypt: 6, #pkts digest: 6
    #pkts decaps: 7, #pkts decrypt: 7, #pkts verify: 7
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

    local crypto endpt.: 192.168.3.3, remote crypto endpt.: 192.168.5.5
    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
    current outbound spi: 0x76C6CEF8(1992740600)

    inbound esp sas:
    spi: 0x6DD29A5(115157413)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 53, flow_id: SW:53, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4518903/3505)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    inbound ah sas:

    inbound pcp sas:

    outbound esp sas:
    spi: 0x76C6CEF8(1992740600)
    transform: esp-des ,
    in use settings ={Tunnel, }
    conn id: 54, flow_id: SW:54, crypto map: Tunnel0-head-0
    sa timing: remaining key lifetime (k/sec): (4518903/3490)
    IV size: 8 bytes
    replay detection support: N
    Status: ACTIVE

    outbound ah sas:

    outbound pcp sas:

    Просмотр информации о DMVPN сети

    Так как на маршрутизаторе dyn3 записи различных типов — динамическая и статическая, то вся информация проверяется на нем.

    В некоторых версиях IOS может не быть команды show dmvpn. Она появилась в Cisco IOS 12.4(9)T.

    Просмотр информации о DMVPN:

    dyn3#show dmvpn
    Legend: Attrb –> S – Static, D – Dynamic, I – Incompletea
    N – NATed, L – Local, X – No Socket
    # Ent –> Number of NHRP entries with same NBMA peer

    Tunnel0, Type:Spoke, NHRP Peers:2,
    # Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
    —– ————— ————— —– ——– —–
    1 192.168.1.1 10.10.10.1 UP 00:14:47 S
    1 192.168.5.5 10.10.10.5 UP 00:14:36 D

    Более подробная информация о DMVPN до применения IPsec profile:

    dyn3#show dmvpn detail
    Legend: Attrb –> S – Static, D – Dynamic, I – Incompletea
    N – NATed, L – Local, X – No Socket
    # Ent –> Number of NHRP entries with same NBMA peer

    ————– Interface Tunnel0 info: ————–
    Intf. is up, Line Protocol is up, Addr. is 10.10.10.3
    Source addr: 192.168.3.3, Dest addr: MGRE
    Protocol/Transport: \”multi-GRE/IP\”, Protect \”\”,
    Tunnel VRF \”\”, ip vrf forwarding \”\”

    NHRP Details: NHS: 10.10.10.1 RE

    Type:Spoke, NBMA Peers:2
    # Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb Target Network
    —– ————— ————— —– ——– —– —————–
    1 192.168.1.1 10.10.10.1 UP 00:01:06 S 10.10.10.1/32

    # Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb Target Network
    —– ————— ————— —– ——– —– —————–
    1 192.168.5.5 10.10.10.5 UP 00:00:52 D 10.10.10.5/32
    Pending DMVPN Sessions:

    Более подробная информация о DMVPN после применения IPsec profile:

    dyn3#show dmvpn detail
    Legend: Attrb –> S – Static, D – Dynamic, I – Incompletea
    N – NATed, L – Local, X – No Socket
    # Ent –> Number of NHRP entries with same NBMA peer

    ————– Interface Tunnel0 info: ————–
    Intf. is up, Line Protocol is up, Addr. is 10.10.10.3
    Source addr: 192.168.3.3, Dest addr: MGRE
    Protocol/Transport: \”multi-GRE/IP\”, Protect \”DMVPN\”,
    Tunnel VRF \”\”, ip vrf forwarding \”\”

    NHRP Details: NHS: 10.10.10.1 RE

    Type:Spoke, NBMA Peers:2
    # Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb Target Network
    —– ————— ————— —– ——– —– —————–
    1 192.168.1.1 10.10.10.1 UP 00:20:47 S 10.10.10.1/32

    IKE SA: local 192.168.3.3/500 remote 192.168.1.1/500 Active
    Crypto Session Status: UP-ACTIVE
    fvrf: (none)
    IPSEC FLOW: permit 47 host 192.168.3.3 host 192.168.1.1
    Active SAs: 2, origin: crypto map
    Outbound SPI : 0x68D0FDFE, transform : esp-des
    Socket State: Open
    # Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb Target Network
    —– ————— ————— —– ——– —– —————–
    1 192.168.5.5 10.10.10.5 UP 00:20:47 D 10.10.10.5/32

    IKE SA: local 192.168.3.3/500 remote 192.168.5.5/500 Active
    IKE SA: local 192.168.3.3/500 remote 192.168.5.5/500 Active
    Crypto Session Status: UP-ACTIVE
    fvrf: (none)
    IPSEC FLOW: permit 47 host 192.168.3.3 host 192.168.5.5
    Active SAs: 2, origin: crypto map
    Outbound SPI : 0x76C6CEF8, transform : esp-des
    Socket State: Open

    Pending DMVPN Sessions:

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

    В конфигурационных файлах сохранены все настройки:

    Различные протоколы динамической маршрутизации:
    OSPF;
    EIGRP;

    Различные методы аутентификации:
    по pre-shares key;
    по сертификатам.

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

    Так как у EIGRP AD (administrative distance) меньше, чем у OSPF, то при использовании обоих протоколов, в таблице маршрутизации будут маршруты EIGRP.

    Так как у политики isakmp, которая использует аутентификацию по сертификатам, на всех маршрутизаторах номер меньше чем у политики с pre-shared key, то при использовании обоих политик, аутентификация будет проводиться по сертификатам.

    Конфигурация hub-маршрутизатора (dyn1)

    dyn1#sh run
    Building configuration…
    Current configuration : 5618 bytes
    !
    ! Last configuration change at 23:01:18 UTC Fri Feb 27 2009
    ! NVRAM config last updated at 23:07:10 UTC Fri Feb 27 2009
    !
    version 12.4
    service timestamps debug datetime msec
    service timestamps log datetime msec
    no service password-encryption
    !
    hostname dyn1
    !
    boot-start-marker
    boot-end-marker
    !
    !
    no aaa new-model
    memory-size iomem 5
    ip cef
    !
    !
    ip domain name xgu.ru
    ip host dyn1 192.168.1.1
    !
    !
    !
    crypto pki server dyn1
    !
    crypto pki trustpoint dyn1
    enrollment url http://dyn1:80
    revocation-check crl
    rsakeypair dyn1
    !
    crypto pki trustpoint dyn
    enrollment url http://dyn1:80
    revocation-check crl
    !
    !
    crypto pki certificate chain dyn1
    certificate ca 01
    308201F7 30820160 A0030201 02020101 300D0609 2A864886 F70D0101 04050030
    0F310D30 0B060355 04031304 64796E31 301E170D 30393032 32373232 34353534
    5A170D31 32303232 37323234 3535345A 300F310D 300B0603 55040313 0464796E
    3130819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281 8100C2F6
    FAC39C79 1F083E69 F2952D2E 9B0B439E 9970825F 2B8B69E5 104264F9 B6712BE1
    DBDBDC5D 38D13DF3 9B9ADE18 53EDA6D5 F50F5958 B5BC485E 03B4A958 F53C1B2F
    64149E25 4552E596 BC87D9C2 04F9B0F2 5158ED70 6A8E9600 9D99716B 991D9DE5
    65C7CAEF B48FEE1B E37B0E48 A4784731 D7B70BE9 1E264E66 A1AF6EDE 433F0203
    010001A3 63306130 0F060355 1D130101 FF040530 030101FF 300E0603 551D0F01
    01FF0404 03020186 301F0603 551D2304 18301680 14316E92 9C655E50 81B8C728
    E0967B27 1B2D34DA 9E301D06 03551D0E 04160414 316E929C 655E5081 B8C728E0
    967B271B 2D34DA9E 300D0609 2A864886 F70D0101 04050003 8181005E 77BD000F
    8AF70F5E 5B1BF974 754BBCD8 548494FE AC7EE542 A1F60A15 2FD74C84 01EC7C5D
    1F4361B9 109A154F 208CE0A7 B53F6BAC D8D35C71 F5319EA1 60083F1C 60E65441
    9D752A26 BB90F676 7E9F0F2A 9B0FE3C8 C254AFD5 7A055242 E856D93E 5CE9D5E4
    0E2722D3 46540D03 F69688C6 FDC4EDE2 F138818F 5D0076F2 BF5CA2
    quit
    crypto pki certificate chain dyn
    certificate 04
    308201AC 30820115 A0030201 02020104 300D0609 2A864886 F70D0101 04050030
    0F310D30 0B060355 04031304 64796E31 301E170D 30393032 32373232 35363231
    5A170D31 30303232 37323235 3632315A 301C311A 30180609 2A864886 F70D0109
    02160B64 796E312E 7867752E 7275305C 300D0609 2A864886 F70D0101 01050003
    4B003048 024100A6 B5406A29 6DC12463 BF3204E9 00DF0F76 28157CEE 30FE7086
    95CF3C17 06680971 23FFB531 7E52632A A779EA0C 54C54304 63D20B6D 4065408D
    F1532CDA CC3B3902 03010001 A34F304D 300B0603 551D0F04 04030205 A0301F06
    03551D23 04183016 8014316E 929C655E 5081B8C7 28E0967B 271B2D34 DA9E301D
    0603551D 0E041604 1452D06E 52DA5CB4 F90D2966 31A4D112 3E2FC81F 32300D06
    092A8648 86F70D01 01040500 03818100 A4E9A982 2E293A24 1B89C9FE F8A03BE1
    024AF029 417B3A23 D7EABBAB 8E83664A 7821BFDC 65CD0280 1C7BAE0F 41053A45
    0E8FB6FA 83A6FFA2 11075443 4AB6658E 0F17A141 FAC2E7A9 D093890B 8DA9E90C
    8C5A7C82 0B4D261D 452690DE 894D9BF4 14EE9FF5 F9632C3A F5F34115 F42AA444
    954ACE4F 32A47FD0 AF588B7F 299027DA
    quit
    certificate ca 01
    308201F7 30820160 A0030201 02020101 300D0609 2A864886 F70D0101 04050030
    0F310D30 0B060355 04031304 64796E31 301E170D 30393032 32373232 34353534
    5A170D31 32303232 37323234 3535345A 300F310D 300B0603 55040313 0464796E
    3130819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281 8100C2F6
    FAC39C79 1F083E69 F2952D2E 9B0B439E 9970825F 2B8B69E5 104264F9 B6712BE1
    DBDBDC5D 38D13DF3 9B9ADE18 53EDA6D5 F50F5958 B5BC485E 03B4A958 F53C1B2F
    64149E25 4552E596 BC87D9C2 04F9B0F2 5158ED70 6A8E9600 9D99716B 991D9DE5
    65C7CAEF B48FEE1B E37B0E48 A4784731 D7B70BE9 1E264E66 A1AF6EDE 433F0203
    010001A3 63306130 0F060355 1D130101 FF040530 030101FF 300E0603 551D0F01
    01FF0404 03020186 301F0603 551D2304 18301680 14316E92 9C655E50 81B8C728
    E0967B27 1B2D34DA 9E301D06 03551D0E 04160414 316E929C 655E5081 B8C728E0
    967B271B 2D34DA9E 300D0609 2A864886 F70D0101 04050003 8181005E 77BD000F
    8AF70F5E 5B1BF974 754BBCD8 548494FE AC7EE542 A1F60A15 2FD74C84 01EC7C5D
    1F4361B9 109A154F 208CE0A7 B53F6BAC D8D35C71 F5319EA1 60083F1C 60E65441
    9D752A26 BB90F676 7E9F0F2A 9B0FE3C8 C254AFD5 7A055242 E856D93E 5CE9D5E4
    0E2722D3 46540D03 F69688C6 FDC4EDE2 F138818F 5D0076F2 BF5CA2
    quit
    !
    !
    !
    !
    crypto isakmp policy 10
    !
    crypto isakmp policy 20
    authentication pre-share
    crypto isakmp key isakmpkey address 0.0.0.0 0.0.0.0
    !
    !
    crypto ipsec transform-set DMVPN-TR esp-des
    mode transport
    !
    !
    crypto ipsec profile DMVPN
    set transform-set DMVPN-TR
    !
    !
    interface Tunnel0
    ip address 10.10.10.1 255.255.255.0
    no ip redirects
    ip mtu 1416
    no ip next-hop-self eigrp 1
    ip nhrp authentication nhrppass
    ip nhrp map multicast dynamic
    ip nhrp network-id 999
    no ip split-horizon eigrp 1
    ip ospf network broadcast
    ip ospf hello-interval 30
    ip ospf priority 10
    tunnel source FastEthernet1/0
    tunnel mode gre multipoint
    tunnel key 999
    tunnel protection ipsec profile DMVPN
    !
    interface FastEthernet0/0
    ip address 10.1.1.1 255.255.255.0
    duplex auto
    speed auto
    !
    interface FastEthernet0/1
    no ip address
    shutdown
    duplex auto
    speed auto
    !
    interface FastEthernet1/0
    ip address 192.168.1.1 255.255.255.0
    duplex auto
    speed auto
    !
    router eigrp 1
    network 10.1.1.0 0.0.0.255
    network 10.10.10.0 0.0.0.255
    no auto-summary
    !
    router ospf 1
    log-adjacency-changes
    network 10.1.1.0 0.0.0.255 area 1
    network 10.10.10.0 0.0.0.255 area 0
    !
    ip forward-protocol nd
    ip route 192.168.3.0 255.255.255.0 192.168.1.2
    ip route 192.168.5.0 255.255.255.0 192.168.1.2
    !
    !
    ip http server
    no ip http secure-server
    !
    !
    control-plane
    !
    !
    line con 0
    exec-timeout 0 0
    logging synchronous
    line aux 0
    line vty 0 4
    !
    !
    end

    Конфигурация spoke1 (dyn3)

    dyn3#sh run
    Building configuration…

    Current configuration : 4466 bytes
    !
    ! Last configuration change at 22:57:58 UTC Fri Feb 27 2009
    ! NVRAM config last updated at 23:00:31 UTC Fri Feb 27 2009
    !
    version 12.4
    service timestamps debug datetime msec
    service timestamps log datetime msec
    no service password-encryption
    !
    hostname dyn3
    !
    boot-start-marker
    boot-end-marker
    !
    !
    no aaa new-model
    ip cef
    !
    !
    !
    ip domain name xgu.ru
    ip host dyn1 192.168.1.1
    !
    multilink bundle-name authenticated
    !
    !
    !
    !
    crypto pki trustpoint dyn1
    enrollment url http://dyn1:80
    revocation-check crl
    !
    !
    crypto pki certificate chain dyn1
    certificate 02
    308201F0 30820159 A0030201 02020102 300D0609 2A864886 F70D0101 04050030
    0F310D30 0B060355 04031304 64796E31 301E170D 30393032 32373232 35323031
    5A170D31 30303232 37323235 3230315A 301C311A 30180609 2A864886 F70D0109
    02160B64 796E332E 7867752E 72753081 9F300D06 092A8648 86F70D01 01010500
    03818D00 30818902 818100B5 3C4F3F80 1AF47759 9707CF2D FF5A62CF 8409EA97
    CC9940C1 4DAB0907 DAB67FEC AB6CEFB5 23B2102A C715F0C6 E928AD13 9C46EFE7
    0A1088D9 64B143E0 60E0846B 4E309FE3 34A956DE 8BBAE8B5 24482691 33E33E6F
    DA4D5D71 2ED3000C 17091FFB 8330F259 DB29EE82 F791251B C856222E 50E7E2D4
    DC7834BD 9CA9DD90 9B3A4902 03010001 A34F304D 300B0603 551D0F04 04030205
    A0301F06 03551D23 04183016 8014316E 929C655E 5081B8C7 28E0967B 271B2D34
    DA9E301D 0603551D 0E041604 142D0CE0 43342D6A 6E707455 9546A505 8AA3389B
    BD300D06 092A8648 86F70D01 01040500 03818100 5BA5FF5C B9CE9D85 D5FAECBA
    1CC46FFA C380C2BC 0CD47900 AB18C0DC 2785DE8C B60C0066 EBFD009C A77C8D77
    02E57E58 C569D21F 1ED99D77 FB48EF54 33CCAE81 DEDCAC47 F95DCB79 0969BA3F
    1BF21012 682C0E6C 736343BB 11E2AFA2 0782B200 FDE760D4 6D052C0D 7006AF57
    EEFFDF10 BC51F753 A0210C0D 2E39CCD3 EF5A7652
    quit
    certificate ca 01
    308201F7 30820160 A0030201 02020101 300D0609 2A864886 F70D0101 04050030
    0F310D30 0B060355 04031304 64796E31 301E170D 30393032 32373232 34353534
    5A170D31 32303232 37323234 3535345A 300F310D 300B0603 55040313 0464796E
    3130819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281 8100C2F6
    FAC39C79 1F083E69 F2952D2E 9B0B439E 9970825F 2B8B69E5 104264F9 B6712BE1
    DBDBDC5D 38D13DF3 9B9ADE18 53EDA6D5 F50F5958 B5BC485E 03B4A958 F53C1B2F
    64149E25 4552E596 BC87D9C2 04F9B0F2 5158ED70 6A8E9600 9D99716B 991D9DE5
    65C7CAEF B48FEE1B E37B0E48 A4784731 D7B70BE9 1E264E66 A1AF6EDE 433F0203
    010001A3 63306130 0F060355 1D130101 FF040530 030101FF 300E0603 551D0F01
    01FF0404 03020186 301F0603 551D2304 18301680 14316E92 9C655E50 81B8C728
    E0967B27 1B2D34DA 9E301D06 03551D0E 04160414 316E929C 655E5081 B8C728E0
    967B271B 2D34DA9E 300D0609 2A864886 F70D0101 04050003 8181005E 77BD000F
    8AF70F5E 5B1BF974 754BBCD8 548494FE AC7EE542 A1F60A15 2FD74C84 01EC7C5D
    1F4361B9 109A154F 208CE0A7 B53F6BAC D8D35C71 F5319EA1 60083F1C 60E65441
    9D752A26 BB90F676 7E9F0F2A 9B0FE3C8 C254AFD5 7A055242 E856D93E 5CE9D5E4
    0E2722D3 46540D03 F69688C6 FDC4EDE2 F138818F 5D0076F2 BF5CA2
    quit
    !
    !
    !
    crypto isakmp policy 10
    !
    crypto isakmp policy 20
    authentication pre-share
    crypto isakmp key isakmpkey address 0.0.0.0 0.0.0.0
    !
    !
    crypto ipsec transform-set DMVPN-TR esp-des
    mode transport
    !
    !
    crypto ipsec profile DMVPN
    set transform-set DMVPN-TR
    !
    !
    !
    interface Tunnel0
    ip address 10.10.10.3 255.255.255.0
    no ip redirects
    ip mtu 1416
    ip nhrp authentication nhrppass
    ip nhrp map 10.10.10.1 192.168.1.1
    ip nhrp map multicast 192.168.1.1
    ip nhrp network-id 999
    ip nhrp nhs 10.10.10.1
    ip nhrp cache non-authoritative
    ip ospf network broadcast
    ip ospf hello-interval 30
    ip ospf priority 0
    tunnel source FastEthernet0/0
    tunnel mode gre multipoint
    tunnel key 999
    tunnel protection ipsec profile DMVPN
    !
    interface FastEthernet0/0
    ip address 192.168.3.3 255.255.255.0
    duplex full
    !
    interface FastEthernet1/0
    ip address 10.1.3.3 255.255.255.0
    duplex full
    !
    router eigrp 1
    network 10.1.3.0 0.0.0.255
    network 10.10.10.0 0.0.0.255
    no auto-summary
    !
    router ospf 1
    log-adjacency-changes
    network 10.1.3.0 0.0.0.255 area 3
    network 10.10.10.0 0.0.0.255 area 0
    !
    ip route 192.168.1.0 255.255.255.0 192.168.3.2
    ip route 192.168.5.0 255.255.255.0 192.168.3.2
    no ip http server
    no ip http secure-server
    !
    !
    !
    logging alarm informational
    !
    !
    !
    control-plane
    !
    !
    line con 0
    exec-timeout 0 0
    logging synchronous
    stopbits 1
    line aux 0
    stopbits 1
    line vty 0 4
    !
    !
    end

    Конфигурация spoke2 (dyn5)

    dyn5#sh run
    Building configuration…

    Current configuration : 4486 bytes
    !
    ! Last configuration change at 23:01:02 UTC Fri Feb 27 2009
    ! NVRAM config last updated at 23:01:03 UTC Fri Feb 27 2009
    !
    version 12.4
    service timestamps debug datetime msec
    service timestamps log datetime msec
    no service password-encryption
    !
    hostname dyn5
    !
    boot-start-marker
    boot-end-marker
    !
    !
    no aaa new-model
    ip cef
    !
    !
    no ip domain lookup
    ip domain name xgu.ru
    ip host dyn1 192.168.1.1
    !
    multilink bundle-name authenticated
    !
    !
    !
    !
    !
    crypto pki trustpoint dyn1
    enrollment url http://dyn1:80
    revocation-check crl
    !
    !
    !
    !
    crypto pki certificate chain dyn1
    certificate 03
    308201F0 30820159 A0030201 02020103 300D0609 2A864886 F70D0101 04050030
    0F310D30 0B060355 04031304 64796E31 301E170D 30393032 32373232 35323032
    5A170D31 30303232 37323235 3230325A 301C311A 30180609 2A864886 F70D0109
    02160B64 796E352E 7867752E 72753081 9F300D06 092A8648 86F70D01 01010500
    03818D00 30818902 818100B2 5B009C5C 96CE1EC6 50277830 567B7A7E D2E708C9
    08D76929 FEBBEF08 CAB21B0B 1608D6F4 E95E4289 B982C020 4CE04C0C 98D529D6
    194B0E43 EA66C3D2 D4DA1C91 137F3E0D 0A82C6A1 C3E35FF7 5835F8C2 AB4F6041
    1C795126 E5624959 14125BFD 5F8B0D23 86F89692 8665B1EA 155267DC 597E3BBD
    D09767B1 94DCA421 6604ED02 03010001 A34F304D 300B0603 551D0F04 04030205
    A0301F06 03551D23 04183016 8014316E 929C655E 5081B8C7 28E0967B 271B2D34
    DA9E301D 0603551D 0E041604 144898BD AAA7C3C3 7AF48494 F40A655A 7164F361
    6E300D06 092A8648 86F70D01 01040500 03818100 91A1FD53 C06730AE D5265C09
    C8B00F77 4F404E0A BA40FD59 1E337390 4597F3E8 3E9537B1 64030C48 4373EB95
    EF0E7364 9E4E0DFE 9D9E40E7 B261C899 6A71EAD4 3C3478BA 6C7FC386 F80BE286
    CF5A9013 E5CF37BC A3B228E1 D1C67B35 EAF9EF69 40E79C95 7DC25C3A E5C1E4A7
    63CD2727 3820B8DF B5675215 D41BFD8C A34392C7
    quit
    certificate ca 01
    308201F7 30820160 A0030201 02020101 300D0609 2A864886 F70D0101 04050030
    0F310D30 0B060355 04031304 64796E31 301E170D 30393032 32373232 34353534
    5A170D31 32303232 37323234 3535345A 300F310D 300B0603 55040313 0464796E
    3130819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281 8100C2F6
    FAC39C79 1F083E69 F2952D2E 9B0B439E 9970825F 2B8B69E5 104264F9 B6712BE1
    DBDBDC5D 38D13DF3 9B9ADE18 53EDA6D5 F50F5958 B5BC485E 03B4A958 F53C1B2F
    64149E25 4552E596 BC87D9C2 04F9B0F2 5158ED70 6A8E9600 9D99716B 991D9DE5
    65C7CAEF B48FEE1B E37B0E48 A4784731 D7B70BE9 1E264E66 A1AF6EDE 433F0203
    010001A3 63306130 0F060355 1D130101 FF040530 030101FF 300E0603 551D0F01
    01FF0404 03020186 301F0603 551D2304 18301680 14316E92 9C655E50 81B8C728
    E0967B27 1B2D34DA 9E301D06 03551D0E 04160414 316E929C 655E5081 B8C728E0
    967B271B 2D34DA9E 300D0609 2A864886 F70D0101 04050003 8181005E 77BD000F
    8AF70F5E 5B1BF974 754BBCD8 548494FE AC7EE542 A1F60A15 2FD74C84 01EC7C5D
    1F4361B9 109A154F 208CE0A7 B53F6BAC D8D35C71 F5319EA1 60083F1C 60E65441
    9D752A26 BB90F676 7E9F0F2A 9B0FE3C8 C254AFD5 7A055242 E856D93E 5CE9D5E4
    0E2722D3 46540D03 F69688C6 FDC4EDE2 F138818F 5D0076F2 BF5CA2
    quit
    !
    !
    !
    crypto isakmp policy 10
    !
    crypto isakmp policy 20
    authentication pre-share
    crypto isakmp key isakmpkey address 0.0.0.0 0.0.0.0
    !
    !
    crypto ipsec transform-set DMVPN-TR esp-des
    mode transport
    !
    !
    crypto ipsec profile DMVPN
    set transform-set DMVPN-TR
    !
    !
    !
    interface Tunnel0
    ip address 10.10.10.5 255.255.255.0
    no ip redirects
    ip mtu 1416
    ip nhrp authentication nhrppass
    ip nhrp map 10.10.10.1 192.168.1.1
    ip nhrp map multicast 192.168.1.1
    ip nhrp network-id 999
    ip nhrp nhs 10.10.10.1
    ip nhrp cache non-authoritative
    ip ospf network broadcast
    ip ospf hello-interval 30
    ip ospf priority 0
    tunnel source FastEthernet0/0
    tunnel mode gre multipoint
    tunnel key 999
    tunnel protection ipsec profile DMVPN
    !
    interface FastEthernet0/0
    ip address 192.168.5.5 255.255.255.0
    duplex full
    !
    interface FastEthernet1/0
    ip address 10.1.5.5 255.255.255.0
    duplex full
    !
    router eigrp 1
    network 10.1.5.0 0.0.0.255
    network 10.10.10.0 0.0.0.255
    no auto-summary
    !
    router ospf 1
    log-adjacency-changes
    network 10.1.5.0 0.0.0.255 area 5
    network 10.10.10.0 0.0.0.255 area 0
    !
    ip route 192.168.1.0 255.255.255.0 192.168.5.2
    ip route 192.168.3.0 255.255.255.0 192.168.5.2
    no ip http server
    no ip http secure-server
    !
    !
    logging alarm informational
    !
    !
    !
    control-plane
    !
    !
    line con 0
    exec-timeout 0 0
    logging synchronous
    stopbits 1
    line aux 0
    stopbits 1
    line vty 0 4
    !
    !
    end

    Дополнительная информация

    1. Dynamic Multipoint IPsec VPNs – http://www.cisco.com/en/US/tech/tk583/tk372/technologies_white_paper09186a008018983e.shtml
    2. Dynamic Multipoint VPN – http://www.cisco.com/en/US/products/sw/iosswrel/ps1839/products_feature_guide09186a0080110ba1.html
    3. NHRP – http://www.cisco.com/en/US/docs/ios/12_4/ip_addr/configuration/guide/hadnhrp_ps6350_TSD_Products_Configuration_Guide_Chapter.html
    4. DMVPN dual ISP:
      Dual-ISP, dual-hub on one router, DMVPN with GRE/IPSec and EIGRP – http://www.virtadept.com/?p=184
      DMVPN на 2821 и 2 ISP – http://www.supporting.ru/cgi-bin/forum.cgi?action=thread&id=36733

    Наташа Самойленко

    http://xgu.ru/wiki/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_DMVPN_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0%D1%85_Cisco