Easy VPN между маршрутизаторами Cisco ISR

Cisco Easy VPN (EZVPN) позволяет использовать в качестве VPN-клиента как «софтварный» Cisco VPN Client, так и «хардварный» маршрутизатор Cisco ISR или Cisco ASA. При этом для сервера Cisco Easy VPN нет никакой разницы кто выступает в качестве VPN-клиента.

Маршрутизатор, выступающий в роли Easy VPN клиента, аутентифицируется Easy VPN сервером следующим образом:

  • На первом шаге производится Group-level authentication. Здесь создаётся канал управления и может быть использован один из методов аутентификаци: PSKsPre-shared keys (сервер и клиент имеют предопределённые ключи друг для друга) и Digital certificates — использование RSA-сигнатур, что обеспечивает бОльшую безопасность
  • Второй шаг опционален и позволяет выполнить Extended Authentication (XAUTH) — дополнительная аутентификация, при которой Easy VPN-клиент отправляет Easy VPN-серверу имя пользователя (логин) и пароль (так же, как и при использовании Cisco VPN Client’а). После успешной XAUTH аутентификации между маршрутизатором-клиентом и маршрутизатором-сервером устанавливается VPN-канал и компьютеры, находящиеся за маршрутизатором-клиентом могут отправлять трафик через VPN канал.

Следует отметить, что при использование XAUTH, на маршрутизаторе-клиенте необходимо прописать имя пользователя и пароль в секции crypto ipsec client ezvpn NAME, совпадающие с именем пользователя и паролем, заданным на маршрутизаторе-сервере в глобальной конфигурации.

Easy VPN между маршрутизаторами Cisco ISR можно использовать в топологиях Point-to-Point или Hub-and-Spoke.


Существуют три режима работы маршрутизатора-клиента в Cisco Easy VPN:

  1. Client mode — в данном режиме на маршрутизаторе-клиенте автоматически создаются NAT, PAT и ACL для того, чтобы хосты клиентской части могли получить доступ к хостам за маршрутизатором-сервером. По окончанию существования VPN-туннеля, созданные автоматически NAT, PAT и ACL автоматически удаляются. Минусом данного режима является то, что хосты за маршрутизатором-сервером не могут инициировать сессии к хостам за маршрутизатором-клиентом
  2. Network Extension mode — на маршрутизаторе-клиенте Easy VPN динамически создаваемому виртуальному туннельному интерфейсу присваивается IP адрес внешнего интерфейса этого маршрутизатора. NAT-трансляции не используются.
  3. Network Extension Plus mode — аналогичен Network Extension mode, только IP адрес туннеля на маршрутизаторе-клиенте запрашивается на маршрутизаторе-сервере и присваивается доступному Loopback-интерфейсу, после чего автоматически создаётся IPSec SA для этого IP-адреса. NAT-трансляции не используются.

Топология для настройки и проверки Easy VPN между маршрутизаторами Cisco ISR:

EZVPN_101Здесь маршрутизатор R-1 выступает в роли сервера Easy VPN, а маршрутизатор R-3 в роли клиента Easy VPN.

Настройки на маршрутизаторе R-1 (одинаковы для всех 3-ёх режимов работы маршрутизатора-клиента в Cisco Easy VPN):

1. Включение и настройка AAA — для аутентификации и авторизации VPN-клиентов будет использоваться локально настроенная на маршрутизаторе база данных с пользователями

aaa new-model
aaa authentication login LOCAL-AUTHEN local
aaa authorization network LOCAL-AUTHOR local

2. Создание пользователя с паролем для XAUTH

username Router-3 privilege 0 secret Router-3

3. Создание пула IP-адресов, из которого IP-адреса будут выдаваться клиентам VPN

ip local pool VPN-POOL 172.16.0.50 172.16.0.250

4. Создание ACL, для Split Tunnel

ip access-list extended VPN-SPLIT-TUNNEL-ACL
 permit ip 172.16.0.0 0.0.0.255 any
 permit ip 192.168.0.0 0.0.0.255 any

5. Настройка Crypto ISAKMP туннеля (IKE Phase 1)

crypto isakmp policy 10
 hash sha
 authentication pre-share
 group 2
 encr aes
 lifetime 3600

6. Создание шаблона динамического виртуального туннельного интерфейса (Dynamic VTI Template), из которого настройки будут применяться ко всем динамически создаваемым виртуальным туннельным интерфейсам (VTI)

interface loopback 0
 ip address 172.16.0.1 255.255.255.0

interface virtual-template 1 type tunnel
 ip unnumbered loopback 0
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile IPSEC-PROFILE

7. Создание группы VPN-GROUP-ROUTERS с настройками для VPN клиентов

crypto isakmp client configuration group VPN-GROUP-ROUTERS
 key Cisco123
 dns 192.168.0.50
 domain test.loc
 pool VPN-POOL
 acl VPN-SPLIT-TUNNEL-ACL

8. Создание профиля ISAKMP, который будет проверять подлинность VPN-клиентов, применять настройки для этих клиентов и задействовать виртуальные туннельные интерфейсы (VTI) для группы

crypto isakmp profile ISAKMP-PROFILE
 ! Определяем имя группы, которую этот ISAKMP профиль будет использовать
 match identity group VPN-GROUP-ROUTERS
 ! Использование XAUTH
 client authentication list LOCAL-AUTHEN
! Авторизация VPN-клиентов будет осуществляться по AAA-листу LOCAL-AUTHOR
 isakmp authorization list LOCAL-AUTHOR
 ! Easy VPN сервер обязан отвечать на запрос IP-адреса от VPN-клиентов
 client configuration address respond
! Определяем группу с настройками для VPN-клиентов, которая будет ассоциирована с данным ISAKMP профилем
 client configuration group VPN-GROUP-ROUTERS
! «Привязываем» этот ISAKMP профиль (т.е. группу пользователей) к локальному динамическому VTI-интерфейсу
virtual-template 1

9. Настройка Crypto IPSec туннеля (IKE Phase 2)

crypto ipsec transform-set IPSEC-TS esp-aes esp-sha-hmac
 mode tunnel

10. Создание профиля IPSec, который будет применяться на туннельных интерфейсах VTI
crypto ipsec profile IPSEC-PROFILE

crypto ipsec profile IPSEC-PROFILE
 set transform-set IPSEC-TS
 set isakmp-profile ISAKMP-PROFILE


A. Рассмотрим настройку на маршрутизаторе R-3 в Client mode

1. Создание шаблона динамического виртуального туннельного интерфейса (Dynamic VTI Template)

interface Virtual-Template1 type tunnel
 tunnel mode ipsec ipv4

2. Создание профиля подключения, в котором имя и пароль группы совпадают с именем и паролем «crypto isakmp client configuration»-группы на Easy VPN сервере

crypto ipsec client ezvpn CRYPTO-EZVPN-NAME
 connect auto
 group VPN-GROUP-ROUTERS key Cisco123
 ! Используем Client mode
 mode client
 ! Указываем «внешний» IP адрес Easy VPN сервера
 peer 12.0.0.1
 ! Указываем шаблон локального VTI, который будет использоваться для создания туннельного интерфейса
 virtual-interface 1
! Указываем имя пользователя и пароль для XAUTH
 username Router-3 password Router-3

3. Определяем интерфейсы как внутренний (доверенный) и внешний (недоверенный) для правильного применения NAT (в Client mode) или определения защищённой сети (в Network extension mode)

interface Ethernet0/1
 crypto ipsec client ezvpn CRYPTO-EZVPN-NAME outside
!
interface Ethernet0/3
 crypto ipsec client ezvpn CRYPTO-EZVPN-NAME inside

Проверяем.

R-3# show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst                 src                 state                 conn-id status
12.0.0.1        23.0.0.3        QM_IDLE           1066 ACTIVE

т.е. IKE Phase 1 установлен.

Прогоняем ping с компьютера WinXp-2 на IP компьютера WinXP-1:

C:\WinXP-2>ping 192.168.0.50

Обмен пакетами с 192.168.0.50 по с 32 байтами данных:
Ответ от 192.168.0.50: число байт=32 время<1мс TTL=127
Ответ от 192.168.0.50: число байт=32 время<1мс TTL=127
Ответ от 192.168.0.50: число байт=32 время<1мс TTL=127
Ответ от 192.168.0.50: число байт=32 время<1мс TTL=127

Статистика Ping для 192.168.0.50:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0  (0% потерь)

Проверяем IKE Phase 2 на маршрутизаторе R-3:

R-3# show crypto ipsec sa

interface: Virtual-Access1
    Crypto map tag: Virtual-Access1-head-0, local addr 23.0.0.3

   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 12.0.0.1 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
    #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 23.0.0.3, remote crypto endpt.: 12.0.0.1
     plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0/1
     current outbound spi: 0x17D0CC5E(399559774)
     PFS (Y/N): N, DH group: none

т.е. IKE Phase 2 установлен.

На маршрутизаторе-клиенте (R-3) автоматически создаётся динамическая NAT-трансляция, причём в качестве Inside global адреса выступает динамически созданный интерфейс Virtual-Access1 с IP-адресом 172.16.0.77 из пула IP-адресов, созданного на маршрутизаторе-сервере R-1:

R-3# show ip nat translations
Pro    Inside global        Inside local           Outside local         Outside global
icmp 172.16.0.77:512   192.168.1.50:512   192.168.0.50:512   192.168.0.50:512

R-3# show ip interface brief | ex down
Interface                      IP-Address      OK?     Method    Status     Protocol
Ethernet0/1                23.0.0.3             YES     NVRAM     up            up
Ethernet0/3                192.168.1.1      YES     NVRAM     up            up
Loopback10000         172.16.0.77      YES     TFTP           up            up
NVI0                              23.0.0.3            YES     unset         up            up
Virtual-Access1         172.16.0.77      YES     unset         up            up

На маршрутизаторе-сервере видим аналогичную картину:

R-1#show ip interface brief | ex down
Interface                  IP-Address      OK?      Method      Status             Protocol
Ethernet0/0             12.0.0.1            YES       NVRAM      up                    up
Ethernet0/3             192.168.0.1     YES       NVRAM      up                    up
Loopback1               172.16.0.1       YES       NVRAM      up                    up
NVI0                           12.0.0.1           YES       unset          up                    up
Virtual-Access1       172.16.0.1      YES       unset          up                    up

В таблице маршрутизации R-3 появились 2 интересных маршрута, один в сеть с компьютером WinXP-1 через динамически созданный интерфейс Virtual-Access1:

R-3#sh ip route 192.168.0.0
Routing entry for 192.168.0.0/24
  Known via «static», distance 1, metric 0
  Tag 113
  Routing Descriptor Blocks:
  * directly connected, via Virtual-Access1, permanent
      Route metric is 0, traffic share count is 1
      Route tag 113

через динамически созданный интерфейс Virtual-Access1, а второй маршрут в сеть пула IP-адресов для клиентов VPN (опять же через динамически созданный интерфейс Virtual-Access1):

R-3#sh ip route 172.16.0.0 255.255.255.0
Routing entry for 172.16.0.0/24
  Known via «static», distance 1, metric 0
  Tag 113
  Routing Descriptor Blocks:
  * directly connected, via Virtual-Access1, permanent
      Route metric is 0, traffic share count is 1
      Route tag 113

что является результатом применения Split tunnel.

Таким образом, туннель строится между динамически создаваемыми интерфейсами Virtual-Access1, при этом на маршрутизаторе-сервере R-1 IP-адрес ему назначается от Loopback 1 (172.16.0.1), а на маршрутизаторе-клиенте R-3 — из пула, определённого на маршрутизаторе-сервере для клиентов VPN (172.16.0.77). Проверить это можно трассировкой до компьютера WinXP-1 с компьютера WinXP-2:

C:\WinXP-2>tracert 192.168.0.50
Трассировка маршрута 192.168.0.50 с максимальным числом прыжков 30:
  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    <1 мс    <1 мс    <1 мс  172.16.0.1
  3    <1 мс    <1 мс    <1 мс  192.168.0.50
Трассировка завершена.

Ещё один момент: так как маршрутизатор-клиент R-3 работает в Client mode, то между компьютерами возможно «общение» ТОЛЬКО, если инициатором этого «общения» является компьютер, находящийся за маршрутизатором-клиентом R-3. Это происходит из-за динамического (автоматического) создания NAT/PAT-трансляций на данном маршрутизаторе.

C:\WinXP-1>ping 192.168.1.50

Обмен пакетами с 192.168.1.50 по с 32 байтами данных:
Ответ от 12.0.0.2: Заданный узел недоступен.
Ответ от 12.0.0.2: Заданный узел недоступен.
Ответ от 12.0.0.2: Заданный узел недоступен.
Ответ от 12.0.0.2: Заданный узел недоступен.

Статистика Ping для 192.168.1.50:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0  (0% потерь)

На маршрутизаторе сервере нет маршрута в сеть с компьютером WinXP-2:

R-1#show ip route 192.168.1.0 255.255.255.0
% Network not in table

но есть маршрут через VPN-туннель на интерфейс Virtual-Access1, IP-адрес которого (172.16.0.77) выступает в качестве Inside global адреса при NAT-трансляциях на маршрутизаторе R-3:

R-1#show ip route 172.16.0.77
Routing entry for 172.16.0.77/32
  Known via «static», distance 1, metric 0
  Routing Descriptor Blocks:
  * directly connected, via Virtual-Access1
      Route metric is 0, traffic share count is 1

а NAT-трансляция в сеть с компьютером WinXP-2 выглядит следующим образом:

R-1#sh ip nat translations
Pro     Inside global      Inside local            Outside local         Outside global
icmp  12.0.0.1:512        192.168.0.50:512   192.168.1.50:512   192.168.1.50:512


Б. Рассмотрим настройку на маршрутизаторе R-3 в Network Extension mode.

Отличие от Client mode только в одной команде на маршрутизаторе-клиенте Easy VPN: вместо

crypto ipsec client ezvpn CRYPTO-EZVPN-NAME
mode client

указывается

crypto ipsec client ezvpn CRYPTO-EZVPN-NAME
mode network-extension

При этом на маршрутизаторе-клиенте Easy VPN динамически создаваемому интерфейсу Virtual-Access1 присваивается IP адрес внешнего интерфейса этого маршрутизатора:

R-3#show ip interface brief | ex down
Interface                  IP-Address      OK?    Method     Status            Protocol
Ethernet0/1            23.0.0.3            YES      NVRAM     up                    up
Ethernet0/3            192.168.1.1     YES      NVRAM     up                    up
NVI0                          23.0.0.3           YES      unset         up                    up
Virtual-Access1      23.0.0.3           YES      unset         up                    up

и туннель так же строится между интерфейсом Virtual-Acces1 (172.16.0.1) маршрутизатора R-1 и интерфейсом Virtual-Acces1 (но теперь ему присваивается маршрутизируемый IP адрес 23.0.0.3) маршрутизатора R-3.

Таким образом при передаче трафика от WinXP-1 к WinXP-2 (и в обратную сторону) никаких NAT-трансляций автоматически не создаётся и трафик «свободно ходит» в обе стороны, независимо от того кто является инициатором этого трафика.

R-3#sh ip route 192.168.0.0
Routing entry for 192.168.0.0/24
  Known via «static», distance 1, metric 0
  Tag 113
  Routing Descriptor Blocks:
  * directly connected, via Virtual-Access1, permanent
      Route metric is 0, traffic share count is 1
      Route tag 113

и

R-1#sh ip route 192.168.1.0
Routing entry for 192.168.1.0/24
  Known via «static», distance 1, metric 0
  Routing Descriptor Blocks:
  * directly connected, via Virtual-Access1
      Route metric is 0, traffic share count is 1

Трассировка с WinXP-2 на WinXP-1 говорит о том, что трафик между маршрутизаторами идёт через туннель:

C:\WinXP-2>tracert 192.168.0.50
Трассировка маршрута 192.168.0.50 с максимальным числом прыжков 30:
  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    <1 мс    <1 мс    <1 мс  172.16.0.1
  3    <1 мс    <1 мс    <1 мс  192.168.0.50
Трассировка завершена.

Трассировка с WinXP-1 на WinXP-2 говорит о том, что трафик между маршрутизаторами так же идёт через туннель:

C:\WinXP-1>tracert 192.168.1.50
Трассировка маршрута 192.168.0.50 с максимальным числом прыжков 30:
  1    <1 мс    <1 мс    <1 мс  192.168.0.1
  2    <1 мс    <1 мс    <1 мс  23.0.0.3
  3    <1 мс    <1 мс    <1 мс  192.168.1.50
Трассировка завершена.

Выводы команд для проверки IKE Phase 1 и IKE Phase 2 подтверждают наличие туннеля между маршрутизаторами:

R-3#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst                 src                state                  conn-id      status
12.0.0.1        23.0.0.3        QM_IDLE           1071           ACTIVE

и

R-3#sh crypto ipsec sa

interface: Virtual-Access1
    Crypto map tag: Virtual-Access1-head-0, local addr 23.0.0.3

   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 12.0.0.1 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 48, #pkts encrypt: 48, #pkts digest: 48
    #pkts decaps: 48, #pkts decrypt: 48, #pkts verify: 48
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 23.0.0.3, remote crypto endpt.: 12.0.0.1
     plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0/1
     current outbound spi: 0xFC559E94(4233469588)
     PFS (Y/N): N, DH group: none


В. Рассмотрим настройку на маршрутизаторе R-3 в Network Extension Plus mode.

Аналогично, отличие от Client mode и Network Extension mode только в одной команде на маршрутизаторе-клиенте Easy VPN: вместо

crypto ipsec client ezvpn CRYPTO-EZVPN-NAME
mode client

указывается

crypto ipsec client ezvpn CRYPTO-EZVPN-NAME
mode network-plus

Полностью аналогичен Network Extension mode, только IP адрес туннеля на маршрутизаторе-клиенте запрашивается на маршрутизаторе-сервере и присваивается доступному Loopback-интерфейсу, после чего автоматически создаётся IPSec SA для этого IP-адреса. Никакие IP NAT-трансляции не создаются и трафик «свободно ходит» в обе стороны, независимо от того кто является инициатором этого трафика.

R-3#sh ip int bri | ex down
Interface                  IP-Address      OK?      Method      Status             Protocol
Ethernet0/1             23.0.0.3            YES      NVRAM       up                    up
Ethernet0/3             192.168.1.1     YES       NVRAM      up                    up
Loopback10000      172.16.0.79     YES       TFTP            up                    up
NVI0                          23.0.0.3            YES       unset          up                    up
Virtual-Access1      172.16.0.79     YES       unset          up                    up

R-3#sh ip route 192.168.0.0
Routing entry for 192.168.0.0/24
  Known via «static», distance 1, metric 0
  Tag 113
  Routing Descriptor Blocks:
  * directly connected, via Virtual-Access1, permanent
      Route metric is 0, traffic share count is 1
      Route tag 113

C:\WinXP-2>tracert 192.168.0.50
Трассировка маршрута 192.168.0.50 с максимальным числом прыжков 30:
  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    <1 мс    <1 мс    <1 мс  172.16.0.1
  3    <1 мс    <1 мс    <1 мс  192.168.0.50
Трассировка завершена.

и

C:\WinXP-1>tracert 192.168.1.50
Трассировка маршрута 192.168.0.50 с максимальным числом прыжков 30:
  1    <1 мс    <1 мс    <1 мс  192.168.0.1
  2    <1 мс    <1 мс    <1 мс  172.16.0.79
  3    <1 мс    <1 мс    <1 мс  192.168.1.50
Трассировка завершена.


P.S. Все IP-адреса вымышленные и не имеют никакого отношения к реальным IP-адресам Интернета)

Добавить комментарий