Стартовое состояние сети в дочернем офисе

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


Рисунок 7. Схема подключения маршрутизатора дочернего офиса к сети интернет-провайдера через туннель PPPoE


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

hostname RT-OFFICE-3


hostname SW-OFFICE-3


Организация локального сегмента сети дочернего офиса

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


Таблица 15. Параметры локальной сети дочернего офиса №3

НазначениеVLANПодсеть
Локальная сеть дочернего офиса №3100192.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

Рассмотрим подключение к сети Интернет с учетом следующих настроек, полученных при поднятии PPPoE-туннеля в сторону интернет-провайдера. Настройки представлены в таблице 16.


Таблица 16. Параметры для настройки PPPoE-туннеля на пограничном маршрутизаторе дочернего офиса №3 в сторону интернет-провайдера

ПараметрЗначение
Логин PPPoEuser
Пароль PPPoEpassword
Локальный туннельный адрес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


Настройка IKEv2 и IPsec-туннелирования на DMVPN Spoke

Настройка 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
Группа Диффи-Хеллмана для механизма PFS19
Время жизни 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 достаточно велик, в связи с этим обратим внимание на самые важные пункты настройки:
  • Для использования протокола IKE версии 2 обязательна команда «version v2-only», в противном случае туннель будет использовать протокол IKE версии 1.
  • Поддержку протокола MOBIKE необходимо отключать, в схеме DMVPN он может привести к ошибкам построения туннелей между DMVPN Hub и DMVPN Spoke.
  • В случае привязки криптошлюза к интерфейсу командой «local interface» привязать локальную сеть к адресу на этом интерфейсе можно командой «local network dynamic».
  • В схеме DMVPN в туннели IPsec помещается только GRE-трафик, поэтому корректным будет указывать ключ «protocol gre» в командах «local network» и «remote network».
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-пакетов.

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

Настроим туннели GRE в многоточечном режиме с поддержкой протокола NHRP на DMVPN Spoke. Поскольку в центральном офисе развернуто два DMVPN Hub на адресации двух разных интернет-провайдеров, подключение к ним будем осуществлять двумя отдельными mGRE-туннелями. Основные параметры туннелей GRE для подключения обоих DMVPN Hub представлены в таблице 18.


Таблица 18. Параметры туннелей GRE на маршрутизаторе DMVPN Spoke дочернего офиса №3

DMVPN HubDMVPN CloudНомер туннеля GREТуннельная адресация DMVPN SpokeТуннельный адрес DMVPN HubNBMA-адрес DMVPN HubКлюч туннеля GREВремя жизни NHRP-записей, секунды
RT-HUB-1ISP-1 Cloud11172.16.1.13/24172.16.1.1203.0.113.41000600
RT-HUB-2ISP-2 Cloud12172.16.2.13/24172.16.2.1203.0.113.1322000600


Сначала настроим общие настройки туннеля GRE на каждом из DMVPN Hub. К таким настройкам относятся:

  • режим работы multipoint;
  • значение key;
  • значение TTL;
  • размер MTU;
  • значение TCP adjust-mss;
  • туннельный IP-адрес;
  • интерфейс, с которого будет строиться GRE-туннель;
  • имя транспортного VRF.
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


Конфигурирование маршрутизации для функционирования облака DMVPN в центральном офисе

Настроим 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


Настройка Zone-Based Firewall для локальной сети

Поскольку теперь построенное облако 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 в дочернем офисе можно считать завершенной.