В интернет пространството все още има удивително малко материали за такава стара и проста, но удобна, безопасна и особено актуална технология в контекста на развитието на Интернет на нещата, каквато е мобилният VPN (виртуална частна мрежа). В тази статия ще опиша как и защо може да настроите достъп до вашата частна мрежа за всяко устройство с SIM карта без необходимост от настройка на специализиран софтуер.

Задачи и ограничения
За начало, ще отговоря на въпроса "защо?". 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, но общият смисъл остава същият.
Обикновено, всяко устройство с SIM карта, регистрирано в пакетна мрежа (преминало процедурата GPRS attach или аналогична), преди да започне да предава данни никъде, трябва да инициира създаването на сесия за предаване на данни (PDP контекст) на маршрутизатора на ядрото на пакетната мрежа, GGSN. Подробности и предназначение на тези процеси са изключително добре описани тук . Важно за нас: при иницииране на сесия в запитването до GGSN се посочват, наред с други, параметри, с които много хора са се срещали в телефоните си или даже са имали работа при настройката на usb модеми. Това са три полета: APN, потребителско име и парола. APN (точка за достъп) е много важна същност в логиката на работа на GGSN: в зависимост от това с коя APN е иницирана сесията, GGSN действа по различен начин. В резултат на успешната обработка на запитването от потребителя, GGSN трябва да активира при себе си сесия за предаване на данни и да съобщи на устройството параметрите ѝ, в частност, издадения на устройството IP адрес и адресите на DNS. Тук има редица много важни особености:
- В запитването за иницииране на сесия, устройството никога не запитва, какъв IP адрес иска да получи;
- Освен зададените в настройките на устройството полета „APN“, „потребителско име“ и „парола“, в запитването до GGSN се предава също телефонният номер (MSISDN) на абоната (тук и по-нататък „абонат“ — това е крайният потребител, едно устройство с SIM карта, а „клиент“ — организацията поръчител на услугата, в чийто състав влизат абонати);
- При активиране на сесия GGSN създава в своята таблица за маршрутизация запис за новия IP адрес. Всички абонати на GGSN са обозначени с записи в таблицата за маршрутизация с префикс /32, т.е. 1 абонат — 1 запис в таблицата. GGSN е много производителен маршрутизатор;
- Мрежата на оператора може на различни етапи (и на SGSN, и на GGSN) по различни причини да променя полето APN в запитването за иницииране на сесия. Това позволява в някои случаи да се намалят, а в някои напълно да се изключат настройките на параметрите на мрежата на устройствата с SIM карти.
По първите три пункта веднага възниква въпросът: какъв IP адрес се издава на абоната?
Това се определя от настройките на APN, от която е постъпило заявлението за активиране на сесия. Около 99% от потребителите на данни в мобилни мрежи използват обикновен достъп до Интернет. Това са известните точки за достъп internet.mts.ru, internet.beeline.ru и т.н. При достъпа до Интернет GGSN предоставя адреси по принципа на класическия DHCP от зададените настройки за сиви подсети. При изход в публичната мрежа те се затварят с класически NAT (или по-точно, с версията му, която е PAT).
Но GGSN е способен на повече. За избор на IP адрес той може да направи AAA заявка към сървъра за авторизация (например Radius). Тази логика се конфигурира за отделни APN в зависимост от тяхното предназначение. Най-простият случай — услуга за предоставяне на постоянен публичен IP адрес. Тези адреси обикновено се закрепват за абонатите в биллинг системата (BSS) на оператора и в зависимост от ИТ архитектурата, попадат в съответната база данни, с която GGSN прави заявката. Поради това, че му е известен MSISDN (номер на телефон) на абоната, който ще бъде включен в заявката, такава база данни ще бъде доста проста и може да съдържа само свързването на номера и адреса. Допълнително, в случай че клиентът планира да използва една SIM карта за свързване на няколко устройства (ако SIM картата се намира в WiFi рутера на отдалечен офис, например), тази таблица може да съдържа и така наречения „framed route“ — префикс на мрежата, който се намира „зад“ SIM картата, който ще бъде обявен на всички устройства в мрежата чрез протоколите за динамично маршрутизиране.
Не само GGSN
Освен издаването на адреси, е необходимо да се достави трафикът на абонатите до клиентските мрежи, всеки до своята. Тук всичко работи по-скоро традиционно. На GGSN трафикът, специално проектиран за работа с VPN APN, се маршрутизира към отделен маршрутизатор на мрежата на оператора (може да бъде наречен по различен начин, понякога - VPN рутер), който от своя страна изпълнява функцията на класическия PE в схемата L3VPN. Той добавя необходимите тагове, заглавия и всичкото това и изпраща целия поток трафик през маршрутизаторите на транспортната мрежа в предварително конфигурирани ставки или тунели до клиентската мрежа. Тази част е значително по-традиционна и многократно описвана на други места, затова няма да акцентирам върху нея в този материал.
С оглед на всички тези детайли, начините за организиране на мобилен VPN могат да бъдат няколко, и ще се различават помежду си по комбинацията от следните характеристики:
- IP адресите, както вече беше споменато, могат да се издават динамично (различен адрес всеки път от зададения подсет) и статично (един и същи адрес всеки път за конкретен абонат), което се определя и/или от настройки на APN, и/или от настройки на Radius-сервера;
- IP адресите могат да се издават от Radius-сервер, управляван от оператора или от клиента;
- Устройствата, свързани към мобилния VPN, могат да взаимодействат или само помежду си, или да имат достъп до обикновената L3VPN мрежа на клиента чрез директен интерфейс (VPN порт) с оператора или чрез тунелиране над интернет мрежата;
- В някои случаи използването на потребителско име и парола за успешно активиране на сесията може да бъде задължително, а понякога дори не е нужно да се попълни полето "APN".
Такива комбинации с различни типове тунелиране, баланс на трафика между каналите за достъп до "основния" VPN на клиента и принципа на издаване на адреси са десетки. За повечето случаи общата схема изглежда по следния начин:

В резултат на сравнително бързия процес на регистрация в мрежата и получаването на IP адрес, устройството получава достъп до мрежата на клиента, а мрежата на клиента получава достъп до устройството. При това абонатът е изолиран от всички други абонати на оператора, които нямат отношение към конкретния клиент, не са необходими допълнителни настройки и целият трафик безалтернативно се насочва към мрежата на клиента, където се обработва в съответствие с вътрешните политики на клиента.
Източник: habr.com
