DNS (Domain Name System)域名系统是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。
ENUM是利用DNS机制,将E.164号码与基于DNS架构的业务资源URI结合。在国际标准下,在DNS系统中增加一个新域名(例如e164.arpa),存放各资源URI,建立E.164号码与可访问资源的映射,提供用电话号码访问资源的途径。在IMS中电话号码在ENUM中存在一一对应关系。当前若某个号码能查到ENUM信息则说明是IMS用户,查不到则走CS电路域疏通话务。
DNS和ENUM在IMS域中用于信令消息路由。DNS处理网元域名到IP地址的映射。
DNS协议对UDP和TCP协议均支持,主要使用UDP。DNS在协议栈中的位置如所示。
上层应用 | |
DNS/ENUM | |
TCP | IP |
IP |
DNS消息采用文本方式编码并使用UTF-8字符集。DNS消息分为两类:请求消息和响应消息。DNS消息由五部分组成,即:消息头(header)、问题部分(Question)、回答字段(Answer)、授权字段(Authority)、附加信息字段(Additional)。
DNS查询分为五类: NAPTR查询,A查询,AAAA查询,NS查询,SRV查询
NAPTR查询:向服务端发送一个NAPTR(Naming Authority Pointer)记录查询请求,期望服务端将NAPTR所对应的资源记录返回客户端。域名查询结果为协议+域名形式。
例: ims.com ----> _sip_udp.ims.com
SRV查询:向服务端发送一个SRV记录查询请求,期望服务端将服务(SIP服务、Mail服务等)对应的主机名和端口号返回客户端。
例: _sip_udp.ims.com ---> atspool1.hb.chinamobile.com:5060
A查询:向服务端发送一个A记录查询请求,期望服务端将域名所对应的IP地址(IPv4)返回客户端。
AAAA查询:向服务端发送一个AAAAA记录查询请求,期望服务端将域名所对应的IP地址(IPv6)返回客户端。
例: ims.com ---> 123.124.125.126
NS查询:向服务端发送一个NS(Network System)记录查询请求,期望服务端将一个域所对应的授权名字服务器或IP地址返回客户端。
例: ims.com -----> 123.124.125.126
域名www.baidu.com从左到右实际上是一个范围从小到大的过程,.com域名下baidu公司的一个www服务器。
不考虑本地DNS设备缓存的情况下,DNS查询www.baidu.com 也是从.com处查询到baidu公司,然后再查到www服务器地址。
DNS反向查询:DNS反向查询允许DNS客户端根据已知的IP地址查找主机对应的域名,设置了特殊的in-addr.arpa反向查询域用于反向查询
例:9.5.6.7 ---》 查询结果 www.abc.com
ENUM在IMS域中用于信令消息路由。ENUM处理TEL URI到SIP URI的映射。普通手机号码格式 13X-ABCD-EFGH,ABCD一般指区域码,EFGH对应区域码下的具体号码。与www.abc.com域名从左到右是从小到大的关系,手机号码正好是相反,顺序是国家+号段+区域码+4位号码。故ENUM查询需将号码倒序进行查询。
例:ENUM查询: 8675512345678 号码被转换成8.7..6.5.4.3.2.1.5.5.7.6.8.e164.arpa 去查询对应的SIP域名sip:+8675512345678@ims.com。后续可以根据SIP域名去进行路由寻址。