Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

VPN IPSEC CISCO.

По мотивам: http://www.techspacekh.com/configuring-site-to-site-ipsec-vpn-between-cisco-routers/

У нас есть Головной офис и Филиал.

Задача: объединить офисы по средствам туннеля IPSEC (в туннельном режиме).

Набросал схему:

Настроим ПК:

Настроим маршрутизаторы.

CISCO_ISP.

ISP#conf t

ISP(config)#interface fastEthernet 0/0

ISP(config-if)#ip address 100.0.0.1 255.255.255.0

ISP(config-if)#no shutdown

ISP(config-if)#exit

ISP(config)#interface fastEthernet 0/1

ISP(config-if)#ip address 200.0.0.1 255.255.255.0

ISP(config-if)#no shutdown

ISP(config-if)#exit

ISP(config)#exit

ISP#wr

Building configuration…

[OK]

 

CISCO_HEAD.

HEAD#conf t

## внешний интерфейс

HEAD(config)#interface fastEthernet 0/1

HEAD(config-if)#ip address 100.0.0.2 255.255.255.0

HEAD(config-if)#no shutdown

HEAD(config-if)#

HEAD(config-if)#ip nat outside

HEAD(config-if)#exit

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

HEAD(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.1

HEAD(config)#interface fastEthernet 0/0

HEAD(config-if)#ip address 10.0.0.1 255.255.255.0

HEAD(config-if)#no shutdown

HEAD(config-if)#

HEAD(config-if)#ip nat inside

HEAD(config-if)#exit

HEAD(config)#exit

HEAD#wr

Building configuration…

[OK]

В обе стороны все пингуется.

Настроим NAT.

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

HEAD(config)#ip access-list extended 100

HEAD(config-ext-nacl)#10 deny ip 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255

HEAD(config-ext-nacl)#20 permit ip 10.0.0.0 0.0.0.255 any

HEAD(config-ext-nacl)#exit

HEAD(config)#ip nat inside source list 100 interface fastEthernet 0/1 overload

HEAD(config)#exit

HEAD#

*Mar  1 00:47:30.855: %SYS-5-CONFIG_I: Configured from console by console

HEAD#wr

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

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

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

HEAD#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

HEAD(config)#crypto isakmp policy 10

HEAD(config-isakmp)#encryption aes

HEAD(config-isakmp)#authentication pre-share

HEAD(config-isakmp)#group 5

HEAD(config-isakmp)#hash sha

HEAD(config-isakmp)#exit

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

HEAD(config)#crypto isakmp key 12345678 address 200.0.0.2

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

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

HEAD#sh crypto isakmp sa detail

Пока вторая сторона у меня не настроена, поэтому здесь пусто:

Переходим к настройке второй фазы: с ней у меня чаще всего возникают проблемы.

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

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

 

HEAD#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

HEAD(config)#ip access-list extended NETCONFIG-VPN

HEAD(config-ext-nacl)#10 permit ip 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255

HEAD(config-ext-nacl)#exit

HEAD(config)#

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

HEAD(config)#crypto ipsec transform-set NETCONFIG-SET esp-aes esp-sha-hmac

HEAD(cfg-crypto-trans)#exit

HEAD(config)#

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

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

HEAD(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.

HEAD(config-crypto-map)#set peer 200.0.0.2

HEAD(config-crypto-map)#set transform-set NETCONFIG-SET

HEAD(config-crypto-map)#match address NETCONFIG-VPN

HEAD(config-crypto-map)#exit

HEAD(config)#

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

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

HEAD(config)#interface fastEthernet 0/1

HEAD(config-if)#crypto map MAP1

HEAD(config-if)#

*Mar  1 01:10:25.951: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

HEAD(config-if)#exit

CISCO_BRANCH.

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

BRANCH#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

BRANCH(config)#interface fastEthernet 0/1

BRANCH(config-if)#ip address 200.0.0.2 255.255.255.0

BRANCH(config-if)#no shutdown

BRANCH(config-if)#

*Mar  1 00:54:53.567: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up

*Mar  1 00:54:54.567: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

BRANCH(config-if)#ip nat outside

 

*Mar  1 00:55:10.931: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0, changed state to up

BRANCH(config-if)#exit

BRANCH(config)#ip route 0.0.0.0 0.0.0.0 200.0.0.1

BRANCH(config)#interface fastEthernet 0/0

BRANCH(config-if)#ip address 20.0.0.1 255.255.255.0

BRANCH(config-if)#ip nat inside

BRANCH(config-if)#no shutdown

BRANCH(config-if)#

*Mar  1 00:58:12.579: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up

*Mar  1 00:58:13.579: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

BRANCH(config-if)#exit

BRANCH(config)#

BRANCH(config)#ip access-list extended 101

BRANCH(config-ext-nacl)#10 deny ip 20.0.0.0 0.0.0.255 10.0.0.0 0.0.0.255

BRANCH(config-ext-nacl)#20 permit ip 20.0.0.0 0.0.0.255 any

BRANCH(config-ext-nacl)#exit

BRANCH(config-ext-nacl)#ip nat inside source list 200 interface fastEthernet 0/1 overload

BRANCH(config)#crypto isakmp policy 10

BRANCH(config-isakmp)#encryption aes

BRANCH(config-isakmp)#authentication pre-share

BRANCH(config-isakmp)#group 5

BRANCH(config-isakmp)#hash sha

BRANCH(config-isakmp)#exit

BRANCH(config)#

 

BRANCH(config)#crypto isakmp key 12345678 address 100.0.0.2

 

BRANCH(config)#ip access-list extended NETCONFIG-VPN

BRANCH(config-ext-nacl)#permit ip 20.0.0.0 0.0.0.255 10.0.0.0 0.0.0.255

BRANCH(config-ext-nacl)#exit

 

BRANCH(config)#crypto ipsec transform-set NETCONFIG-SET esp-aes esp-sha-hmac

BRANCH(cfg-crypto-trans)#exit

 

BRANCH(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.

BRANCH(config-crypto-map)#set peer 100.0.0.2

BRANCH(config-crypto-map)#set transform-set NETCONFIG-SET

BRANCH(config-crypto-map)#match address NETCONFIG-VPN

BRANCH(config-crypto-map)#exit

BRANCH(config)#

 

BRANCH(config)#interface fastEthernet 0/1

BRANCH(config-if)#crypto map MAP1

BRANCH(config-if)#

*Mar  1 01:17:45.863: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

BRANCH(config-if)#exit

BRANCH(config)#do wr

Building configuration…

[OK]

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

 

HEAD#show crypto isakmp sa

Но туннеля, как не было, так и нет:

Хотя внешний IP филиала доступен:

Проверяем дальше:

HEAD#show crypto isakmp sa detail

И тишина…

 

Включу дебаг:

HEAD#debug crypto isakmp

HEAD#debug crypto ipsec

HEAD#debug crypto condition

HEAD#terminal monitor

Если выключить и очистить:

HEAD#undebug all

HEAD#clear crypto session

 

HEAD#sh cry isa sa

 

Посмотрим, что со второй фазой:

HEAD#show crypto ipsec sa

HEAD#show crypto ipsec sa detail

HEAD#show crypto ipsec transform-set

Вроде все и не плохо с виду…

Просмотрим Crypto map.

HEAD#show crypto ipsec transform-set

Что с сессией:

HEAD#show crypto session

HEAD#show crypto session detail

С виду все неплохо, но туннель пока «лежит».

Запингую с компа одной подсети, комп другой подсети.

Видно, что пинг пошел, и туннель сразу поднялся.

HEAD#show crypto ipsec sa

Посмотрим трассу с компа:

Туннельных адресов у меня нет, маршрутов через туннели тоже.

Порядок проверки:

  1. ACL на интерфейсе.
  2. IP ROUTING: есть ли реверсный маршрут?
  3. NAT.
  4. Просмотр интерфейса  fa0/1-Crypto MAP.
  5. Туннельный ACL.

На этом пока все. Продолжение следует…

Всем хорошей работы!!!

08.10.2019 Posted by | Network and Wi-fi: cisco, mikrotik, huawei, tp-link, d-link, zyxel и другое... | 1 комментарий