Поговорим о VPN-ах? Типы VPN соединений. Масштабирование VPN
Посетителей: 5417
| Просмотров: 7797 (сегодня 0)
Шрифт:
GRE tunnel. OSPF over GRE
Gre представляет собой транспорт для многих типов остальных протоколов, будь то сигнальные сообщения динамических протоколов маршрутизации (OSPF, EIGRP) либо IPv6 пакеты. Данные пакеты инкапсулируются в еще один IP пакет (тип 47) с GRE заголовком. GRE прост в настройке, хотя и разработан первоначально Cisco, сейчас представляет собой открытый стандарт RFC 2784. GRE туннель создает point-to-point линк со всеми вытекающими из этого проблемами масштабирования. В реальной сети это выливается в создании каждого туннеля для каждого удаленного офиса (маршрутизатора) с выделением отдельной подсети.
Если мы выбрали GRE, то воспользуемся сразу его преимуществом и настроим OSFP
LNS# router ospf 1 network 10.3.9.0 0.0.0.255 area 0 network 10.3.7.0 0.0.0.255 area 0 network 192.168.1.0 0.0.0.255 area 0
LAC# router ospf 1 network 10.3.7.0 0.0.0.255 area 0 network 172.30.1.0 0.0.0.255 area 0
Проверка работы OSPF
LAC#sh ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 0 FULL/ - 00:00:30 10.3.7.3 Tunnel1
Все маршруты, полученные через OSPF, теперь доступны через туннельный интерфейс.
LAC#sh ip route ospf
10.3.9.0/8 is variably subnetted, 3 subnets, 2 masks O 10.3.9.0/24 [110/2000] via 10.3.7.3, 00:19:02, Tunnel1 < — подсеть туннеля R3 <-> R9 99.0.0.0/32 is subnetted, 1 subnets O 99.99.99.99 [110/2001] via 10.3.7.3, 00:19:02, Tunnel1 < — loopback на R9 O 192.168.1.0/24 [110/1010] via 10.3.7.3, 00:19:02, Tunnel1 < — локальная сеть HQ
LAC#ping 192.168.1.1 source 172.30.1.7 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds: Packet sent with a source address of 172.30.1.7 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
LNS# crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp key ipseckey123 address 77.1.1.7 ! crypto ipsec transform-set ESP-AES256-SHA1 esp-aes 256 esp-sha-hmac mode transport ! crypto map GREoverIPSec 5 ipsec-isakmp set peer 77.1.1.7 set transform-set ESP-AES256-SHA1 match address GRE ! ! Так как GRE помечается как тип трафика 47, то достаточно определить для шифрования весь трафик по порту 47 ip access-list extended GRE permit gre any any ! interface Ethernet0/1 ip address 55.1.1.3 255.255.255.0 crypto map GREoverIPSec
LAC# crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp key ipseckey123 address 55.1.1.3 ! crypto ipsec transform-set ESP-AES256-SHA1 esp-aes 256 esp-sha-hmac mode transport ! crypto map GREoverIPSec 5 ipsec-isakmp set peer 55.1.1.3 set transform-set ESP-AES256-SHA1 match address GRE ! ! ip access-list extended GRE permit gre any any ! interface Ethernet0/0 ip address 77.1.1.7 255.255.255.0 crypto map GREoverIPSec ! !
Проверка работы GRE over IPSec
LAC#ping 192.168.1.1 source 172.30.1.7 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds: Packet sent with a source address of 172.30.1.7 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms
Проверка сходимости IPSec LAC#sh crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id status 55.1.1.3 77.1.1.7 QM_IDLE 1001 ACTIVE
Проверка установления политик безопасности (SA) LAC#sh crypto ipsec sa
interface: Ethernet0/0 Crypto map tag: GREoverIPSec, local addr 77.1.1.7
local crypto endpt.: 77.1.1.7, remote crypto endpt.: 55.1.1.3 path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0/0 current outbound spi: 0xBCF71DA2(3170311586) PFS (Y/N): N, DH group: none
Работа OSPF over GRE over IPSec OSPF работает в стандартной конфигурации (как в случае network type broadcast)
LAC#sh ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 0 FULL/ - 00:00:31 10.3.7.3 Tunnel1
DMVPN
DMVPN реализует multipoint GRE архитектуру, позволяя использовать, во-первых, одно адресное пространство для всех vpn удаленных офисов, во-вторых, пропускать через туннель большой список сторонних протоколов, а также мультикаст, и в-третьих, устанавливать динамически туннели между региональными удаленными площадками в случае возникновения трафика между ними. Однако есть одно но, данная технология реализуема только на моновендорной сети на Cisco.
Настройка маршрутизатора HQ как DMVPN HUB, Spoke 1 как DMVPN Client
HUB# interface Tunnel1 description DMVPN_HUB /// настройка mGRE ip address 10.5.5.1 255.255.255.0 tunnel source FastEthernet0/0 tunnel mode gre multipoint tunnel key 111001 no ip redirects ip mtu 1416 /// настройка NHRP ip nhrp map multicast dynamic ip nhrp network-id 101 ip nhrp server-only
ip tcp adjust-mss 1376 end
Spoke# interface Tunnel1 ip address 10.5.5.3 255.255.255.0 no ip redirects ip mtu 1416
ip nhrp map multicast dynamic ip nhrp map multicast 192.168.1.1 (физ.адрес) ip nhrp map 10.5.5.1 192.168.1.1 ip nhrp network-id 101 ip nhrp nhs 10.5.5.1 (туннельный адрес)
ip tcp adjust-mss 1380 keepalive 10 3 tunnel source FastEthernet0/0 tunnel mode gre multipoint tunnel key 111001 end
Проверка работы DMVPN Проверяем установился ли туннель до DMVPN HUBa. Обращаем внимание, что NBMA address – реальный адрес HUBa.
Spoke#sh dmvpn Legend: Attrb --> S — Static, D — Dynamic, I — Incomplete N — NATed, L — Local, X — No Socket # Ent --> Number of NHRP entries with same NBMA peer NHS Status: E --> Expecting Replies, R --> Responding, W --> Waiting UpDn Time --> Up or Down Time for a Tunnel ==========================================================================
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb — — — — — ----- 1 192.168.1.1 10.5.5.254 UP 00:02:59 S
На HUBe видны два подключенных удаленных офиса:
HUB#sh dmvpn Legend: Attrb --> S — Static, D — Dynamic, I — Incomplete N — NATed, L — Local, X — No Socket # Ent --> Number of NHRP entries with same NBMA peer NHS Status: E --> Expecting Replies, R --> Responding, W --> Waiting UpDn Time --> Up or Down Time for a Tunnel ==========================================================================
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb — — — — — ----- 1 172.16.1.2 10.5.5.1 UP 00:04:08 D 1 172.16.2.3 10.5.5.2 UP 00:02:57 D
Связка туннельного адреса и реального (физического) HUB#sh ip nhrp brief Target Via NBMA Mode Intfc Claimed 10.5.5.1/32 10.5.5.1 172.16.1.2 dynamic Tu1 < > 10.5.5.2/32 10.5.5.2 172.16.2.3 dynamic Tu1 < >
Создание динамического GRE туннеля от удаленного офиса Spoke1 к Spoke2 Вначале загрузки у Spoke 1 был только 1 туннель до HUBа. При генерировании трафика (пинга) до Spoke2, сразу же создался туннель до Spoke2
Router#ping 10.5.5.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.5.5.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/5 ms
Смотрим установленные туннели на данный момент: Router#sh dmvpn Legend: Attrb --> S — Static, D — Dynamic, I — Incomplete N — NATed, L — Local, X — No Socket # Ent --> Number of NHRP entries with same NBMA peer NHS Status: E --> Expecting Replies, R --> Responding, W --> Waiting UpDn Time --> Up or Down Time for a Tunnel ==========================================================================
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb — — — — — ----- 1 172.16.2.3 10.5.5.2 UP 00:04:04 D 1 192.168.1.1 10.5.5.254 UP 00:09:31 S
На данный момент схема сети (рис.13) будет уже выглядеть так:
Динамические протоколы маршрутизации через DMVPN
Настройка OSPF
Сделав настройки по DMVPN и включив общую сеть для VPN-а 10.5.5.0 в процесс OSPF – мы будем наблюдать как OSPF на HUBе будет устанавливать смежные отношения сначала со Spoke1 до того момента, как не получит hello пакет со Spoke2, после этого отношения рушатся с ошибкой Neighbor Down: Adjacency forced to reset, так как по умолчанию interface Tunnel выставлен как point-to-point интерфейс. Для корректной работы OSPF необходимо выставить network type как broadcast. Если выставить broadcast только на HUBe, то соседства установятся, но маршрутов через OSPF на Spok-aх не будет, поэтому необходимо выставить broadcast и на HUB, и на Spoke-ах. Ниже приведены таблицы поведения OSPF в зависимости от выбранного значения network type.
HUB
Spoke 1
Spoke 2
BROADCAST
BROADCAST
BROADCAST
HUB#sh ip ospf neighbor
Neighbor I Pri State Dead Time Address Interface 1.1.1.1 0 FULL/DROTHER 00:00:34 10.5.5.1 Tunnel1 2.2.2.2 0 FULL/DROTHER 00:00:31 10.5.5.2 Tunnel1
Spoke_1#sh ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface 10.0.0.1 1 FULL/DR 00:00:36 10.5.5.254 Tunnel1
Spoke_1#sh ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface 10.0.0.1 1 FULL/DR 00:00:36 10.5.5.254 Tunnel1
Известные маршруты на Spoke 1 через OSPF Spoke_1#sh ip route
Gateway of last resort is 172.16.1.5 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 172.16.1.5 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback1 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/1001] via 10.5.5.3, 00:00:07, Tunnel1 < — внутренняя сеть Spoke2 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks O 10.0.0.0/24 [110/1001] via 10.5.5.254, 00:05:19, Tunnel1 < — внутренняя сеть Центрального офиса C 10.5.5.0/24 is directly connected, Tunnel1 L 10.5.5.1/32 is directly connected, Tunnel1 172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks C 172.16.1.0/24 is directly connected, GigabitEthernet0/0 L 172.16.1.2/32 is directly connected, GigabitEthernet0/0
Связность между Spoke 1 и Spoke 2 осуществляется напрямую: Spoke_1#traceroute 2.2.2.2 source 1.1.1.1 Type escape sequence to abort. Tracing the route to 2.2.2.2 VRF info: (vrf in name/id, vrf out name/id) 1 10.5.5.3 216 msec 256 msec 216 msec
DMVPN c EIGRP
HUB (R1)
Spoke (R3)
Spoke (R4)
По умолчанию, маршруты на Spoke только HUB (из-за split-horizon не видны маршруты Spoke 2)
HUB#sh ip route eigrp 1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 1.0.0.0/8 is a summary, 00:04:18, Null0 D 3.0.0.0/8 [90/409600] via 10.5.5.3, 00:04:24, Tunnel1 D 4.0.0.0/8 [90/409600] via 10.5.5.4, 00:03:51, Tunnel1 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks D 10.0.0.0/8 is a summary, 00:04:18, Null0
Нет маршрута до 4.4.4.4 Spoke_1#sh ip route eigrp D 1.0.0.0/8 [90/324096] via 10.5.5.1, 00:04:04, Tunnel4 3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 3.0.0.0/8 is a summary, 00:04:11, Null0 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks D 10.0.0.0/8 is a summary, 00:04:11, Null0
Выключаем на HUBe split-horizon
HUB (R1)
Spoke (R3)
Spoke (R4)
HUB(conf)# router eigrp 1 no ip split-horizon eigrp 1
Нет доп.настройки
Нет доп.настройки
HUB#sh ip route eigrp 1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 1.0.0.0/8 is a summary, 00:04:18, Null0 D 3.0.0.0/8 [90/409600] via 10.5.5.3, 00:04:24, Tunnel101 D 4.0.0.0/8 [90/409600] via 10.5.5.4, 00:03:51, Tunnel101 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks D 10.0.0.0/8 is a summary, 00:04:18, Null0
Маршрут на Spoke1 появился, но ведет через HUB Spoke_1#sh ip route eigrp D 1.0.0.0/8 [90/324096] via 10.5.5.1, 00:05:45, Tunnel4 3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 3.0.0.0/8 is a summary, 00:00:26, Null0 D 4.0.0.0/8 [90/435200] via 10.5.5.1, 00:00:26, Tunnel4 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks D 10.0.0.0/8 is a summary, 00:05:51, Null0
R3#traceroute 4.4.4.4 source 3.3.3.3
Type escape sequence to abort. Tracing the route to 4.4.4.4 1 10.5.5.1 88 msec 92 msec 76 msec 2 10.5.5.4 128 msec * 140 msec
Избавимся от HUB-а как промежуточного устройства в связности Spoke1 <-> Spoke2
HUB (R1)
Spoke (R3)
Spoke (R4)
HUB(conf)# router eigrp 1 no ip split-horizon eigrp 1 no ip next-hop-self eigrp 1
Нет доп.настройки
Нет доп.настройки
Теперь маршрут до сети Spoke_2 ведет напрямую: R3#sh ip route eigrp 1 D 1.0.0.0/8 [90/324096] via 10.5.5.1, 00:00:06, Tunnel4 3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 3.0.0.0/8 is a summary, 00:00:06, Null0 D 4.0.0.0/8 [90/435200] via 10.5.5.4, 00:00:04, Tunnel4 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks D 10.0.0.0/8 is a summary, 00:19:55, Null0
R3#traceroute 4.4.4.4 source 3.3.3.3
Type escape sequence to abort. Tracing the route to 4.4.4.4 1 10.5.5.4 84 msec * 72 msec