Dmvpn/config

Введение

DMVPN — Dynamic Multipoint VPN — под данным названием объединяется пачка технологий, позволяющая организовать защищенную корпоративную сеть с помощью оборудования Cisco.
Основными преимуществами построения туннелей на основе DMVPN, на мой взгляд, являются 4 фактора:
1. Возможность создать туннель через NAT.
2. Минимальные (шаблонные) настройки на spoke-маршрутизаторах. 
3. Создание динамических туннелей между spoke-маршрутизаторами. 
4. Возможность держать на spoke-маршрутизаторах динамический внешний IP-адрес.
DMVPN состоит из следующий частей:
1. NHRP — Next Hop Resolution Protocol — протокол, позволяющий хостам, находящимся в NBMA-сети (Non Broadcast Multi Access — например, Интернет!), общаться напрямую между собой. База адресов находится на Hub-маршрутизаторе, который является Next Hop Server’ом, и клиенты (Spoke-маршрутизаторы) при необходимости её запрашивают.
2. Multipoint GRE — GRE-туннели, позволяющие на одном туннельном интерфейсе содержать несколько ipsec-подключений к различным маршрутизаторам.
3. url=http://ru.wikipedia.org/wiki/IPsec — IPSec
4. Протокол динамической маршрутизации. Обычно это OSPF или EIGRP, в зависимости от устройства сети. Например, если кроме оборудования Cisco есть еще и другие маршрутизаторы, имеет смысл пользоваться OSPF, чтобы не извращаться с редистрибьюцией маршрутов.
С другой стороны, в 4 различных технологиях сложнее локализовать проблему и решить её, чем в туннелях точка-точка. Но, несмотря на это, в свое время данная технология меня очень сильно выручила. На тот момент пришлось вычистить настройки точка-точка всего-лишь с 5 роутеров, доставшихся мне «по наследству», да и весь трафик ходил через центральный. Теперь же настройка нового оборудования для использования в корпоративной сети занимает время, сравнимое с вытаскиванием роутера из коробки:)
Также из минусов хотелось бы отметить неприятное поведение при наличии двух интернет каналов в филиале, когда в центральном офисе канал всего один. Тут придется мудрить с eem и трэкингом, при изменении канала меняя tunnel source на интерфейсе. Подробнее напишу в следующих статьях.
Пример настроек для трех маршрутизаторов[
Рассмотрим следующую сложнейшую топологию:
Соотв-но, имена роутеров будут: Hub1, Spoke1, Spoke2. В следующих статьях усложним, добавив бэкапный hub2.
Адресация:
Внешние IP: 10.0.0.1/24 (hub1), 10.2.0.1/24(spoke1), 10.3.0.1/24 (spoke2) (int fa1) (10.1 оставим в резерве)
Внутренние IP: 192.168.0.0/24 (int fa2)
Туннели: 172.16.0.0/24 (int tu0)
А в серединке будет роутер с 3 интерфейсами, смотрящий во все эти сети. Вместо интернета. (0.2 на конце)
Базовые настройки сети
1. Маршрутизация.
Т.к. у нас не Интернет, настроим статические маршруты между роутерами.
Пример на Hub1. На остальных аналогично.

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

Данные настройки — общие для всех трех роутеров.
Создаем туннель:
IP-адрес
Указываем источник туннеля
Говорим нашему роутеру, что это не point-to-point GRE, a mGRE.
Указываем ключик. Должен быть одинаковым в пределах одной DMVPN-сети.
Снижаем MTU на интерфейсе, т.к. GRE увеличивает длину заголовкаНастройка NHRP

Пока без описания. Скоро добавлю.
Hub-маршрутизатор:Spoke-Маршрутизатор
Адрес туннельного интерфейса hub-маршрутизатора указывается как next-hop-сервер:Настройка EIGRP
Только на Hub-маршрутизаторе (int tu0) отключим Split Horizon и next hop self
Настройка IPSec
Если нигде не ошиблись, должно работать:)

NHRP (Next Hop Resolution Protocol)

We need something that helps our branch1 router figure out what the  public IP address is of the branch2 router, we do this with a protocol called NHRP (Next Hop Resolution Protocol). Here’s an explanation of how NHRP works:

  • One router will be the NHRP server.
  • All other routers will be NHRP clients.
  • NHRP clients register themselves with the NHRP server and report their public IP address.
  • The NHRP server keeps track of all public IP addresses in its  cache.
  • When one router wants to tunnel something to another router, it will request the NHRP server for the public IP address of the other router.

Since NHRP uses this server and clients model, it makes sense to use a hub and spoke topology for multipoint GRE. Our hub router will be the NHRP server and all other routers will be the spokes.

Here’s an an illustration of how NHRP works with multipoint GRE:

Above we have two spoke routers (NHRP clients) which establish a tunnel to the hub router. Later once we look at the configurations you will see that the destination IP address of the hub router will be statically configured on the spoke routers. The hub router will dynamically accept spoke routers. The routers will use a NHRP registration request message to register their public IP addresses to the hub.

The hub, our NHRP server will create a mapping between the public IP addresses and the IP addresses of the tunnel interfaces.

A few seconds later, spoke1 decides that it wants to send something to spoke2. It needs to figure out the destination public IP address of spoke2 so it will send a NHRP resolution request, asking the Hub router what the public IP address of spoke 2 is.

The Hub router checks its cache, finds an entry for spoke 2 and sends the NHRP resolution reply to spoke1 with the public IP address of spoke2.

Spoke1 now knows the destination public IP address of spoke2 and is able to tunnel something directly. This is great, we only required the hub to figure out what the public IP address is and all traffic can be sent from spoke to spoke directly.

In NHRP terminology , you’ll see that we don’t talk about “public IP addresses” but NBMA addresses. NHRP is an old protocol (the RFC is from 1998) which was originally developed for NBMA networks like frame-relay or ATM.

When we talk about DMVPN, we often refer to an underlay and overlay network:

  • The underlay network is the network we use for connectivity between the different routers, for example the Internet.
  • The overlay network is our private network with GRE tunnels.

NHRP is a bit similar to ARP or frame-relay inverse ARP. Instead of mapping L2 to L3 information, we are now mapping a tunnel IP address to a NBMA IP address.

DMVPN has different versions which we call phases, there’s three of them:

  • Phase 1
  • Phase 2
  • Phase 3

Let me give you an overview of the three phases:

[править] Перевод — man ionice

ionice — получить/установить класс и приоритет ввода/вывода процесса

ionice ]

Программа задаёт класс и приоритет ввода/вывода для процесса. На момент написания документации операционная система Linux поддерживает три класса ввода/вывода:

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

Best effort. Этот класс используется по умолчанию всеми процессами, которым явным образом не был задан другой приоритет ввода/вывода. Для вычисления приоритета ввода/вывода процессов используются значения CPU nice для этих процессов. Классу можно передавать параметр-приоритет, который должен быть в диапазоне 0-7; меньшие числа обозначают больший приоритет. Программы, которые работают с одинаковым приоритетом и классом «best effort», обслуживаются просто по очереди (round-robin).

Phase 3

Phase-3 adds the ability to simplify over the DMVPN. There are two parts to this; NHRP redirects on the hub, and shortcut routes on the spokes.

Hub Router

The changes to the hub router are really quite simple. One line enables NHRP redirects:

interface Tunnel0
 ip nhrp redirect

This enables the hub to inform a spoke of a better path if one exists.

Spoke Configuration

The spokes also have very simple configuration:

interface Tunnel0
 ip nhrp shortcut

The shortcut command allows the spoke to accept the redirect message from the hub, and install the shortcut route.

Routing Table

To see how this affects the routing table, we’ve added in some static routes. We would normally use dynamic routing, but static is simpler for the example.

To start with, we can see the summary route (10.0.0.0 /8) pointing to the hub:

Spoke-1#show ip route
Gateway of last resort is 172.16.3.1 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 172.16.3.1
      10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
S        10.0.0.0/8 [1/0] via 192.168.254.2
C        10.222.0.0/24 is directly connected, Loopback0
L        10.222.0.1/32 is directly connected, Loopback0
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.3.0/30 is directly connected, GigabitEthernet0/1
L        172.16.3.2/32 is directly connected, GigabitEthernet0/1
      192.168.254.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.254.0/24 is directly connected, Tunnel0
L        192.168.254.3/32 is directly connected, Tunnel0

Next, we’ll generate some traffic between the spokes:

Spoke-1#ping 10.8.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.8.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 6/15/32 ms

Now the interesting part. Let’s look at the route table again:

Spoke-1#show ip route
Gateway of last resort is 172.16.3.1 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 172.16.3.1
      10.0.0.0/8 is variably subnetted, 4 subnets, 3 masks
S        10.0.0.0/8 [1/0] via 192.168.254.2
H        10.8.0.0/24 [250/255] via 192.168.254.4, 00:00:06, Tunnel0
C        10.222.0.0/24 is directly connected, Loopback0
L        10.222.0.1/32 is directly connected, Loopback0
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.3.0/30 is directly connected, GigabitEthernet0/1
L        172.16.3.2/32 is directly connected, GigabitEthernet0/1
      192.168.254.0/24 is variably subnetted, 3 subnets, 2 masks
C        192.168.254.0/24 is directly connected, Tunnel0
L        192.168.254.3/32 is directly connected, Tunnel0
H        192.168.254.4/32 is directly connected, 00:00:06, Tunnel0

See how there are two entries marked with an H code? These are the NHRP shortcut routes. That’s the magic of phase 3!

These entries also show up as shortcuts in the NHRP table.

Spoke-1#show ip nhrp shortcut
10.8.0.0/24 via 192.168.254.4
   Tunnel0 created 00:19:11, expire 01:40:47
   Type: dynamic, Flags: router used rib 
   NBMA address: 172.16.4.2 
192.168.254.4/32 via 192.168.254.4
   Tunnel0 created 00:19:11, expire 01:40:47
   Type: dynamic, Flags: router nhop rib 
   NBMA address: 172.16.4.2 

Преимущества технологии Cisco DMVPN

Динамическая маршрутизация между узлами сети VPN

Небольшой объем конфигурационных данных
Нет необходимости настраивать каждое соединение в отдельности. Добавление нового узла в сеть VPN не требует изменений в конфигурации как соседних узлов сети VPN, так и центрального узла такой сети. Например, типовой конфигурационный файл для сети из 1000 узлов в случае традиционных сетей IPsec буде содержать 3900 строк на каждом устройстве VPN, в то время как для технологии DMVPN необходимо только 13 строк на одно устройство.

Динамические туннели без участия центрального узла
В соответствии с политиками безопасности компании отдельные узлы смогу устанавливать соединения VPN между собой без участия центрального узла. Это снижает как нагрузку на оборудование и расходы на транзитный трафик для центрального узла, так и повышает скорость обработки таких данных как трафик систем IP-телефонии.

Поддержка NAT
Узлы сети VPN в удаленных подразделениях на оборудовании которых используется трансляция адресов NAT с успехом могут быть подключены к сети DMVPN.

Механизмы отказоустойчивости
Сеть VPN может быть построена как с использованием одного центрального узла, так и нескольких центральных узлов для обеспечения резервирования устройств и каналов связи. Удаленные узлы сети могут быть подключены к двум каналам связи от двух операторов связи одновременно для обеспечения отказоустойчивой схемы.

Поддержка качества обслуживания QoS
Как на центральном узле сети VPN, так и на удаленных узлах возможна реализация политик QoS с классификацией трафика, настройка шейпирования трафика, обслуживания трафика с различным приоритетом для разных узлов сети.

Масштабируемость сети
Сеть DMVPN может состоять как из нескольких узлов, так и вырасти до сети из тысяч узлов с использованием технологии server load balancing (SLB). Производительность центральных узлов может быть увеличена простым добавлением дополнительных устройств. При необходимости сеть VPN может иметь иерархическую структуру.

[править] Easy VPN Server

Настройка AAA

aaa new-model
aaa authentication login  
aaa authorization network list-name local group radius
username name password encryption-type encrypted-password 

Пример настройки авторизации пользователей:

R_2(config)# aaa new-model
R_2(config)# aaa authorization network grouplist local group radius 

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

aaa authentication password-prompt text-string
aaa authentication username prompt text-string

Настройка политики isakmp

Настройка политики isakmp:

R_2(config)#crypto isakmp policy 10
R_2(config-isakmp)#authentication pre-share 
R_2(config-isakmp)#encryption 3des
R_2(config-isakmp)#group 2

Настройка групповой политики

После XAUTH-аутентификации, на Easy VPN клиента передаются настройки, которые хранятся для него на сервере.
Настройки хранятся в соответствующей групповой политике и передаются на фазе, которая называется Mode Configuration.

Создание групповой политики (Group Policy):

crypto isakmp client configuration group <group-name> 

Параметры, которые могут быть назначены в групповой политике:

R_2(config)#crypto isakmp client configuration group testgroup
R_2(config-isakmp-group)#?
ISAKMP group policy config commands:
  access-restrict    Restrict clients in this group to an interface
  acl                Specify split tunneling inclusion access-list number
  auto-update        Configure auto-upgrade
  backup-gateway     Specify backup gateway
  banner             Specify mode config banner
  browser-proxy      Configure browser-proxy
  configuration      Push configuration to the client
  crypto             Client group crypto aaa attribute list
  dhcp               Configure DHCP parameters
  dns                Specify DNS Addresses
  domain             Set default domain name to send to client
  exit               Exit from ISAKMP client group policy configuration mode
  firewall           Enforce group firewall feature
  group-lock         Enforce group lock feature
  include-local-lan  Enable Local LAN Access with no split tunnel
  key                pre-shared key/IKE password
  max-logins         Set maximum simultaneous logins for users in this group
  max-users          Set maximum number of users for this group
  netmask            netmask used by the client for local connectivity
  no                 Negate a command or set its defaults
  pfs                The client should propose PFS
  pool               Set name of address pool
  save-password      Allows remote client to save XAUTH password
  split-dns          DNS name to append for resolution
  wins               Specify WINS Addresses

Пример настройки групповой политики:

Создание политики с именем testgroup:

R_2(config)# crypto isakmp client configuration group testgroup

Если аутентификация выполняется по pre-shared key, то обязательно нужно указать его в настройках группы:

R_2(config-isakmp-group)# key vpnpassword

Имя домена:

R_2(config-isakmp-group)# domain unix.nt

Название пула адресов из которого клиентам будут выдаваться адреса:

R_2(config-isakmp-group)# pool easypool

Настройка crypto map

Настройка transform set

Настройка динамической crypto map

R_2(config)#crypto dynamic-map DYNAMIC 10
R_2(config-crypto-map)#set transform-set VPNTRANS
R_2(config-crypto-map)#reverse-route

Создание crypto map

R_2(config)#crypto map EASY client configuration address respond
R_2(config)#crypto map EASY isakmp authorization list grouplist
R_2(config)#crypto map EASY 65535 ipsec-isakmp dynamic DYNAMIC

Применение crypto map

R_2(config)#int fa0/1
R_2(config-if)#crypto map EASY

черновик

(Optional) Create IP address pool for connecting clients

Enable group policy lookup via AAA
Create an ISAKMP policy for remote VPN Client access
R1(config)# crypto isakmp enable
R1(config)# crypto isakmp policy 10
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# encryption 3des
R1(config-isakmp)# group 2
R1(config-isakmp)# end

Define a group policy for mode configuration push
Step 1: Add the group profile to be defined.
Step 2: Configure the ISAKMP pre-shared key.
Step 3: Specify the DNS servers.
Step 4: Specify the Microsoft WINS servers.
Step 5: Specify the DNS domain.
Step 6: Specify the local IP address pool.
Apply mode configuration and XAUTH

Step 1: Configure the router to respond to mode 
configuration requests.
Step 2: Enable IKE querying for a group policy.
Step 3: Enforce XAUTH
Step 3: Apply the dynamic crypto map to the crypto map.


Enable RRI for the client
Enable IKE DPD
Configure XAUTH
(Optional) Enable the XAUTH Save Password feature

Create Transform Sets

Step 1: Create a dynamic crypto map.
Step 2: Assign a transform set.
Step 3: Enable RRI.

Быстрые заметки по Cisco

Перенумеровать правила в ACL

router(config)#ip access-list resequence test-access 10 5

где:

  • test-access — имя расширенного списка доступа, здесь может стоять номер списка.
  • 10 — номер первого правила в списке доступа
  • 5 — шаг нумерации

Посмотеть что не попадает в CEF

#sh cef not-cef-switched
CEF Packets passed on to next switching layer
Slot  No_adj No_encap Unsupp'ted Redirect  Receive  Options   Access     Frag
RP   1552463       0           0             614954  1732554   0             0               0

no logging console

На свежем роутере в консоль высыпают информационные сообщения.

R2(config)#interface 
*Aug 20 14:14:29.492: %PLATFORM-5-SIGNATURE_VERIFIED: Image 'flash0:/vios-adventerprisek9-m' passed code signing verification
% Incomplete command.
R2(config)#
R2(config)#exit
R2# 
*Aug 20 14:14:37.811: %SYS-5-CONFIG_I: Configured from console by console 
R2# 

Что бы их отключить надо дать команду no logging console.

R2(config)#no logging console
R2(config)#exit 
R2#

no ip redirects

Настройка интерфейса no ip redirects отключает отправку маршрутизатором icmp-сообщений с информацией о наличии, в том же бродкаст домене, лучшего next-hop маршрута.

VRRP

Мультикасти адрес 224.0.0.18, номер протокола 112.

VRRP в Cisco

interface GigabitEthernet0/1.99
 description voip-linknet3
 encapsulation dot1Q 99
 ip address 10.11.16.34 255.255.255.248
 no ip redirects
 no ip proxy-arp
 ip flow ingress
 vrrp 99 description voip-linknet3-master
 vrrp 99 ip 10.11.16.33
 vrrp 99 preempt delay minimum 15
 vrrp 99 priority 110
 vrrp 99 authentication md5 key-string 7 XXXYYYXXX
 no cdp enable

VRRP в H3C

interface GigabitEthernet0/0.166
 description 1_routers_vlan
 vlan-type dot1q vid 166
 ip address 192.168.166.2 255.255.255.0
 vrrp vrid 166 virtual-ip 192.168.166.254
 vrrp vrid 166 priority 110

Номера портов в логах ACL на Cisco

В качестве дополнительно параметра к правилу ACL можно дать log или log-input.

  log         Log matches against this entry
  log-input   Log matches against this entry, including input interface

Если правило писать без номеров портов, а просто что-то ограничивать или разрешать по ip адресу, например:

10 permit ip any host 2.2.2.15 log (901 matches)

То, в логах не будет видно номер порта.

Aug 22 18:30:28.422: %SEC-6-IPACCESSLOGP: list ACL-IN permitted udp 1.1.1.78(0) -> 2.2.2.15(0), 1 packet  

Это связанно с тем, что маршрутизатор видит, что в правиле не фигурирует номер порта и не тратит время и ресурсы на изучение пакета на 4-м (транспортном) уровне.

Маршрутизатор смотрит на ip адреса, если они соответствуют правилу, то сразу делаем действие, на номер порта не смотрит.

Что бы в логах было видно номера портов, надо в правиле указать конкретный порт (eq), диапазон портов (range) или условие неравенства (gt, lt).

Пишем правило которое разшает трафик к портам больше 0.

5 permit ip any host 2.2.2.15 gt 0 log (605 matches)

Лог будет таким.

Aug 22 18:53:52.878: %SEC-6-IPACCESSLOGP: list voip-access-in permitted udp 1.1.1.78(16741) -> 2.2.2.15(61485), 1 packet  

ISL

Встречается в требованиях на вакансии сетевого инженера, по факту не используется.

Inter-Switch link (ISL) — протокол межкоммутационного канала, проприетарный протокол в коммутаторах и маршрутизаторах компании Cisco Systems, предназначенный для передачи информации о принадлежности трафика к VLAN. Был разработан до принятия стандарта IEEE 802.1Q, в настоящее время более не поддерживается (может встретиться только на старом оборудовании). Используется для стандартов Fast Ethernet (100Mb/s) и Gigabit Ethernet (1000Mb/s).

bad hop count

Увеличение счетчика bad hop count в выводе команды sh ip traff указывает на то, что маршрутизатор дропнул пакеты с нулевым ttl.

misc

R4(config-if)# vrrp 1 description VRRP-BACKUP-FOR-VLAN1-CUSTOMER-NETS
R4(config-if)# vrrp 1 ip 192.1.1.254
R4(config-if)# vrrp 1 ip 192.1.3.126 secondary
R4(config-if)# vrrp 1 preempt delay minimum 15
R4(config-if)# vrrp 1 authentication md5 key-string 0 vrrp-pass
R4(config-if)# vrrp 1 priority 110 
R4(config-if)#
*Sep  8 10:36:13.379: %VRRP-6-STATECHANGE: Gi0/3 Grp 1 state Master -> Disable
*Sep  8 10:36:14.724: %VRRP-6-STATECHANGE: Gi0/3 Grp 1 state Init -> Backup
*Sep  8 10:36:18.334: %VRRP-6-STATECHANGE: Gi0/3 Grp 1 state Backup -> Master
ISP1#write erase 
Erasing the nvram filesystem will remove all configuration files! Continue? Set kernel IOMEM to 25 percent


Erase of nvram: complete

Полезные ссылки:

Программное обеспечение

Релиз Cisco IOS Software
  • Cisco IOS Software Release 12.3(2)T или выше для Cisco 870, 1800, 2800, 3800, 7200 Series и Cisco 7301
  • Cisco IOS Software Release 12.2(18)SXE2 или выше для коммутаторов Cisco Catalyst 6500 и маршрутизаторов Cisco 7600
Cisco IOS Software Feature Set

* * *

Технориум — авторизованный партнер компании Cisco Systems осуществляет поставку оборудования,
реализацию сетевых проектов и сопровождение систем Cisco Systems.

Для получения консультаций и коммерческого предложения
обращайтесь к нам по телефонам в г. Москве: (495) 649-8-108 и г. Ростове-на-Дону: (863) 256-59-97.
Вы можете также отправить запрос напрямую с сайта здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *