Pull to refresh

Не важно кто ты… важно какая у тебя APN!

Reading time 7 min
Views 57K
В этой статье речь пойдет о небольшой хитрости, к которой может прибегнуть некий виртуальный ОпСоС, чтобы обмануть своих абонентов в процессе предоставления услуг пакетной передачи данных. Центром нашего внимания будет процесс выбора и использования Access Point Name [APN].
Как мы помним из статьи GPRS изнутри. Часть 2, APN используется во время процедуры активации PDP Context'а и предназначена для определения услуги, запрашиваемой абонентом.



Услугами, предоставляемыми ресурсами пакетной сети мобильного оператора могут быть:
  • Mobile internet
  • Intranet VPN access
  • MMS
  • Wap
  • LAN over GPRS
  • PTT [Push-To-Talk]
  • SMS over GPRS*
    * — для предоставления услуг по отправке коротких сообщений не используется APN и нет необходимости активировать PDP Context, достаточно осуществить процедуру GPRS Attach.

Рассмотрим более подробно механизмы выбора и использования APN(en) – Access Point Name в GPRS сессии. Начнем с ограничений, APN НЕ должна:
  • заканчиваться на '.gprs'*
  • иметь в названии спецсимволы (? % # $ *)**
  • быть меньше 1 символа и больше 63 символов*
  • начинаться с сочетаний последовательностей символов: LAC, RAC, SGSN, RNC
  • начинаться с кода оператора (см. ниже)

* — это ограничение касается, т.н. Идентификатора сети (см. ниже)
** — используются только алфавитно-цифровые последовательности из символов: 'A… Z', 'a… z', '0… 9', а также символы '. -'


APN также должна начинаться с алфавитно-цифровой последовательности символов и не чувствительна к регистру символов на стороне SGNS'а.

Функционально APN предназначена для определения IP адреса GGSN, который будет предоставлять сервис, запрошенный абонентом при активации PDP context'a.
Опционально APN состоит из двух частей – идентификатора сети (обязательная часть) и идентификатора оператора (не обязательная часть):

image
  • идентификатор сети определяет IP адрес GGSN или нескольких GGSN и в первом приближении определят тип сети, к которой имеет выход GGSN;
  • идентификатор оператора представляет собой параметры сети оператора, в которой расположен обслуживающий GGSN и состоит из MNC и MCC (например, mnc009.mcc255.gprs — некоторый оператор, Украина — который также называется GOI [GGSN Operator Identifier]), если же в названии APN отсутствуют эти данные, то для абонентов домашней сети оператора SGSN добавит так называемый Default APN Operator Identifier, прописанный в SGSN'е для домашней сети абонента, т.н. HPLMN*;
    * — для абонента мобильной сети, есть понятие домашней сети [HPLMN], т.е. сети в которой будут действовать тарифы указанные в договоре по предоставлению услуг сети, но также есть понятие гостевой или роуминговой сети [VPLMN], в которой будут действовать тарифы согласно роумингового соглашения между операторами. При этом домашняя сеть для абонента будет только одна, а гостевых сетей может быть несколько.

Идентификатор оператора может быть добавлен к APN различными путями:
  • Получен от абонента при активации PDP Context'a (прописан в самой APN).
  • Сгенерирован из IMSI абонента, если гостевой пользователь находящийся в роуминге и запрашивает доступ к своей домашней сети.
  • Получен из параметра GOI [Default APN Operator Identifier], который прописан на SGSN для сети к которой принадлежит абонент

Полное имя APN (включая идентификатор оператора) используется для резолва IP адреса GGSN, который будет обслуживать указанную APN. На стороне локального DNS оператора, APN будет «расшифровываться» справа налево, т.е. определяться зона обслуживания домена gprs, затем зона обслуживания домена mcc255, и т.д. Перед активацией PDP Context'a SGSN получает от HLR профиль пользователя. В профиле пользователя, в параметре APN может быть указаны разрешенные к использованию абонентом APN'ы, либо указан значок «*», который разрешает использовать любые, из существующих APN в сети оператора. Если в профиле указан список нескольких разрешенных APN, то первая APN в списке имеет более высокий приоритет по сравнению с остальными – см. примеры.

Для каждой PLMN, будь то Home PLMN или Visitor PLMN, большинство вендоров позволяет прописать на SGSN'е, т.н. Default APN Operator Identifier [DEFAPN], который автоматически подставляется в качестве Идентификатора Сети, т.е. фактически заменяя APN, запрошенную абонентом, но лишь в том случае если абонент ошибся в написании APN, либо указан не существующую в сети оператора APN. Основная задумка использования параметра DEFAPN направлена на уменьшение количества неудачных попыток активации PDP Context'a, в случае если абоненты ошиблись, т.е. указали неправильную APN в настройках подключения. Использование параметра DEFAPN является опциональным и никак не влияет на общую функциональность, т.е. оператор может и не приобретать лицензии на использовании этой функциональности. В дополнение к настройкам DEFAPN, обычно обязательной настройкой на SGSN'e является разрешение на перезапись запрошенной APN [Override of the requested APN], а также отдельные настройки замещения запрошенной APN для роуминговых абонентов [Override of roaming APN].

Но, что мешает оператору использовать дополнительную функциональность себе на пользу… :)

Сценарии развития событий практически одинаковы как для роуминговых абонентов, так и для абонентов, находящихся в своей домашней сети, разница лишь в том, что параметры по замещению запрошенной APN необходимо указывать для той PLMN, которой принадлежит пользователь (т.е. либо HPLMN, либо VPLMN) поэтому все нижесказанное в равной степени применимо к обоим сценариям нахождения абонента как в роуминговой сети (VPLMN), так и в домашней сети (HPLMN).
  1. Умный абонент
    Дано: абонент указал в настройках телефона существующую APN (например, opsos.com.ua), доступ к которой ему разрешен. В его профиле на HLR, указан список разрешенных ему APN (например, в таком порядке — internet, opsos.com.ua, mms.opsos.com.ua).
    • DEFAPN Activated, Override of Requested APN Permited
      Абонент находиться в своей домашней сети:
      к запрошенной APN SGSN добавит GOI указанный для HPLMN (т.е. для нашего виртуального оператора это mnc009.mcc255.gprs), по полному имени APN — opsos.com.ua.mnc009.mcc255.gprs отрезолвится IP адрес GGSN, который будет обслуживать GPRS сессию. PDP Context для абонента будет успешно активирован по указанной им APN (в нашем случае это будет opsos.com.ua), тарифы использования пакетной передачи будут соответствовать тарифам точки доступа opsos.com.ua.
      Абонент находиться в гостевой сети:
      в гостевой сети SGSN добавит к указанному имени APN GOI домашней сети, на основании информации из IMSI, отправит запрос на DNS сервер и получит IP адрес GGSN в домашней сети оператора, затем перенаправит PDP Context в домашнюю сеть абонента, т.е. находясь в роуминге абоненты используют роуминговый SGSN, но весь трафик проходит через их «домашний» GGSN. Тарифы использования пакетной передачи будут соответствовать для абонента роуминговым тарифам точки доступа opsos.com.ua.
    • DEFAPN NOT Activated, Override of Requested APN NOT Permited
      Дальнейшее развитие событий практически похожи как для роуминговых абонентов, так и для абонентов в своей домашней сети (HPLMN), поэтому не будем рассматривать два сценария, а лишь будем указывать на основные различия.
      В этом сценарии развития событий ничего не изменится, абонент сможет активировать PDP Context по APN — opsos.com.ua, тарифы пользования услугами пакетной передачи будут соответствовать тарифам точки доступа opsos.com.ua.

  2. Абонент типичный
    Дано: абонент указал в настройках существующую APN, например — internet (либо любую другую APN, существующую в сети оператора), при этом в настройках абонента на HLR (в его профиле) указана «*» в параметре APN.
    • DEFAPN Activated, Override of Requested APN Permited
      Абонент сможет активировать PDP Context по указанной им APN — internet, тарифы пользования услугами пакетной передачи будут соответствовать тарифам точки доступа internet, т.к. параметр DEFAPN никак не участвует в активации контекста абонента.
    • DEFAPN NOT Activated, Override of Requested APN NOT Permited
      Абонент сможет активировать PDP Context по указанной им APN — internet, тарифы пользования услугами пакетной передачи будут соответствовать тарифам точки доступа internet.
  3. Почти умный абонент
    Дано: абонент указал в настройках телефона НЕ существующую APN (например, mega.fast.internet), либо абонент укажет в настройка существующую APN, но которая не будет присутствовать в списке разрешенных APN в профиле абонента с HLR'a. В его профиле на HLR, указан список разрешенных ему APN (например, в таком порядке — internet, opsos.com.ua, mms.opsos.com.ua).

    • DEFAPN Activated, Override of Requested APN Permited
      В этом случае, т.к. на стороне SGSN'а будет получен профиль абонента с HLR'a, определится первая APN в списке и активируется PDP Context по этой первой APN.
      Вот здесь есть небольшой нюанс, т.к. абонент не имеет права как-то вмешиваться в изменение своего профиля, то есть вероятность, что первой в списке разрешенных ему APN «окажется» APN тарифы пользования которой окажутся не совсем маленькими.

    • DEFAPN NOT Activated, Override of Requested APN NOT Permited
      В этом случае пользователь получит Reject (отказ) на активацию PDP Context'a и не сможет воспользоваться запрошенной услугой, пока не укажет одну из APN, указанных в его профиле с HLR'a.

  4. «Одаренный» абонент + небольшая хитрость (читай ЛОЯЛЬНОСТЬ) оператора
    Дано: абонент впервые слышит слово APN (или указал не существующую APN/ошибся при вводе существующей APN), в его профиле на HLR установлена «*» вместо APN.

    • DEFAPN Activated, Override of Requested APN Permited
      Допустим в дефолтных настройках SGSN для абонентов PLMN к которой принадлежит абонент, установлен например, DEFAPN — expensive.net с самыми «дешевыми» (допустим, пакетная передача данных под APN expensive.net является самым дорогим тарифом в сети оператора) тарифами использования пакетной передачи данных. В этом случае, т.к. абонент указал не «правильную» APN, то его запрошенная APN будет заменена на ту, что указана в DEFAPN, т.е. — expensive.net.
      Вот здесь появляется еще один «нюанс», если абонент при указанных условиях будет подключаться в сети, то он будет оплачивать услуги по самому «потолку», т.е. по тарифу expensive.net.

    • DEFAPN NOT Activated, Override of Requested APN NOT Permited
      В этом сценарии событий, абонент получит Reject (Отказ) на активацию PDP Context'a и не сможет воспользоваться услугами пакетной передачи данных.


Вот собственно, с помощью таких небольших ухищрений наш виртуальный оператор сотовой связи, может обманывать своих абонентов.

Вывод: всегда контролируйте настройки и параметры, которые передаются в любой коммуникации, в том числе и при использовании услуг GPRS/EDGE в сетях мобильных операторов, т.к. очень часто в сети проскакивают сообщении о негодовании услугами передачи данных и больших счетах за пользование мобильной связью, а получить какой-нибудь вменяемый ответ от оператора, порой очень и очень тяжело.

З.Ы.: при написании статьи не пострадал ни один абонент сотовой связи, т.к. в нашей стране все операторы «честные» и пушистые :-)

Небольшой помощник:

APN — Access Point Name
GGSN — Gateway GPRS Support Node
GOI – GGSN Operator Identifier
GPRS — General Packet Radio Service
HLR — Home Location Register
HPLMN — Home PLMN
IMSI – International Mobile Subscriber Identity
LAC — Location Area Code
MCC — Mobile Country Code
MNC — Mobile Network Code
PDN — Packet Data Networks
PDP — Packet Data Protocol
PLMN — Public Land Mobile Network
RAC — Routing Area Code
RNC — Radio Network Controller
SGSN — Serving GPRS Support Node
VPLMN — Visitor PLMN

Ссылки по теме (en):
Tags:
Hubs:
+24
Comments 23
Comments Comments 23

Articles