Команда департамента телекоммуникаций КРОК не сидит сложа ноутбуки (вдруг у вас были сомнения?). Мы ищем способы помочь нашим заказчикам сохранить работоспособность их сетей и обеспечить возможность дальнейшего развития. В ходе этих поисков обрели новую жизнь наши отношения с китайским вендором Maipu Communication Technology. Сейчас, когда общение с вендором налажено на всех уровнях, мы, инженеры, исследуем их решения на предмет надёжности и применимости к самым распространённым кейсам заказчика.
Сегодня я расскажу об одном из таких кейсов.
Что это за вендор?
Maipu это часть крупного производителя телеком-оборудования China Electronic Corporation. В 1993 году компания выпустила своё первое телеком-устройство, в 2000 - первый роутер, а в 2006 - коммутатор. Затем, разогнавшись на внутрекитайском рынке, Maipu вышла на рынок мировой и к настоящему времени успела реализовать множество проектов в Юго-восточной Азии, Африке и Латинской Америке. Основными потребителями продуктов и решений являются банки, госструктуры и операторы связи.
Нашим коллегам уже удалось побывать на производстве оборудования Maipu и оценить процесс контроля качества. Кроме того, наш опыт взаимодействия с вендором показал, что его небольшой, в сравнении лидерами рынка, размер имеет и свои плюсы: компания готова оперативно расширять и корректировать функционал своих решений под конкретные проекты, причём проекты для этого не обязательно должны быть масштаба страны.
В последние 10 лет компания активно инвестирует в разработку собственной элементной базы, что уже позволило ей выпустить ряд моделей коммутаторов и маршрутизаторов целиком на китайских компонентах.
Ситуация
У вас есть сеть филиалов, соединённых с центральными площадками с помощью VPN-туннелей. Самый распространённый вариант реализации такой сети - пограничные маршрутизаторы Cisco и технология Dynamic Multipoint VPN (DMVPN). Работает отлично, но рано или поздно на каких-то филиалах существующие маршрутизаторы либо перестают удовлетворять возросшим требованиям по производительности, либо просто ломаются. Их нужно менять. Можно ли на замену использовать маршрутизаторы Maipu?
Мы проверили это в нашей лаборатории вот на таких устройствах:
Этап 1. Cisco в роли DMVPN-Hub, Maipu в роли DMVPN-Spoke
Задача — встроить филиальный маршрутизатор Maipu в существующую DMVPN-сеть Cisco. Конфигурация со стороны Cisco стандартная. Underlay-сеть спрятана в отдельный VRF — это распространённая ситуация, её хотелось отработать сразу.
Настроить DMVPN на маршрутизаторе Maipu совсем несложно, если хорошо понимаешь технологию и то, какие компоненты обязательно должны присутствовать в конфиге. На Cisco всё выглядит примерно так:
Следующая задача — понять, как всё это настраивается в Maipu. Беглое исследование показало, что параметры распределяются по разделам конфига немного иначе. Вот так:
Ниже пример конфигов с соответствием разделов друг другу.
Cisco |
Maipu |
ip vrf UNDERLAY rd 2:2 |
ip vrf UNDERLAY rd 2:2 |
interface GigabitEthernet0/1 description -= WAN =- ip vrf forwarding UNDERLAY ip address 192.168.255.4 255.255.255.0 |
interface gigabitethernet0/1 no switchport description -= WAN =- ip vrf forwarding UNDERLAY ip address 192.168.255.3 255.255.255.0 |
crypto isakmp policy 100 encr aes 256 authentication pre-share group 16 |
crypto ike proposal CROCLAB_IKP encryption aes256 group group16
|
crypto keyring vpn1 vrf UNDERLAY pre-shared-key address 0.0.0.0 0.0.0.0 key ### KEY ### |
crypto ike key ### KEY ### address 192.168.255.4 |
crypto isakmp profile CROCLAB_IP vrf UNDERLAY keyring vpn1 self-identity address match identity address 0.0.0.0 UNDERLAY local-address GigabitEthernet0/1 |
|
crypto ipsec transform-set CROCLAB-TS esp-aes 256 mode transport |
crypto ipsec proposal CROCLAB_IPP esp aes256 mode transport lifetime seconds 3600 lifetime kbytes 4608000 |
crypto ipsec profile CROCLAB_IPSP set transform-set CROCLAB-TS set isakmp-profile CROCLAB_IP tunnel protection ipsec profile CROCLAB_IPSP |
crypto profile CROCLAB_CPP set authentication preshared set ike proposal CROCLAB_IKP set ipsec proposal CROCLAB_IPP |
interface Tunnel3860 bandwidth 5000 ip address 10.0.0.1 255.255.0.0 no ip redirects ip mtu 1410 ip nhrp authentication ### KEY ### ip nhrp network-id 64 ip tcp adjust-mss 1360 tunnel source GigabitEthernet0/1 tunnel mode gre multipoint tunnel key 6464 tunnel vrf UNDERLAY tunnel protection ipsec profile CROCLAB_IPSP |
interface tunnel402 ip address 10.0.0.200 255.255.0.0 mtu 1410 ip tcp adjust-mss 1360 tunnel mode dvpn mgre tunnel source gigabitethernet0/1 tunnel key 6464 tunnel encapsulation-vrf UNDERLAY dvpn nhrp-entry 10.0.0.1 192.168.255.4 register crypto-profile CROCLAB_CPP dvpn authentication key ### KEY ### dvpn area-id 0.0.0.64 dvpn client spoke |
Из тонкостей: здесь нужно обязательно проверять сочетания параметров защиты — алгоритмов шифрования, хэширования и групп Диффи-Хеллмана, которые поддерживаются с обеих сторон. Кроме этого, в IPSec Proposal на Maipu потребовалось подкрутить значения lifetime так, чтобы они совпали с теми, что установлены по умолчанию в Cisco.
Этап 2. Maipu в роли DMVPN-Hub, Cisco в роли DMVPN-Spoke
Здесь, ожидаемо, всё тоже заработало.
Cisco |
Maipu |
ip vrf UNDERLAY rd 2:2 |
ip vrf UNDERLAY rd 2:2 |
interface GigabitEthernet0/1 description -= WAN =- ip vrf forwarding UNDERLAY ip address 192.168.255.4 255.255.255.0 |
interface gigabitethernet0/1 no switchport description -= WAN =- ip vrf forwarding UNDERLAY ip address 192.168.255.3 255.255.255.0 |
crypto isakmp policy 100 encr aes 256 authentication pre-share group 16 |
crypto ike proposal CROCLAB_IKP encryption aes256 group group16
|
crypto keyring vpn1 vrf UNDERLAY pre-shared-key address 192.168.255.3 key ### KEY ### |
crypto ike key ### KEY ### address 0.0.0.0 |
crypto isakmp profile CROCLAB_IP vrf UNDERLAY keyring vpn1 self-identity address match identity address 0.0.0.0 UNDERLAY local-address GigabitEthernet0/1 |
|
crypto ipsec transform-set CROCLAB-TS esp-aes 256 mode transport |
crypto ipsec proposal CROCLAB_IPP esp aes256 mode transport lifetime seconds 3600 lifetime kbytes 4608000 |
crypto ipsec profile CROCLAB_IPSP set transform-set CROCLAB-TS set isakmp-profile CROCLAB_IP tunnel protection ipsec profile CROCLAB_IPSP |
crypto profile CROCLAB_CPP set authentication preshared set ike proposal CROCLAB_IKP set ipsec proposal CROCLAB_IPP |
interface Tunnel3860 bandwidth 5000 ip address 10.0.0.1 255.255.0.0 no ip redirects ip mtu 1410 ip nhrp authentication ### KEY ### ip nhrp map 10.0.0.200 192.168.255.3 ip nhrp nhs 10.0.0.200 ip nhrp network-id 64 ip tcp adjust-mss 1360 tunnel source GigabitEthernet0/1 tunnel mode gre multipoint tunnel key 6464 tunnel vrf UNDERLAY tunnel protection ipsec profile CROCLAB_IPSP |
interface tunnel402 ip address 10.0.0.200 255.255.0.0 mtu 1410 ip tcp adjust-mss 1360 tunnel mode dvpn mgre tunnel source gigabitethernet0/1 tunnel key 6464 tunnel encapsulation-vrf UNDERLAY crypto-profile CROCLAB_CPP dvpn authentication key ### KEY ### dvpn area-id 0.0.0.64 dvpn client hub |
Единственная проблема встретилась нам уже после, при настройке динамической маршрутизации. Оказалось, что маршрутизатор Maipu не поддерживает BGP Dynamic Neighbors. Когда Hub-маршрутизатор с включённым BGP принимает запросы от определённой подсети и устанавливает соединения с любыми маршрутизаторами из неё без наличия статически настроенного neighbor. На Cisco это выглядит вот так:
router bgp 65500
bgp router-id 10.0.0.1
bgp log-neighbor-changes
bgp listen range 10.0.0.0/16 peer-group SPOKE
neighbor SPOKE peer-group
neighbor SPOKE remote-as 65500
!
address-family ipv4
neighbor SPOKE activate
neighbor SPOKE default-originate
exit-address-family
R&D Maipu обещал оперативно реализовать данный функционал при наличии потребности у конкретного заказчика. А такая потребность обязательно появится.
Этап 3. Переход на сертификаты
Перевести DMVPN на сертификаты также удалось достаточно быстро.
Cisco |
Maipu |
ip domain name croc.lab ! crypto ca identity RootCA ca type other subject-name CN=Spoke-MP1800X.croc.lab key-type rsa key-size 2048 ! crypto profile CROCLAB_CPP set ike proposal CROCLAB_IKP set ipsec proposal CROCLAB_IPP |
ip domain name croc.lab ! crypto pki trustpoint RootCA enrollment terminal usage ike serial-number none fqdn HUB1-C2911.croc.lab ip-address none subject-name CN=HUB1-C2911.croc.lab subject-alt-name HUB1-C2911.croc.lab revocation-check none ! crypto isakmp profile LABVPN-IP ca trust-point RootCA match certificate certmap ! crypto pki certificate map certmap 1 issuer-name co croc.lab |
Выводы
Инженер, который хочет строить надёжные и корректно работающие сети должен быть пессимистом. Инженеру-оптимисту будет лень проверять все нюансы настройки QoS, тонкости работы динамической маршрутизации и прочее. Всё это вылезет потом, при внедрении. Поэтому, будучи умеренным пессимистом, делать из проведённых нами тестов выводы о том, что маршрутизаторы Maipu можно покупать и устанавливать сотнями в DMVPN-сети Cisco, я бы не стал. Заключение, которое на мой взгляд по итогам наших тестов, можно сделать смело, звучит так: в текущих условиях маршрутизаторы Maipu — это то оборудование, которое вероятнее любого другого из доступных заработает корректно в DMVPN от Cisco. Перед закупкой и запуском в продуктив, его стоит тестировать применительно к вашей конкретной сети. Сделать это можно двумя способами. Первый: взять реальную конфигурацию работающего на данный момент маршрутизатора Cisco и на лабораторном стенде и подстроить под неё конфигурацию Maipu. Так мы получим подтверждение работоспособности связки устройств и готовый к внедрению шаблон конфига. Второй: поставить маршрутизатор Maipu в реальную сеть, настроить и посмотреть, как это будет работать не только с реальным конфигом, но и под реальной нагрузкой.
С такими тестами, мы как раз можем помочь.
Тоже самое, кстати, касается и работы в DSVPN-сети Huawei. DSVPN совместим с DMVPN от Cisco и такая конфигурация уже неплохо задокументирована. А раз работают связки Huawei-Cisco и Cisco-Maipu, то и Huawei-Maipu есть смысл пробовать. Чем мы в ближайшее время и займёмся.
Другое интересное направление — работа BGP/EVPN/VXLAN-фабрики Maipu. Об этом расскажем в ближайших материалах.