51学通信技术论坛

标题: 2.1 EPC中通过DNS解析PGW IP地址实例 [打印本页]

作者: 爱卫生    时间: 2012-9-2 16:17:35     标题: 2.1 EPC中通过DNS解析PGW IP地址实例

论坛有朋友提到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的地址的,需要两部。如下图所示:

[attach]1411[/attach]

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。


作者: feile99    时间: 2012-9-6 22:17:36

从你的这个例子可以看出
1. MME先选PGW,再选SGW,是否正确?
2. 如果SGW,PGW合设,MME是如何知道的? MME上静态配置?


作者: 爱卫生    时间: 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是唯一的网元标识,每个网元一个。


作者: feile99    时间: 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


作者: 爱卫生    时间: 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会有详细的规划来保证不会产生歧义。


作者: feile99    时间: 2012-9-15 23:06:22

不好意思,越来越糊涂了。

我只想搞清楚,如果S-GW和P-GW合设的情况下,MME如何通过DNS知道两者是合设的?
根据LZ的说法,MME查询S-GW和P-GW返回的hostname相同,所以MME能分辨出来。但我看不出他们的hostname的相同之处啊?
作者: admin    时间: 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一致的报文。其实你的理解是对的啦!


作者: hycl5410    时间: 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组合。
作者: hou3331    时间: 2013-3-28 16:08:25

那3G和4G网络可以共用同一个DNS吗?有没有bind 配置文件供参考下哦?
作者: admin    时间: 2013-3-28 19:40:59

个人感觉应该可以的。放到不同的zone文件里就行了吧。而且现在SGSN和MME都是合设在一起的。也没有办法分开配3G还有4G的DNS Server的地址啊,所以应该都是同一个。
作者: admin    时间: 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";
};”

作者: Dark    时间: 2013-4-10 16:02:01

MME首先根据UE提供的APN的NI部分生成APN的全名,本例中是apn06gnnv01.ericsson.se.apn.epc.mnc080.mcc262.3gppnetwork.prg
这个在MME的配置中有具体体现吗?是在imsi表里配置的吗
作者: hou3331    时间: 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有什么区别啊?
作者: hou3331    时间: 2013-5-5 00:51:56

采用了naptr寻址后,和原来的a记录寻址,好处在哪儿哦?
作者: kangminpu    时间: 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提供的。
作者: kangminpu    时间: 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了。

作者: hycl5410    时间: 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有点像国内各省之间地域的切换。
作者: chris    时间: 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,不晓得我的理解是不是正确,可能也没讲清楚,
作者: hycl5410    时间: 2013-9-7 21:52:21

[attach]2795[/attach]
建议大家有时间有兴趣的话看看这个TS。
4G DNS确实是跟23G有很大不同,真正了解4G,DNS肯定要熟悉。
大家一起学习吧。
作者: 学习爱好者    时间: 2013-12-13 23:25:12

爱总,我想问一下attah request中会携带apn吗?我看资料说这条信令是会携带的,但是我看信令,并没有找到相关APN信息,如果没有携带是HSS会用默认APN进行DNS查询吗?还有就是我想问一下,如果附着请求中携带了没有签约的apn,会出现attach reject吗?如果出现拒绝,这条信令是出现在哪条信令之后?
作者: 爱卫生    时间: 2013-12-14 11:27:26

学习爱好者 发表于 2013-12-13 23:25
爱总,我想问一下attah request中会携带apn吗?我看资料说这条信令是会携带的,但是我看信令,并没有找到相 ...

规范确实规定可以允许用户携带APN,但其实在实际应用中,UE提供APN主要是针对行业用户。针对public的APN例如cmwap和cmnet,运营商为了加强自己的控制能力(例如想主推cmwap网络业务),一般都是通过HSS下发的缺省APN的,MME会根据HSS下发的APN作为缺省APN去解析GW。

如果没有签约的话,肯定会拒绝的。一般签约信息都是在HSS回的update location answer里下发的。所以attach reject可以跟在后面了。具体在24.301里有解释的。


作者: 学习爱好者    时间: 2013-12-14 16:30:37

爱卫生 发表于 2013-12-14 11:27
规范确实规定可以允许用户携带APN,但其实在实际应用中,UE提供APN主要是针对行业用户。针对public的APN例 ...

解答的非常详细,谢谢~!

作者: 553959557    时间: 2014-5-3 18:07:45

<topon | topoff>.<interface>.<canonical name>  topon和topoff的区别是?
作者: jmt110    时间: 2014-8-15 16:59:02

楼上朋友讲的比较易懂,基本理解了mme到dns解析sgw,pgw,并选择的关系,强大!




欢迎光临 51学通信技术论坛 (http://www.51xuetongxin.com/bbs/) Powered by Discuz! X2