Вы здесь

Подключение региональных офисов с серыми адресами по VPN

Иногда приходится сталкиваться с ситуациями, когда региональный офис подключен через провайдера, который раздает только "серые" адреса.
Под серыми адресами понимаются Private Networks, т.е. адреса, которые не маршрутизируются в интернете.
По этой причине построение традиционного VPN в подобных случаях затруднительно.
Автору удалось получить положительные результаты в трех методах.

1) Cisco Easy VPN Remote - Технология, позволяющая маршрутизатору выступать подобно клиенту IPSec Cisco Systems VPN Client. Достаточно надежно работающая вещь, поддерживающая шифрование. Установка соединения происходит по инициативе клиента. При установлении соединения маршруты на филиал и на организацию прописываются статикой, которые потом можно инжектить в EIGRP или OSPF. Можно использовать как резервное подключение. Есть поддержка нескольких HUB-ов. В редких случаях соединение может "заклинивать", лечится через clear.

2) Использование туннеля GRE - несмотря на то, что GRE требует белых адресов с обоих сторон, он способен подняться если у филиала серый адрес, но инициатива идет от филиала. Метод не стабилен.

3) DMVPN - пожалуй наиболее предпочтительный метод, особенно если DMVPN уже развернуто. Поскольку на NHS нет белых адресов в принципе, и инициатива идет от филиалов, соединение устойчиво поднимается как с использованием шифрования, так и без. DMVPN отлично дружит с EIGRP и OSPF, поэтому можно организовывать любые комбинации с выделенными каналами, primary/secondary и т.д.

DMVPN

cisco_easy_vpn_remote01_ciscomaster.ru.jpg

Приведем настройку для данной схемы нешифрованного туннеля.
HUB

interface Tunnel400 description ### DMVPN TUNNEL for FILIALS secondary HUB ip address 10.5.4.1 255.255.255.0 no ip redirects ip mtu 1440 ip nbar protocol-discovery ip hold-time eigrp 1 35 no ip next-hop-self eigrp 1 ip nhrp authentication baugrus3 ip nhrp map multicast dynamic ip nhrp network-id 400 ip tcp adjust-mss 1300 no ip split-horizon eigrp 1 delay 300000 tunnel source 187.237.40.108 tunnel mode gre multipoint tunnel key 12345
router eigrp 1 network 10.5.12.0 0.0.3.255 network 10.5.4.0 0.0.0.255

SPOKE

interface Tunnel400 description ### DMVPN TUNNEL for FILIALS secondary HUB ip address 10.5.4.29 255.255.255.0 no ip redirects ip mtu 1440 ip nbar protocol-discovery ip hold-time eigrp 1 35 ip nhrp authentication baugrus3 ip nhrp map 10.5.4.1 187.237.40.108 ip nhrp map multicast 187.237.40.108 ip nhrp network-id 400 ip nhrp nhs 10.5.4.1 ip nhrp registration no-unique ip tcp adjust-mss 1300 delay 300000 tunnel source Vlan192 tunnel mode gre multipoint tunnel key 12345
interface FastEthernet3
description ###OUTSIDE YOTA Secondary###
switchport access vlan 192
interface Vlan192 description ###OUTSIDE YOTA ### bandwidth 4000 ip address 192.168.1.254 255.255.255.0 ip nat outside ip virtual-reassembly in
router eigrp 1
network 10.5.4.0 0.0.0.255
network 10.5.29.0 0.0.0.255
no auto-summary

Подробнее по DMVPN см. статьи:
DMVPN и EIGRP
DMVPN и резервный ISP

Cisco Easy VPN Remote

cisco_easy_vpn_remote01_ciscomaster.ru.jpg
Рассмотрим следующий практический пример.
Как видно на рисунке, офис spoke1 в качестве внешнего адреса имеет серый 192.168.0.95.

Существует широко известная технология Cisco Easy VPN, позволяющая поднимать IPSec туннели как между офисами, так и пользовательский Remote Access VPN.
Первый вариант нас в данном случае не интересует, т.к. требует наличия белых адресов с обоих сторон.
А вот второй случай вполне допускает серый адрес со стороны пользователя и, соответственно работу через NAT провайдера.
При этом, как известно, для подключения к VPN HUB пользователь использует приложение VPN client.
Cisco Easy VPN Remote - это фича cisco IOS, позволяющая маршрутизатору подключаться к VPN HUB подобно пользовательскому VPN клиенту.

Настройка Cisco IOS VPN HUB

Настраиваем совершенно аналогично как и для пользовательского VPN:

aaa group server radius rad_acs
server 10.5.14.249
ip radius source-interface GigabitEthernet0/1

aaa authentication login vpn_ls group rad_acs local
aaa authorization network vpn_author_ls local

ip local pool ezvpn_pool 10.5.5.5 10.5.5.254

interface Loopback1
ip address 10.5.5.1 255.255.255.255

!!!--- Create ISAKMP policy for Phase 1 negotiations
crypto isakmp policy 10
encr 3des
hash md5
authentication pre-share
group 2

!!!--- Group definition for the EzVPN server featuter. VPN clients must use this group name/password and are allocated these attributes
crypto isakmp client configuration group ezvpn_user_group
key usernji9ol
dns 10.5.14.7
domain bu.local
pool ezvpn_pool
acl ezvpn_user_acl
save-password

!!!--- IPsec profile for VPN clients
crypto isakmp profile ezvpn_ike_profile
match identity group ezvpn_user_group
client authentication list vpn_ls
isakmp authorization list vpn_author_ls
client configuration address respond
virtual-template 2

crypto ipsec transform-set ezvpn_tr esp-3des esp-sha-hmac

!!!--- Create the Phase 2 policy for actual data encryption
crypto ipsec profile ezvpn_ipsec_pr
set transform-set ezvpn_tr
set reverse-route distance 180
set isakmp-profile ezvpn_ike_profile

!!!--- Virtual Interface for tunnel
interface Virtual-Template2 type tunnel
ip unnumbered GigabitEthernet0/0
tunnel mode ipsec ipv4
tunnel protection ipsec profile ezvpn_ipsec_pr

ip access-list extended ezvpn_user_acl
permit ip 10.5.5.1 0.0.0.0 any
permit ip 10.5.0.0 0.0.255.255 any

Инжектить маршрут лучше используя редистрибуцию статики.
Хотя есть ещё вари