Русский
Русский
English
Статистика
Реклама

Еще немного про использование VPN в Билайн

Привет! В этой статье я расскажу о ещё двух вариантах VPN, используемых нами для включения клиентов с помощью Мультисим Резервирования, это L2TP иL2-VPN. Первый используется для включения сервисов Интернет, второй для включения каналов L2 MPLS.

Самый первый L2TP

Исторически этот вариант был самым первым внедренным вариантом для предоставления сервиса Интернет клиентам, именно на нем мы обкатывали все бизнес-процессы включений, набивали первые шишки со сложностью настройки СРЕ, процессами активации Sim-карт и прописывания их в выделенные APN, выбирали наиболее оптимальные варианты настроек и конфигураций СРЕ и РЕ оборудования, суммарно за первые полгода мы подготовили восемь различных версий конфигураций оборудования. Такой итеративный подход позволил найти баланс между потребностями клиентов и нашими возможностями, мы посмотрели, что и как стоит настраивать, как выстроить процессы, а за что лучше не браться вообще.

Архитектурно схема выглядит так:

Описание:

В роутер устанавливаются две Sim-карты, прописываются APN и настраивается радио-интерфейс, плюс настраивается WAN-интерфейс для входящего проводного канала, если он есть. Sim-карты прописываются в типовые APN, все APN разных операторов связи объединены в один VRF и получают стандартизированные приватные IP-адреса из своих APN.

На нашем RADIUS-сервере при подключении создается сессионный аккаунт для клиента, информация о этом аккаунте будет использована BRAS при построении сессии. Роутер начинает строить L2TP-сессию либо через проводной WAN-интерфейс (интернет-канал), либо через радиоинтерфейс, в зависимости от типа работы (Fix+LTE/3G или "чистый" LTE/3G), сессия терминируется на BRAS с типовыми настройками прописанными на RADIUS сервере.

Также на RADIUS-сервере возможна настройка Framed Route с публичной интернет подсетью, которая настраивается на LAN-интерфейсе роутера и транслируется клиенту. Таким образом, каждый клиент имеет один статический IP-адрес на туннеле с приватной адресацией и NAT на трех LAN-интерфейсах, и дополнительно прописанную публичную подсеть (обычно это /31 или /30 подсеть) на одном LAN-интерфейсе.

Так как туннель может строиться через кабельное подключение (интернет-канал) или Sim-карты, а подсеть маршрутизируется за туннель, клиент получает статичные настройки вне зависимости от используемой транспортной сети.

При пропадании кабельного канала роутер за 10-20 секунд перекидывает трафик на радиоинтерфейс и первую Sim-карту, а в случае проблем и с ней производит смену рабочей Sim-карты на резервную, обычно эта смена занимает 60-90 секунд.

За выбор маршрута трафика между кабелем и радиосетью отвечает встроенный инструмент NQA (Network Quality Analysis) и значения preference route:

#nqa test-instance admin inet test-type icmp destination-address ipv4 4.2.2.2 frequency 20 source-interface GigabitEthernet0/0/4 start now##ip route-static 0.0.0.0 0.0.0.0 Virtual-Template1 preference 40ip route-static 4.2.2.2 255.255.255.255 GigabitEthernet0/0/4 dhcpip route-static 85.21.4.234 255.255.255.255 GigabitEthernet0/0/4 dhcp track nqa admin inetip route-static 85.21.4.235 255.255.255.255 GigabitEthernet0/0/4 dhcp track nqa admin inetip route-static 100.64.0.0 255.255.254.0 Cellular0/0/0 preference 70ip route-static 100.64.0.0 255.255.254.0 NULL0 track nqa admin inet#

А за выбор активных Sim-карт отвечает скрипт автопереключения, написанный на Python.

Схема также имеет свои ограничения: cкорость доступа ограничена 30-50 Мбит/с, а MTU=1450.

Дальнейшее направление развития - это реализация этой же схемы с резервированием проводных каналов, но уже с использованием BGP, для анонса LAN-сети либо через кабель, либо через туннель, это позволит использовать роутер в виде резерва на широкополосных каналах в 100-200 Мбит/с и разделением маршрутов трафика по кабелю и по туннелю. Естественно, это будет работать только на проводных каналах от Билайн, для работы через других провайдеров мы отправляем весь трафик через L2TP-туннель.

Самый трудный L2 MPLS

Этот вариант получился самым последним в наших решениях на сегодняшний день, и был самым тяжелым с точки зрения реализации. Используемый протокол для этого типа подключений на Huawei AR129 SVPN L2TPv2, на ответной части стоит Cisco ASR1001-X, которая является ответной частью туннеля и выводит трафик в MEN сеть.

Архитектурно сеть выглядит так:

Настройка такого режима на роутере Huawei AR129 выглядит так:

#interface Tunnel0/0/0tunnel-protocol svpnencapsulation l2tpv3l2tpv3 local session-id 3l2tpv3 remote session-id 4tunnel-source 100.64.16.63tunnel-destination 100.64.0.43#

Самый трудный для нашей реализации ввиду особенностей работы протокола, сессия для L2 MPLS инициируется с IP-адреса Sim-карты, которая активна в конкретный момент для этого туннеля, и к IP-адресу привязываются значения и на CPE и на ответном узловом PE, а в случае проблем с работающей LTE/3G сетью происходит смена IP на Sim-карте.

У нас были следующие варианты выхода из этой ситуации:

  • Использовать GRE-туннель, и уже через этот туннель пускать туннель с L2 MPLS.

  • Назначать одинаковые IP-адреса на Sim-карты при настройке.

  • Сделать так, чтобы конфигурация туннелей менялась в роутере в зависимости от Sim-карты.

Первые два варианта хоть и выглядели оптимальными с точки зрения архитектуры сети (отдельный туннель отдельная пара портов на MEN-сети), но с точки зрения синхронизации процессов и технической поддержки это гораздо большая проблема.

Соответственно, пришлось реализовывать реконфигурацию роутера "на лету. Если учесть, что используемый нами Python-скрипт для автоматического переключения Sim-карт и так уже выполнял большую часть логики, нам осталось его немного дополнить парой функций:

При смене Sim-карт нужно было вызвать процесс изменения в параметрах настройки туннеля remote session-id и tunnel-source, и при обратной смене Sim-карт вернуть эти значения:

def l2_sim2(o, cli):log_syslog(o, ops.CRITICAL, "New parameters applied: " + l2_lses2 + " " + l2_rses2 + " " + l2_vcid2 + " " + l2_src2 + " " + l2_dst2)output, n1, n2 = o.cli.execute(cli, "system-view")  output, n1, n2 = o.cli.execute(cli, "interface Vlanif1")output, n1, n2 = o.cli.execute(cli, "undo link-bridge Tunnel0/0/0")output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "quit")result = o.timedelay(seconds=60, milliseconds=0)output, n1, n2 = o.cli.execute(cli, "system-view")  output, n1, n2 = o.cli.execute(cli, "interface Tunnel0/0/0")output, n1, n2 = o.cli.execute(cli, "tunnel-protocol svpn")output, n1, n2 = o.cli.execute(cli, "encapsulation l2tpv3")output, n1, n2 = o.cli.execute(cli, "interface Tunnel0/0/0")output, n1, n2 = o.cli.execute(cli, "l2tpv3 local session-id " + str(l2_lses2))output, n1, n2 = o.cli.execute(cli, "l2tpv3 remote session-id " + str(l2_rses2))output, n1, n2 = o.cli.execute(cli, "tunnel-source " + str(l2_src2))output, n1, n2 = o.cli.execute(cli, "tunnel-destination " + str(l2_dst2))output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "system-view")  output, n1, n2 = o.cli.execute(cli, "interface Vlanif1")output, n1, n2 = o.cli.execute(cli, "link-bridge Tunnel0/0/0 vc-id " + str(l2_vcid2) + " tagged")output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "save", {"continue": "Y"})def l2_sim1(o, cli):log_syslog(o, ops.CRITICAL, "New parameters applied: " + l2_lses1 + " " + l2_rses1 + " " + l2_vcid1 + " " + l2_src1 + " " + l2_dst1)  output, n1, n2 = o.cli.execute(cli, "system-view")  output, n1, n2 = o.cli.execute(cli, "interface Vlanif1")  output, n1, n2 = o.cli.execute(cli, "undo link-bridge Tunnel0/0/0")  output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "quit")result = o.timedelay(seconds=60, milliseconds=0)  output, n1, n2 = o.cli.execute(cli, "system-view")output, n1, n2 = o.cli.execute(cli, "interface Tunnel0/0/0")output, n1, n2 = o.cli.execute(cli, "tunnel-protocol svpn")output, n1, n2 = o.cli.execute(cli, "encapsulation l2tpv3")output, n1, n2 = o.cli.execute(cli, "l2tpv3 local session-id " + str(l2_lses1))output, n1, n2 = o.cli.execute(cli, "l2tpv3 remote session-id " + str(l2_rses1))output, n1, n2 = o.cli.execute(cli, "tunnel-source " + str(l2_src1))output, n1, n2 = o.cli.execute(cli, "tunnel-destination " + str(l2_dst1))output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "system-view")  output, n1, n2 = o.cli.execute(cli, "interface Vlanif1")output, n1, n2 = o.cli.execute(cli, "link-bridge Tunnel0/0/0 vc-id " + str(l2_vcid1) + " tagged")output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "quit")output, n1, n2 = o.cli.execute(cli, "save", {"continue": "Y"})

Какие плюсы у этой схемы работы в режиме L2 MPLS:

  • Роутер работает только прозрачным Ethernet до нашего РЕ, схему можно применять еще и как для Интернет, так и для IP VPN-включений.

  • MTU стал побольше, чем у варианта с IPSec.

  • Можно проводить легкую бесшовную подмену кабельных каналов при авариях.

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

В следующих статьях расскажем про USB Deployment инструмент по простой настройке роутеров, Python-скрипт, который используем для переключения Sim-карт, и интеграцию нашего Мультисим-решения с Облачной АТС (в роутере есть встроенный SIP-клиент и два FXS порта, мы просто не могли не попробовать их использовать).

В одном из комментариев спрашивали про скорости роутера по IPSec.

По результатам наших тестов скорость составляет больше 50 Мбит/с (IPSec в режиме IKEv2, iperf3 - server), то же самое к режиму работы с L2TP-туннелем. Скорости поднимали и выше, но мы и не планировали предлагать клиентам больше 50Мбит/с по нашему решению, т.к. во-первых упираемся в "гигиенический" предел по LTE, во-вторых роутеры планировали использовать вместе с настройкой доп. сервисов типа SIP PBX (расскажем в следующей статье), и в-третьих, на смену Huawei AR129 у нас приходит Huawei AR617, который более производителен, что нам ещё предстоит испытать.

Источник: habr.com
К списку статей
Опубликовано: 17.03.2021 16:04:48
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании билайн бизнес

Информационная безопасность

Сетевые технологии

Сетевое оборудование

Сотовая связь

Vpn

L2tp

L2

Интернет

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru