Рассмотрим пример подключения к облаку DMVPN небольшого офиса, в котором присутствует один интернет-провайдер, предоставляющий доступ в Интернет через PPPoE-туннель:

Рисунок 7. Схема подключения маршрутизатора дочернего офиса к сети интернет-провайдера через туннель PPPoE
Локальная сеть офиса обеспечена одним коммутатором доступа, который подключен непосредственно к маршрутизатору на границе сети. Сразу зададим устройствам имена для удобства дальнейшего конфигурирования.
hostname RT-OFFICE-3 |
hostname SW-OFFICE-3 |
В рамках данного руководства рассмотрим простой пример настройки коммутатора доступа для обеспечения подключения оборудования дочернего офиса к пограничному маршрутизатору. Параметры локальной сети офиса описаны в таблице 15.
Таблица 15. Параметры локальной сети дочернего офиса №3
| Назначение | VLAN | Подсеть |
|---|---|---|
| Локальная сеть дочернего офиса №3 | 100 | 192.168.13.0/24 |
Настроим на коммутаторе доступа клиентские порты в режиме general, требуемый VLAN ID будем проставлять нетегированному трафику:
vlan database vlan 100 exit ! interface range GigabitEthernet1/0/1-24 switchport mode general switchport general allowed vlan add 100 untagged switchport general pvid 100 switchport protected-port exit |
Для изоляции клиентов в широковещательном домене включим функционал port-protection. |
А порт в сторону маршрутизатора настроим как транковый для требуемого VLAN ID:
interface TenGigabitEthernet1/0/1 switchport mode general switchport general allowed vlan add 100 tagged switchport forbidden default-vlan exit |
После чего стерминируем тегированный трафик на физическом саб-интерфейсе пограничного маршрутизатора:
interface gigabitethernet 1/0/2.100 description "LAN | CUSTOMER" ip address 192.168.13.1/24 exit |
Добавим для саб-интерфейса зону безопасности и разрешим входящий с точки зрения маршрутизатора трафик протокола ICMP из этой зоны безопасности:
security zone CUSTOMER
description "LAN | CUSTOMER"
exit
interface gigabitethernet 1/0/2.100
security-zone CUSTOMER
exit
security zone-pair CUSTOMER self
rule 10
description "Permit | ICMP | From ANY | To ANY"
action permit
match protocol icmp
enable
exit
exit
|
Рассмотрим подключение к сети Интернет с учетом следующих настроек, полученных при поднятии PPPoE-туннеля в сторону интернет-провайдера. Настройки представлены в таблице 16.
Таблица 16. Параметры для настройки PPPoE-туннеля на пограничном маршрутизаторе дочернего офиса №3 в сторону интернет-провайдера
| Параметр | Значение |
|---|---|
| Логин PPPoE | user |
| Пароль PPPoE | password |
| Локальный туннельный адрес | 10.0.0.15 |
| Удаленный туннельный адрес | 172.16.0.1 |
В рамках данного примера интернет-провайдер предоставляет через туннель PPPoE приватный (серый) IP-адрес. Для случая, где интернет-провайдер предоставляет через туннель PPPoE публичный (белый) IP-адрес настройка будет выглядеть аналогичным образом, отсутствие NAT интернет-провайдера не окажет влияния на подключение дочернего филиала к головному через облако DMVPN. |
Физический интерфейс, с которого будет поднят PPPoE-туннель, вынесем в отдельный VRF.
Схема подключения, в которой транспортная сеть для некой виртуальной сети выносится в отдельное сетевое пространство имен называется Front-Door VRF. Такая схема организации транспорта для виртуальной сети дает следующие преимущества:
|
ip vrf ISP exit interface gigabitethernet 1/0/1 description "ISP | PPPoE source-interface" ip vrf forwarding ISP exit |
Добавим туннель PPPoE в этот же VRF. В конфигурации не забываем указать логин и пароль для авторизации:
tunnel pppoe 1 description "ISP | Uplink" ip vrf forwarding ISP interface gigabitethernet 1/0/1 username user password ascii-text password enable exit |
Укажем для туннеля PPPoE отдельную зону безопасности и разрешим входящий с точки зрения маршрутизатора трафик протокола ICMP из этой зоны безопасности:
security zone UNTRUSTED
description "ISP | Uplink"
ip vrf forwarding ISP
exit
tunnel pppoe 1
security-zone UNTRUSTED
exit
security zone-pair UNTRUSTED self
rule 10
description "Permit | ICMP | From ANY | To ANY"
action permit
match protocol icmp
enable
exit
exit
|
Настройка IPsec для будущего облака DMVPN является важной частью данного руководства. Корректная настройка IPsec гарантирует приватность и защищенность трафика между офисами. При дальнейшей настройке будем использовать параметры IKE и IPsec, представленные в таблице 17.
Таблица 17. Параметры IKE и IPsec, используемые для настройки туннелирования IPsec на маршрутизаторе DMVPN Spoke дочернего офиса №3
| RT-OFFICE-3 | ||
|---|---|---|
| Параметры IKE | Алгоритм шифрования | AES-256 |
| Алгоритм хеширования | SHA2-256 | |
| Группа Диффи-Хеллмана | 19 | |
| Время жизни IKE-сеcсии в секундах | 86400 | |
| Идентификатор IKE-сессии | spoke3.company.loc | |
| Интервал отправки DPD-сообщений | 40 | |
| Общий таймаут ожидания ответа на DPD-сообщение | 160 | |
| Действие при наступлении таймаута DPD | Закрытие сессии IKE | |
| Параметры IPsec | Алгоритм шифрования | AES-256 |
| Алгоритм хеширования | SHA2-256 | |
| Группа Диффи-Хеллмана для механизма PFS | 19 | |
| Время жизни IPsec-сесcии в секундах | 28800 | |
| Время жизни IPsec-сесcии в килобайтах | 4608000 | |
| Интервал ранней реаутентификации IKE-сессии/Интервал раннего рекеинга IPsec-сессии в секундах | 3600 | |
| Пороговое значение ранней реаутентификации IKE-сессии/Пороговое значение раннего рекеинга IPsec-сессии в килобайтах | 86400 | |
Начинается настройка IPsec с настройки наборов криптографических алгоритмов для протокола IKE:
security ike proposal DMVPN_IKE_PROP_1 description "DMVPN | IKE proposal #1" authentication algorithm sha2-256 encryption algorithm aes256 dh-group 19 exit |
Затем создадим набор ключей аутентификации IKE. Поскольку в дальнейшей настройке планируется использовать в качестве идентификатора IPsec-соседа доменные имена, в наборе ключей тоже используем доменные имена:
security ike keyring DMVPN_IKE_KEYRING description "DMVPN | IKE keyring" identity dns *.company.loc pre-shared-key ascii-text password exit |
Создадим политику IKE. Она включает в себя наборы алгоритмов шифрования, выбор метода аутентификации и время жизни IKE-сессии:
security ike policy DMVPN_IKE_POL description "DMVPN | IKE policy" lifetime seconds 86400 keyring DMVPN_IKE_KEYRING authentication method keyring proposal DMVPN_IKE_PROP_1 exit |
Создадим набор криптошлюзов IKE.
| В связи с особенностями настройки IPsec в схеме DMVPN на сервисных маршрутизаторах ESR, на маршрутизаторах в роли DMVPN Spoke необходимо создавать несколько IPsec VPN-политик: одну для подключения к другим DMVPN Spoke и по одной на каждый настроенный DMVPN Hub. Например, в рамках данного руководства подключение будет производиться через одного интернет-провайдера к двум DMVPN Hub, значит, в конфигурации необходимо создать три IPsec VPN-политики, а следовательно, три криптошлюза IKE. |
Объем возможных настроек в криптошлюзе IKE достаточно велик, в связи с этим обратим внимание на самые важные пункты настройки:
|
security ike gateway DMVPN_IKE_GW_HUB_1 description "DMVPN | RT-HUB-1 IKE gateway" version v2-only ike-policy DMVPN_IKE_POL local tunnel pppoe 1 local network dynamic protocol gre local id dns "spoke3.company.loc" remote id dns "hub1.company.loc" remote address 203.0.113.4 remote network 203.0.113.4/32 protocol gre mode policy-based mobike disable dead-peer-detection action clear dead-peer-detection interval 40 dead-peer-detection timeout 160 exit security ike gateway DMVPN_IKE_GW_HUB_2 description "DMVPN | RT-HUB-2 IKE gateway" version v2-only ike-policy DMVPN_IKE_POL local tunnel pppoe 1 local network dynamic protocol gre local id dns "spoke3.company.loc" remote id dns "hub2.company.loc" remote address 203.0.113.132 remote network 203.0.113.132/32 protocol gre mode policy-based mobike disable dead-peer-detection action clear dead-peer-detection interval 40 dead-peer-detection timeout 160 exit security ike gateway DMVPN_IKE_GW_SPOKES description "DMVPN | Spokes IKE gateway" version v2-only ike-policy DMVPN_IKE_POL local tunnel pppoe 1 local network dynamic protocol gre local id dns "spoke3.company.loc" remote address any remote network any protocol gre mode policy-based mobike disable dead-peer-detection action clear dead-peer-detection interval 40 dead-peer-detection timeout 160 exit |
1) Указываем в качестве «local interface» интерфейс в сторону интернет-провайдера. 2) Использование «local id» и «remote id» — один из удобных способов идентификации IKE-соседей. Поскольку в «security ike keyring» использованы доменные имена, тот же тип ID используем и здесь. 3) Будет создано три криптошлюза — для подключения к RT-HUB-1, RT-HUB-2 и другим DMVPN Spoke в облаке. |
Настроим политику в отношении дубликатов IKE-сессий — при возникновении дубликатов будем замещать существующие IKE-сессии:
security ike session uniqueids replace |
Создадим набор криптографических алгоритмов уже непосредственно для туннеля IPsec:
security ipsec proposal DMVPN_IPSEC_PROP_1 description "DMVPN | IPsec proposal #1" authentication algorithm sha2-256 encryption algorithm aes256 pfs dh-group 19 exit |
Затем создадим политику IPsec. Она включает в себя наборы алгоритмов шифрования и время жизни IPsec-сессии, непосредственно отвечающей за шифрование пользовательского трафика:
security ipsec policy DMVPN_IPSEC_POL description "DMVPN | IPsec policy" lifetime seconds 28800 lifetime kilobytes 4608000 proposal DMVPN_IPSEC_PROP_1 exit |
Наконец, все собранные настройки IKE и IPsec можно объединить в общие VPN-профили. Как и криптошлюзов IKE, получим три IPsec VPN-профиля. Для IPsec VPN-профилей, использующихся на туннелях GRE в схеме DMVPN обязательно включение транспортного режима:
security ipsec vpn DMVPN_IPSEC_VPN_HUB_1 description "DMVPN | RT-HUB-1 IPsec VPN profile" type transport ip vrf forwarding ISP ike establish-tunnel route ike gateway DMVPN_IKE_GW_HUB_1 ike ipsec-policy DMVPN_IPSEC_POL ike rekey margin kilobytes 86400 ike rekey margin seconds 3600 enable exit security ipsec vpn DMVPN_IPSEC_VPN_HUB_2 description "DMVPN | RT-HUB-2 IPsec VPN profile" type transport ip vrf forwarding ISP ike establish-tunnel route ike gateway DMVPN_IKE_GW_HUB_2 ike ipsec-policy DMVPN_IPSEC_POL ike rekey margin kilobytes 86400 ike rekey margin seconds 3600 enable exit security ipsec vpn DMVPN_IPSEC_VPN_SPOKES description "DMVPN | Spokes IPsec VPN profile" type transport ip vrf forwarding ISP ike establish-tunnel route ike gateway DMVPN_IKE_GW_SPOKES ike ipsec-policy DMVPN_IPSEC_POL ike rekey margin kilobytes 86400 ike rekey margin seconds 3600 enable exit |
Разрешим прохождение трафика, связанного с IPsec-туннелями. Для этого сначала опишем профили портов для протокола IKE и упакованного в UDP шифрованного трафика протоколов IKE и ESP:
object-group service IKE_AND_IPSEC description "IKE, IKE encrypted, ESP encap UDP" port-range 500 port-range 4500 exit |
1) UDP/500 порт используется протоколом IKEv2 в момент первичного пакетообмена с удаленным IKE-соседом. 2) UDP/4500 порт используется для отправки сообщений протокола IKEv2 при определении наличия NAT посередине между пирами. 3) Также UDP/4500 порт используется для отправки запакованных в UDP сообщений протокола ESP, сообщения которого представляют собой шифрованный пользовательский трафик в туннеле. |
Разрешим входящий трафик IPsec-туннелей:
security zone-pair UNTRUSTED self
rule 20
description "Permit | IKE/IPsec | From ISP | To ANY"
action permit
match protocol udp
match destination-port object-group IKE_AND_IPSEC
enable
exit
rule 30
description "Permit | ESP | From ISP | To ANY"
action permit
match protocol esp
enable
exit
exit
|
Пользовательский трафик запаковывается в протокол ESP, и при наличии NAT посередине между IPsec-соседями сообщения протокола ESP, в свою очередь, запаковываются в протокол UDP, порт 4500. Поскольку туннели между DMVPN Spoke могут подняться и без наличия NAT между ними, отдельным правилом разрешим прохождения ESP-пакетов. |
Настроим туннели GRE в многоточечном режиме с поддержкой протокола NHRP на DMVPN Spoke. Поскольку в центральном офисе развернуто два DMVPN Hub на адресации двух разных интернет-провайдеров, подключение к ним будем осуществлять двумя отдельными mGRE-туннелями. Основные параметры туннелей GRE для подключения обоих DMVPN Hub представлены в таблице 18.
Таблица 18. Параметры туннелей GRE на маршрутизаторе DMVPN Spoke дочернего офиса №3
| DMVPN Hub | DMVPN Cloud | Номер туннеля GRE | Туннельная адресация DMVPN Spoke | Туннельный адрес DMVPN Hub | NBMA-адрес DMVPN Hub | Ключ туннеля GRE | Время жизни NHRP-записей, секунды |
|---|---|---|---|---|---|---|---|
| RT-HUB-1 | ISP-1 Cloud | 11 | 172.16.1.13/24 | 172.16.1.1 | 203.0.113.4 | 1000 | 600 |
| RT-HUB-2 | ISP-2 Cloud | 12 | 172.16.2.13/24 | 172.16.2.1 | 203.0.113.132 | 2000 | 600 |
Сначала настроим общие настройки туннеля GRE на каждом из DMVPN Hub. К таким настройкам относятся:
tunnel gre 11 description "DMVPN | Cloud 1" key 1000 ttl 64 mtu 1400 multipoint tunnel-source vrf ISP local interface pppoe 1 ip address 172.16.1.13/24 ip tcp adjust-mss 1360 enable exit tunnel gre 12 description "DMVPN | Cloud 2" key 2000 ttl 64 mtu 1400 multipoint tunnel-source vrf ISP local interface pppoe 1 ip address 172.16.2.13/24 ip tcp adjust-mss 1360 enable exit |
Маршрутизаторы DMVPN Spoke с точки зрения протокола NHRP выполняют роль NHRP клиентов, которые после регистрации в облаке DMVPN на одном или нескольких DMVPN Hub могут запрашивать у них информацию о других членах облака DMVPN. В связи с этим для корректной работы DMVPN Spoke необходимо описать настройки протокола NHRP для подключения к обоим DMVPN Hub.
Для корректного построения Spoke-to-Spoke-туннелей, маршрутизация на которых весь трафик заводит на DMVPN Hub, включим опцию «ip nhrp shortcut»,активирующую на DMVPN Spoke реагирование на специальные сообщения протокола NHRP «Traffic Indication», которые DMVPN Hub будет отправлять в ответ на пакеты, предназначенные другому DMVPN Spoke. Обработка данного сообщения приведет к построению Spoke-to-Spoke-туннеля и трафик между DMVPN Spoke будет проходить напрямую, минуя DMVPN Hub. Такая схема организации маршрутизации и построения Spoke-to-Spoke-туннелей в облаках DMVPN общепринято именуется третьей фазой DMVPN. |
tunnel gre 11 ip nhrp authentication password ip nhrp holding-time 600 ip nhrp shortcut ip nhrp ipsec DMVPN_IPSEC_VPN_HUB_1 static ip nhrp ipsec DMVPN_IPSEC_VPN_SPOKES dynamic ip nhrp map 172.16.1.1 203.0.113.4 ip nhrp nhs 172.16.1.1 ip nhrp multicast nhs ip nhrp enable exit tunnel gre 12 ip nhrp authentication password ip nhrp holding-time 600 ip nhrp shortcut ip nhrp ipsec DMVPN_IPSEC_VPN_HUB_2 static ip nhrp ipsec DMVPN_IPSEC_VPN_SPOKES dynamic ip nhrp map 172.16.2.1 203.0.113.132 ip nhrp nhs 172.16.2.1 ip nhrp multicast nhs ip nhrp enable exit |
Из-за особенностей декапсуляции трафика из IPsec-туннелей, работающих в транспортном режиме инкапсуляции, трафик после дешифровки попадает на тот же сетевой интерфейс, который терминирует IPsec-туннель. В связи с этим в правилах межсетевого экранирования на DMVPN Spoke необходимо разрешить прием не только шифрованных IPsec-пакетов, но и GRE-пакетов, которые попадают на интерфейс после дешифрования. |
security zone-pair UNTRUSTED self
rule 40
description "Permit | ESP | From GRE | To ANY"
action permit
match protocol gre
enable
exit
exit
|
Для фильтрации трафика внутри облака DMVPN создадим отдельную зону безопасности и назначим её на GRE-туннели. Разрешим прохождение входящего ICMP-трафика в этой зоне:
security zone DMVPN_NET
description "DMVPN | Cloud"
exit
tunnel gre 11
security-zone DMVPN_NET
exit
tunnel gre 12
security-zone DMVPN_NET
exit
security zone-pair DMVPN_NET self
rule 10
description "Permit | ICMP | From ANY | To ANY"
action permit
match protocol icmp
enable
exit
exit
|
Настроим BGP-соседей в сторону DMVPN Hub:
router bgp log-neighbor-changes
router bgp 65000
neighbor 172.16.1.1
description "DMVPN | RT-HUB-1"
remote-as 65001
update-source gre 11
address-family ipv4 unicast
enable
exit
enable
exit
neighbor 172.16.2.1
description "DMVPN | RT-HUB-2"
remote-as 65002
update-source gre 12
address-family ipv4 unicast
enable
exit
enable
exit
enable
exit
|
В связи с тем, что DMVPN Spoke и DMVPN Hub находятся в разных автономных системах, анонсирование маршрутной информации по умолчанию проводиться не будет. Создадим route-map, разрешающий отправку маршрута до нашей локальной сети на DMVPN Hub.
Созданный route-map указываем для семейства IPv4-маршрутов в созданных BGP-соседях. Также добавим локальную сеть в анонсируемые маршруты:
route-map DMVPN_NET_OUT
rule 10
description "DMZ | LAN for DMVPN Hub"
match ip address 192.168.13.0/24
exit
exit
router bgp 65000
neighbor 172.16.1.1
address-family ipv4 unicast
route-map DMVPN_NET_OUT out
exit
exit
neighbor 172.16.2.1
address-family ipv4 unicast
route-map DMVPN_NET_OUT out
exit
exit
address-family ipv4 unicast
network 192.168.13.0/24
exit
exit |
Включим поддержку BFD для созданных BGP-соседств. Учтем скорость сходимости IPsec и mGRE-туннелей и увеличим BFD-таймеры:
ip bfd log-adjacency-changes ip bfd min-rx-interval 1000 ip bfd min-tx-interval 1000 ip bfd multiplier 8 router bgp 65000 neighbor 172.16.1.1 fall-over bfd exit neighbor 172.16.2.1 fall-over bfd exit exit |
Разрешим прохождение входящего трафика протокола BGP и BFD в зоне безопасности, настроенной на туннелях GRE:
object-group service BGP
description "BGP"
port-range 179
exit
object-group service BFD
description "BFD"
port-range 3784
exit
security zone-pair DMVPN_NET self
rule 20
description "Permit | BGP | From ANY | To ANY"
action permit
match protocol tcp
match destination-port object-group BGP
enable
exit
rule 30
description "Permit | BFD | From ANY | To ANY"
action permit
match protocol udp
match destination-port object-group BFD
enable
exit
exit
|
Поскольку теперь построенное облако DMVPN обеспечивает выход трафика локальных пользователей дочернего офиса через интернет-шлюз центрального офиса, необходимо произвести дополнительные настройки Firewall.
Разрешим прохождение транзитного трафика из локальной сети в сторону облака DMVPN:
security zone-pair DMVPN_NET CUSTOMER
rule 10
description "Permit | ANY | From DMVPN Cloud | To CUSTOMER"
action permit
enable
exit
exit
security zone-pair CUSTOMER DMVPN_NET
rule 10
description "Permit | ANY | From CUSTOMER | To DMVPN Cloud"
action permit
enable
exit
exit |
На этом настройку DMVPN в дочернем офисе можно считать завершенной.