基于DNS的ENUM技术及其应用研究
作者: alexclark(http://alexclark.itpub.net)发表于: 2005.04.19 16:53
分类: 沧海一粒
出处: http://alexclark.itpub.net/post/670/26973
---------------------------------------------------------------
| 基于DNS的ENUM技术及其应用研究 |
|
|
|
李晓东 阎保平 |
摘要:本文首先明确解释了什么是计算机网络资源寻址定位技
术,然后提出ENUM技术是计算机网络资源寻址定位技术的一种,ENUM技术的研究和使用推广对于下一步网络应用的发展,尤其是对于电话网和数据通信网之
间的基于VoIP通讯应用的融合具有十分重要的意义。此外,本文还简单分析了ENUM的技术要点和解析流程,重点在于设计了一套实验系统用来探讨ENUM
技术和运行框架,并比较ENUM和现有典型目录服务系统之间的关系,分析并指出了此项技术在应用中面临的问题,最后结合当前的研究状况给出了发展建议和前
景展望。
关键词:ENUM、SIP、计算机网络资源定位、目录服务、DNS、NAPTR
1 引言
作者认为,ENUM、DNS以及最近出现的IDN、UDDI、Handle System、Keyword、Common
Name等技术都属于计算机网络资源寻址定位技术的范畴,它们旨在帮助用户(人或者是特定应用程序)以容易记忆或者接近自然语言的标识方式在互联网上检索
或者是查询到用户想要的计算机网络资源。从互联网出现之初采用IP地址通信到目前多种多样的寻址定位方式,计算机网络资源寻址定位技术至今取得了长足的发
展,ENUM便是应数据通信网和电信电话网之间融合而产生的一种新的计算机网络资源寻址定位方式。
ENUM技术是当今计算机网络资源寻址定位方式的热点,它是伴随三网合一,网络通讯技术和需求的发展应运而生的。它采用符合E.164标准的电话号码作为
用户通讯的入口,采用DNS技术和运行框架,为用户提供便捷的解析服务。用户可以采用电话号码完成VoIP的寻址定位,以及HTTP访问,电子邮件,目录
服务等等网络应用,并完成访问限制,查询重定向等等一系列功能。伴随网络融合,尤其是VoIP应用的普及,ENUM技术的重要性就会逐步的体现出来。
2 关键概念及技术分析
2.1 计算机网络资源定位、地址、资源标识
计算机网络资源是(Computer Network
Resource)指计算机通信网络上的一个实体,它可能是一个物理资源(交换机,路由器等等,devices),也更多的是指一种服务
(services),实体和实体间可以进行发现以及进一步的数据通信。发起通信的一方实体通过一定的寻找或者查询机制找到通信接受方的过程就是寻址/定
位(Addressing),每个通信实体在计算机网络中必须是唯一可标识的,用来在寻址后进行进一步通信的标识就是地址(Address),而为了特定
应用方便记忆和使用的,具有特定语法的,用来标识资源的特定字串就是资源标识(Name/Symbol)。目前计算机网络资源标识及其寻址定位技术已经广
泛的汲取了搜索引擎、Web服务、人机接口等等多方面的技术优势,此项研究的最终目的是为用户提供使用合理规范,技术符合标准的互联网访问入口。
2.2 DNS(Domain Name System)
在网络建设之初,用户是采用IP地址来完成网络实体间的访问和通信的。然而,一长串的数字十分不利于人们使用和记忆,因此在20世纪70年代人们开发了主
机表(Host.txt Table)
来完成主机名到IP地址的映射。然而随着网络的发展,网上主机数量的增长,通过查找主机表定位主机地址然后进行主机间通信的方式已经远远不能满足用户的需
要,而且主机表的更新和维护也大大的增加了网络传输的负载和管理的复杂度。1984年Paul
Mockapetris发布了RFC882【1】和RFC883【2】(随后被RFC1034【4】和RFC1035【5】代替),系统地描述了DNS的
基本思想,标志着DNS的诞生,DNS采用树形结构以及分级授权的机制,它分布地完成主机名到IP地址的路由,有效地实现了域名数据的分布,并提高了查询
和管理的效率,它的出现极大地推动了互联网络的发展。域名的基本语法以及配置数据的格式参见RFC1034和RFC1035【4】【5】。其基本原理是,
DNS客户端(Resolver)根据查询得到的资源记录(Resource
Record,RR)类型和关联数据来(RDATA)进行下一步的通信或者检索【3】。
2.3 NAPTR(Naming Authority Pointer)
直到目前为止,DNS仍然主要用于域名到相应IP地址的翻译,这已经成为网络发展的基础,然而随着网络应用的发展,人们希望用DNS完成更多内容的解析,从而制定了新的资源类型,NAPTR就是其中之一。
NAPTR是一个新的DNS RR类型,它实际上是一个基于重写规则地正规表达式。它完成一个特定字符串到新域名标识或者URI(Uniform
Resource
Identifier)的解析翻译。它允许DNS可以完成更为广泛的查询服务,比如完成ENUM到URI的解析【6】,一个典型的用于ENUM应用的配置
实例如下:
cid.urn.arpa. IN NAPTR 100 10 "" "" "/urn:cid:.+@([^.]+.)(.*)$/2/i" .
$ORIGIN 4.0.6.3.5.5.2.6.0.1.6.8.e164.arpa.
IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:enumsip@cnnic.net.cn!" .
IN NAPTR 102 10 "u" "mailto+E2U" "!^.*$!mailto:enummail@cnnic.net.cn!" .
2.4 E.164电话号码标准
根据CCITT的E.164标准的规定,标准的电话号码格式是由国家码(Country
Code)、区域码以及一般电话号码三部分所组成:国家码(1到3位数字)+区位码(M个数字)+一般电话(最多为15减M个数字)。比如电话号码+
(86)-10-62553604就是指“中国(国家码86)北京(地区码10)中国互联网络信息中心(一般号码62553604)”,国际电联将国家码
授权给国家实体来进行管理,国家码之后的数字号码由这个国家进行管理和分配,但是基本的分配原则仍是遵循一定的分级授权管理策略。
3 ENUM技术
ENUM技术的核心包含三个部分:电话号码预处理、ENUM解析以及DNS配置【6】,下面介绍一下前两项技术,对于DNS的配置2.3节已做论述。
3.1 电话号码预处理
用户输入电话号码,例如“+86-10-62553604”,“+”此时用来标识ENUM服务,用来区分其他基于数字的网络服务,如果用户输入的数串含有
“+”,那么将执行ENUM服务预处理。首先去掉除“+”以外的字符,例如“-”,得到“+861062553604”;然后去掉“+”;接着在每个数字
间加“.”,
得到“8.6.1.0.6.2.5.5.3.6.0.4”(之所以简单的在每个数字间加点,而不是将电联规定的国家码和国家内的区位码进行区分的目的是为
了简化处理,因为DNS可以支持127级,E164标准的16位电话号码足够使用了);最后将其反转,并添加后缀“.e164.arpa”,得到符号串
“4.0.6.3.5.5.2.6.0.1.6.8.e164.arpa”。
3.2 ENUM解析流程
当用户用支持ENUM技术的特定设备或者程序输入电话号码后,客户端应用程序根据预处理的流程对输入的电话号码进行处理之后,DNS
Resolver将处理后的字符串按DNS协议发出解析,从DNS
Server得到与此ENUM相应的URI集合;然后,应用程序根据它自身的应用需求选择相应的URI,继续执行相应的协议,完成预期的操作。
比如,以上面的DNS配置为例,用户想给拥有“+86-10-62553604”这个ENUM的单位发送Email,那么当他在支持ENUM技术的
outlook express地址栏中输入这个电话号码,那么outlook
express将电话号码进行预处理为“4.0.6.3.5.5.2.6.0.1.6.8.e164.arpa”,然后用户本机的DNS
Resolver将这个字串发给DNS Server作类似域名的解析,DNS
Server将对应这个字串配置的两个URI(sip:enumsip@cnnic.net.cn 和mailto:enummail@cnnic.net.cn )都返回给outlook express,outlook express选择mailto:enummail@cnnic.net.cn进行下一步的通信,将Email发给enummail@cnnic.net.cn,其他应用的解析流程也与此类似。
4 系统设计与实现
根据上面的论述,我们知道,ENUM技术实质上是完成了一种目录服务的查询工作,那么我们就可以用它来完成多种服务的目录查询,它的优点在于借助了成熟的
DNS技术和广为使用的DNS系统(BIND),为了进一步研究ENUM技术面临的问题以及它的应用情况,我们设计了如图1所示的一套系统来验证和评价
ENUM的应用。
我们采用了BIND作为DNS
Server,并基于Web技术完成了一套简单的注册系统,用户可以通过这个注册系统登记自己的电话号码以及可与之对应的各种服务,我们的注册系统会在用
户提交请求后修改DNS 注册系统WebSite RegistrationDNS/ENUMServer PSTN User…… SIP
ServerENUM-enabled Applications SIP Client SIP Client Gateway Gateway
Gatekeeper UserUser图1. ENUM实验结构示意图PSTN
Server,将用户需要的各种服务注册到DNS Server中去,用以其他应用服务的查询。
我们主要采用Vovida的Vocal软件作为SIP Server,QuickNet的LineJack作为Gateway,修改OpenH323
Gatekeeper作为支持基于DNS的ENUM查询的Gatekeeper构建了一套可以完成PC2Phone,Phone2PC,PC2PC以及传
统网络访问应用(Web,Email等)的实验环境,具体的实验系统结构图如图1所示。
用户用ENUM进行Web以及其他传统互联网应用的流程和上节关于Email的应用的流程类似,此处无庸赘述,本文以PC2PC、Phone2PC和PC2Phone方式的应用为例说明ENUM的工作流程,从而说明ENUM在VoIP中的应用情况。
PC2PC方式就是用户使用SIP Client软件(或者IP Phone硬件设备)进行通信,SIP
Client在获得用户输入的电话号码后,向SIP Server发起通信,由SIP Server向DNS Server(即ENUM
Server)查询,在DNS Server返回的URI集合中选取SIP类型的URI,继续发起下一步的SIP通信。
Phone2PC方式就是用普通电话机向互联网上的PC终端发起呼叫,用户拨打电话后,PSTN网将连接建立的请求发给Gateway(连接互联网与
PSTN,主要是完成信号的转换),Gateway驱使Gatekeeper查询DNS Server,然后确定对方的SIP
URI(此时URI类型为SIP),从而获得IP地址,通常是Gateway和SIP
Server建立连接,用户此时就可以用普通电话和互联网上的PC终端(比如说,Cisco的IP Phone)进行通讯。
PC2Phone方式的呼叫方向恰与上述Phone2PC方式相反,SIP Server此时查询获得的URI类型为TEL,查询后是由SIP
Server向Gateway发起呼叫连接,然后进行通讯。在这种情况下,我们是构建了简单的应用,如果SIP
Server和Gateway分属不同服务商,或者有很多的Gateway,那么需要另外一个目录服务系统来完成特定号码与Gateway之间对应关系的
查询,以便SIP Server可以获知与特定电话号码对应Gateway的IP地址,从而进行下一步的连接建立和通讯[8]。
以上我们可以看出,在VoIP应用中,ENUM完成了电话号码到相应URI(SIP,TEL)的翻译功能。
5 ENUM与其他目录服务系统的关系
根据以上的描述和实验系统的分析,我们可以知道,ENUM实际上是一种专用的,具有特定服务内容的,以及具有特殊运行服务需求的目录服务系统,它的功能是完成检索电话号码与其对应的URI,充当数据网和电话网之间通讯的桥梁。
目前有两种典型的而且已经广泛使用了的目录服务系统:一个是DNS,用来完成域名到IP地址的解析;一个是LDAP(Lightweight
Directory Access Protocol),它是一种通用的目录服务系统,广泛的用于各种系统中的用户管理,文件管理等等方面【9】。
5.1 ENUM与DNS的关系
我们知道,电话号码的编码也是层次结构的,这和DNS的层次结构是类似的,因此可以十分方便的将电话号码和因特网网络资源结合起来,输入E.164规则的
电话号码,输出URI(唯一资源标识符)。【7】因此,ENUM技术的本质就在于采用业已成熟的DNS技术和体系结构来提供基于电话号码的目录服务。
ENUM服务首先提供了电话号码授权树到服务注册商之间的映射,这种授权不了解与电话号码相关的特定服务信息,但是它提供了到服务商的参考,而服务商了解
这些信息。对于给定的电话号码,完成授权者到服务注册商的名字服务器之间的重定向。正是因为DNS这种层次结构,以及快速无连接查询和分布式管理模型,使
得它可以比较理想的完成这种映射。
所以,ENUM是采用特定资源记录类型提供特定服务的,构建在DNS技术之上的目录服务系统。
5.2 ENUM与LDAP的关系
LDAP服务理论上提供统一的名字空间(namespace),访问者在任何地方都能看到同样的数据视图。它为各种网络服务、管理系统、应用系统提供用户
管理、配置信息管理、存取控制管理、客户桌面管理等管理的集中入口和操作界面,所有用户的信息被所有应用共享,减少了传统系统中的冗余信息并简化了管理的
复杂度。目录服务已经逐渐成为网络服务以及网络操作系统的核心服务,是网络应用和分布式计算的基础,LDAP能以较低代价完成高读/写比的目录服务功能,
目前主流的LDAP服务器均可以完成多种数据的目录服务功能【10】。
理论上讲,LDAP可以完成所有ENUM的功能,可以提供基于DNS技术的ENUM解析服务器所有可以提供的目录查询功能,但是遗憾的是,尽管LDAP已
经相当简洁,但是它仍然无法与DNS相比,DNS系统构建简单和资源低耗的特点决定了它比LDAP有更好的快速稳定的目录查询服务。此外,最重要的一点,
LDAP目前还没有全球一致的服务和运行体系,以及实际的全球一致的名字空间和运行检验,因此作者认为,这是ENUM没有选择LDAP的而选择DNS最主
要原因,而且LDAP在相当长的时间内都没有可能取代ENUM技术来提供电话号码到URI的全球目录服务。
6 ENUM系统面临的挑战
由于涉及到与电信电话网的融合问题,二者在服务的要求上有诸多的不同。不同服务需要的服务质量是不同的,如何设计和管理以满足电信级的服务要求是十分重要的。主要有以下三个方面的问题:
6.1 服务类型的选择与定义
服务资源记录(与ENUM对应的URI资源集合)直接定义了既定电话号码可以提供的服务。应用程序根据电话号码可以得到所有服务的集合,而采取何种服务进
行下一步的操作则是由应用程序自己决定的,比如应用程序支持SIP,它可以根据电话号码获得SIP和mailto两种URI,但是它只采用SIP继续它下
一步的动作。服务注册商必须确保能够提供对应同一个电话号码的多种服务,可能会有多个服务提供商,这就需要一个判优的功能。
此外,可提供ENUM解析的URI类型需要明确定义,还有由服务商自己提供的特定服务包含的是仅仅特定服务提供商才能了解的服务操作,如何保证服务内容的安全、稳定和有效性也是需要进一步考虑的问题。
6.2 关于TTL值
电话号码及其相关信息经常会改变,那么与之相对应的ENUM服务也要随之改变,必须尽可能及时地保持二者信息的一致性。有效的ENUM服务必须将TTL的
值设置为适当的数值,从而保证电话号码再分配策略和ENUM服务的资源记录更新二者间的一致性,目前IETF的建议是60秒。
6.3 电话号码可携性(Telephone Number Portability)对ENUM服务的影响
如果电话号码转为其他授权者管理,那么也要修改相应的ENUM服务的NS记录。
服务注册商也可以再分配。当个人或者公司改变电话服务提供商,并且希望那个电话服务提供商也提供服务注册功能。那么新的服务注册商要重建NAPTR记录,并且授权者要完成从一个注册商到另一个注册商之间的转变。
如果一个电话号码的特定服务从一个服务提供商换到另一家服务提供商,那么表明此项特定服务的NAPTR记录也要改变。服务注册商要从一个服务提供商那里删除记录,并在另一个服务提供商那里添加一条记录。
7 结论及其应用展望
目前IETF(Internet
Engineering Task Force) ENUM WG和ITU(International Telecommunication
Union)ITU-T
SG2对ENUM都在进行着极为积极和广泛的研究,我国信息产业部以及相关单位也投入和相当地人力进行了相关的研究,测试以及推广工作,可以说,ENUM
将成为数据通信网和电话网融合的一个关键技术,加强对ENUM的技术特点和运行服务的研究,将有力地促进网络的发展,从而有效地利用现有的网络资源,尤其
是宽带网络资源。本文作者将继续在ENUM技术的服务质量,与电信业务融合的技术需求,以及与下一代计算机网络资源寻址定位技术之间的发展关系等方面作进
一步的研究。
参考文献
[1] P. Mockapetris, “Domain Names – Concepts and Facilities”, RFC882, November 1983
[2] P. Mockapetris, “Domain Names – Implementation and Specification”, RFC883, November 1983
[3] P. Mockapetris and K. Dunlap. Development of the Domain Name System. In Proceedings SIGCOMM 88,April 1988.
[4] P. Mockapetris, “Domain Names – Concepts and Facilities”, RFC1034, November 1987
[5] P. Mockapetris, “Domain Names – Implementation and Specification”, RFC1035, November 1987
[6] M. Mealling, R. Daniel, “The Naming Authority Pointer (NAPTR) DNS Resource Record”, RFC2915, September 2000
[7] P. Faltstrom. “E.164 number and DNS”, RFC2916, September 2000
[8] S. Lind, “ENUM Call Flows for VoIP Interworking”, draft-lind-enum-callflows-03.txt, February 2002
[9] L. Howard. “An Approach for Using LDAP as a Network Information Service”RFC2307 March 1998
[10] 李晓东,阎保平,基于CORBA的目录服务在基于Web的网络信息管理中的应用,计算机工程与应用,2001,第37卷,第14期,43-45
Research on DNS-based ENUM Technology and It’s Application
LI Xiaodong YAN Baoping
(Computer Network Information Center, Chinese Academy of Sciences, Beijing 100080, China)
Email: LEE@cnnic.net.cn
Key Words: ENUM, SIP, Computer Network Resource Addressing, Directory Service, DNS, NAPTR
http://www.cnnic.net.cn/html/Dir/2004/02/17/2159.htm


