Как я внедрял первое правило ведения бизнеса в России

«1. Держите сервера за границей»
(с) 9,5 правил ведения безопасного бизнеса в России 

Вводная часть.

Мы — маленькая компания из 10 сотрудников, половина из которых периодически работает удаленно.
Что мы имели изначально: сервер с Windows и терминальным доступом, который стоял в офисе. У всех пользователей были ноутбуки. Никакой особо конфиденциальной информации у нас нет, за исключением важной для бизнеса информации.
В один прекрасный момент меня окончательно «добила» паранойя и было принято решение вынести сервер за пределы офиса.

1) Мы арендовали два сервера: один в Германии, второй — в Нидерландах.
Конфигурации одинаковые: Intel Xeon Quad Core E3-1230 3.20 GHz / 8GB / 2x 1TB.
Обязательными условиями были: IP-KVM 24×7, гарантия ответа техподдержки до 4 часов круглосуточно, гарантия замены сервера на следующий рабочий день (NBD) и безлимитный трафик.
Дополнительные требования к ПО: Windows 2008 standard, Windows 2008 enterprise, терминальные лицензии и MS Office (Word, Excel, PowerPoint)
Эти пожелания и определили достаточно нескромный бюджет: 756 евро/мес.

Хостеров оставим неназванными. Могу только сказать, что из-за желания платить через Webmoney (т.е. не кредитными картами), пришлось обратиться к реселлерам.

2) Настройка обоих серверов на начальном этапе была полностью идентичной. После получения доступа к серверам, весь первый день был потрачен на апдейт ОС. После был установлен Hyper-V.
Сразу же была создана виртуалка на CentOS, которая и стала роутером: именно у неё был «белый» IP. Все остальные машины (в том числе хост-система) работали на «серых» адресах.
Для проведения этого фокуса с IP, нам пригодился постоянно подключенный IP-KVM. В данном случае — встроенный IPMI и iLo на каждом из серверов.
На роутере был поднят Open VPN-сервер, «снаружи» был доступен только он. Все остальные порты были закрыты.
Также на роутере поднят NAT и proxy-сервер.

3) На первом сервере на всю доступную память была создана виртуалка с Windows 2008 Standard, которая стала нашим новым офисным сервером.
7 ГБ для одновременной работы 10 человек в терминале – более чем комфортные условия. Интернет пользователям офисного сервера доступен только через прокси.
Работает Dr.Web, лицензии на который нам достались по подписке от сети, к которой подключен наш офис.
Стандартный набор офисного софта: MS Office, Acrobat Reader, PDF Creator, WinRAR, InfranView, KeePass, Chrome, Firefox.
Чтобы пользователи не путались, всем в автозагрузку был вложен файл Bginfo, который меняет цвет рабочего стола и пишет на нем, что это за сервер.

4) На втором сервере все немного интересней.
На хост-сервере стоит Windows 2008 Enterprise, которая позволяет бесплатно установить до 4-х виртуалок с Windows 2008 Standard.
Таким образом, это, по сути, сервер для бухгалтера: тут работают четыре виртуалки — CRM/биллинг, 1C8 (на нее переходим), 1C7 (с ней работаем), клиент-банк.
Все четыре сервера отделены друг от друга: они находятся в разных виртуальных сетях Hyper-V, которые не могут видеть друг друга.
Так сделано для того, чтобы в ситуации, когда какая-то из машин подхватит какую-то заразу, заражение не распространилось дальше неё.
С этих же машин отправляем отчеты в налоговую через MeDOC и “Податкову звiтнiсть”. Налоговая видит, что отчеты приходят из IP нашего офиса а не из Европы, так как трафик с «бухгалтерских» серверов маршрутизируется через VPN-туннель в офис.
Так же, как и на офисной виртуалке, на серверах с 1С, интернет доступен через прокси, работают Dr.Web’ы и стандартный софт.
В 1С 7ой ключ работает через Usb-over-network, с 1С 8 используем программный ключ.
На сервере клиент-банка интернет отключен: доступ есть только к серверам банков. Банк также видит наш офисный IP а не реальный IP сервера.

5) Все эти серверы доступны через удаленный рабочий стол (RDP) после авторизации на Open VPN-сервере (любом из двух).
И еще один плод моей паранойи: при подключении к Open VPN-серверу невозможно увидеть ни один сервер в своей сети.
По RDP на серверы можно зайти только через нестандартный порт, который «прокидывается» (DNAT) на RDP-порт соответствующей виртуалки.

6) В офисе у нас стоит Wi-Fi роутер D Link DIR-320. Мы перепрошили его, после чего настроили на нем OpenVPN-клиент.
В DIR-320 включен USB-принтер, на который через туннель могут печатать все виртуалки.
Сотрудники из офиса могут работать, ничего не меняя на своих ноутбуках.
Сотрудникам, которые хотят поработать удаленно, выдали ключи Open VPN и следующие инструкции: как настроить туннель на MacOS/Windows, как зайти на удаленный рабочий стол, как печатать на офисный принтер, как печатать на домашний принтер и тому подобное.

7) Самое важное — бекап.
Так как на хост-системах ничего кроме Hyper-V нет, их не бекапим.
В пятницу днем всем сотрудникам приходит рассылка (напоминание о событии от Google Calendar) с просьбой не забыть закрыть все приложения и сохранить все документы.
В ночь с пятницы на субботу Power Shell–скрипт выключает все виртуалки, копирует их VHD-образы в отдельную папку, а откуда копирует на дублирующий сервер через VPN-туннель + на мой сервер в Украине.
Но это только половина дела.
Каждый день на всех виртуалках запускается скрипт, который архивирует изменившиеся за сутки данные; а каждую неделю – архивирует все данные пользователей (действительно все – от документов до 1С-баз).
Архивация происходит по мотивам этой инструкции:habrahabr.ru/blogs/personal/82185/, но архивы мы делаем запароленными, многотомными и с добавлением информации для восстановления. Архивы складываются в премиум-аккаунты DropBox и Google Drive и через эти сервисы попадают на оба сервера (+ директору на ноутбук).

Что имеем в итоге:
— По запросу я могу восстановить любой документ за любой день.
— Все архивы под паролем из сотни случайных символов. Даже если DropBox кому-то опять покажет все свои файлы, мой архив вскрыть будет крайне непросто.
— При каком-либо форс-мажоре с одним из ДЦ, я, чуть меньше чем за час, смогу запустить копию сервера недельной давности на другом сервере в другой стране + накатить изменения из архивов.

Все описанное работает у нас уже почти год. Особых нареканий нет, разве что апдейт ПО на четырех серверах занимает вчетверо больше времени :).
Данные из бекапных архивов пару раз восстанавливал по требованию – работает как часы.
Для теста имитировал несколько раз отключение ДЦ: поднимал все серверы из бекапа на одном из серверов. Все работает, разве что для 1С8 с программным ключом важно сделать полностью аналогичную конфигурацию на новом сервере.
У бухгалтера однажды “слетел” ноутбук, – работу восстановили за пол часа, просто выдав новый и настроив ярлыки для подключения к серверам.
Дата-центры были недоступны несколько раз на пол-часа из-за апгрейда маршрутизаторов, но в рабочее время подобного ни разу не было.
Также однажды была атака на ДЦ в Нидерландах: все «лагало» около часа в рабочее время.
Теоретически можно было бы еще наворотить шифрованные ФС и разнести серверы по разным континентам, но в нашем случае я не вижу в этом никакого смысла.

Надеюсь, эта информация была интересной. Буду рад если она кому-то пригодится.
Если решите повторить такую конфигурацию, не стесняйтесь спрашивать: я с удовольствием помогу советом и раскрою какие-либо неочевидные подробности.

http://habrahabr.ru/post/157899/#habracut

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

Настройка Cisco Easy VPN с использованием IPSec Dynamic Virtual Tunnel Interface (DVTI)

Тема неоднократно рассмотренная, но не потерявшая своей актуальности. В случае, если организация обладает разветвленной сетью мини-офисов, число сотрудников в которых не превышает 5-10 человек, а единственно доступным (по цене, в том числе) является только канал Интернет, то для организации защищенных каналов связи весьма удобно использовать технологию Cisco Easy VPN.

В отличие от NHRP/mGRE, технологию Cisco Easy VPN поддерживают все модели маршрутизаторов Cisco. При использовании бюджетных маршрутизаторов (85х, 86х и т.д.) мы также ограничены и в выборе протокола динамической маршрутизации.

В данном примере у нас имеется Hub, осуществляющий прием подключений от региональных офисов и Spoke, на котором организован туннель к Hub. Маршрутизация осуществляется по протоколу RIP (ODR не работает в Easy VPN), при этом к Spoke отдается маршрут по умолчанию, а от него принимается маршрут к его локальной сети.

Конфигурация Hub:

Используемая литература:

Configuration Examples and TechNotes

Автор: Сгибнев Михаил

Использование Cisco VPN Client на Linux

Стоит у меня несколько Cisco и прокинуты по ним туннели GRE между организациями, объединенные в свою сегментную сеть. Когда работал на форточках, проблем с подключением к сети не было. VPN клиент для Cisco под форточки работает прекрасно, но в связи с полным отказом от Windows возник вопрос запуска сие чуда на Debian. Как оказалось, стандартные средства организации vpn, входящие в состав репозитария системы, не обеспечивают решения данной задачи. Вот такую задачу мы и будем сегодня решать.

Поиски решения данной задачи в Гугле не привели к конкретному решению, поэтому все пришлось ставить путем проб и ошибок. Загруженные клиенты не хотели собираться в Debian. Спросите, почему нельзя получить клиента у поставщика, ответ: клиент может быть загружен только после регистрации и получения определенного статуса, вот так. Не у каждого есть возможность получить соответствующие права для загрузки. Поэтому принято решение получить все необходимое ПО из свободных источников. Предыстория понятна, пора начать все реализовывать. Все действия будем производить в консоли.

Клиент загружен (эта копия того, который предлагает Cisco у себя на сайте), теперь распакуем и запустим установку. Стоит заметить, что перед запуском установки стоит проверить, есть у вас исходные коды ядра системы. Если нет, то их необходимо установить. Проверить это можно следующим способом.

Как видите, здесь лежит только загруженный нами ранее vpn клиент Cisco. Необходимо установить исходники ядра, но перед установкой рекомендую обновить пакеты, дабы не наставить дырявого и устаревшего ПО.

Систему обновили, теперь посмотрим, что у нас есть по ядрам в пакетах.

Имеется новое ядро. Вот его и поставим. Напомню, что мы работаем со стабильной веткой Debian, если вы ставите эксперименты на боевой машине (сервере), подумайте хорошо —  сделайте копию. Ставим новое ядро и исходники к нему. Необходимые дополнительные библиотеки aptitude подхватит и установит сам. На всякий случай проверьте установлена ли утилита сборки проектов make. У меня ее почему-то не оказалось.

Проверяем содержимое …

Новое ядро установлено, исходные коды ядра тоже на месте, осталось только сделать рестарт системы и можно приступать к настройке и установке vpn клиента для Cisco.

Рестарт системы сделан. У нас имеется архив с клиентом, надо его распаковать и запустить сборку. Приступаем.

Далее идут вопросы установщика и сборщика, отвечаем утвердительно.

Клиент собрался и установлена поддержка в ядро необходимых протоколов для работы VPN клиента Cisco. Далее необходимо создать конфигурацию и инициализировать клиента. Инициализация требуется один раз, если вы после этого перезапустите систему, то клиент инициализируется сам и при последующих запусках тоже. Если этого не происходит (как в моем случае), то можно произвести инициализацию вручную. Пока не стал разбираться, почему автомат не работает.

Теперь готовим файл конфигурации:

Если по каким-либо причинам профиль примера не создался, то вот его примерное содержимое:

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

строки для правки:

Description=Краткое описание вашего профиля

Host=IP_адрес_вашей_Cisco

GroupName=Имя_вашей_группы_в_домене

Username=Ваше_имя_в_домене_NT

NTDomain=Имя_вашего_домена

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

Подключение успешно выполнено. Как видим туннель на удаленную сеть открыт и готов к транспорту пакетов. Отключение можно выполнить банальным сочетанием Ctrl+C или в другой консоли вводом команды разрыва соединения.

В другой консоли можно проверить ping любого адреса в удаленной сети. Можете запускать RDP, VNC или другую систему управления серверами или компьютерами. Адреса указывайте такие, как будто вы находитесь в домашней сети. Все это можно оформить аккуратней, но как всегда лень. Зато у вас будет желание сделать все красивее и качественней. Удачи с экспериментами.

http://www.qdesnic.ru/page/cisco_vpnclient.html

IPSec на Zyxel ZyWALL 35 EE

На тест попались маршрутизаторы Zyxel ZyWALL 35 EE, решил опытом их использования поделиться с читателями..

Тестирование ZyWALL 35 <=>ZyWALL 35

1. Настройка сети в соответствии с топологией тестового стенда:

Комп (192.168.1.100) >
[ZyWALL 35 (192.168.1.1) (10.210.210.106)] >
Коммутатор L2 Planet FSD-1600 >
[ZyWALL 35 (10.210.210.107)(192.168.100.1)] >
Комп (192.168.100.7)

Настройки ZyWALL’ов (в два столбца): 192.168.100.1 / 192.168.1.1


Настройка LAN:

Настройка WAN:

Общий вид настроек VPN:

Настройка VPN-шлюзов:

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

В данной схеме (Комп (WinXP) > ZyWALL > Planet > ZyWALL > Комп (Debian)) с использованием аналогичных настроек VPN-шлюзов и VPN-туннелей:

IKE:
1. Режим работы: Main
2. Шифрование: AES-128
3. Аутентификация: SHA1
4. Ключ группы: DH2

IPSec:
0. Инкапсуляция: Tunnel

1. Протокол: ESP
2. Шифрование: AES-128
3. Аутентификация: SHA1

Максимальная пропускная способность канала составила около 23 Mbps (Win2Lin)/ 25 Mbps (Lin2Win) стабильно же держалась на уровне 22 Mbps (Win2Lin)/ 24 (Lin2Win).

IKE:
1. Режим работы: Main
2. Шифрование: 3DES
3. Аутентификация: MD5
4. Ключ группы: DH2

IPSec:
0. Инкапсуляция: Tunnel

1. Протокол: ESP
2. Шифрование: 3DES
3. Аутентификация: MD5

Максимальная пропускная способность канала составила около 23 Mbps (Win2Lin)/ 25 Mbps (Lin2Win) стабильно же держалась на уровне 23 Mbps (Win2Lin)/ 24 (Lin2Win).

Заявлено Zyxel’ем было 40 Mbps (конечно, погрешность может вносить Planet FSD-1600).

Производительность CPU устрйства составила ~40% при сетевой нагрузке в 10 Mbps и 100% при 25 Mbps.

Измерения нагрузки канала проводились с помощью nuttcp.

Тестирование Комп <=>ZyWALL 35, используя ZyWALL IPSec VPN Client

Общий вид настроек VPN:

Настройка VPN-шлюзов:

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

Далее настраиваем ZyWAL IPSec VPN Client:

При нажатии на «Открыть туннель «, при условии что все настройки туннеля и шлюза аналогичны на ZyWALL и на VPN-клиенте, создастся соотв. VPN-туннель.

В данной схеме (Комп (WinXP) > VPN-Client > Planet > ZyWALL 35 > Комп (WinXP)) с использованием аналогичных настроек VPN-шлюзов и VPN-туннелей:

IKE:
1. Режим работы: Main
2. Шифрование: AES-128
3. Аутентификация: SHA1
4. Ключ группы: DH2

IPSec:
0. Инкапсуляция: Tunnel

1. Протокол: ESP
2. Шифрование: AES-128
3. Аутентификация: SHA1

Максимальная пропускная способность канала составила около 15 Mbps, стабильно же держалась на уровне 9 Mbps.

1. Режим работы: Agressive
2. Шифрование: AES-128
3. Аутентификация: SHA1
4. Ключ группы: DH2

Максимальная пропускная способность канала составила около 12 Mbps, стабильно же держалась на уровне 8 Mbps.

1. Режим работы: Main
2. Шифрование: 3DES
3. Аутентификация: MD5
4. Ключ группы: DH2

Максимальная пропускная способность канала составила около 21 Mbps, стабильно же держалась на уровне 11 Mbps.

1. Режим работы: Agressive
2. Шифрование: 3DES
3. Аутентификация: MD5
4. Ключ группы: DH2

Максимальная пропускная способность канала составила около 18 Mbps, стабильно же держалась на уровне 11 Mbps.

Производительность CPU устройства составила ~35% при сетевой нагрузке в 10 Mbps и 70% при 25 Mbps.

Тестирование проводило с помощью ввода команд по обоим сторонам туннеля.

Hamachi на Linux’е

Установка
1. Добавление репозитория в систему (Debian/Ubuntu):

2. Установка Hamachi:

3. Настройка Hamachi

Hamachi размещен в папке /usr/bin/, там же размещен и hamachi-init.

Генерация ключей:

Запуск Hamachi:

Регистрации аккаунта и входа в сеть:

Присоединение к существующей сети:

Статус on-line в сети:

Список всех членов сети и их статус:

Выход из сети и закрытие Hamachi:

Смена ника:

Официальный сайт http://www.hamachi.cc