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

    В этой статье речь пойдет о небольшой хитрости, к которой может прибегнуть некий виртуальный ОпСоС, чтобы обмануть своих абонентов в процессе предоставления услуг пакетной передачи данных. Центром нашего внимания будет процесс выбора и использования 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):
    Поделиться публикацией

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

      +2
      Про GRX (GRPS Roaming eXchange) еще напишите :)
        0
        Есть домашняя заготовка :) но пока не буду раскрывать подробности
        0
        > З.Ы.: при написании статьи не пострадал ни один абонент сотовой связи, т.к. в нашей стране все операторы «честные» и пушистые :-)
        Думаю, не лишним будет перейти на личности и напомнить хабровчанам о «пушистости» Билайна в России:
        habrahabr.ru/blogs/telecom/76663/
          0
          Рыльце у него в пушку, ага )))
          0
          В мегафоне теперь можно не указывать точку доступа вообще: линк
            0
            Думаю, это как раз и есть один из вариантов использования т.н. Defaul APN на стороне оператора, т.к. ситуация когда Вы не указываете в настройках APN аналогична ситуации, когда Вы ошиблись в написании APN.
              0
              Если не указывать точку доступа вообще — ничего и не будет.
              У меня мегафон, но я прошил телефон прошивкой из UK. Телефон работал, звонить звонил, но в мобильный инет не вылезал. Никак. Смотрю список APN, а там пусто, вообще ничего нет. Создал дефолтную апн — инет заработал. :)

              Так что дефолтная apn должна быть как минимум.
                0
                это уже настройки телефона. Нет профиля (с любым, хоть пустым апн) — нет и попытки подключиться в сеть.
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  Вы и Василий Иванович?
                  • НЛО прилетело и опубликовало эту надпись здесь
                +6
                Ещё есть «Хитрожопый» абонент + добрый оператор.
                Это когда в поле APN пишешь Iphone и подключаешь через опсоса пакеты, которые доступны только владельцам яблока. Только тс-с-с… :)

                Хотя это всё, немного не в тему статьи, конечно… :)
                  +1
                  так а в чем собственно преимущество этой APN, перед «обычными»? Что такого сверхъестественного доступно яблокофону?
                    +4
                    Например автоматическая активация пакета «анлимитный» (на самом деле 1Gb в месяц) интернет при расходах более 500р за предыдущий месяц.
                      0
                      У мегафона(ведь все уже догадались, что речь идёт о нём? :), есть айфоновские пакеты. Пакет А выглядит очень даже вкусно, а с введением в Нерезиновой 3G так и вообще шикарно смотрится. Да и тот же едже с APN «Iphone» подrлючается шустрее, и на взгляд работает быстрее, чем с APN «internet».

                      +1
                      «Пишите имя оператора» [x]

                      Например на Мегафоне по необходимости переставлял симмку с «Тариф-А» из iPhone'а в другой телефон. APN iphone — не работала (APN «internet» — работала).
                        +1
                        Может еще идет привязка по запрашиваемому/получаемому профилю от самого терминала абонента, имею в виду QoS, возможности в плане приема/передачи данных и т.д.
                          +1
                          не исключено, что у оператора установлено оборудование, которое позволяет использовать APN iphone только с девайсами с определенным IMEI (or TAC)
                        0
                        В МТСе, например, с помощью этого DEFAPN реализована услуга "доступ без настроек". В отличии от мегафона и билайна — у МТСа тарификация идёт в зависимости от направления (интернет, ммс, вап) + корректируются параметры прокси-сервера для вап и ммс.
                        То есть при использовании одного апн, можно отправлять ммс, лазить по инету, выходить в вап.

                        Ммс-трафик при этом будет бесплатен (определяется по наличию в настройках телефона любого ип-адреса прокси из серой сети + заголовка ммс-сообщений)
                        вап (определяется по наличию в настройках телефона любого ип-адреса прокси из серой сети) по цене вапа
                        интернет (запрос на любой не «серый» адрес) по цене интернета с учётом скидок и пакетов.

                        Так что операторы не только могут таким образом «тупо рубить капусту» но и помогать пользователям, которые не могут справиться с настройкой гпрс (по крайней мере это касается МТСа, в билайне, на сколько я знаю, весь «корректированый» трафик тарифицируется по цене вапа, что огорчает =( ).
                          0
                          Да я собственно, и не говорил, что операторы «тупо рубят капусту»… я рассказал, как это устроенно и указал на некоторые технические моменты при использовании этой функциональности…
                          Всегда важно знать что и как работает :) а пиарить какого-то отдельного оператора я не собирался.
                            +1
                            Ух ты, а я думал — они эту железку будут ставить, чтобы всех «кривонастроенных» заруливать по ценам ВАПа…
                            Недавно ставил такую штуку им, на тесты. Сейчас на чем реализовано — не знаю…
                              +1
                              А какую штуку?
                                +1
                                Судя по вашим комментам, вы имеете прямое отношение к оператору с овальным логотипом. Вот и поинтересуйтесь в МР мск ;)
                                В целом — ничего экстраординарного — обычная софтина, которая по заданным правилам подменяет все серые сети на адрес вапгв, а неправильные адреса ммсц в HTTP заголовке на правильный. Белые адреса маршрутизируются без изменений.

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

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