51学通信技术论坛

 找回密码
 立即注册
搜索
查看: 7321|回复: 23

[信令流程] 2.1 EPC中通过DNS解析PGW IP地址实例   [复制链接]

Rank: 9Rank: 9

懒

发表于 2012-9-2 16:17:35 |显示全部楼层
一键分享 一键分享

论坛有朋友提到EPC中的DNS的一些变化,原理部分会再补充,这里先放一个实例来介绍PGW的DNS解析过程。PGW的地址是在EPC附着流程中,当MME收到UE的附着请求后,需要向DNS发起解析请求,查询的条件是APN。DNS根据APN查询最终返回给MME关于PGW的IP地址,MME完成后续的附着流程。

但不同于GPRS网络中,SGSN根据APN查询GGSN的IP地址,一步就完成了,这是因为2G/3G中的PS域DNS查询只有A记录,而在EPC中增加了SRV和NAPTR记录,所以一次查询是查询不到PGW的地址的,需要两部。如下图所示:

1)MME首先根据UE提供的APN的NI部分生成APN的全名,本例中是apn06gnnv01.ericsson.se.apn.epc.mnc080.mcc262.3gppnetwork.prg。类型为NAPTR。

2)DNS返回NAPTR记录的查询结果为topon.eth1.pgw-s5.06.node.epc.mnc080.mcc262.3gppnetwork.org。除了结果以外,还返回了权重、支持的服务、优先级等参数方便MME进行选择。

3)MME根据第2)步中的NAPTR查询结果发起A记录解析请求,查询条件是topon.eth1.pgw-s5.06.node.epc.mnc080.mcc262.3gppnetwork.org。

4)DNS解析该A记录,返回对应的PGW的IP地址是:10.64.194.134。

5)MME向该PGW(本例中,SGW和PGW是合设的,所以可以看成是MME直接向PGW发送的Create Session Request消息,目的IP就是第4)步中DNS返回的10.64.194.134。

本实例的抓包报文已上传到论坛城通网盘分享,下载地址是:

http://www.ctdisk.com/file/9163443。大小:30KB。文件名:2.1 PGW的DNS解析过程.rar。

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

Rank: 2Rank: 2

乐于助人

发表于 2012-9-6 22:17:36 |显示全部楼层
从你的这个例子可以看出
1. MME先选PGW,再选SGW,是否正确?
2. 如果SGW,PGW合设,MME是如何知道的? MME上静态配置?

使用道具 举报

Rank: 9Rank: 9

懒

发表于 2012-9-6 22:51:44 |显示全部楼层
feile99 发表于 2012-9-6 22:17
从你的这个例子可以看出
1. MME先选PGW,再选SGW,是否正确?
2. 如果SGW,PGW合设,MME是如何知道的? MM ...

1 不能这么说,是同时选的。但是DNS的解析请求要分开发,因为选PGW根据APN,而SGW则要根据TAI来选。所以要发两个DNS查询请求。

2 合设情况下,不是MME上静态配置。而是比对由DNS返回的查询结果SGW以及PGW的host name部分来判断是不是合设的。如果hostname部分相同,则是合设的SGW和PGW。因为hostname是唯一的网元标识,每个网元一个。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

乐于助人

发表于 2012-9-7 22:12:59 |显示全部楼层
1 不能这么说,是同时选的。但是DNS的解析请求要分开发,因为选PGW根据APN,而SGW则要根据TAI来选。所以要发两个DNS查询请求。
2 合设情况下,不是MME上静态配置。而是比对由DNS返回的查询结果SGW以及PGW的host name部分来判断是不是合设的。如果hostname部分相同,则是合设的SGW和PGW。因为hostname是唯一的网元标识,每个网元一个。

hostname是下面粗体的部分吗?

topon.eth1.pgw-s5.06.node.epc.mnc080.mcc262.3gppnetwork.org

使用道具 举报

Rank: 9Rank: 9

懒

发表于 2012-9-10 23:02:05 |显示全部楼层
feile99 发表于 2012-9-7 22:12
1 不能这么说,是同时选的。但是DNS的解析请求要分开发,因为选PGW根据APN,而SGW则要根据TAI来选。所以要发 ...

不好意思,讲反了。

canonical name用来唯一的标识一设备。就像人的名字一样。host name类似小名。可能有几个。hostname必须以canonical name结尾。例如:hostname是:

<topon | topoff>.<interface>.<canonical name>。

例如cpg01.node.mncxxx.mccxxx.3gppnetwork.org是canonical name。那么对应的hostname可能是:

topoff.sgw-s5s8.cpg01.mncxxx.mccxxx.3gppnetwork.org或者

topoff.pgw-s5s8.cpg01.mncxxx.mccxxx.3gppnetwork.org。

通过判断从DNS返回的解析结果后缀中canonical name是否相同就可以决定是不是colocated GW。

本例中不做参考。实际网络中的canonical name和hostname会有详细的规划来保证不会产生歧义。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

乐于助人

发表于 2012-9-15 23:06:22 |显示全部楼层
不好意思,越来越糊涂了。

我只想搞清楚,如果S-GW和P-GW合设的情况下,MME如何通过DNS知道两者是合设的?
根据LZ的说法,MME查询S-GW和P-GW返回的hostname相同,所以MME能分辨出来。但我看不出他们的hostname的相同之处啊?

使用道具 举报

Rank: 9Rank: 9

发表于 2012-9-16 23:31:42 |显示全部楼层
feile99 发表于 2012-9-15 23:06
不好意思,越来越糊涂了。

我只想搞清楚,如果S-GW和P-GW合设的情况下,MME如何通过DNS知道两者是合设的 ...

不用太关注本贴的抓包。从本贴的抓包中确实是不能找到合设的S-GW和P-GW的。因为这也不是一个商用网络中的包,所以只是为了做一些trail。真正商用的话,运营商肯定对S-GW和P-GW的hostname是有详细规划,并且会严格按要求配置到DNS服务器上的。到时候一定能返回如你所想的那样hostname一致的报文。其实你的理解是对的啦!

51学通信(www.51xuetongxin.com):致力打造最好的通信技术在线学习平台 。

使用道具 举报

Rank: 8

VIP 论坛核心会员 特殊贡献奖

发表于 2012-9-17 09:59:10 |显示全部楼层
本帖最后由 hycl5410 于 2012-9-17 10:00 编辑

爱老大的说法是正确的。
MME查SGW和PGW是完全不同的两个过程(service,interface等区分),如果对SGW和PGW的S-NAPTR查询结果是一样的话,那么MME就会判断为collocated GWs。一旦判断为collocated GWs,就会给予最高优先级,忽略其他可能的SGW-PGW组合。

使用道具 举报

Rank: 3Rank: 3Rank: 3

发表于 2013-3-28 16:08:25 |显示全部楼层
那3G和4G网络可以共用同一个DNS吗?有没有bind 配置文件供参考下哦?

使用道具 举报

Rank: 9Rank: 9

发表于 2013-3-28 19:40:59 |显示全部楼层
个人感觉应该可以的。放到不同的zone文件里就行了吧。而且现在SGSN和MME都是合设在一起的。也没有办法分开配3G还有4G的DNS Server的地址啊,所以应该都是同一个。

使用道具 举报

Rank: 9Rank: 9

发表于 2013-3-28 22:05:38 |显示全部楼层
hou3331 发表于 2013-3-28 16:08
那3G和4G网络可以共用同一个DNS吗?有没有bind 配置文件供参考下哦?

这里帖一些DNS服务器中的配置文件范例,如下:
下面是一个“named.conf"文件的参考:
“Sample "named.conf" file:
--------------------------
options {
    directory "/var/named";
    listen-on-v6 { none; };
#    recursion no;
};
logging {
    channel query.log {      
        file "/var/adm/dnsquery.log";
        severity debug 3;
    };
    category queries { query.log; };
};
#zone "." in {
#    type hint;
#    file "named.ca";
#};
zone "0.0.127.in-addr.arpa" in {
    type master;
    file "db.0.0.127.in-addr.arpa";
};
zone "epc.mnc001.mcc228.3gppnetwork.org" {
    type master;
    file "db.epc.mnc001.mcc228.3gppnetwork.org";   
};
zone "6.0.10.in-addr.arpa" {
    type master;
    file "db.6.0.10.in-addr.arpa";
};”
51学通信(www.51xuetongxin.com):致力打造最好的通信技术在线学习平台 。

使用道具 举报

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

发表于 2013-4-10 16:02:01 |显示全部楼层
MME首先根据UE提供的APN的NI部分生成APN的全名,本例中是apn06gnnv01.ericsson.se.apn.epc.mnc080.mcc262.3gppnetwork.prg
这个在MME的配置中有具体体现吗?是在imsi表里配置的吗

点评

admin  应该是。和2/3G没有太多变化,NI由UE送上来或者由HSS来决定缺省APN。OI的话就在IMSI表里配置好。  发表于 2013-4-10 20:18:36

使用道具 举报

Rank: 3Rank: 3Rank: 3

发表于 2013-5-5 00:33:39 |显示全部楼层
其实参考报文中只给出了apn naptr部分,并没有给出tai naptr部分,不完整,故容易引起co-location的误解,不过爱老大提到的SRV RR(因为2G/3G中的PS域DNS查询只有A记录,而在EPC中增加了SRV和NAPTR记录)我没找到在哪儿啊?参考报文中的flag字段是a记录, 而且后面提到的S-NAPTR和NAPTR有什么区别啊?

点评

爱卫生  这个实例是解析PGW,所以没有用到TAI,不出现是正常的。区别的话我找找看有没有这方面的文章找时间发上来。  发表于 2013-5-5 11:48:26

使用道具 举报

Rank: 3Rank: 3Rank: 3

发表于 2013-5-5 00:51:56 |显示全部楼层
采用了naptr寻址后,和原来的a记录寻址,好处在哪儿哦?

点评

爱卫生  主要的好处是原来2/3G的时候因为控制用户面没有分离,因此用户面的节点GGSN和SGSN一样都是集中部署,没有分布式部署。所以只需要A记录。但NAPTR记录引入后,可以提供权重、优先级等信息。帮助用户选择最近的GW来服务  发表于 2013-5-5 13:02:02

使用道具 举报

Rank: 3Rank: 3Rank: 3

发表于 2013-7-16 13:36:42 |显示全部楼层
MME在选择PGW的IP之前也需要查询SGW的IP,MME不会知道SGW和PGW是combine的还是独立的。MME通过attach request中的TAI查询SGW的IP地址,并且通过APN查询PGW的IP,这个APN可以是UE提供的,也可以是HSS提供的。

使用道具 举报

Rank: 3Rank: 3Rank: 3

发表于 2013-8-20 13:21:23 |显示全部楼层
feile99 发表于 2012-9-15 23:06
不好意思,越来越糊涂了。

我只想搞清楚,如果S-GW和P-GW合设的情况下,MME如何通过DNS知道两者是合设的 ...

MME区分SGW和PGW是不是combine的,通过第一个字段topon和topoff来区分的,如果是topon,那么需要通过canonical-node-name选择combine的SGW和PGW,一般如果是topon的话,canonical-node-name需要一致;
<"topon"| "topoff"> . <single-label-interface-name> . <canonical-node-name>
如果是topoff的话,那么就不会涉及是不是combine的了,可以任意组合SGW和PGW,只要node直接的S5口建立起来就不会影响业务。
如果是Roaming的话,那么就会涉及到topon和topoff了。

使用道具 举报

Rank: 8

VIP 论坛核心会员 特殊贡献奖

发表于 2013-8-20 15:49:21 |显示全部楼层
不是很同意楼上说法。
TS 29.303(v940)
5.1.1.3        Discovering a PGW or collocated PGW/GGSN for a 3GPP Access - S5/Gn intra-operator existing PDN
If the existing SGW hostname has "topoff" then the candidate list of PGW shall be used in the order given to try to contact a PGW, after moving any colocated SGW/PGW to the front of the candidate list while maintaining relative order within that set.

topoff只是不对canonical-node-name所指示的地理信息做最长匹配(因此order起关键作用),但是SGW/PGW combined选择依然是有效并且拥有最高优先级。
当然,也有可能楼上认为combined跟colocated不是说的一个事。。。

另外,楼上的roaming说的也不是那么明确。对于3GPP来讲,roaming就是inter operator,决定的是s5还是s8. 楼上说的roaming有点像国内各省之间地域的切换。

使用道具 举报

Rank: 2Rank: 2

发表于 2013-9-7 19:08:40 |显示全部楼层
我的理解对MME来说不知道sgw和pgw是分设还是合设的,也应该没法知道,topon,topoff应该指是否按照域名的拓扑寻找跟SGW最近最合适PGW的意思, SGW和PGW合设分只对UGW自己来说有意义,一般规划时合设的话域名从后往前大部分一致,最后接口名字才不一致;
送DNS时会送2个东西,一个是TAC组成的FQDN查SGW,而另一个是APN组成的FQDN查PGW;然后DNS根据这2个FQDN的引用的SGW和PGW的hostname + ip的组合关系返回给MME,即携带S11(SGW)接口的地址,S5接口(PGW的地址),里面还有topon还是topoff的hostname ;如果SGW只有一个地址和域名就肯定选这个了,然后再按topon选择和这个SGW最近的PGW;如果有多个SGW地址,那就按符合分担或者权重等选择一个SGW地址,然后按topon选择最近的PGW,如果topoff那就基本随机了..
找到SGW之后,就发createSession并携带选中的PGW的地址和APN给SGW,不晓得我的理解是不是正确,可能也没讲清楚,

点评

爱卫生  mme可以区分sgw和pgw是否是合设的。原理就是通过dns分别返回来的sgw和pgw的hostname最后这几个标签是否一样来区分的。topon和区分是否是合设的SAE-GW完全是两个独立的功能,需要区分开。  发表于 2013-9-7 19:19:42

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

站长邮箱|Archiver|51学通信 ( 粤ICP备11025688 )

GMT+8, 2018-12-14 09:18 , Processed in 0.331034 second(s), 15 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部