VPN для мобильных устройств на уровне сети

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


    Задачи и ограничения


    Для начала отвечу на вопрос «зачем?». VPN как технология используется для решения самых разных сетевых задач, объединенных общим признаком — изолированной передачей данных между двумя устройствами сквозь большое количество промежуточных узлов. На базе этого уже строятся более сложные решения и решаются те самые разные задачи. В обычном, привычном всем случае для построения VPN используется сеть оператора фиксированной связи (желающим в детали есть прекрасный материал) или множество разных сетевых протоколов (GRE, IPSec, L2TP и другие — тот же автор об этом) и работающих с ними программных продуктов (Cisco AnyConnect, OpenVPN, TOR — ну вы и сами знаете), но их использование на конкретном оконечном устройстве сразу же выдвигает к нему ряд требований, невыполнение которых ведет к определенным ограничениям.

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

    Другое важное ограничение — необходимость настройки. Оно работает как для «глупых» устройств из первого пункта, так и для классических смартфонов и компьютеров, которым предыдущее ограничение неведомо. И если с первыми все относительно просто и упирается в количество времени, затраченное на настройку, то со вторыми есть варианты. Зачастую организации используют VPN в целях безопасности, чтобы уберечь служебное оконечное устройство от выхода в публичную сеть без должной корпоративной защиты или от передачи служебных данных по публичным каналам. Конечные же пользователи могут по каким-то своим причинам отключить или забыть включить VPN, в результате чего многие системы безопасности компании могут оказаться «за бортом».

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

    И как приятный бонус, устройство будет получать адрес из внутренней сети, настраиваемый удаленно, и доступ к нему будет возможно получить только изнутри этой сети (либо физически). Для определенного класса устройств это очень важно.

    Как это работает


    PS Core


    Казалось бы, VPN — классическая услуга всех операторов связи для В2В сегмента, и зачем в таком случае заострять на этом внимание? Все дело в том, как устроена сеть передачи данных для устройств, подключаемых через GPRS, HSPA, LTE или другую технологию мобильной связи. Здесь нет привычных всем сетевым администраторам vlan, нет свичей, нет даже маршрутизаторов в привычном их значении. Зато есть сеть радиодоступа (RAN) и пакетное ядро (PS Core).


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

    В общем случае, каждое устройство с сим-картой, зарегистрированное в пакетной сети (прошедшее процедуру GPRS attach или аналогичную), перед тем как начать передавать данные куда-либо должно инициировать создание сессии передачи данных (PDP context) на маршрутизаторе ядра пакетной сети, GGSN. Детали и назначение этих процессов очень здорово описаны вот в этой статье. Что важно для нас: при инициации сессии в запросе к GGSN в числе прочих значатся параметры, которые многие видели в своих телефонах или даже имели дело с ними при настройке, например, usb-модемов. Это три поля: APN, логин и пароль. APN (точка доступа) — очень важная сущность в логике работы GGSN: в зависимости от того, с какой APN инициирована сессия, GGSN действует по-разному. В результате успешной обработки запроса пользователя GGSN должен активировать у себя сессию передачи данных и сообщить устройству ее параметры, в частности, выданный устройству IP адрес и адреса DNS. Здесь есть ряд важных очень важных особенностей:

    • В запросе на инициацию сессии устройство никогда не запрашивает, какой IP адрес оно хотело бы получить;
    • Помимо задаваемых в настройках устройства полей «APN», «логин» и «пароль», в запросе к GGSN передается также номер телефона (MSISDN) абонента (здесь и далее «абонент» — это конечный пользователь, одно устройство с сим-картой, а «клиент» — организация-заказчик сервиса, в состав которой входят абоненты);
    • При активации сессии GGSN создает в своей таблице маршрутизации запись о новом IP адресе. Все абоненты на GGSN обозначаются записями в таблице маршрутизации с префиксом /32, т.е. 1 абонент — 1 запись в таблице. GGSN — это очень производительный маршрутизатор;
    • Сеть оператора может на разных этапах (и на SGSN, и на GGSN) по разным причинам менять поле APN в запросе на инициацию сессии. Это позволяет в некоторых случаях уменьшить, а в некоторых вообще исключить настройку параметров сети на устройствах с сим-картой.

    По первым трем пунктам сразу возникает вопрос: что за IP адрес выдаётся абоненту?
    Это определяется настройками той APN, с которой пришёл запрос на активацию сессии. Порядка 99% пользователей передачи данных в мобильных сетях используют обычный доступ в Интернет. Это известные всем точки доступа internet.mts.ru, internet.beeline.ru и так далее. В случае с доступом в Интернет GGSN выдаёт адреса по принципу классического DHCP из прописанных в настройках серых подсетей. При выходе в публичную сеть они закрываются классическим же NAT’ом (а точнее той его версией, которая PAT).

    Но GGSN способен на большее. Для выбора IP адреса он может cделать ААА запрос к серверу авторизаций (Radius, например). Такая логика настраивается для отдельных APN в зависимости от их назначения. Самый простой случай — услуга по предоставлению постоянного публичного IP адреса. Такие адреса, как правило, закрепляются за абонентами в биллинге (BSS) оператора, и в зависимости от ИТ архитектуры попадают в ту или иную базу данных, к которой и обращается с запросом GGSN. Благодаря тому, что ему известен MSISDN (номер телефона) абонента, который и будет содержаться в запросе, такая БД будет довольно простой и может содержать лишь связку номера и адреса. Дополнительно, в случае, если клиент планирует использовать одну сим-карту для подключения нескольких устройств (если сим-карта находится в WiFi-роутере удаленного офиса, например), эта таблица может содержать также так называемый «framed route» — префикс сети, находящейся «за» сим-картой, который будет анонсирован всем устройствам в сети по протоколам динамической маршрутизации.

    Не GGSN'ом единым


    Помимо выдачи адресов требуется еще доставить трафик абонентов до клиентских сетей, каждого до своей. Здесь все работает уже куда более традиционно. На GGSN трафик специализированных под работу с VPN APN маршрутизируется на отдельный маршрутизатор сети оператора (он может называться по-разному, иногда — VPN роутер), который в свою очередь выполняет функцию классического РЕ в схеме L3VPN. Он добавляет необходимые метки, заголовки и вот это вот всё и отправляет весь этот поток трафика через маршрутизаторы транспортной сети в предварительно настроенные стыки или туннели до сети клиента. Эта часть уже гораздо более традиционна и много раз описана в других местах, поэтому заострять на ней внимания в этом материале я не буду.

    С учетом всех этих деталей, способов организации мобильного VPN может быть несколько, и они будут отличаться друг от друга комбинацией следующих особенностей:

    • IP адреса, как уже было описано, могут выдаваться динамически (каждый раз разный адрес из заданной подсети) и статически (каждый раз один и тот же адрес у конкретного абонента), что определяется и/или настройками APN, и/или настройками Radius-сервера;
    • IP адреса могут выдаваться Radius-сервером под управлением оператора или под управлением клиента;
    • Устройства, подключенные к мобильному VPN, могут взаимодействовать либо только друг с другом, либо иметь доступ к обычной L3VPN сети клиента через прямой стык (VPN порт) с оператором или через туннелирование поверх сети Интернет;
    • В некоторых случаях использование логина и пароля для успешной активации сессии может быть обязательно, а иногда не требуется даже заполнять поле «APN».

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



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

    Комментарии 18

      0
      Вопрос автору: можете ли Вы описать пример, как это настроить и протестировать в домашних/офисных условиях (например хауту настройки подключения моб. устройства к гипотетической офисной сети)?
      Ну или хотя бы:
      — Какой тип сервера нужен и как его сконфигурировать?
      — Как настроить конечное устройство (хотя бы смартфон)?
        +1

        Надеюсь, правильно понял вопрос. Я не автор, но могу рассказать, как это работает с точки зрения пользователя. По сути, клиенту настраивать ничего вообще не надо (кроме L2 до оператора из своей сети). Это чистой воды услуга оператора, преимущественно для корпоративных клиентов.


        Если клиенту нужна изолированная мобильная сеть, то оператор заводит ему что-то типа “VLAN”, в который селит специальную пачку номеров/SIM-карт клиента, которые ему выдаются. Так, все устройства, которые зарегистрируются в сети с этими SIM-картами, попадут в изолированный L2 сегмент. А дальше, клиент «пригоняет» оператору стык со своей сетью: либо тёмной оптикой, либо через IPSec, либо через MPLS, чем увязывает мобильный сегмент сети со своей сетью, маршрутизатором и прочим. Соответственно, мобильный сегмент имеет доступ в интернет только через маршрутизатор клиента, а не оператора, естественно, в соответствии с политиками доступа клиента.


        Это не VPN в понимании широкого слоя населения, это операторская услуга изолированной сети на своих мощностях (MPLS, L3VPN).

          0
          Да, все верно. Собрать тестовый стенд без оператора не получится. Единственный способ пропилотировать эту схему — получить у оператора несколько сим-карт (как минимум две), и заказать у него эту схему. В самом примитивном варианте (для нужд тестирования) можно просто сделать «закрытую группу» для этих двух сим-карт и убедиться, что по серым IP между ними есть связность, а никакие другие адреса им недоступны. Дальше уже возможны варианты, зависит от того, во что именно Вы целитесь.
          По поводу настроек оконечных устройств все совсем просто. Примеры для айфона и модема на картинках, но, как я упоминал, есть схемы, где и их не нужно делать.
          image
          image
        +3
        Это всё прекрасно, только нет практической части — как получить эту услугу у оператора.
        Я сомневаюсь, что из-за нескольких десятков симкарт оператор будет гореть желанием её предоставить, или откажут или тариф окажется заградительным, чтобы клиент сам не захотел.
          0
          К оператору, в первую очередь, должно обратиться юрлицо, то есть Вы должны быть как минимум ИП или представлять некую организацию. Услуга, действительно, подразумевает в той или иной степени индивидуальную настройку, поэтому сложно предсказать, как отнесется оператор к такому запросу в случае малых масштабов, но вообще на этот сервис есть публичные цены на операторских сайтах, поэтому не думаю, что могут быть серьезные сложности. Ну и переговоры можно вести по-разному.
          0
          Я более чем уверен, что подобные услуги не будут востребованы массово, поэтому оператор не будет их предоставлять.
            +1
            Операторы предоставляют их в В2В сегменте уже более десятка лет, еще с «до3G» времен
              +1
              Банки например заказывают сим карты для АТМ/ПОС чтобы приземлить подключения у себя в ЦОД или в ЦОД процессинг-центра.
                0
                А в чем выгода? Банки по умолчанию не доверяют сетям операторов, поэтому будут в любом случае шифровать канал. Шифровать его на серых IP адресах или на публичных — велика ли разница?
                  0
                  Публичная статика дороже. Когда речь идет о десятках, а то и сотнях тех же банкоматов, никаких белых адресов не напасешься. Да и кто же будет банкомат белым адресом в сеть выставлять?
                    0
                    Есть классическая схема:
                    серый адрес -> l2tp туннель до сервера -> шифрование канала.

                    L3VPN хорош возможностью настроить QoS. В статье про это не слова.
                      0

                      Схема с туннелированием с самого устройства описана в ограничениях в самом начале: она выдвигает ряд требований к устройству, которые не во всех случаях оправданно выполнять. В случае с банкоматом это может иметь смысл, т.к. они как правило не испытывают проблем с электропитанием и у них нет ограничений по размерам. А вот уже с мобильными терминалами оплаты ситуация может отличаться. Ещё есть примеры со счетчиками, датчиками и прочим другим.


                      Работа с QoS возможна для классического L3VPN, то есть в данном случае только на участке фиксированной сети. На мобильной части сети оператора QoS в классическом его понимании работать не будет, максимум ваши метки оставят нетронутыми.

              +1
              Мы успешно используем данную технологию от Мегафон уже около 5 лет. Единственный минус использования такого типа подключения — безграничный доступ для данных узлов сети в корпоративную сеть. Утеря (или кража) данной сим-карты влечёт серьёзные проблемы с информационной безопасностью в целом. В дополнение к данной технологии рекомендуется применять привязку IMEI устройства к конкретному абонентскому номеру сим-карты.
                0
                Рад слышать, что опыт успешен!
                У темы с IMEI есть несколько вариаций: есть более дубовый, когда симка запоминает первый определившийся IMEI, который из ее памяти ничем не вышибить, а есть более гибкие настройки через CMP (у Мегафон это «М2М Мониторинг»), когда можно отправить уведомление администратору, определить местоположение, заблокировать часть сервисов и т.д.
                А если нужно ещё больше секьюрности, можно авторизовать каждую сим-карту по индивидуальным логинам и паролям. Ещё и на клиентском Радиусе.
                  0
                  Мы тоже достаточно давно работаем с подобной технологией. Доступ от СИМ в сети оператора к корпоративной сети осуществляется через классический VPN (Site-to-site IpSec) — на принимающем роутере Вы вправе настроить любые правила, которые будут отвечать безопасности. Хотя, мы используем подобную сеть наоборот — для доступа из корп. сети к технологическому оборудованию за пределами офиса. Но у нас возникает другая проблема — зачастую сотовые операторы не предоставляют безлимитный трафик для этих сетей, а цена за 1 Мб в РАЗЫ выше чем по направлению к APN «internet».
                    0

                    Что интересно, несмотря на все разнообразие возможностей по настройке правил пропуска трафика на стороне Вашего роутера, большая часть клиентов такого сервиса, как показывает практика, предпочла бы передать эту задачу оператору.
                    А на счёт тарификации есть варианты. Как правило, операторы продают трафик пакетами на сим-карту, причём плата за одну симку не может быть меньше определённого значения, обусловленного затратами. Для оператора дороже именно количество абонентов, а не объём трафика. Поэтому, если пакет маленький, то стоимость мегабайта в нем больше. В помегабайтной тарификации аналогичный расчёт. Бывают разные ухищрения вроде общего пакета на все симки или выбора тарифа уже по факту потребления, но это все может сэкономить максимум 30-40% от счёта при условии, что у Вас не какой-то совсем нерыночный тариф.

                  +1
                  Кстати, да. Автор забыл упомянуть самое главное преимущество подобной VPN. Если сим-карты ставятся в технологическое оборудование (удаленные роутеры, модемы с подключенными к ним устройствами с которыми нужно осуществлять обмен данными) — больше не нужно пробрасывать порты внутрь сети, городить tcp-редиректы или заказывать услугу «белый статический ip» — теперь все устройства доступны из корп. сети с «серыми» статическими адресами — полная прозрачность сети. Причем, трафик в публичной сети защищен.
                    0

                    Я предполагал, что такую возможность я отразил, но, наверное, получилось не слишком явно. Спасибо за уточнение, это действительно очень важное преимущество.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое