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 Feature Set |
* * *
Технориум — авторизованный партнер компании Cisco Systems осуществляет поставку оборудования,
реализацию сетевых проектов и сопровождение систем Cisco Systems.
Для получения консультаций и коммерческого предложения
обращайтесь к нам по телефонам в г. Москве: (495) 649-8-108 и г. Ростове-на-Дону: (863) 256-59-97.
Вы можете также отправить запрос напрямую с сайта здесь.