Настроим Cisco
быстро и просто

VPN между двумя маршрутизаторами Cisco

Март 15, 2015

Read this article in Read in EnglishEnglish

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

В нашем распоряжении будут:

Маршрутизатор Cisco 2800 в главном офисе (R-MAIN)
Сеть для пользователей 192.168.10.0 /24
Внешний статический адрес 1.1.1.2 /30
Шлюз провайдера 1.1.1.1 /30

Маршрутизатор Cisco 881 в дополнительном офисе (R-BRANCH)
Сеть для пользователей 192.168.20.0 /24
Внешний статический адрес 2.2.2.2 /30
Шлюз провайдера 2.2.2.1 /30

 
cisco-router-vpn

Оба маршрутизатора имеют доступ в Интернет и минимальные настройки наподобие тех, что описаны в этой статье. Пользователи обоих офисов могут выходить в Интернет, имеют доступ к рабочим станциям и серверам в своих сетях, но не имеют доступа к сети другого офиса.
Есть два простых способа организовать защищенное соединение межу офисами:

Способ первый. Тоннельные интерфейсы.

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

Шаг 1. Параметры шифрования

Выберем параметры шифрования для тоннеля. Если вы не знаете, что это такое, то просто скопируйте строчки из этого примера.
R-MAIN(config)#
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
 
crypto ipsec transform-set ESP_3DES_SHA_HMAC esp-3des esp-sha-hmac
 
crypto ipsec df-bit clear
 
crypto ipsec profile VTI_PROF
set transform-set ESP_3DES_SHA_HMAC
set pfs group2

Эти настройки для маршрутизатора R-BRANCH в дополнительном офисе будут идентичными.

Шаг 2. Ключ шифрования

Ключ шифрования должен быть одинаковым на обоих маршрутизаторах. Рекомендую сделать его не менее 50 символов так, чтобы в него  входили цифры, буквы и спец символы, однако в примере буду использовать заведомо простой «12345».
Для главного офиса
R-MAIN(config)#
crypto isakmp key 0 12345 address 2.2.2.2

Для дополнительного офиса
R-BRANCH(config)#
crypto isakmp key 0 12345 address 1.1.1.2

В примерах красным цветом выделены места, которые следует изменять. Цифра 0 стоит не просто так, а обозначает, что ключ вводится в незашифрованном виде, и ее трогать не следует. При просмотре конфигурации 0 может (но необязательно) измениться на 7 и ключ будет записан в зашифрованном виде. Например
R-MAIN#sh run
/...вырезано.../
crypto isakmp key 7 ^bn UjbsdfgsujGsdf address 1.1.1.2
/...вырезано.../

Это не значит, что он изменился, а значит, что он отображается(!) в зашифрованном виде.
Обратите внимание, что в каждом офисе мы указываем внешний адрес соседней площадки.



Шаг 3. Создание тоннельных интерфейсов

На каждом маршрутизаторе создаем виртуальный тоннельный интерфейс.
В главном офисе:
R-MAIN(config)#
interface Tunnel1
description Link to R-BRANCH
ip address 10.0.0.1 255.255.255.252
tunnel source FastEthernet 0/0
tunnel destination 2.2.2.2
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI_PROF

ip address 10.0.0.1 255.255.255.252 — собственный адрес виртуального тоннеля
tunnel source FastEthernet 0/0 — собственный внешний интерфейс маршрутизатора
tunnel destination 2.2.2.2 —  внешний адрес маршрутизатора дополнительного офиса
tunnel mode ipsec ipv4 — вид шифрования
tunnel protection ipsec profile VTI_PROF — способ шифрования

Важно!
Если после ввода последних 2ух строк у вас появились сообщения об ошибках и маршрутизатор не  принимает эти команды, то удалите профиль шифрования командой
no crypto ipsec profile VTI_PROF
На Вашем маршрутизаторе с текущей версией операционной системы IOS не получится воспользоваться этим способом. Переходите к способу 2.

В дополнительном офисе
R-BRANCH(config)#
interface Tunnel1
description Link to R-MAIN
ip address 10.0.0.2 255.255.255.252
tunnel source FastEthernet 4
tunnel destination 1.1.1.2
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI_PROF

ip address 10.0.0.2 255.255.255.252 — собственный адрес виртуального тоннеля
tunnel source FastEthernet 4  — собственный внешний интерфейс маршрутизатора
tunnel destination 1.1.1.2 —  внешний адрес маршрутизатора главного офиса
tunnel mode ipsec ipv4 — вид шифрования
tunnel protection ipsec profile VTI_PROF — способ шифрования

Если все 3 шага выполнены корректно, то состояние интерфейса перейдет из состояния up/down в состояние up/up. Посмотреть это можно следующей командой.
R-MAIN# sh inter tun 1
Tunnel1 is up, line protocol is up
/...вырезано.../

Шаг 4. Проверка работы VPN тоннеля

Проверяем работоспособность тоннеля запустив ping до соседнего адреса тоннеля. Например из головного офиса:
R-MAIN#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 = 16/17/20 ms

Дополнительно убеждаемся, что пакеты проходят именно через защищенный тоннель командой sh cry ips sa peer 2.2.2.2
R-MAIN#sh cry ips sa peer 2.2.2.2
interface: Tunnel1
Crypto map tag: Tunnel1-head-0, local addr 2.2.2.2
protected vrf: (none)
local  ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
current_peer 2.2.2.2 port 500
PERMIT, flags={origin_is_acl,}
    #pkts encaps:5, #pkts encrypt: 5, #pkts digest: 5
    #pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5
/...вырезано.../

Последние две строчки показывают, что маршрутизатор зашифровал и отправил 5 пакетов и столько же получил и расшифровал. Эти счетчики будут срабатывать каждый раз, когда какой-либо пакет будет проходить по тоннелю между нашими маршрутизаторами.

Шаг 5. Маршрутизация

Для того, чтобы обе площадки были доступны друг другу, следует добавить соответствующие строчки маршрутизации на каждом устройстве.
В головном офисе
R-MAIN(config)#
ip route 192.168.20.0 255.255.255.0 10.0.0.2

В дополнительном офисе
R-BRANCH(config)#
ip route 192.168.10.0 255.255.255.0 10.0.0.1

После этого все компьютеры, серверы и иные ресурсы обеих сетей должны быть доступны друг другу, а связь быть защищенной.

Способ второй. Универсальный

Подходит, когда требуется сделать тоннель между маршрутизатором и Cisco ASA или любым другим устройством, поддерживающим ipsec vpn, не обязательно Cisco.  Настройки параметров шифрования, ключей, маршрутизации на другом стороне будут одинаковы по сути, но различны по командам/отображению. Для простоты и лучшего понимания рассмотрим пример с теми же двумя маршрутизаторами, которые были рассмотрены выше.

Шаг 1. Параметры шифрования

Выберем параметры шифрования для тоннеля. Если вы не знаете, что это такое, то просто скопируйте строчки из этого примера.
R-MAIN(config)#
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
crypto ipsec transform-set ESP_3DES_SHA_HMAC esp-3des esp-sha-hmac
crypto ipsec df-bit clear

Эти настройки для маршрутизатора R-BRANCH в дополнительном офисе будут идентичными.

Шаг 2. Ключ шифрования

Задаем ключ шифрования. Он будет одинаковым для обоих участников защищенного тоннеля. Рекомендую сделать его не менее 50 символов так, чтобы в него  входили цифры, буквы и спец символы, однако в примере буду использовать заведомо простой «12345».
Для главного офиса
R-MAIN(config)#
crypto isakmp key 0 12345 address 2.2.2.2

Для дополнительного офиса
R-BRANCH(config)#
crypto isakmp key 0 12345 address 1.1.1.2

В примерах красным цветом выделены места, которые следует изменять. Цифра 0 стоит не просто так, обозначает, что ключ вводится в первозданном виде, и ее трогать не следует. При просмотре конфигурации 0 может измениться (но необязательно) на 7 и ключ будет записан в ином виде. Например
R-MAIN#sh run
/...вырезано.../
crypto isakmp key 7 ^bn UjbsdfgsujGsdf address 1.1.1.2
/...вырезано.../

Это не значит, что он изменился, а значит, что он отображается в зашифрованном виде.
Обратите внимание, что в каждом офисе указывается внешний адрес соседней площадки.

Шаг 3. Объекты шифрования

Указываем трафик, который подлежит шифрованию. В нашем случае – это трафик между сетью 192.168.10.0 /24 головного офиса и сетью 192.168.20.0 /24 дополнительного офиса. Для этого создаем соответствующий список доступа на каждой площадке:
В головном офисе
R-MAIN(config)#
Ip access-list extended ACL_CRYPTO_DO
permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255

В дополнительном офисе

R-BRANCH(config)#
Ip access-list extended ACL_CRYPTO_MAIN
permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255

Шаг 4. Политика шифрования

На каждой площадке создаем политику шифрования (crypto map), в которой указываем все правила и параметры шифрования
В головном офисе
R-MAIN(config)#
crypto map CRYPTO_MAP 1 ipsec-isakmp
set peer 2.2.2.2
set transform-set ESP_3DES_SHA_HMAC
match address ACL_CRYPTO_DO

В дополнительном офисе:
R-BRANCH(config)#
crypto map CRYPTO_MAP 1 ipsec-isakmp
set peer 1.1.1.2
set transform-set ESP_3DES_SHA_HMAC
match address ACL_CRYPTO_MAIN

После этого crypto map должны быть привязана к внешнему интерфейсу.
В головном офисе
R-MAIN(config)#
Interface FastEthernet0/1
crypto map CRYPTO_MAP

В дополнительном офисе:
R-BRANCH(config)#
Interface Fa 4
crypto map CRYPTO_MAP

Шаг 5. Маршрутизация

Для того, чтобы обе площадки были доступны друг другу, следует добавить соответствующие строчки маршрутизации для каждого устройства. Удаленные сети должны быть доступны через шлюзы провайдеров сети Интернет.
В головном офисе
R-MAIN(config)#
ip route 192.168.20.0 255.255.255.0 1.1.1.1

В дополнительном офисе
R-BRANCH(config)#
ip route 192.168.10.0 255.255.255.0 2.2.2.1

После этого все компьютеры, серверы и иные ресурсы обеих сетей должны быть доступны друг другу, а связь быть защищенной.

Шаг 6. Проверка работы тоннеля

Проверяем работоспособность тоннеля, запустив ping с одного устройства внутри локальной сети до одного из адресов соседней площадки. Например, из головного офиса до какого-то компьютера из сети дополнительного офиса:
R-MAIN#ping 192.168.20.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/17/20 ms

После этого убеждаемся, что пакеты проходят именно через тоннель
R-MAIN#sh cry ips sa peer 2.2.2.2
interface: Tunnel1
Crypto map tag: Tunnel1-head-0, local addr 2.2.2.2
protected vrf: (none)
local  ident (addr/mask/prot/port): (192.168.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.20.0/255.255.255.0/0/0)
current_peer 2.2.2.2 port 500
PERMIT, flags={origin_is_acl,}
    #pkts encaps:5, #pkts encrypt: 5, #pkts digest: 5
    #pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5
/...вырезано.../

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

Важно!

Не забудьте сохранить конфигурацию всех устройств командой write или copy run start. Иначе после перезагрузки все изменения будут потеряны.
R-MAIN#write
Building configuration...
[OK]

Перейти к оглавлению

Отправить ответ

avatar
Сортировать по:   сначала новые | сначала старые | самые полезные
аза
Гость
аза

спасибо, хорошо изложен материал

Pavel
Гость
Pavel

Спасибо, отличный manual. Сделал лабу на его основе. Все отлично работает. Respect

wpDiscuz
×

Форма для связи