Какое-то время назад мы организовывали 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 * |
Как говорит один мой хороший знакомый: Логи читать надо!