本帖最后由 爱卫生 于 2012-5-13 15:49 编辑
DNS主要提供了域名到IP地址的解析服务,以下将分别介绍。在DNS服务器中将保存有解析对象和结果的对应关系,每一个对应关系条目可以称之为一条记录(record)。DNS中的记录根据其解析的结果不同分成有很多类型,比较常见的有A记录、CNAME记录、NS记录等。在GPRS网络中使用的记录类型只用到了A记录,A记录描述的是被解析对象如APN或RAI与IP地址的对应关系。GPRS网络中使用DNS解析的场景通常有两个,PDP上下文激活流程和路由区更新流程。以下将分别进行介绍。
本实例主要介绍在PDP上下文激活流程中,SGSN怎样通过APN向DNS服务器查询对应的GGSN的IP地址的过程。
以下是具体的各个步骤的说明。 1)MS发起PDP上下文激活流程,发送Activate PDP Context Request消息给SGSN,并携带有APN的网络标识部分用于表示请求访问的外部PDN网络,本例中为cmwap。如下图所示。
2)SGSN收到后,将对用户请求的APN进行检查。检查成功后,将在本地查找关于该APN的运营商标识部分,并进行补全,得到该APN的全名。同时,后续的PDP上下文激活流程能得以继续,SGSN将首先在本地缓存中,查找APN全名所对应的GGSN IP地址,如果本地缓存中没有,则SGSN将向配置的DNS服务器发起查询请求,提供给DNS服务器的查询条件为APN的全名。本例中,对应的APN全名是cmwap.mnc000.mcc460.gprs。在爱立信的SGSN中,关于该APN的运营商标识部分可以通过以下指令得到,如下图所示:
3)DNS服务器中将根据etc/named.conf文件中的内容对该收到的请求进行解析。为了方便管理,DNS服务器中引入了区域(Zone)的概念,区域中存放了某个特定域名的解析结果。 本例中,DNS服务器在收到该请求后,首先将查找etc/named.conf文件中match-clients的说明,检查该DNS查询请求中的源IP地址(即SGSN侧的IP地址),是否在match-clients所声明的IP地址段中,如果match-clients所声明的IP地址段范围包含了DNS查询请求中的源IP地址,则DNS服务器将继续后续的查询过程。否则,DNS服务器将拒绝为该查询请求服务。接下来,DNS服务器将在etc/named.conf中查找到对应的区域配置,该区域配置中列出了真正包含了DNS解析结果的数据库文件的位置。如下图所示:
从上图可以得知,针对APN全名”cmwap.mnc000.mcc460.gprs.”的解析,是属于区域”cmwap.mnc000.mcc460.gprs”的,而对应的数据库文件名为”eric.cmwap.mnc000.mcc460.gprs.db”。Type=master代表该DNS服务器是主域名服务器。相对应还有Type=slave,代表该DNS服务器是从域名服务器,对主域名服务器进行备份。包括区域的配置数据文件的备份。 接下来,DNS服务器将继续查找对应的数据库文件”eric.cmwap.mnc000.mcc460.gprs.db”,如下图所示。
从上图可以得知,DNS服务器在数据文件中”eric.cmwap.mnc000.mcc460.gprs.db”,以及找到了关于APN全名cmwap.mnc000.mcc460.gprs.所对应的A记录,并且得到了A记录对应的解析结果,即IP地址是200.1.1.1。这个IP地址将通过发给SGSN的DNS Query Response消息返回给SGSN。至此,在DNS服务器上的查询过程结束。 4)SGSN收到DNS Query Response消息后,得到了关于GGSN的IP地址为200.1.1.1。根据信令流程的要求,SGSN将向该GGSN发送Create PDP Context Request消息。 |