Det finns fortfarande förvånansvärt lite material i det ryska nätet om en så gammal och enkel men praktisk och säker teknik, särskilt relevant med utvecklingen av Internet of Things, som mobil VPN (virtuellt privat nätverk). I denna artikel kommer jag att beskriva hur och varför du kan ställa in tillgång till ditt privata nätverk för vilken enhet som helst med ett SIM-kort utan att behöva konfigurera specialiserad programvara på enheten.

Uppgifter och begränsningar
Först ska jag svara på frågan "varför?". VPN som teknik används för att lösa olika nätverksuppgifter, som alla har en gemensam egenskap - isolerad dataproduktion mellan två enheter genom ett stort antal mellanstationer. Baserat på detta byggs mer komplexa lösningar och dessa olika uppgifter löses. I det vanliga, bekanta fallet används operatörens fasta nätverk för att bygga VPN (den som vill veta detaljerna har ) eller ett antal olika nätverksprotokoll (GRE, IPSec, L2TP och andra - samma författare ) och programvaror som arbetar med dem (Cisco AnyConnect, OpenVPN, TOR - ni känner till dem), men deras användning på en specifik slutlig enhet ställer genast en rad krav som, om de inte uppfylls, leder till vissa begränsningar.
Den första allvarliga begränsningen är att enheten måste kunna arbeta åtminstone med ett av dessa protokoll på hårdvaru- och programvarunivå. Oftast bestäms detta av mjukvaran, som är lätt att hitta för bärbara datorer eller smartphones, men det finns fall när uppgiften ställs inför en alldeles för enkel enhet ur hårdvarusynpunkt, eller om dess mjukvara har begränsningar: en vattenmätare vill använda VPN för att överföra sina ynkliga byte av mätningar en gång i månaden, precis som du vill använda VPN för att redigera din LinkedIn-profil.
En annan viktig begränsning är behovet av konfiguration. Det fungerar både för "dumma" enheter från första punkten och för klassiska smartphones och datorer, som den tidigare begränsningen inte är bekant med. Och om det första är relativt enkelt och beror på den tid som läggs på konfiguration, så finns det alternativ för de andra. Ofta använder organisationer VPN av säkerhetsskäl för att skydda sina arbetsenheter från att ansluta till det offentliga nätet utan adekvat företagskydd eller från att skicka företagsdata över offentliga kanaler. Slutanvändarna kan av sina skäl stänga av eller glömma att aktivera VPN, vilket kan göra att många av företagets säkerhetssystem blir "utanför".
Båda dessa begränsningar kan enkelt övervinnas om åtkomst till VPN tillhandahålls på nätverksnivå. När det gäller mobilkommunikation kan detta genomföras med hjälp av "mobil VPN". En enhet av vilken komplexitet som helst som kan överföra data kommer att skicka dem till rätt nätverk. Det spelar ingen roll vilka inställningar som görs på enheten, med ett korrekt konfigurerat nätverk kommer den alltid att skicka dem dit de behöver gå, och ingen annanstans.
Och som en trevlig bonus kommer enheten att få en adress från det interna nätverket, konfigurerat på distans, och det kommer endast att vara möjligt att få tillgång till det inifrån detta nätverk (eller fysiskt). För en viss klass av enheter är detta mycket viktigt.
Hur det fungerar
PS Core
Det kan tyckas att VPN är en klassisk tjänst från alla telekommunikationsoperatörer för B2B-segmentet, och varför skulle man då fokusera på det? Allt handlar om hur dataöverföringsnätverket är uppbyggt för de enheter som ansluts via GPRS, HSPA, LTE eller en annan mobil kommunikationsteknik. Här finns inga vlan som alla nätverksadministratörer är vana vid, inga switchar, inte ens routrar i deras vanliga betydelse. Men det finns ett radiotillgångsnät (RAN) och ett paketkärna (PS Core).

En förenklad skiss av operatörens mobila paketsystem. Det skiljer sig något för LTE, men den övergripande betydelsen förblir densamma.
I allmänhet måste varje enhet med ett SIM-kort, registrerad i ett paketnät (som har genomgått GPRS-anknytning eller liknande), initiera skapandet av en datatransmissionssession (PDP-konsultation) på paketnätets kärnrouter, GGSN, innan den börjar överföra data någonstans. Detaljerna och syftet med dessa processer är mycket väl beskrivna här . Vad som är viktigt för oss: vid initiativ av sessionen i förfrågan till GGSN anges, bland andra, parametrar som många har sett i sina telefoner eller till och med stött på när de ställer in exempelvis USB-modem. Det handlar om tre fält: APN, användarnamn och lösenord. APN (åtkomstpunkt) är en mycket viktig enhet i GGSN:s logik: beroende på vilken APN sessionen initieras med, agerar GGSN på olika sätt. Som ett resultat av en framgångsrik hantering av användarens begäran ska GGSN aktivera en datatransmissionssession och meddela enheten dess parametrar, särskilt den IP-adress som tilldelats enheten samt DNS-adresserna. Här finns en rad mycket viktiga egenskaper:
- I förfrågan om att initiera sessionen begär enheten aldrig vilken IP-adress den skulle vilja få;
- Förutom de fält som anges i enhetens inställningar, "APN", "användarnamn" och "lösenord", överförs också abonnentens telefonnummer (MSISDN) i förfrågan till GGSN (här och framöver är "abonnent" den slutliga användaren, en enhet med SIM-kort, medan "kund" är beställarorganisationen av tjänsten, som omfattar abonnenter);
- Vid aktivering av sessionen skapar GGSN en post om den nya IP-adressen i sin routingtabelle. Alla abonnenter på GGSN representeras av poster i routingtabelle med prefixet /32, d.v.s. 1 abonnent – 1 post i tabellen. GGSN är en mycket högpresterande router;
- Operatörens nät kan av olika anledningar ändra APN-fältet i förfrågan om sessionens initiativ i olika skeden (både på SGSN och GGSN). Detta gör det möjligt i vissa fall att minska, och i vissa fall helt utesluta inställningen av nätverksparametrar på enheter med SIM-kort.
De tre första punkterna väcker genast frågan: vilken IP-adress tilldelas abonnenten?
Det bestäms av inställningarna för den APN som begärde aktiveringen av sessionen. Ungefär 99 % av användarna för datatrafik i mobilnät använder vanlig internetåtkomst. Det handlar om välkända åtkomstpunkter som internet.mts.ru, internet.beeline.ru och så vidare. Vid internetåtkomst tilldelar GGSN adresser enligt principen för klassisk DHCP från de angivna inställningarna för grå subnet. Vid utgång till publik nätverk stängs de av med klassisk NAT (eller mer exakt av en version som kallas PAT).
Men GGSN kan göra mer. För att välja IP-adress kan den göra en AAA-förfrågan till autentiseringstjänsten (till exempel Radius). Denna logik kan ställas in för specifika APN beroende på deras syfte. Det enklaste fallet är en tjänst för att tillhandahålla en konstant offentlig IP-adress. Sådana adresser tilldelas vanligtvis abonnenterna i operatörens faktureringssystem (BSS) och beroende på IT-arkitekturen hamnar de i en eller annan databas, som GGSN gör begäran till. Eftersom den känner till MSISDN (telefonnummer) för abonnenten som kommer att inkluderas i förfrågan, kommer en sådan databas att vara ganska enkel och kan bara innehålla kopplingen mellan nummer och adress. Dessutom, om kunden planerar att använda ett SIM-kort för att koppla flera enheter (om SIM-kortet exempelvis finns i en Wifi-router på ett fjärrkontor), kan denna tabell även innehålla så kallad "framed route" — prefixet för nätverket som finns "bakom" SIM-kortet, vilket kommer att annonseras till alla enheter i nätverket via protokoll för dynamisk routing.
Inte bara GGSN
Förutom att tilldela adresser krävs det också att trafiken från abonnenterna levereras till kundernas nätverk, varje abonnent till sitt eget nätverk. Här fungerar allt på ett mycket mer traditionellt sätt. På GGSN dirigeras trafiken som är specialiserad för arbete med VPN APN till en separat router i operatörens nätverk (den kan ha olika namn, ibland kallas den - VPN-router), som i sin tur fungerar som en klassisk PE i L3VPN-schema. Den lägger till nödvändiga etiketter, rubriker och allt det där och skickar hela denna trafik genom transportnätverkets routrar till förkonfigurerade kopplingar eller tunnlar till kundens nätverk. Denna del är redan mycket mer traditionell och har beskrivits många gånger på andra ställen, så jag kommer inte att fokusera på den i detta material.
Med hänsyn till alla dessa detaljer kan det finnas flera sätt att organisera mobil VPN och dessa kommer att skilja sig åt genom en kombination av följande egenskaper:
- IP-adresser, som redan har beskrivits, kan tilldelas dynamiskt (varje gång en annan adress från det angivna undernätet) och statiskt (varje gång samma adress till en specifik abonnent), vilket bestäms och/eller av APN-inställningarna och/eller av Radius-serverns inställningar;
- IP-adresser kan tilldelas av en Radius-server som styrs av operatören eller av kunden;
- Enheter som är anslutna till mobil VPN kan interagera antingen endast med varandra eller ha tillgång till kundens vanliga L3VPN-nätverk genom en direkt koppling (VPN-port) med operatören eller genom tunneling över Internet;
- I vissa fall kan användning av inloggningsuppgifter och lösenord för att framgångsrikt aktivera sessionen vara obligatoriskt, medan det ibland inte ens krävs att fylla i fältet 'APN'.
Det finns flera dussin sådana kombinationer med olika typer av tunneling, lastbalansering mellan åtkomstkanaler till kundens 'huvud'-VPN och principerna för tilldelning av adresser. I de flesta fall ser den övergripande schemat ut som följer:

Efter en ganska snabb registreringsprocess på nätet och mottagande av en IP-adress får enheten tillgång till kundens nätverk, och kundens nätverk får tillgång till enheten. Abonnenten förblir isolerad från alla andra abonnenter hos operatören som inte har kopplingar till den specifika kunden, det krävs inga ytterligare inställningar, och all trafik dirigeras utan alternativ till kundens nätverk, där den bearbetas enligt kundens interna policys.
Källa: habr.com
