Задача: Необходимо поднять GRE туннель между офисами R5 и R4 и зашифровать его с помощью IPSec (т.н. GRE over IPSec ). Через GRE туннель должна работать маршрутизация типа EIGRP обеспечивая роутинг между локальными сетями офисов через GRE туннель.
Условимся, что EIGRP AS1 у нас имитирует интернет. Вначале настраиваем IP адреса на интерфейсах и EIGRP AS1 маршрутизацию, чтобы приступить к конфигурированию тоннеля.
1) Настраиваем дефолтный маршрут в сторону "провайдера"
R5(config)#ip route 0.0.0.0 0.0.0.0 211.181.24.51
R4(config)#ip route 0.0.0.0 0.0.0.0 211.181.25.112
2) Конфигурируем GRE туннель
-----------------------------
R5(config)#interface Tunnel0
*Mar 1 00:01:47.799: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down
R5(config-if)#ip address 10.0.100.1 255.255.255.0
R5(config-if)#tunnel source fastEthernet 0/0
R5(config-if)#tunnel destination 211.181.25.221
R5(config-if)#
*Mar 1 00:02:48.707: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
R5(config-if)#exit
-----------------------------
R4(config)#int Tunnel0
*Mar 1 00:03:24.595: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down
R4(config-if)#ip address 10.0.100.2 255.255.255.0
R4(config-if)#tunnel source fastEthernet 0/0
R4(config-if)#tunnel destination 211.181.24.15
R4(config-if)#
*Mar 1 00:04:11.403: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
R4(config-if)#exit
-----------------------------
Пингуем и проверяем, что маршрутизация не хромает и нигде не ошиблись в базовой настройке
R4(config)#do ping 10.0.100.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.100.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/38/68 ms
R4(config)#
3) Расписываем маршрутизацию EIGRP AS2 на LAN и Туннель
-----------------------------
R5(config)#router eigrp 2
R5(config-router)#no au
R5(config-router)#no auto-summary
R5(config-router)#net
R5(config-router)#network 10.0.100.1 0.0.0.255
R5(config-router)#net
R5(config-router)#network 10.0.1.254 0.0.0.255
R5(config-router)#exit
R5(config)#
*Mar 1 00:20:28.251: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.2 (Tunnel0) is up: new adjacency
R5(config)#
-----------------------------
R4(config)#router eigrp 2
R4(config-router)#no au
R4(config-router)#no auto-summary
R4(config-router)#net
R4(config-router)#network 10.0.100.2 0.0.0.255
R4(config-router)#net
R4(config-router)#network
*Mar 1 00:20:18.731: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is up: new adjacency
R4(config-router)#network 10.0.2.254 0.0.0.255
R4(config-router)#exit
-----------------------------
Проверяем что все настроено правильно и маршрутизация работает
R4(config)#do sh ip ro
Codes: 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
Gateway of last resort is 211.181.25.112 to network 0.0.0.0
C 211.181.25.0/24 is directly connected, FastEthernet0/0
D 211.181.24.0/24 [90/30720] via 211.181.25.112, 00:20:39, FastEthernet0/0
10.0.0.0/24 is subnetted, 3 subnets
C 10.0.2.0 is directly connected, FastEthernet0/1
D 10.0.1.0 [90/297246976] via 10.0.100.1, 00:00:30, Tunnel0
C 10.0.100.0 is directly connected, Tunnel0
S* 0.0.0.0/0 [1/0] via 211.181.25.112
R4(config)#
4) Сконфигурируем ISAKMP
а) Политики
-----------------------------
R5(config)#crypto isakmp enable
R5(config)#crypto isakmp policy 10
R5(config-isakmp)#authentication pre-share
R5(config-isakmp)#encryption des
R5(config-isakmp)#group 2
R5(config-isakmp)#hash sha
R5(config-isakmp)#lifetime 86400
R5(config-isakmp)#exit
-----------------------------
R4(config)#crypto isakmp enable
R4(config)#crypto isakmp policy 10
R4(config-isakmp)#authentication pre-share
R4(config-isakmp)#encryption des
R4(config-isakmp)#group 2
R4(config-isakmp)#hash sha
R4(config-isakmp)#lifetime 86400
R4(config-isakmp)#exit
б) ключи
-----------------------------
R5(config)#crypto isakmp key 0 cisco111 address 211.181.25.221
-----------------------------
R4(config)#crypto isakmp key 0 cisco111 address 211.181.24.15
-----------------------------
5) Задаём трансформу ( вид шифрования трафика в туннеле )
R5(config)#crypto ipsec transform-set CryptoTransformTunnel esp-aes 128
R5(cfg-crypto-trans)#exit
-----------------------------
R4(config)#crypto ipsec transform-set CryptoTransformTunnel esp-aes 128
R4(cfg-crypto-trans)#exit
6) Задаём ACL (карту совпадения) согласно которому будет шифроваться трафик
-----------------------------
R5(config)#access-list 101 permit gre host 211.181.24.15 host 211.181.25.221
-----------------------------
R4(config)#access-list 101 permit gre host 211.181.25.221 host 211.181.24.15
7) Создаём Crypto-Map и применяем на интерфейс
-----------------------------
R5(config)#crypto map MapOffice 5 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
R5(config-crypto-map)#match address 101
R5(config-crypto-map)#set peer 211.181.25.221
R5(config-crypto-map)#set transform-set CryptoTransformTunnel
R5(config-crypto-map)#set pfs group1
R5(config-crypto-map)#set security-association lifetime seconds 86400
R5(config-crypto-map)#exit
R5(config)#int fa 0/0
R5(config-if)#crypt
R5(config-if)#crypto map MapOffice
R5(config-if)#
-----------------------------
ISAKMP включился -- настроен потенциально верно
*Mar 1 07:55:24.074: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R5(config-if)#
-----------------------------
Регистрация события -- получен не IPSec
*Mar 1 07:55:25.158: %CRYPTO-4-RECVD_PKT_NOT_IPSEC: Rec'd packet not an IPSEC packet.
(ip) vrf/dest_addr= /211.181.24.15, src_addr= 211.181.25.221, prot= 47
R5(config-if)#
-----------------------------
GRE туннель опущен из-за несовместимости IPSec на концах туннеля
*Mar 1 07:55:35.226: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.2 (Tunnel0) is down: holding time expired
R5(config-if)#exit
R5(config)#do ping 10.0.100.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.100.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
R5(config-if)#
*Mar 1 07:56:29.770: %CRYPTO-4-RECVD_PKT_NOT_IPSEC: Rec'd packet not an IPSEC packet.
(ip) vrf/dest_addr= /211.181.24.15, src_addr= 211.181.25.221, prot= 47
R5(config-if)#
-----------------------------
Теперь настраиваем IPSec с другой стороны
Прогнозируемый результат:
-- установление IPSec туннеля
-- повторное автоматическое поднятие GRE туннеля теперь с IPSec шифрацией трафика
-- повторное установление EIGRP соседства и возобновление маршрутизации
Как и ожидалось туннель GRE опустился как показано выше с момента как был включен IPSec на другой стороне
*Mar 1 07:55:29.374: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is down: holding time expired
R4(config)#crypto map MapOffice 5 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
R4(config-crypto-map)#match address 101
R4(config-crypto-map)#set peer 211.181.24.15
R4(config-crypto-map)#set transform-set CryptoTransformTunnel
R4(config-crypto-map)#set pfs group1
R4(config-crypto-map)#set security-association lifetime seconds 86400
R4(config-crypto-map)#exit
R4(config)#int fa 0/0
R4(config-if)#cryp
R4(config-if)#crypto map MapOffice
R4(config-if)#
*Mar 1 08:20:26.289: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R4(config-if)#
-----------------------------
Прогнозируемое поднятие туннеля GRE и возобновление соседства
*Mar 1 08:20:27.573: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is up: new adjacency
R4(config-if)#
-----------------------------
Проверка пинга и прохождения пакетов через туннель
R4#ping 10.0.100.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.100.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/68/120 ms
R4#show crypto ipsec sa
interface: FastEthernet0/0
Crypto map tag: MapOffice, local addr 211.181.25.221
protected vrf: (none)
local ident (addr/mask/prot/port): (211.181.25.221/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (211.181.24.15/255.255.255.255/47/0)
current_peer 211.181.24.15 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 141, #pkts encrypt: 141, #pkts digest: 141
#pkts decaps: 148, #pkts decrypt: 148, #pkts verify: 148
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0
-----------------------------
Проверка роутинга
R4#sh ip ro
Codes: 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
Gateway of last resort is 211.181.25.112 to network 0.0.0.0
C 211.181.25.0/24 is directly connected, FastEthernet0/0
D 211.181.24.0/24 [90/30720] via 211.181.25.112, 08:30:31, FastEthernet0/0
10.0.0.0/24 is subnetted, 3 subnets
C 10.0.2.0 is directly connected, FastEthernet0/1
D 10.0.1.0 [90/297246976] via 10.0.100.1, 00:10:13, Tunnel0
C 10.0.100.0 is directly connected, Tunnel0
S* 0.0.0.0/0 [1/0] via 211.181.25.112
R4#
8) Убедиться что трафик идущий через тоннель шифрован
а) Убедиться что данные зашифрованы IPSec
Подключить Wireshark на интерфейс fa0/0 R5 и начать обмен данными между хостами (скачивать файл например). Сразу заметно, что данные только в зашифрованном виде (здесь был пущен банальный пинг по туннелю)
б) Убедиться, что данные идут по GRE туннелю (хотя это очевидно из построенной маршрутизации, проверить лишним не будет)
-----------------------------
Даём пинг с хоста xp_http_ftp_cisco(10.0.1.2) на хост xp_http_ftp_cisco1(10.0.1.2)
admin>ping 10.0.2.2
Обмен пакетами с 10.0.2.2 по 32 байт:
Ответ от 10.0.2.2: число байт=32 время=136мс TTL=126
Ответ от 10.0.2.2: число байт=32 время=145мс TTL=126
Ответ от 10.0.2.2: число байт=32 время=119мс TTL=126
Ответ от 10.0.2.2: число байт=32 время=98мс TTL=126
-----------------------------
Теперь опускаем GRE туннель
R4(config)#int Tunnel 0
R4(config-if)#sh
R4(config-if)#
*Mar 1 08:38:45.365: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is down: interface down
R4(config-if)#
*Mar 1 08:38:47.181: %LINK-5-CHANGED: Interface Tunnel0, changed state to administratively down
*Mar 1 08:38:48.181: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down
R4(config-if)#
-----------------------------
И повторяем пинг
admin>ping 10.0.2.2
Обмен пакетами с 10.0.2.2 по 32 байт:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Настройка и проверка завершены. Поставленная задача достигнута.
Комментариев нет:
Отправить комментарий