APN 配置略解

0. 什么是APN?

APN, 是Access Point Name的缩写,即“接入点名称”。它决定了终端通过什么接入方式来访问网络。

在5G中,改称为DNN(Data Network Name,数据网络名称),但是它们的作用和定义还是一样的。

在独立组网部署(SNPN)中,把OI的格式固定为"nid<NID>.mnc<MNC>.mcc<MCC>.gprs"

1. APN的构成

按照3GPP TS 23.003 $9,定义了APN由两部分构成

  • APN-NI (Network Identity):必选。它定义 GGSN/PGW 连接到哪个外部网络。在后面例子中,apn里面其实写的都是APN NI。
  • APN-OI (Operator Identity):可选。它定义 GGSN/PGW 位于哪个 PLMN GPRS/EPS 主干网中

一个APN-FQDN可以表示为internet.apn.epc.mnc015.mcc234.3gppnetwork.org,其中internet为APN NI,剩下部分则是派生出来的APN OI。

1.1 APN-NI

APN NI由运营商自行定义,只是限定了某些固定搭配不能使用。

终端在“附着”请求流程中,会上报终端中的APN-NI。MME结合终端IMSI,构造出APN-FQDN,送至移动网内DNS服务器进行解析,获得PGW网关的IP地址。从而决定了终端采用哪种接入方式来访问网络。

1.2 APN-OI

对于每个运营商,都有一个默认的 APN 运营商标识符(即域名)。此默认 APN 运营商标识符从 IMSI 派生而来 “mnc<MNC>.mcc<MCC>.gprs”。这个默认APN-OI用于本地路由间的情况。

在漫游情况下,如果要选择来自 VPLMN 的GGSN/PGW,则 UE 的 APN-OI由服务网络 PLMN ID 构成。

2 APN参数

在下述例子中,我们能看到还有很多参数需要配置。但是找了很久没有找到在哪个规范里面有定义,很可能其实这些参数是移动通信中的标准参数,只是我接触这部分,所以不知道。最近似的一份材料来自GSMA TS.32。

对我来讲,我最关注的其实是mvno_type这个部分。

按照安卓和微软的源代码来看,手机通过三种方式来区分MVNO:

  • spn
  • imsi
  • gid

其中spn和imsi都是我们很熟悉的。GID的用途,其实跟TS 31.102中规定的不大一致。

下面例子均取自于android.googlesource.com

 <apn carrier="MVNO NL"
      carrier_id = "2149"
      mcc="204"
      mnc="03"
      apn="internet.mvno.mobi"
      user="mvno"
      password="mvno"
      authtype="1"
      type="default,ia,supl"
      mvno_match_data="20403"
      mvno_type="imsi"
  />

  <apn carrier="Truphone"
      carrier_id = "2143"
      mcc="204"
      mnc="04"
      apn="truphone.com"
      mmsc="http://mmsc.truphone.com:1981/mm1"
      type="default,ia,supl,mms,dun"
      mvno_type="gid"
      mvno_match_data="547275554B3030656E"
  />

  <apn carrier="CSpire international"
      carrier_id = "1836"
      mcc="204"
      mnc="04"
      apn="internet.cs4glte.com"
      server="*"
      user="Uniroam@inet.cs.com"
      password="cs3g"
      authtype ="3"
      mmsc="http://pix.cspire.com"
      mvno_type="spn"
      mvno_match_data="C Spire"
      type="default,ia,mms"
      protocol="IPV4V6"
  />

 

没有评论:

发表评论