Cisco Site-to-site соединение с применением GRE-туннелей | NetConfig

Cisco Site-to-site соединение с применением GRE-туннелей

Какое-то время назад мы организовывали site-to-site между маршрутизаторами с помощью crypto map. Также были затронуты вопросы по разделению процесса настройки отдельных фаз, шифрованию определенного трафика, маршрутизации между участниками VPN-соединения.

Отталкиваясь от полученного опыта, я без труда осуществил настройку туннеля GRE с использованием ipsec профиля, тем более что сама по себе процедура значительно приятней чем аналогичная процедура с криптокартами 🙂 .

От простого – есть два маршрутизатора и некое неведомое сетевое пространство между.

Единственным условием при моделировании или непосредственной настройке является доступность (видимость) внешних интерфейсов.

Итак, осуществим базовую настройку внешних интерфейсов:

R1#conf t
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 100.0.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 fastEthernet 0/0
R2#conf t
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 200.0.0.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#ip route 0.0.0.0 0.0.0.0 fastEthernet 0/0

Затем подготовим виртуальные интерфейсы:

R1(config)#interface tunnel 1
R1(config-if)#ip address 10.0.0.1 255.255.255.0
R1(config-if)#tunnel source 100.0.0.1
R1(config-if)#tunnel destination 200.0.0.1
R1(config-if)#exit
R2(config)#interface tunnel 1
R2(config-if)#ip address 10.0.0.2 255.255.255.0
R2(config-if)#tunnel source 200.0.0.1
R2(config-if)#tunnel destination 100.0.0.1
R2(config-if)#exit

Здесь мы указываем локальные адреса для транспортной сети и внешние адреса маршрутизаторов, участвующих в процессе установки соединения, source – свой, и destination – удаленный.

Приступаем к первой фазе:

R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encryption aes
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 5
R1(config-isakmp)#hash sha
R1(config-isakmp)#exit
 
R1(config)#crypto isakmp key netconfig address 200.0.0.1
R2(config)#crypto isakmp policy 10
R2(config-isakmp)#encryption aes
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#group 5
R2(config-isakmp)#hash sha
R2(config-isakmp)#exit
 
R2(config)#crypto isakmp key netconfig address 100.0.0.1

Таким образом мы создали идентичные политики и зеркальный общий ключ, с указанием внешнего адреса соседа.

Переходим ко второй фазе:

R1(config)#crypto ipsec transform-set Netconfig-set-AESSHA esp-aes esp-sha-hmac
R1(cfg-crypto-trans)#mode transport
R1(cfg-crypto-trans)#exit
R1(config)#crypto ipsec profile GRE-PROFILE
R1(ipsec-profile)#set transform-set Netconfig-set-AESSHA
R1(ipsec-profile)#exit
R2(config)#crypto ipsec transform-set Netconfig-set-AESSHA esp-aes esp-sha-hmac
R2(cfg-crypto-trans)#mode transport
R2(cfg-crypto-trans)#exit
R2(config)#crypto ipsec profile GRE-PROFILE
R2(ipsec-profile)#set transform-set Netconfig-set-AESSHA
R2(ipsec-profile)#exit

Мы создали наборы преобразований (transform-set) и применили их к вновь созданным профилям (ipsec profile).

Применяем профили к виртуальным интерфейсам:

R1(config)#interface tunnel 1
R1(config-if)#tunnel protection ipsec profile GRE-PROFILE
R2(config)#interface tunnel 1
R2(config-if)#tunnel protection ipsec profile GRE-PROFILE

После чего проверяем доступность другого конца туннеля:

R2#ping 10.0.0.1
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 88/94/96 ms
R1(config)#do ping 10.0.0.2
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 96/97/104 ms

Базовая настройка туннеля произведена, не забудьте сохранить конфиг 🙂

Всегда придут на помощь команды:

Проверка первой фазы.

R1#show crypto isakmp sa
R1#show crypto isakmp sa detail

Проверка второй фазы.

R1#show crypto ipsec sa
R1#show crypto ipsec sa detail
R1#show crypto ipsec transform-set

Просмотр сессии.

R1#show crypto session
R1#show crypto session detail

И дебаг, коллеги, дебаг!!!

R1#debug *

Как говорит один мой хороший знакомый: Логи читать надо!




Fatal error: Uncaught Error: Call to undefined function wp_related_posts() in /home2/netconfi/public_html/wp-content/themes/theme/single.php:56 Stack trace: #0 /home2/netconfi/public_html/wp-includes/template-loader.php(106): include() #1 /home2/netconfi/public_html/wp-blog-header.php(19): require_once('/home2/netconfi...') #2 /home2/netconfi/public_html/index.php(17): require('/home2/netconfi...') #3 {main} thrown in /home2/netconfi/public_html/wp-content/themes/theme/single.php on line 56