Left, Right, Center Left, Center, Right Center, Left, Right

Академия

Мы -- официальная сетевая академия Cisco (ID: 20027250)

Хочешь сказать спасибо?

Нравится наш проект?

Хотите нас поддержать (сказать "спасибо")?

Можете воспользоваться для этого следующими кошельками webmoney

R432847347204

Z150172555537

Подписка на новости

Вопрос недели

В какое время Вам будет удобно заниматься?



 

Вход в систему







Забыли пароль?
Регистрация

Про виртуальные сети. Внедряем DMVPN

Статьи

Зачастую любая крупная организация приходит к решению создать свою виртуальную частную сеть. Предпосылок для такого решения может быть очень много, в частности это желание защитить передаваемую корпоративную информацию от несанкционированного доступа и третьих лиц, ограничить доступ к корпоративным порталам, упростить обслуживание сетевой инфраструктуры, развитие построения доменной сети на базе VPN, построение своей IP телефонной сети и так далее. После принятия решения о построении VPN у системных администраторов возникает много вопросов потому как технологий и производителей, которые могут предложить решения на базе своих проприетарных и общих технологий очень много. В свое время Cisco рекламировала технологию DMVPN (англ. Dynamic Multipoint Virtual Private Network — динамическая многоточечная виртуальная частная сеть) и компаний принявших решение в пользу этой технологии очень много.

В середине 2012 года на Cisco Expo 2012 была представлена технология Flex VPN, которая объединила плюсы прошлых решений для построения VPN. Было рекомендовано для новых внедрений, использовать все же новую технологию, но это не значит, что надо переделывать все существующие построенные сети на базе других технологий в виду некоторых нюансов. Для построения VPN на новой технологии должно использоваться новое оборудование ISR второго поколения (прошивка IOS 15.2(2)T), маршрутизаторы 7200 с новой прошивкой, ASR1000.

Вследствие этого, когда нет возможности обновить парк оборудования выбор падает на DMVPN, поэтому мы сегодня рассмотрим эту технологию поближе и попытаемся обозначить ряд ключевых моментов этой технологии.

 

Существует несколько способов построения сети DMVPN. Мы рассмотрим способ построения сети, который предусматривает создание двух облаков сети DMVPN (технически предусмотрено резервирование передаваемого трафика), создание динамических туннелей между spoke-маршрутизаторами с использованием протокола динамической маршрутизации OSPF – «Dual Hub ? Dual DMVPN Layout».

Решение DMVPN использует многоточечный GRE туннель (mGRE) и протокол определения следующего транзитного узла (NHRP) с IPSec и некоторые новые улучшения, чтобы решить вышеупомянутые проблемы масштабируемым способом.

Если не используется технология DMVPN, шифрованный туннель не инициируется, пока нет потока данных. Может потребоваться от 1 до 10 секунд, чтобы завершилось инициирование туннеля IPSec, поток данных отбрасывается в это время. Когда используется GRE с IPSec, настройка туннеля GRE включает в себя адрес назначения, который равноправно является адресом назначения IPSec. Туннели GRE и IPSec не информируют центральный узел о  состоянии конфигурации удаленного узла в сети DMVPN. Удаленный узел сообщает о состоянии законченности конфигурации GRE туннеля через протокол определения следующего транзитного узла (NHRP). Когда удаленный узел включен, он автоматически инициирует IPSec туннель с центральным узлом.  В случаем использования протокола определения следующего транзитного узла, удаленный узел уведомляет центральный узел о состоянии физического интерфейса, сообщает IP адрес. Обязательно в следующих случаях:

• Если IP адрес физического интерфейса назначается автоматически, то центральный узел не может быть сконфигурирован для связи с удаленным, поскольку при каждой перезагрузке удаленного узла, IP адрес на его интерфейсе изменяется.

• Конфигурация о настройке упрощается, когда информация о доступных удаленных узлах не передается через GRE или IPSec туннели, а передается через NHRP динамически.

• Когда вы добавляете новый удаленный узел в сеть DMVPN, вам не надо менять настройку центрального узла и каких либо сторонних удаленных узлах. Новый узел создается и регистрируется на центральном узле динамически. Динамический протокол маршрутизации рассылает информацию о маршрутизации этого удаленного узла центральному узлу. А центральный узел в свою очередь рассылает другим удаленным узлам информацию о маршрутизации.

В сети DMVPN все соединения идут от удаленных узлов к центральному узлу, такие соединения является продолжительными или даже можно сказать относительно постоянными. Когда удаленный узел хочет передать информацию другому удаленному узлу, он использует NHRP  для определения необходимого адреса получателя удаленного узла. Далее два узла создают динамически IPSec туннель  между собой через один mGRE интерфейс. После этого данные могут быть переданы. Этот динамический туннель будет автоматически разъединён после периода неактивности.

О протоколах динамической маршрутизации в DMVPN: Из-за того что в настоящее время не придумано стандарта для передачи через IPSec туннель многоадресного или широковещательного IP пакета, пакеты протокола динамической маршрутизации IP не могут быть переданы через IPSec туннель и любые изменения маршрутизации не могут быть распространены к другому концу IPSec туннеля.

GRE туннели реализованы на оборудовании Cisco, используя виртуальный интерфейс (interface tunnel ). Протокол туннелирования разработан для обработки многоадресного или широковещательного IP-пакета, следовательно, работа протокола динамической маршрутизации может быть выполнена по GRE туннелю. Туннельные пакеты GRE – одноадресные IP пакеты инкапсулируют исходный широковещательный или многоадресный IP пакет. После этого вы сможете использовать IPSec туннель, чтобы зашифровать туннельный пакет GRE.

Когда IPSec работает в транспортном режиме, существует ограничение, что пакет источника и получателя будет зашифрован, только тогда когда адреса маршрутизаторов будут объявлены взаимно. Это означает, что конечная точка GRE туннеля и одноранговые IPSec адреса будут одинаковы. Комбинируя GRE и IPSec туннели у вас появляется возможность использовать динамические протоколы маршрутизации для того чтобы обновить таблицы маршрутизации на обоих концах зашифрованного туннеля.

Давайте посмотрим на схему построения такой сети:

 

 

В конечном итоге настройку DMVPN на любых маршрутизаторах, будь то Spoke или Hub, можно обозначить так: настройка ISAKMP, настройка IPSec профилей, настройка маршрутизации, настройка туннельного интерфейса: настройка mGRE, настройка NHRP, применение IPSec профилей, настройка протокола маршрутизации на интерфейсе.

Настройка центрального маршрутизатора (Hub1, где X.X.X.X - внешний адрес, X.X.X.1- шлюз):

 

!
hostname Hub1
!
crypto keyring DMVPNKEYRING 
  pre-shared-key address 0.0.0.0 0.0.0.0 key q1w2e3r4t5QQ
!
crypto isakmp policy 10
 hash md5
 authentication pre-share
 group 2
!
crypto isakmp keepalive 10
!
crypto isakmp profile DMVPN_ISAKMP
   keyring DMVPNKEYRING
   match identity address 0.0.0.0 
!
crypto ipsec transform-set STRONG_TS esp-3des esp-md5-hmac 
 mode transport
!
crypto ipsec profile IPSEC_PROFILE
 set security-association lifetime seconds 120
 set transform-set STRONG_TS
 set isakmp-profile DMVPN_ISAKMP
!
interface Tunnel5
 description DMVPN_mGRE_1
 bandwidth 1000
 ip address 5.5.5.1 255.255.255.0
 no ip redirects
 ip mtu 1400
 ip nhrp authentication NHRP_TEST
 ip nhrp map multicast dynamic
 ip nhrp network-id 111222
 ip nhrp holdtime 600
 ip ospf network broadcast
 ip ospf cost 1
 ip ospf priority 2
 delay 1000
 tunnel source GigabitEthernet0/0
 tunnel mode gre multipoint
 tunnel key 111222
 tunnel protection ipsec profile IPSEC_PROFILE
!
interface GigabitEthernet0/0
 description LINK_to_WAN$ETH-WAN$
 ip address X.X.X.X 255.255.255.240
 duplex auto
 speed auto
!
interface GigabitEthernet0/1
 description LINK_to_LAN$ETH-LAN$
 ip address 10.0.0.6 255.255.255.0
 glbp 1 ip 10.0.0.3
 glbp 1 priority 250
 glbp 1 preempt delay minimum 5
 duplex auto
 speed auto
!
router ospf 1
 router-id 10.0.0.6
 network 5.5.5.0 0.0.0.255 area 0
 network 10.0.0.0 0.0.0.255 area 0
!
!
ip route 0.0.0.0 0.0.0.0 X.X.X.1
!
logging dmvpn
!
end

Настройка центрального маршрутизатора (Hub2 мало отличается от Hub1, где Y.Y.Y.Y - внешний адрес, Y.Y.Y.1 - шлюз):

!
hostname Hub2
!
crypto keyring DMVPNKEYRING 
  pre-shared-key address 0.0.0.0 0.0.0.0 key q1w2e3r4t5QQ
!
crypto isakmp policy 10
 hash md5
 authentication pre-share
 group 2
!
crypto isakmp keepalive 10
!
crypto isakmp profile DMVPN_ISAKMP
   keyring DMVPNKEYRING
   match identity address 0.0.0.0 
!
crypto ipsec transform-set STRONG_TS esp-3des esp-md5-hmac 
 mode transport
!
crypto ipsec profile IPSEC_PROFILE
 set security-association lifetime seconds 120
 set transform-set STRONG_TS
 set isakmp-profile DMVPN_ISAKMP
!
interface Tunnel6
 description DMVPN_mGRE_2
 bandwidth 1000
 ip address 5.5.15.1 255.255.255.0
 no ip redirects
 ip mtu 1400
 ip nhrp authentication NHRP_TEST
 ip nhrp map multicast dynamic
 ip nhrp network-id 333444
 ip nhrp holdtime 600
 ip ospf network broadcast
 ip ospf cost 5
 ip ospf priority 2
 delay 1050
 tunnel source GigabitEthernet0/0
 tunnel mode gre multipoint
 tunnel key 333444
 tunnel protection ipsec profile IPSEC_PROFILE
!
interface GigabitEthernet0/0
 description LINK_to_WAN$ETH-WAN$
 ip address Y.Y.Y.Y 255.255.255.240
 duplex auto
 speed auto
!
interface GigabitEthernet0/1
 description LINK_to_LAN$ETH-LAN$
 ip address 10.0.0.7 255.255.255.0
 glbp 1 ip 10.0.0.3
 glbp 1 priority 200
 glbp 1 preempt delay minimum 5
 duplex auto
 speed auto
!
router ospf 1
 router-id 10.0.0.7
 network 5.5.15.0 0.0.0.255 area 0
 network 10.0.0.0 0.0.0.255 area 0
!
ip route 0.0.0.0 0.0.0.0 Y.Y.Y.1
!
logging dmvpn
!
end

Настройка удаленного маршрутизатора(Spoke2, где X.X.X.X - внешний адрес Hub1):

!
hostname Spoke2

crypto isakmp policy 10
 hash md5
 authentication pre-share 
 group 2
crypto isakmp key q1w2e3r4t5QQ address 0.0.0.0 0.0.0.0
!
!
crypto ipsec transform-set STRONG_TS esp-3des esp-md5-hmac 
 mode transport
!
crypto ipsec profile IPSEC_PROFILE
 set security-association lifetime seconds 120
 set transform-set STRONG_TS
!
interface Tunnel5
 description DMVPN_Tunnel1
 bandwidth 10000
 ip address 5.5.5.25 255.255.255.0
 no ip redirects
 ip mtu 1400
 ip nhrp authentication NHRP_TEST
 ip nhrp map multicast X.X.X.X
 ip nhrp map 5.5.5.1 X.X.X.X
 ip nhrp network-id 111222
 ip nhrp holdtime 300
 ip nhrp nhs 5.5.5.1
 ip ospf network broadcast
 ip ospf cost 1
 ip ospf priority 0
 keepalive 10 5
 tunnel source FastEthernet4
 tunnel mode gre multipoint
 tunnel key 111222
 tunnel protection ipsec profile IPSEC_PROFILE shared
!
interface Tunnel6
 description DMVPN_Tunnel2
 bandwidth 10000
 ip address 5.5.15.25 255.255.255.0
 no ip redirects
 ip mtu 1400
 ip nhrp authentication NHRP_TEST
 ip nhrp map 5.5.15.1 Y.Y.Y.Y
 ip nhrp map multicast Y.Y.Y.Y
 ip nhrp network-id 333444
 ip nhrp holdtime 300
 ip nhrp nhs 5.5.15.1
 ip ospf network broadcast
 ip ospf cost 5
 ip ospf priority 0
 delay 1050
 keepalive 10 5
 tunnel source FastEthernet4
 tunnel mode gre multipoint
 tunnel key 333444
 tunnel protection ipsec profile IPSEC_PROFILE shared
!
interface FastEthernet0
!
interface FastEthernet1
!
interface FastEthernet2
!
interface FastEthernet3
!
interface FastEthernet4
 description WAN 
 ip address 12.34.56.78 255.255.255.224
 ip nat outside
 ip virtual-reassembly
 duplex auto
 speed auto
!
interface Vlan1
 description Chelyabinsk_VLAN
 ip address 192.168.25.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly
 ip tcp adjust-mss 1452
!
router ospf 1
 log-adjacency-changes
 network 5.5.5.0 0.0.0.255 area 0
 network 5.5.15.0 0.0.0.255 area 0
 network 192.168.25.0 0.0.0.255 area 0
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 12.34.56.79
!
ip nat inside source list 1 interface FastEthernet4 overload
!
access-list 1 permit 192.168.25.0 0.0.0.255
end

Настройка удаленного маршрутизатора (у которого присутствует резервный канал в сеть Интернет):

!
hostname Spoke1
!
track 123 ip sla 1 reachability
 delay down 10 up 10
!
crypto isakmp policy 10
 hash md5
 authentication pre-share
 group 2
!
crypto isakmp key q1w2e3r4t5QQ address 0.0.0.0 0.0.0.0
!
!
crypto ipsec transform-set STRONG_TS esp-3des esp-md5-hmac 
 mode transport
!
crypto ipsec profile IPSEC_PROFILE
 set security-association lifetime seconds 120
 set transform-set STRONG_TS 
!
interface Tunnel5
 description DMVPN_Tunnel1
 bandwidth 10000
 ip address 5.5.5.2 255.255.255.0
 no ip redirects
 ip mtu 1400
 ip nhrp authentication NHRP_TEST
 ip nhrp map 5.5.5.1 X.X.X.X
 ip nhrp map multicast X.X.X.X
 ip nhrp network-id 111222
 ip nhrp holdtime 300
 ip nhrp nhs 5.5.5.1
 ip virtual-reassembly in
 ip ospf network broadcast
 ip ospf cost 1
 ip ospf priority 0
 delay 1200
 keepalive 10 5
 cdp enable
 tunnel source GigabitEthernet0/0
 tunnel mode gre multipoint
 tunnel key 111222
 tunnel protection ipsec profile IPSEC_PROFILE
!
interface Tunnel6
 description DMVPN_Tunnel2
 bandwidth 10000
 ip address 5.5.15.2 255.255.255.0
 no ip redirects
 ip mtu 1400
 ip nhrp authentication NHRP_TEST
 ip nhrp map multicast Y.Y.Y.Y
 ip nhrp map 5.5.15.1 Y.Y.Y.Y
 ip nhrp network-id 333444
 ip nhrp holdtime 300
 ip nhrp nhs 5.5.15.1
 ip virtual-reassembly in
 ip ospf network broadcast
 ip ospf cost 5
 ip ospf priority 0
 delay 1000
 keepalive 10 5
 tunnel source Dialer0
 tunnel mode gre multipoint
 tunnel key 333444
 tunnel protection ipsec profile IPSEC_PROFILE
!
interface GigabitEthernet0/0
 description $ETH-WAN$
 ip address 98.98.71.222 255.255.255.252
 ip nat outside
 duplex auto
 speed auto
!
interface GigabitEthernet0/1
 description $ES_LAN$$ETH-LAN$
 ip address 10.33.44.1 255.255.255.0
 ip nat inside
 duplex full
 speed 1000
!
interface FastEthernet0/0/0
 ip address 192.168.4.1 255.255.255.0
 ip nbar protocol-discovery
 ip nat inside
 ip virtual-reassembly in
 ip tcp adjust-mss 1412
 duplex auto
 speed auto
!
interface FastEthernet0/0/1
 description ATLANT_ADSL
 no ip address
 duplex auto
 speed auto
 pppoe enable group global
 pppoe-client dial-pool-number 1
!
interface Dialer0
 ip address negotiated
 ip mtu 1452
 ip nat outside
 ip virtual-reassembly in
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 ppp authentication chap pap callin
 ppp chap hostname ********
 ppp chap password 0 *********
 ppp pap sent-username ******** password 0 *********
!
router ospf 1
 network 5.5.5.0 0.0.0.255 area 0
 network 5.5.15.0 0.0.0.255 area 0
 network 10.33.44.0 0.0.0.255 area 0
 network 192.168.4.0 0.0.0.255 area 0
!
ip local policy route-map track-primary-if
!
ip nat inside source route-map nat2adsl interface Dialer0 overload
ip nat inside source route-map nat2btk interface GigabitEthernet0/0 overload
!
ip route 0.0.0.0 0.0.0.0 98.98.71.221 track 123
ip route 0.0.0.0 0.0.0.0 93.145.6.10 20
!
ip sla 1
 icmp-echo 98.98.71.221 source-interface GigabitEthernet0/0
 frequency 5
ip sla schedule 1 life forever start-time now
!
route-map track-primary-if permit 10
 match ip address 102
 set interface GigabitEthernet0/0
!
route-map nat2btk permit 10
 match ip address 101
 match interface GigabitEthernet0/0
!
route-map nat2adsl permit 10
 match ip address 101
 match interface Dialer0
!
event manager applet DOWN_and_UP
 event track 123 state any
 action 1.0 cli command "clear ip nat trans forced"
!
end

Проверим как работает NHRP на Hub1 и увидим какие подключенные узлы работают. Узел с туннельным IP-адресом 5.5.5.50/32 – пример работы удаленного узла, когда на внешнем интерфейсе используется серый IP-адрес

HUB1#sh ip nhrp
5.5.5.2/32 via 5.5.5.2
   Tunnel5 created 2w6d, expire 00:04:39
   Type: dynamic, Flags: unique registered used
   NBMA address: 98.98.71.222
5.5.5.25/32 via 5.5.5.25
   Tunnel5 created 5d14h, expire 00:04:10
   Type: dynamic, Flags: unique registered
   NBMA address: 12.34.56.78
5.5.5.50/32 via 5.5.5.50
   Tunnel5 created 08:24:32, expire 00:03:35
   Type: dynamic, Flags: unique registered
   NBMA address: 46.53.195.33
    (Claimed NBMA address: 10.6.7.95)

Таблица маршрутизации на все том же Hub1:

HUB1# sh ip route ospf
Codes: L - local, 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, H - NHRP, l - LISP
       + - replicated route, % - next hop override
Gateway of last resort is X.X.X.1 to network 0.0.0.0
      5.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O        5.5.15.0/24 [110/6] via 5.5.5.22, 2d03h, Tunnel5
                     [110/6] via 5.5.5.16, 01:23:24, Tunnel5
                     [110/6] via 5.5.5.14, 08:27:54, Tunnel5
                     [110/6] via 5.5.5.7, 2d10h, Tunnel5
      10.0.0.0/8 is variably subnetted, 14 subnets, 2 masks
O        10.33.44.0/24 [110/2] via 5.5.5.2, 2w6d, Tunnel5
O     192.168.4.0/24 [110/2] via 5.5.5.2, 2w6d, Tunnel5
O     192.168.25.0/24 [110/2] via 5.5.5.25, 5d14h, Tunnel5
O     192.168.50.0/24 [110/2] via 5.5.5.50, 2w3d, Tunnel5
HUB1#

А теперь заглянем на узел Spoke2(где X.X.X.X - внешний адрес Hub1, где Y.Y.Y.Y - внешний адрес Hub2 ):

SPOKE2##sh ip nhrp
5.5.5.1/32 via 5.5.5.1
   Tunnel5 created 4w1d, never expire
   Type: static, Flags: used
   NBMA address: X.X.X.X
5.5.15.1/32 via 5.5.15.1
   Tunnel6 created 4w1d, never expire
   Type: static, Flags: used
   NBMA address: Y.Y.Y.Y

Посмотрим как создается динамический туннель между Spoke1 и Spoke2:

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.4.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 44/90/104 ms
SPOKE2#sh ip nhrp
5.5.5.1/32 via 5.5.5.1
   Tunnel5 created 4w1d, never expire
   Type: static, Flags: used
   NBMA address: X.X.X.X
5.5.5.2/32 via 5.5.5.2
   Tunnel5 created 00:00:03, expire 00:04:57
   Type: dynamic, Flags: router
   NBMA address: 98.98.71.222
5.5.5.25/32 via 5.5.5.25
   Tunnel5 created 00:00:03, expire 00:04:56
   Type: dynamic, Flags: router unique local
   NBMA address: 12.34.56.78
    (no-socket)
5.5.15.1/32 via 5.5.15.1
   Tunnel6 created 4w1d, never expire
   Type: static, Flags: used
   NBMA address: Y.Y.Y.Y

И проверим как изменилась таблица маршрутицации после того как поднялся динамический туннель:


SPOKE2#sh ip route ospf
O    192.168.4.0/24 [110/2] via 5.5.5.2, 6d04h, Tunnel5
     10.0.0.0/8 is variably subnetted, 8 subnets, 2 masks
O       10.33.44.0/24 [110/2] via 5.5.5.2, 6d04h, Tunnel5
O       10.0.0.0/24 [110/2] via 5.5.5.1, 6d04h, Tunnel5
O       10.40.0.0/24 [110/2] via 5.5.5.10, 6d04h, Tunnel5
O       10.41.0.0/24 [110/2] via 5.5.5.1, 6d04h, Tunnel5
O       10.46.0.1/32 [110/2] via 5.5.5.3, 23:37:19, Tunnel5
O       10.45.0.1/32 [110/2] via 5.5.5.2, 6d04h, Tunnel5
O       10.35.0.0/24 [110/2] via 5.5.5.1, 6d04h, Tunnel5
O       10.36.0.0/24 [110/2] via 5.5.5.2, 6d04h, Tunnel5
O    192.168.50.0/24 [110/2] via 5.5.5.50, 1d20h, Tunnel5

Мы увидели, что подсеть 192.168.4.0/24 на Spoke1 подключена на туннельный интерфейс Spoke1.

 

Вывод: Технология проста в использовании и обслуживании и показывает себя в продакшене с очень хороших сторон. Плюсы использования очевидны. Выбрав эту технологию для построения VPN останетесь довольны. Единственным минусом на первый взгляд может оказаться то, что в технологии не предусмотрен удаленный доступ к сети дрейфующих пользователей, но это легко исправить взяв за основу WebVPN(SSL VPN) или IPSec VPN. Выбор за вами.

Пожалуйста, зарегистрируйтесь или войдите в систему для добавления комментариев к этой статье.
Share to Facebook Share to Twitter Share to Linkedin Share to Myspace Share to Google 
.