Site-to-site с использованием crypto map на маршрутизаторах Cisco | NetConfig | NetConfig

Site-to-site с использованием crypto map на маршрутизаторах Cisco

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

В качестве платформы будут Cisco 3745, точнее их образы в эмуляторе GNS3. На представленной ниже схеме нас буду интересовать маршрутизаторы R1-OFFICE и R2-CLOUD, все остальное оборудование больше для антуража: компьютеры выполнять контрольную проверку после настройки, коммутаторы установлены дабы не поддержать традиционную топологию, а маршрутизатор ISP выполняет роль оборудования провайдера, на нем были произведены некоторые настройки, но они не понесут функциональной нагрузки.

Главное, что нужно помнить – в момент начала настройки должна быть видимость внешних интерфейсов маршрутизаторов, участвующих в установке соединения.

Задача объединить  левую часть схемы (сеть 10.0.0.0/24)  с правой частью (сеть 20.0.0.0/24). Маршрутизаторам присвоены первые адреса из подсетей, а компьютерам последние. Маршрутизатор R1-OFFICE подключается к внешнему миру через сеть 100.0.0.0/24, а его коллега R2-CLOUD через сеть 200.0.0.0/24, они получили вторые адреса из этих сетей, оборудования провайдера – первые адреса, они же и будут выступать шлюзами по молчанию.Приступим к настройки сети первого маршрутизатора, затем и VPN.

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#hostname R1-OFFICE

Настройка внешнего интерфейса:

R1-OFFICE(config)#interface fastEthernet 0/1
R1-OFFICE(config-if)#ip address 100.0.0.2 255.255.255.0
R1-OFFICE(config-if)#no shutdown
R1-OFFICE(config-if)#ip nat outside
R1-OFFICE(config-if)#exit

Добавляем маршрут по умолчанию через сеть провайдера:

R1-OFFICE(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.1

Настройка внутреннего интерфейса:

R1-OFFICE(config)#interface fastEthernet 0/0
R1-OFFICE(config-if)#ip address 10.0.0.1 255.255.255.0
R1-OFFICE(config-if)#no shutdown
R1-OFFICE(config-if)#ip nat inside
R1-OFFICE(config-if)#exit

Мы указали настройки сетевого стека и функции для дальнейшего преобразования сетевых адресов, в зависимости от задач отдельно взятых интерфейсов.

Перейдем к настройке преобразования сетевых адресов (NAT):

это необходимо для предоставления доступа в интернет узлам локальной сети.

Формируем список доступа, создаем разрешающее правило (№10) для выхода узлов из локальной сети в интернет, далее применяем список к внешнему интерфейсу.

R1-OFFICE(config)#ip access-list extended LAN10
R1-OFFICE(config-ext-nacl)#9 deny ip 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255
R1-OFFICE(config-ext-nacl)#10 permit ip 10.0.0.0 0.0.0.255 any
R1-OFFICE(config-ext-nacl)#exit
R1-OFFICE(config)#ip nat inside source list LAN10 interface fastEthernet 0/1 overload

Обратите внимание на правило (№9) , оно намеренно запрещает взаимодействие нашей локальной сети с сетью, которая будет находиться с другой стороны VPN туннеля.

Правила  в списках доступа выполняются в порядке возрастания, чем меньше номер правила, тем оно более приоритетное.

Переходим к настройке первой фазы, здесь мы укажем какой метод шифрование, хэширования, аутентификация, и группа DH войдут в новую политику, также можем изменить lifetime  (default 86400 seconds):

R1-OFFICE(config)#crypto isakmp policy 10
R1-OFFICE(config-isakmp)#encryption aes
R1-OFFICE(config-isakmp)#authentication pre-share
R1-OFFICE(config-isakmp)#group 5
R1-OFFICE(config-isakmp)#hash sha
R1-OFFICE(config-isakmp)#exit

Ну и собственно сам Pre-shared key – связка фразы и адреса удаленного интерфейса:

R1-OFFICE(config)#crypto isakmp key netconfig_Pass address 200.0.0.2

У вас может быть несколько политик с разными параметрами и приоритетами для разных подключений, стоит помнить, что инициирующая сторона, в момент установки первой фазы, отправит все политики удаленному устройству, которое в свою очередь сравнит их со своими политиками в порядке приоритета.

Посмотреть какой набор параметров (политика) была согласована можно командой:

R1-OFFICE#sh crypto isakmp sa detail

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

На схеме второй фазы четко видны ее компоненты, которые в итоге соединятся в одну Crypto map и будут применены на внешний интерфейс маршрутизатора.

В следующем списке доступа (ACL) мы указываем какой трафик должен быть зашифрован:

R1-OFFICE(config)#ip access-list extended NETCONFIG-VPN
R1-OFFICE(config-ext-nacl)#10 permit ip 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255
R1-OFFICE(config-ext-nacl)#exit

Далее сформируем набор преобразований (transform-set):

R1-OFFICE(config)#crypto ipsec transform-set NETCONFIG-SET esp-aes esp-sha-hmac
R1-OFFICE(cfg-crypto-trans)#exit

наборы преобразований могут содержать множество комбинаций протоколов защиты и шифрования для безопасности IPsec трафика. Подробно см. сдесь

Настройка peer не будет производиться отдельно – ее мы сразу включим в состав нашей карты (MAP1), вместе с уже готовыми параметрами преобразований и списками доступа.

R1-OFFICE(config)#crypto map MAP1 10 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R1-OFFICE(config-crypto-map)#set peer 200.0.0.2
R1-OFFICE(config-crypto-map)#set transform-set NETCONFIG-SET
R1-OFFICE(config-crypto-map)#match address NETCONFIG-VPN
R1-OFFICE(config-crypto-map)#exit

Обратите внимание на то, что адрес peer совпадает с адресом в строке настройки Pre-shared key.

И активируем карту на интерфейсе:

R1-OFFICE(config)#interface fastEthernet 0/1
R1-OFFICE(config-if)#crypto map MAP1
R1-OFFICE(config-if)#exit
*Mar  1 00:21:47.215: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

С настройкой первого маршрутизатора закончили, сохраняем конфигурацию и переходим ко второму маршрутизатору.

R1-OFFICE(config)#do wr
Building configuration...
[OK]

Второй маршрутизатор настраивается зеркальным образом – в списках доступа и на интерфейсах мы указываем параметры согласно схемы, также меняем адрес подключения в параметрах Pre-shared key и удаленного peer.

R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#hostname R2-CLOUD
R2-CLOUD(config)#interface fastEthernet 1/0
R2-CLOUD(config-if)#ip address 200.0.0.2 255.255.255.0
R2-CLOUD(config-if)#no shutdown
R2-CLOUD(config-if)#ip nat outside
R2-CLOUD(config-if)#exit
R2-CLOUD(config)#ip route 0.0.0.0 0.0.0.0 200.0.0.1
R2-CLOUD(config)#interface fastEthernet 0/0
R2-CLOUD(config-if)#ip address 20.0.0.1 255.255.255.0
R2-CLOUD(config-if)#ip nat inside
R2-CLOUD(config-if)#no shutdown
R2-CLOUD(config-if)#exit
R2-CLOUD(config)#ip access-list extended LAN20
R2-CLOUD(config-ext-nacl)#9 deny ip 20.0.0.0 0.0.0.255 10.0.0.0 0.0.0.255
R2-CLOUD(config-ext-nacl)#10 permit ip 20.0.0.0 0.0.0.255 any
R2-CLOUD(config-ext-nacl)#exit
R2-CLOUD(config)#ip nat inside source list LAN20 interface fastEthernet 1/0 overload
R2-CLOUD(config)#crypto isakmp policy 10
R2-CLOUD(config-isakmp)#encryption aes
R2-CLOUD(config-isakmp)#authentication pre-share
R2-CLOUD(config-isakmp)#group 5
R2-CLOUD(config-isakmp)#hash sha
R2-CLOUD(config-isakmp)#exit
R2-CLOUD(config)#crypto isakmp key netconfig_Pass address 100.0.0.2
R2-CLOUD(config)#ip access-list extended NETCONFIG-VPN
R2-CLOUD(config-ext-nacl)#permit ip 20.0.0.0 0.0.0.255 10.0.0.0 0.0.0.255
R2-CLOUD(config-ext-nacl)#exit
R2-CLOUD(config)#crypto ipsec transform-set NETCONFIG-SET esp-aes esp-sha-hmac
R2-CLOUD(cfg-crypto-trans)#exit
R2-CLOUD(config)#crypto map MAP1 10 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R2-CLOUD(config-crypto-map)#set peer 100.0.0.2
R2-CLOUD(config-crypto-map)#set transform-set NETCONFIG-SET
R2-CLOUD(config-crypto-map)#match address NETCONFIG-VPN
R2-CLOUD(config-crypto-map)#exit
R2-CLOUD(config)#interface fastEthernet 1/0
R2-CLOUD(config-if)#crypto map MAP1
*Mar  1 00:10:32.587: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R2-CLOUD(config-iа)#exit
R2-CLOUD(config)#do wr
Building configuration...
[OK]

Ну и естественно никаких маршрутов в удаленные подсети – маршрутизация выполняется на основании наших с вами стараний и криптокарт :).
После обращения узла с одной сети к узлу с удаленной мы можем лицезреть:

R1-OFFICE#show crypto isakmp sa
dst             src             state          conn-id slot status
200.0.0.2       100.0.0.2       QM_IDLE              1    0 ACTIVE

Что говорит о хорошо проделанной работе!
Также рекомендую для ознакомления и праблшуттинга использовать команды:
Проверка первой фазы.

R1-OFFICE#show crypto isakmp sa
R1-OFFICE#show crypto isakmp sa detail

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

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

Просмотр Crypto map.

R1-OFFICE#show crypto map

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

R1-OFFICE#show crypto session
R1-OFFICE#show crypto session detail

И команды debug.

R1-OFFICE#debug crypto isakmp
R1-OFFICE#debug crypto ipsec
R1-OFFICE#debug crypto condition

Успехов и волшебного настроения!




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

There has been a critical error on your website.

Learn more about debugging in WordPress.