Коллеги, здравствуйте, меня зовут Семенов Вадим и совместно с проектом network-class.net хочу представить статью, посвященную вопросу масштабируемости VPN-ов, причем тех VPN-ов, которые доступны для настройки в обычной корпоративной сети предприятия, а не со стороны провайдера. Надеюсь, что данная статья станет справочным материалом, который может потребоваться при дизайне сети, либо при её апгрейде, либо для того, чтобы освежить в памяти принцип работы того или иного VPN-на.
В начале статьи описаны основные моменты стека протоколов IPSec, так как использование данного стандарта далее будет весьма часто встречаться. В конце параграфа об IPSec были включены самые частые причины неработоспособности IPSec канала, а также основные шаги по их устранению.
Ниже систематизированы VPN-ы, которые доступны для настройки в корпоративной сети. Технологии VPN распределены по уровню предоставляемых клиенту каналов по модели OSI (рис 1):
Схема VPN-ов относительно возможности пропуска мультикаста и работы протоколов маршрутизации (рис. 2):
Дополнительно приводится структурированная схема VPN-ов (рис.3), которые могут предоставляться провайдером, но в данной статье подробно они не рассматриваются:
Итогом работы по систематизации VPN-ов и исследованию их масштабируемости послужила итоговая таблица, в которую заносилась общая информация по типу протокола VPN-а, его особенности, и самое важное, что необходимо сделать, если к существующим VPN-ам подключить еще один.
В таблице представлены результаты настроек, исследование полученного формата пакета, настройка протокола маршрутизации (OSPF) через VPN-ы, а также рассмотрены вопросы масштабируемости протокола.
Тип VPN | Настройка HUB | Настройка Spoke | Настройка HUB при добавлении нового Spoke | Настройка Spoke при добавлении другого нового Spoke | Использование протоколов динамической маршрутизации OSPF, EIGRP | Особенности |
Regular IPSec
(crypto map) | isakmp Crypto-map | isakmp Crypto-map | Да: isakmp, crypto-map: set peer, transform-set, crypto ACL | Да: Для обеспечения связности между Spoke-ми необходимо добавить маршруты нового Spoke-a в crypto ACL всех существующих Spoke-ах | Нет | Удобен в случае кол-ва Spoke <5-10. Для обеспечения связности между Spokе-ми через HUB требуется добавление в crypto ACL Nсетей на N spoke-ах Крайне немасштабируемый. |
Regular IPSec (Profile) | isakmp profile, IPSec Profile, сrypto-map | isakmp profile, IPSec Profile, сrypto-map | Да: crypto-map: set peer, crypto ACL | Да: Добавление новых маршрутов в crypto ACL | Нет | Крайне не масштабируемый. Меньше конфигурации засчет объединения типовых настроек в profile. |
Regular IPSec (Profile, Static VTI) | isakmp profile, IPSec Profile, VTI (Virtual Tunnel Interface) | isakmp, IPSec Profile, VTI (Virtual Tunnel Interface) | Да: isakmp, новый VTI (Virtual Tunnel Interface) | Да static route до сетей уд. офиса | Да | В конфигурации SVTI без IGP – крайне не масштабируемый. На каждый Spoke по SVTI. N spoke – N VTI и своя подсеть. На Spoke требуется добавление маршрутов до удаленных Spoke-в. Пропускает multicast! По умолчанию на каждый SVTI только одна SA IPSec c traffic selector “IP any any.” Нет команды crypto ACL. В туннель заворачиваются те сети, которые определены через static route на SVTI. |
Regular IPSec (Profile, Static VTI and IGP) | isakmp, IPSec Profile, VTI (Virtual Tunnel Interface) | isakmp, IPSec Profile, VTI (Virtual Tunnel Interface) | Да: isakmp, новый VTI (Virtual Tunnel Interface) | Нет | Да | Не масштабируемый. На каждый Spoke по SVTI. N spoke – N VTI и своя подсеть. Маршруты от IGP попадают в туннель. |
IPSec with dynamic IP (Dynamic VTI and Static VTI and IGP) | keyring, isakmp policy, isakmp profile, ipsec profile, loopback for unnumbered interface (обязательно), Virtual-Template type tunnel | keyring, isakmp policy, isakmp profile, ipsec profile, loopback for unnumbered interface, Static VTI | Нет | Нет | Да | Очень масштабируемый. Все spoke и hub находятся в одной сети! Dynamic VTI (DVTIs) также point-to-point интерфейс. В режиме point-to-multipoint соседство OSPF не устанавливается. Использование Unnumbered IP в качестве адреса DVTI обязательно |
Easy VPN | ААА – для авторизации клиентов Isakmp, isakmp policy, isakmp profile, ipsec profile, interface, Virtual-Template type tunnel DHCP для клиентов | Minimum IPsec client конфигурация, с указанием VPN-сервера, VPN группы, пользователя для ааа, Указание внутренних и внешний интерфейсов. | Нет | Нет | Да | Масштабируемый. Если ранее был настроен NAT/PAT, то перед внедрением EASY VPN должна быть эта конфигурация удалена. Есть особенности в настройке transform-set. |
GRE | Interface Tunnel, Static route | Interface Tunnel, Static route | Да Int tunnel, Static route | Да Static route | Да | Не масштабируемый. Образует P2P линк, на каждый туннель – своя подсеть. Прекрасно подходит для туннелирования IGP протоколов. |
IGP over GRE | Interface Tunnel, Static route | Interface Tunnel, Static route | Да Int tunnel | Нет | Да | Не масштабируемый. На каждый туннель – своя подсеть. IGP протоколы работают через туннель при настройках по умолчанию. |
DMVPN (проприетарный) | DMVPN phase 1 – кон-ция только mGRE DMVPN phase 2 – настройка ipsec profile для защиты трафика | Minimum: DMVPN phase 1 – кон-ция только mGRE DMVPN phase 2 – настройка ipsec profile для защиты трафика | Нет | Нет: при добавлении нового spoke – туннель до него строится автоматически | Да: EIGRP на HUB выключаем расщепление горизонта и сохранения себя в качестве next-hop в анонсах маршрута | Наиболее масштабируемый протокол. GRE multipoint. Туннели между удаленными офисами создаются динамически. |
PPTP | Vpdn-group, interface Virtual-Template, IP local pool, username/password для авториз-и, static route до сетей уд.офиса | service internal (для включения настроек pptp клиента), vpdn-group, interface Dialer, dialer-list, static route до сетей центр., удал. офиса | Да Static route для внутренних сетей за PPTP клиентом | Да Static route для новых внутренних сетей за новым PPTP клиентом | Да | Масштабируемый с ограничениями. Морально устаревший протокол, уязвимости в криптографии в протоколе авторизации MSCHAPv2. Чаще всего используется для создания удаленного доступа. Поддерживается множеством популярных версий ОС Windows. Исп только один протокол для шифрования -MPPE (RC4 со 128-битным ключом). Поддерживает мультикаст, т.к. PPP инкапсулируются в GRE. |
IGP over PPTP | Vpdn-group, interface Virtual-Template, IP local pool, username/password для авториз-и, IGP protocol (router ospf process) | service internal (для включения настроек pptp клиента), vpdn-group, interface Dialer, dialer-list, IGP protocol (router ospf process) | Нет | Нет | Да | Масштабируемый с ограничениями. Поддерживает мультикаст, т.к. PPP инкапсулируются в GRE. Морально устаревший протокол -> альтернатива L2TP over IPSec |
L2TPv3
xconnect | pseudowire-class xconnect | pseudowire-class xconnect | Да xconnect | Нет | Да | Не масштабируемый. Отлично подходит для разнесения «native» L2 vlan-а через IP сеть. Но, необходимо наличие резервного шлюза по умолчанию. Создавая xconnect на интерфейсе маршрутизатора мы должны удалить IP адрес с его интерфейса, тем самым удалив маршрут по умолчанию для всех устройств внутри этой сети. |
L2TPv2/v3 | aaa new-model, username для авторизации L2TP пира, VPDN-group, interface Virtual-Template, static route до сетей уд. офиса | username для авторизации L2TP HUBa, interface virtual-ppp, pseudowire class, static route до сетей центр., удал. офиса | Да: static route до внутренних сетей удаленного офиса | Да: static route до внутренних сетей удаленного офиса | Да | Масштабируемый. L2TPv3 дает большие преимущества, позволяя инкапсулировать не только PPP трафик, как L2TPv2, но и передавать метку VLANа и, а также инкапсулировать HDLC, Frame Relay. |
IGP over L2TPv2/v3 | aaa new-model, username для авторизации L2TP пира, VPDN-group, interface Virtual-Template, IGP (router ospf process) | username для авторизации L2TP HUBa, interface virtual-ppp, pseudowire class, IGP (router ospf process) | Нет | Нет | Да | Очень масштабируемый. Позволяет настраивать протоколы маршрутизации «по умолчанию», связь удаленных офисов осуществляется через L2TPv2/v3 HUB (в центральном офисе). |