APP下载

双网络层方案:全新的下一代互联网解决方案

2014-02-28

电信科学 2014年8期
关键词:域名IP地址网关

李 实

(中国电信股份有限公司上海研究院 上海200122)

1 引言

基于IPv4的互联网是由美国军方的网络发展起来的,采用了32 bit的地址,总地址空间为232≈42亿个。但后来IPv4网络迅速扩展到全球,再加上一些比较奢侈的设计浪费了较多的地址,地址资源早已经枯竭。互联网迫切需要一个新的方案来解决地址不足的问题。

2 现有解决方案特点及前景

2.1 IPv6

早在20世纪90年代初期,互联网工程任务组(IETF)就已经预见到这个问题并着手下一代互联网协议(IP-the next generation,IPng)的制定工作。IETF在RFC1550里进行了征求新的IP(互联网协议)的呼吁,并公布了新的协议需实现的主要目标:

·支持几乎无限大的地址空间;

·减小路由表的大小;

·简化协议,使路由器能更快地处理数据分组;

·提供更好的安全性,实现IP级的安全;

·支持多种服务类型,尤其是实时业务;

·支持多目传送,即支持多播;

·允许主机不更改地址实现异地漫游;

·支持未来协议的演变;

·允许新旧协议共存一段时间;

·支持未来协议的演变以适应底层网络环境或上层应用环境的变化;

·支持自动地址配置;

·协议必须能扩展,它必须能通过扩展来满足将来互联网的服务需求;扩展必须是不需要网络软件升级就可实现的;

·协议必须支持可移动主机和网络。

作为对RFC1550的响应,包括SIPP等在内的若干IPng提案被提交到IETF。最终IETF决定以SIPP作为IPng的基础,同时把地址长度由64 bit增加到128 bit。新的IP称为IPv6。其版本是在1994年由IETF批准的RFC1752,在RFC1884中介绍了IPv6的地址结构(现在RFC1884已经被RFC2373所替代)。

2.1.1 技术特点

IETF在RFC1550中提出了若干要求,但不幸的是,其中偏偏没有对兼容性的要求。最终选定的IPng方案——IPv6,也确实与IPv4不兼容。IPv4的地址空间约为42亿个,当这个网络因为地址不足而要升级的时候,可以想象网络中已经有了太多的IPv4终端和网络设备。兼容性的缺失导致全球网络升级变得极端复杂与昂贵。

2.1.2 推广面临的困难

虽然用IPv6来解决IPv4地址不足的问题俨然已是众望所归,但IPv6从1994年诞生至今已经过去了20年,使用范围仍然局限于少数的教育机构和实验场所,没有进行大规模的商用。究其原因,还是因为IPv6不兼容IPv4所致。

对网络而言,初期IPv4地址很多,用户很少,没有升级的必要;后期IPv4地址基本耗竭,但同时已经有太多的IPv4用户。网络需要升级以允许更多新用户加入,但需要首先解决数以亿计的既有用户的升级问题。实际上,由于IPv6与IPv4不互通,IPv6网内可以访问的资源极其贫乏,SP和用户并没有加入IPv6网络的愿望。

2.1.2.1 运营商的困境

(1)由于西方国家在IT产业上的领先,西方国家的IP地址资源相对丰富,不急于升级到IPv6;非西方国家因地址相对匮乏,更有升级的紧迫性。但是同样由于西方在IT产业上的领先优势,非西方国家又必须保持访问西方国家IPv4网络中的资源的能力。这就导致非西方国家的运营商即使在升级到IPv6之后也必须长期向公众提供IPv4接入服务(无论运营商自身网络运行在何种协议栈上)而不可能断然关闭IPv4服务。

(2)由于IPv4地址紧张,长期以来运营商给每个宽带公众用户只分配1个IP地址,而用户又确实存在多终端接入的需求,这导致用户自备NAT型家庭网关成为普遍现象,而这些家庭网关又普遍不支持IPv6。如果运营商希望用户默认使用IPv6网络,将不得不为用户提供支持IPv6的家庭网关。否则,对用户而言,既然运营商仍然支持IPv4接入,那就继续使用原有家庭网关和IPv4吧!以中国为例:到目前为止中国已经有了约2亿户宽带用户,升级到IPv6需要为所有用户更换家庭网关。按保守价格每只150元计算,光家庭网关就要花费300亿元,代价极为巨大。同时,由于需要上门为用户更换设备,工程量也是巨大的。而这些被换下的用户家庭网关将很难再有新的用处,又形成了巨大的浪费。

(3)升级到IPv6需要大规模地升级网络中的设备(多数是基于硬件的替换),而这个行为客观上只是替换了目前运行良好的IPv4设备。运营商投资巨大却无实际回报,从企业运营的角度来说不是个理性的行为。所以运营商更倾向于深入挖掘已有IPv4设备的潜力而没有升级到IPv6网络的积极性。

(4)就过渡方案而言,兼容性太差会严重影响网络的正常使用,兼容性太好又会让用户感觉没有必要切换到IPv6网络,从而导致IPv6迟迟不能成为主流。目前主流运营商已经计划通过NAT444、DS-Lite和LAFT等技术来过渡。这些技术都包括了运营商给用户分配私网IPv4地址+NAT,在解决IPv4接入的同时又导致网络进一步向NAT结构的IPv4网络深度深化了。同时一些主流过渡方案也要求运营商对用户的家庭网关拥有最高控制权,这也导致必须由运营商来负责给用户提供家庭网关。

(5)运营商需要为过渡准备若干软硬件设备,而这些设备仅仅是在过渡过程中临时使用的,在过渡完成后将没有任何价值,也形成巨大的浪费。

2.1.2.2 SP的困境

IPv4网络采用32 bit的地址标识主机,而IPv6网络采用128 bit的地址标识。对于很多在应用层标识主机的应用而言,如果要升级到IPv6,必须修改应用层的主机标识。而要做到这一点,往往意味着软件甚至在应用层面也必须做出较大的调整。事实上这是所有在IP网络上提供较大范围业务的组织的困境,包括通常意义上的互联网SP、拥有复杂内部业务网络的大型企业以及拥有诸多业务平台的运营商。对他们而言,这个升级实际上也只是替代了目前运营良好的业务系统,并没有功能的增强或者性能的提升,也是投入巨大但没有实际回报的行为。

另一方面,既然运营商仍然支持用户的IPv4接入,即使分配给用户的是私网地址并且需要经过NAT才能访问SP提供的业务,经过这么多年的发展,对大多数业务而言,这种模式也已经工作得足够好。也就是说,业务本身不要求SP升级。

如果SP不升级,那么将来还可能面临公网IPv4地址不足导致服务器无法开通的问题。考虑到目前有大量公网IPv4地址是动态分配给宽带用户的,随着分配私网地址的过渡方案的逐渐成熟,收回一些公网地址给服务器使用将是很容易做到的事。那么地址不足的问题对服务器而言也不复存在了。既然如此,为什么还要升级到IPv6呢?

2.1.2.3 宽带用户的困境

对宽带用户而言,升级不仅没好处,反而可能有诸多不便之处:需要追加投资、升级操作系统、更换家庭网关等。但因为网络转发IPv6报文效率偏低以及IPv6网络上资源不足等原因,用户得到的却是网络体验的下降。而如果什么也不做,现有的网络已经能够很好地满足需要。既然如此,为什么要升级到IPv6呢?

2.1.3 小结

概言之,对运营商、SP和宽带用户而言,升级到IPv6带来的感受都是负面的。眼下就要付出很大的代价,面对很大的麻烦,好处却还在遥远的未来。所以各方都是口号大于行动也就很好理解了。

在2011年6月举办的“世界IPv6日”活动上,有不少专家认为:“尽管IETF、ISOC和其支持者正在不遗余力地推广IPv6,但是IPv6并不是一件必然要发生的事情。”

2.2 NAT

网络中的地址至少有两个含义:主机在网络中的唯一标识;网络将报文转发至主机的寻路依据。NAT协议通过为内网主机分配私网地址,并将私网的IP:port对映射为公网的IP:port对,一定程度上缓解了IPv4地址不足的问题。但NAT为主机分配私网地址,导致主机失去了网络中的唯一标识。NAT破坏了网络的对称性,导致网络日益向C/S结构演化。同时,家庭网关层面采用NAT技术也没有彻底解决IPv4地址不足的问题,运营商仍然缺乏足够的地址分配给用户。

前已述及,运营商计划通过给用户分配私网IPv4地址+NAT将新用户接入IPv4网络。这样的方案同时包括在主流运营商优选的几个过渡方案如NAT444、DS-Lite和LAFT 4over6等方案中,虽然细节各有不同。虽然NAT的引入会破坏网络的对称性,但NAT技术在家庭网关上的广泛应用已经充分证明了它的生命力。

虽然这些方案都是作为过渡方案出现的,但这些方案应用后的确会有效缓解IPv4网络中地址不足的问题。如果业界以IPv6为下一代互联网解决方案,考虑到所有各方升级到IPv6将要付出的成本和面对的麻烦,有理由相信这些过渡模式中的NAT成分会得到充分的发展。人们会信任并依赖这些方案中包含的NAT技术而忽略这些方案中的IPv6部分,地址不足不再是个问题,进而网络会长期停留在“过渡阶段”并失去向IPv6演化的动力。

3 IPng应有的特点

如果不希望网络长久地停留在迈向IPv6的过渡状态中,不希望网络长久地停留在被NAT破坏了对称性的状态中,那么应该重新考虑:下一代互联网解决方案,是否还有更好的选择?

IPng应该具备哪些特点?1993年IETF提供的RFC1550列举了若干条件,唯独没有要求与已有的IPv4兼容。20年后再来审视这份文稿,已经可以清晰地看到兼容性要求的缺失导致网络升级所面临的巨大困难。因为IPv6与IPv4不兼容,升级迟迟不能完成,甚至在IPv4地址已经耗竭的今天,仍然没有足够的乐观的理由。

有理由要求一个合格的IPng技术必须同时具备两个特点:地址空间充分大,以解决IPv4地址不足的问题;与IPv4网络兼容,以方便顺利升级。

一个偶然的机会,笔者想到了一个可以同时满足上述两个要求的方案。因为高度兼容IPv4网络,需要升级的网络设备极少,升级既经济又容易,与IPv6方案相比成本几乎可以忽略不计。在此将这个新方案介绍给大家。

4 新思路:双网络层方案

4.1 协议栈

新协议在原IP层之上增加一层,放入报文的源、目标主机的域名——姑且称之为域名层。以常见的IP over Ethernet为例,增加了域名层的新协议栈如图1所示。鉴于原协议被称为TCP/IP,此处姑且将新协议称为TCP/DN/IP(DN=domain name)。

新协议使用域名作为主机全球唯一的标识和寻址依据。

新协议在域名覆盖的范围内(可以包括部分或全部子域)使用整个IPv4地址空间进行编址,因此域名还可代表IP域。

图1 TCP/DN/IP协议栈

IP域的特点如下。

·每个IP域独立编址,IP地址在单个IP域内唯一。

·IP域内的路由器按传统方式根据IP地址转发报文。也就是说,IP域内的IP路由器不需要升级。(TCP/DN/IP报文因为没有修改IP层报文格式,仍是标准的IP报文,在IP域内转发时可以在传统IP路由器上正常转发)。

·不同的IP域在IP层不互通。报文跨IP域转发时,需要域名路由器(domain name router,DNR)根据报文头部的域名层信息进行转发。

不考虑少数被保留用于特殊目的的地址段,目前的IPv4地址正是在全球范围内统一编址的,正好符合定义,姑且称之为“全球域”。

第4.2节的“转发场景”可帮助理解上述概念、特点以及本方案的实现机制。

4.2 完整的转发场景

4.2.1 跨域访问

如图2所示,有3个IP域,分别是全球域(.)、中国国家域(cn.)和美国国家域(us.)。每个IP域独立编址。不同的IP域在IP层不互通,须通过域名路由器转发。

图2中各设备基本配置见表1。

表1 典型流程中各网络设备基本配置

图2 典型的TCP/DN/IP报文跨域转发流程

可以看到,由于划分了不同的IP域,同一个域名在不同的域中可以映射为不同的IP地址,不同域中的主机也可以拥有同样的IP地址。

另外,需要在DNS中新增DNA资源类,已升级的主机在DNS中注册DNA资源,仍旧映射为IP地址,用以告知查询方目标主机已升级。未升级的主机只有A类型的资源。

host.cn向host.us发出的报文全程转发流程如下。

(1)host.cn向本域的DNS服务器查询host.us的IP地址(DNA资源类型)。

(2)dns.cn在cn域内的接口上维持表2所示的解析。

表2 dns.cn在cn域内的解析

此表将域内的域名(以cn.结尾)解析为对应的域内IP地址,将所有其他域名(根据DNS命名规则,一个域名要么属根域,要么属根域的子域,必然可与“*.”匹配)解析为通向全球域的DNR的IP地址。

在本例中,dns.cn发现是域内主机在查询域外主机host.us,返回相应的CN DNR在cn域内的接口IP地址:1.1.1.1。

(1)host.cn收到DNS查询结果后,域名层填入host.us为目标地址,host.cn为源地址,IP层填入DNS返回的CN DNR IP作为目标地址,见表3,然后将报文发出。

表3 host.cn发送报文前的报头内容

(2)此报文被cn域内的所有IP路由器作为标准IP报文转发,并最终抵达dnr.cn。

(3)dnr.cn收到报文后,发现目标地址是host.us,在全球域内查询host.us对应的IP。

(4)全球域DNS维持的表格中包含表4所示记录。

表4 全球域DNS(dns.)解析

根据DNS的实现机制,全球域中的DNS 3.3.3.4负责解析us.域内的域名。此时查询会被转向到dnr.us。

dns.us面向全球域的接口维持这样的解析表格,见表5。

表5 dns.us在全球域内的解析

也就是说,对所有从us.域外查询us.域内主机的请求,一律返回3.3.3.3。

对于dnr.cn的查询host.us的请求,DNS最终返回

3.3.3.3 。

(5)dnr.cn将IP层的目标地址替换为DNS返回值,IP层的源地址替换为本机出口地址,见表6。

表6 dnr.cn转发前的报头内容

然后,dnr.cn将报文从全球域端口发送出去。

(6)dnr.us收到报文后,在us.域内通过DNS查询到host.us的IP地址为100.100.100.100,将IP层目标地址替换为DNS返回的100.100.100.100,IP源地址替换为dnr.us出口地址1.1.1.1,见表7。

表7 dnr.us转发前的报头内容

然后将报文从us.域内接口发出。报文在us域被若干IP路由器视为普通IP报文转发,直至抵达目标主机host.us。

作一个类比:IP报文穿越不同的以太网广播域时,IP层的源和目标地址保持不变,而MAC层的源和目标地址在不停地变化。TCP/DN/IP报文穿越不同的IP域时,域名层的源和目标地址保持不变,而IP层的源和目标地址在不停地变化。两者的思路是一致的。

最后,由于域名层含有源地址“host.cn”,反向报文可以循相同的机制返回。

4.2.2 域内访问

(1)hostA.cn(已 升级主机)发 出 基 于TCP/DN/IP的DNS query到DNS服务器,查询hostB.cn的IP地址(DNA资源类型)。

(2)DNS服务器发现是域内主机在查询域内主机的IP地址,返回hostB.cn的IP地址。

(3)hostA.cn将hostB.cn和hostA.cn分 别 作 为 报 文 的目标地址和源地址填入报文的域名层,DNS返回的IP地址作为目标地址填入IP层,即可正常访问hostB.cn。

可以看到,域内的访问流程与既有模式是完全一致的。

值得一提的是,本协议中在单个IP域内域名与IP地址保持一一对应关系,既可以用域名标识主机,也可以继续使用IP地址标识主机。这个特点为那些只需要在单IP域内运作的业务平台提供了很大的方便——它们根本就不需要升级。

4.3 NAT家庭网关之后的终端接入方案

如前所述,目前NAT型家庭网关得到了最为广泛的应用。

TCP/DN/IP报文无法通过NAT路由器(即使能通过,因为NAT路由器无法进行反向映射,返回的报文将无法到达正确的内网主机)。

可以考虑用如图3所示的方案来解决这个问题。

如图3所示,在IP层与DN层之间再插入一个标准的UDP层。这个新增的UDP层可以保证报文正常通过NAT网关。需要为TCP/DN/IP分配一个标准的UDP端口,所有支持TCP/DN/IP的设备都在这个端口侦听,DNR则仍然按前述规则根据域名转发。

用户不必对NAT路由器做任何改动,只要升级所有的终端使用这样的协议栈,就可以同时实现多终端接入以及对全球网络的无障碍访问。

如果将来家庭网关设备商生产支持TCP/DN/IP的路由器,那么每个家庭内部将有一个独立的IP域,而且仍然只需要运营商分配1个IP地址作为WAN口地址,路由器根据域名进行转发,那么家庭内部可以接入任意多个主机并且全部全球可达。

这个设计还有个附带的优点是:升级对用户的影响是正向的。用户如果不升级家庭网关,那么可以获得与当前一样的服务(可以主动发起连接,但不能接收传入的连接);用户如果升级家庭网关,那么家庭所有终端就外部可达了。因此用户会倾向于主动升级。

4.4 域名解析方案

4.4.1 DNS响应规则

比较前述跨域访问与域内访问的全过程,可以发现在两种场景下主机的行为并无不同。差异完全来自DNS的解析机制。事实上本方案嵌入的域名层成为了新的网络层,DNS实际上构成了域名层的路由平面。

本方案中DNS响应规则如下。

·对于同域的查询,返回目标主机在本域内的IP地址。

·对于跨域的查询,返回可以转发报文到目标域的DNR在本域内的接口IP地址。

在这个机制中,DNS实际负责域名层的路由,而DNR只负责转发。

4.4.2 固定域名解析

DNS中增加一个DNA资源类型,值为升级后的TCP/DN/IP主机的IP地址。DNS以此方式告知查询发起方:目标主机已支持TCP/DN/IP。

主机完成升级后增加DNA类型的项目到DNS数据库中。

4.4.3 动态接入用户的域名自动配置方案

新协议要求每台主机都需要一个可解析的域名。这对原先已有域名的网站来说不是问题,但动态接入的宽带用户则比较麻烦。目前的宽带用户多数是按需接入并动态分配IP地址的,如果为它们提供可解析的域名,则DHCP系统要进行调整,涉及几乎所有的宽带用户(数以亿计)。建议采用如下的自动配置主机域名方案,只需对DNS稍作调整,即可给动态接入的主机分配合法、可访问的域名而完全不必触及DHCP。

自动配置主机域名方案如下。

(1)在本域DNS中添加localdomain对应的别名,值设置为本域域名。譬如cn.域内就将localdomain对应的别名设置为“cn.”。

(2)升级到TCP/DN/IP的主机接入网络后,按传统方式通过DHCP向网络申请IP地址和DNS服务器。

图3 可通过NAT路由器的TCP/DN/IP协议栈

(3)主机在配置IP并得到DNS地址后,向DNS服务器查询“localdomain”对应的CName字段,并将返回的别名设置为本机所在域的域名。

(4)将本机的IP地址的点分十进制字符串,用“[]”括起来作为主机名。

(5)通过以上方式生成本机的完整域名。譬如一台主机分配到的IP地址是100.100.100.100,所在域是“cn.”,那么按这个规则生成的域名就是“[100.100.100.100].cn”。也可以考虑采用其他编码方式如十六进制等以充分缩短域名长度。

(6)可以考虑前述生成规则允许嵌套(例如当主机位于支持TCP/DN/IP的家庭网关之后时),这样会生成诸如“[192.168.1.10].[100.100.100.100].cn”形式的地址。这样的地址客观上具备源路由性质,但过长的域名同时也会降低报文的效率,需要谨慎考虑。

网络上的TCP/DN/IP主机在解析域名时,先比较目标主机所在域与本机所在域是否相同。若相同,视为处于同一个域。再看去掉域名后最右的部分是否符合自配置的主机域名的格式。如是,则直接从中还原出IP地址,不必再向DNS查询。其他情况仍旧向DNS查询目标主机IP地址。

(7)还可以再扩展一下:假设一个NAT网关公网地址为100.100.100.100,一台位于该NAT网关之后的主机地址为192.168.1.10,在UDP端口2000侦听TCP/DN/UDP/IP格式的报文,而NAT网关已经预先配置好将UDP端口2010映射到该主机的2000端口。该主机知道自己位于NAT网关之后并且知道端口对应关系,则可以将自己的地址配置为[100.100.100.100:2010].cn。域内其他主机看见这样格式的目标地址时,即可启用TCP/DN/UDP/IP协议栈并将目标端口设为2010。通过这种方式,NAT网关之后的多台主机能够接收外部发起的到TCP/DN/UDP/IP协议栈任意端口的传入连接。

这个机制同时还会带来另一个好处:主机除了在接入时查询一次本域域名外,同域其他主机访问时不需要查询DNS,充分节省DNS资源。

4.5 过渡方案

4.5.1 未升级主机访问域内主机

(1)hostA.cn(未升级主机)向DNS服务器查询hostB.cn的IP地址(A型资源)。

(2)DNS服务器发现查询的是本域的目标主机,返回hostB.cn的IP地址(A型资源)。

(3)hostA.cn通过TCP/IP与hostB.cn通信。

此例中无论hostB.cn是否已升级,hostA.cn均可使用TCP/IP与hostB.cn正 常 通 信。

事实上,如果hostA没有访问域外主机的需求(可以相信较长一段时间之内cn域会是中国唯一的IP域,亦即用户没有访问境外主机的需求),那么用户主机甚至不需要升级。

4.5.2 已升级主机访问域内主机

(1)hostA.cn(已升级主机)发 出 基 于TCP/DN/IP的DNS query到DNS服务器,查询hostB.cn的IP地址。为了促进全网早日完成升级,操作系统默认优先查询DNA类型。

(2)DNS服务器发现查询的是本域目标主机,应返回hostB.cn的IP地址:

·如果数据库中有对应于hostB.cn的DNA资源类型,说明hostB.cn已升级,返回标明为DNA类型的IP地址;

·如果数据库中只有对应于hostB.cn的A资源类型,说明hostB.cn未升级,返回标明为A类型的IP地址。

(3)hostA.cn收到DNS查询结果:

·如果收到的是DNA类型的返回结果,说明目标主机已升级,采用TCP/DN/IP与之通信;

·如果收到的是A类型的返回结果,说明目标主机未升级,采用TCP/IP与之通信。

4.5.3 未升级主机访问域外主机

未升级主机是无法访问域外主机的。本方案可以自然地将用户导向指导升级的网页。

(1)host.cn(未 升 级 主 机)发 出 基 于TCP/IP的DNS query到DNS服务器,查询host.us的IP地址(A型资源)。

(2)DNS服务器发现这是一个域外的主机域名,且源主机未升级(因其查询A型资源),返回引导升级的Web服务器的IP地址。

(3)host.cn如果是想打开目标主机上的Web网页,此时会自然打开引导升级的Web页面。

4.5.4 已升级主机访问域外未升级主机

4.5.4.1 NAT方案

如图4所示,本场景中,中国国家域内的主机host.cn和DNS.cn均已升级,而全球域中的目标主机server.com未升级。

步骤(1)~步骤(3)同第4.2.1节,步骤(4)如下。

CN DNR收到报文后,发现目标地址是host.us,在全球域内查询host.us对应的IP地址。由于server.com未升级,CN DNR只能得到一条A记录的返回。

图4 TCP/DN/IP主机访问TCP/IP主机-NAT型过渡方案

·如果继续转发报文到server.com,连接将会因为server.com无法解析TCP/DN/IP协议栈而失败。为避免这种情况,CN DNR转入NAT模式,将cn域内的(DN圳DN)报文映射为全球域内的(IP圳IP)报文。

·目前已经从IANA申请到的所有IP地址均可视为全球域中的地址,可作为此NAT中的源地址。由于地址数量充足,此处的NAT甚至不需要进行端口转换。此举可以节省相当多的路由器资源。

本方案属过渡方案,是DNR的可选功能。

4.5.4.2 VPN方案

通常NAT方案已经满足要求。有一些特殊的应用如果未及时升级,可能会因为ALG问题不能成功连接。此时用户可选择VPN方案。

(1)用 户 通 过TCP/DN/IP连 接 到 全 球 域 内 的VPN服务器,获得一个全球域内有效的IP地址。此时即可通过TCP/IP访问全球域内任意主机。

(2)VPN建立期间,主机同时拥有两个IP域的IP地址,可能会导致一定的混乱。可以考虑利用协议栈区分两者。即,只用TCP/DN/IP访问物理接口所在的IP域,只用TCP/IP访问VPN接口所在的IP域。需要为两个协议栈启用独立的路由表。

(3)运营商鼓励用户和服务提供商尽快升级操作系统。VPN方案可交由社会上独立的商业机构运营,运营商不一定需要自己建立这样的服务器。互联网上现有的VPN提供商的服务器稍加改造即可提供此项服务。

4.5.4.3 部署策略

客观上,过渡技术始终面临一个悖论:如果新技术的兼容性不好,那么会面临强烈的反对;如果兼容性太好,那么用户根本没有过渡的愿望。所以运营商必须在过渡技术的选择上寻找一个平衡点。

事实上,运营商可以完全不部署本节描述的两个过渡方案,只需要在主流网站和多数终端升级之后从全球域中分离出国家域。这样,未升级的主机将无法完成跨域的访问,未升级的服务器也无法响应跨域的请求,如此也可以对用户和服务商形成升级压力,促进全网加速升级。

5 升级路线

5.1 运营商网络升级

5.1.1 DNS服务器

IP域内的全部DNS服务器需要升级以按前述本协议的响应规则动作。理论上在域边界上至少设置一台本域的DNS服务器以响应外部主机查询本域主机地址的请求。

同时所有DNS服务器在数据库中新增DNA数据类型,升级到TCP/DN/IP的主机在DNS数据库中配置此数据。查询方借此可获得被查询方是否已完成升级的信息。

5.1.2 边界路由器

将域边界 (相当于国际出口)上的路由器升级为DNR。这个升级可能是基于硬件的,但网络一直在扩张,换下来的路由器可以用在IP域内其他节点,不会形成浪费。

国际出口链路通常有多根,域边界DNR也可能不止一台。DNS可以顺次返回不同的DNR域内接口地址给查询者以引导流量至不同的出口链路,以实现流量均衡。

5.2 用户主机升级

5.2.1 家庭网关

家庭网关可以有如下调整办法。

(1)家庭网关工作在二层桥接模式(关闭NAT功能)。运营商给用户多个终端分配同网段的IP地址。此方案可以让用户使用TCP/IP访问域内主机、使用TCP/DN/IP访问全球主机,但要求运营商分配较多的地址资源。

(2)家庭网关工作在三层路由模式(关闭NAT功能)。运营商给用户分配WAN口地址以及LAN网段的地址段。此方案可以让用户使用TCP/IP访问域内主机、使用TCP/DN/IP访问全球主机,但对运营商要求较高,运营商不仅要有足够的资源分配给用户,同时还要考虑分配的技术,如用户的LAN网段的地址段如何分配(手工还是自动分配),用户的内网路由如何与运营商的网络路由协同。

(3)家庭NAT网关保持不变

·用户终端继续使用TCP/IP,按传统方式访问域内其他主机。

·用户终端使用TCP/DN/IP中的TCP/DN/UDP/IP协议栈,访问全球已升级主机。

(4)长远来看,家庭网关会向支持TCP/DN/IP发展。此时运营商只需要分配1个IP地址给用户,用户的LAN网段自成IP域,自行分配地址即可。此时只需要做一个事情:将用户的TCP/DN/IP路由器注册到Internet的域名系统以实现正常解析。

比较而言,方案(1)、方案(2)对地址资源要求比较高,而且技术较复杂,运营商需要调整为数众多的接入层设备。同时,因为需要分配较多的地址给用户,将来可能不得不设立省级IP域,会带来较大的复杂度(譬如,如果运营商只在国家级设一个IP域,那么运营商的业务平台系统都在同一个IP域中,现有平台不需要任何调整,可以继续运行在TCP/IP上。而如果设立省级IP域,则运营商的业务平台系统需要升级以支持TCP/DN/IP),不是笔者推荐的方案。方案(3)则比较合适,无论运营商还是用户都不需要调整。如果有合适的协议让新增的TCP/DN/IP路由器可以自动注册到域内DNS,方案(3)可以自然发展到方案(4)。

5.2.2 开发平台

在操作系统升级之后,业界主流的开发平台需要及时升级,提供新的API以支持新的协议栈。以此为基础,应用软件可以及时升级以使用新的协议栈。

5.2.3 操作系统

用户如果不升级操作系统,不影响对域内主机的访问。

操作系统升级后处于TCP/IP和TCP/DN/IP的双栈模式。操作系统升级以支持TCP/DN/IP后:

·按第4.4.2节的方案配置本机;

·为了支持VPN过渡方案,主机还应当支持在VPN接口启用时,根据协议选择网络端口的路由方式(如第4.5.4.2节所描述)。

5.2.4 应用软件

5.2.4.1 客户端(发起方)

将目标主机的域名传递给操作系统提供的新API,理论上就足够了。

有些应用在应用层携带的IP地址信息,如FTP、H.323等,这些协议/应用需要升级,用域名代替IP地址才可以在跨域的TCP/DN/IP网络上正常运作。

5.2.4.2 服务端(接收方)

软件打开一个TCP端口进行侦听时,操作系统自动在TCP/IP和TCP/DN/IP两个栈上同时打开。如果软件涉及具体的IP地址,那么需要用域名代替IP地址;如果软件不涉及具体的IP地址,那么服务端软件就随着操作系统的升级而自动升级了。

5.3 平滑升级方案

第一阶段,业界形成共识,确定TCP/DN/IP方案为下一代互联网方案。然后通信设备厂商研发支持TCP/DN/IP转发的DNR,DNS软件供应商研发支持TCP/DN/IP解析规则的DNS升级版本,操作系统厂商准备支持TCP/DN/IP协议栈的OS升级版本,开发软件供应商提供支持TCP/DN/IP的API等。

第二阶段,政府发出公告,向社会公示下一代互联网升级方案,并明示不升级的主机可能面临的访问限制。运营商部署DNS(暂时按传统规则解析)和DNR(暂时无流量)、用户升级操作系统,服务提供商根据开发软件供应商提供的新接口升级自己的应用软件。这个方案需要至少一台全球DNS根服务器升级。各方可以自行升级,不必以其他任意一方已升级为前提。

第三阶段,运营商从DNS查询的资源类型比例统计出网络中已升级终端比例。当新协议支持率到达一定比例时,可以确定升级0时。0时到来时,让DNS按TCP/DN/IP要求进行解析,正式从全球域中分离出国家域,将流量引导至DNR进行跨域转发。国家域一旦分离,可能出现第4.5.3节描述的“未升级主机访问域外主机”以及第4.5.4节描述的“已升级主机访问域外未升级主机”两种需要特殊处理的情况,按各自的预案处理即可。由于操作系统已经准备好了升级版本,境外的未升级主机可以认为不打算接受TCP/DN/IP主机的访问,可以考虑为这样的访问提供NAT,也可以直接忽略这样的主机。

在升级阶段可能遭遇DNR和DNR NAT性能瓶颈。国际出口可能有巨大的流量,需要较多的路由器(包括NAT)资源。同时,本方案采用长度可变的域名作为唯一寻址依据。比起定长的IPv4/IPv6地址,路由器在处理变长的地址时效率会略低。对策为:多设置DNR数量。在遇到跨域查询时,DNS返回不同的DNR的IP地址作为网关,可以有效地均衡负载。

6 方案优势

(1)此方案与既有IPv4网络兼容度极高。IP域内所有三层设备不需要升级。包括运营商设备中的绝大多数,单此一项就可为运营商节省大量投资。

(2)本方案不要求家庭网关升级。推荐的方案是保持NAT网关不动,任其自行向TCP/DN/IP路由器演进。目前中国有1.9亿户宽带用户、全球有6.7亿户宽带用户,除欧美(约2亿户用户)地址比较富裕之外,其他地方(包含中国共4.7亿)绝大多数宽带接入用户不可避免地用到NAT型家庭网关。对比IPv6方案必须升级家庭网关的要求,本方案既可以在经济上、工程上和时间上做到极其可观的节省,同时也完全避免了家庭网关对升级形成的阻碍。

(3)DNS需要升级,但数量极为有限,与家庭网关和路由器的数量不在同一数量级上,且升级基本属于软件升级。另外IPv6方案一样要求DNS升级(只是可能很多DNS已经完成了这个工作而已)。但是本方案要求DNS做一点路由平面的控制工作,这是特别的地方。

(4)边界(初期相当于国际出口)上的路由器需要升级为DNR,但数量也极其有限。同时由于网络仍处于扩张当中,换下的路由器可用于网络其他节点,不会造成任何浪费。截至2013年底中国出口总带宽3.4 Tbit/s。如果DNR可以在10 Gbit/s链路上线速转发(包括NAT),那么需340条链路。如果用高密度服务器或者插卡式路由器,也就20~30台,占用的机房面积也很小。如果可以在更高速率的接口上实现,数量还可以大大缩减(视业界实现水平而定)。

(5)此方案中地址空间是真正无限的。IPv6的地址虽然号称无限,但其分配规则仍然是“先到先得,按需分配”,要求使用者向国际组织申请地址。而在本方案中,任何组织或个人只要获得一个DNS域名,就可以在其下任意派生无限子域,每个子域都可以作为一个独立的IP域并拥有整个IP地址空间。相比IPv6方案,本方案对后发国家更加公平。

(6)如果规划得当,即便是中国这样的人口大国,运营商设立一个国家级的IP域就可以了。运营商已有的业务平台的内部管理可以继续使用现有的模式而不必升级。

目前DNS已经是个部署完善的系统。根据早期的一些反馈,有专家认为触动DNS不妥。但综合比较下来,特别是比较不同方案需要升级的设备数量与资金投入,通过升级DNS和边界路由器来升级到下一代互联网的方案,比起IPv6方案还是拥有巨大的优势。

IPv6是现在被广泛认同的下一代互联网协议,而NAT是实际应用最广泛的解决方案。表8比较了一下TCP/DN/IP与IPv6、NAT技术的各方面特点。

概括而言,如果以IPv6为目标,则会出现以下情况。

表8 TCP/DN/IP与IPv6、NAT技术的各方面特点

·运营商不得不向用户提供双栈接入,需要升级所有三层及三层以上设备,包括路由器、DNS以及所有宽带用户的家庭网关(数以亿计),过渡方案还要求在网内新增部署地址翻译设备等,耗时耗力,投资巨大。

·因为运营商会(不得不)在较长一段时间内继续提供IPv4接入,并且运营商为数以亿计的宽带用户替换支持IPv6的家庭网关需要很长时间,SP会倾向于留在IPv4平台,不会急于向IPv6迁移。等到运营商经过漫长的时间终于将所有的家庭网关都换完时,SP会觉得经过长期考验的私网IP地址+NAT的访问模式已经很成熟,没有升级的必要。

·因为IPv6网内资源较少,已升级到双栈的宽带用户也会更多地使用IPv4访问,IPv6流量寥寥无几。

也就是说,运营商花费了漫长的时间、付出了巨大代价将网络升级到双栈之后,用户会继续使用NAT技术访问IPv4平台上的SP而对IPv6平台置之不理,网络最终会演变成一个充分NAT化的网络,甚至可能包括嵌套的NAT模式。

如果以TCP/DN/IP为目标:

·运营商只需要升级国际出口路由器和DNS(两者数量都极少)并适时从全球域中分离出国家域(让DNS改变解析策略即可),不必触及所有其他路由器,不必再新增其他设备;投资极低,工程量极小,可以迅速地部署完成;

·对于SP和宽带用户而言,升级以支持TCP/DN/IP可以获得全球访问的能力,不升级也不影响域内(相当于国内)的访问。

也就是说,运营商只要付出极低的代价将网络升级到支持跨域的TCP/DN/IP转发(域内不触及),运营商的所有工作就完成了。剩下的只是SP决定是否以及何时让自己的业务平台支持新协议。同时,因为分离出了自己的IP域,运营商在自己的IP域内有了足够多的地址,运营商不再需要部署NAT。而用户仍可以继续使用他们的NAT家庭网关且不会有任何不便。

从历史的经验来看,升级终端是比升级网络要容易许多的。20世纪90年代初IETF开始考虑下一代互联网方案的时候,很多提议均假设网络会先于终端完成升级。但历史已经证明互联网实际的发展恰恰与这个假设完全相反。经过20年的高速发展之后,IP地址已经基本耗竭,几乎所有主流操作系统都已经支持IPv6,但网络却迟迟没有完成升级。细究原因,恐怕还是因为终端升级主要是以软件形式进行的,而且网络协议只是操作系统的一小部分,因此操作系统在升级的时候顺便就可以完成网络协议的升级。而对运营商网络而言,首先部署零星的IPv6设备没有意义,其次升级通常是基于硬件的而且每个IPv6的许可都需要单独支付费用,因此运营商没有部署IPv6路由器的愿望。而本方案最大的特点恰恰在于运营商需要升级的部分被最小化,主要的升级工作由终端通过操作系统软件升级来完成。

另外,随着用户终端和家庭网关的不断升级,网络将自动从被NAT技术扭曲的状态下解放出来,恢复为对称结构,在不需要任何特殊配置的情况下,所有的终端都将在全球范围内可达。

7 TCP/DN/IP发展远景

7.1 待明确和解决的问题

(1)协议栈选择

先后提出了两个协议栈,TCP/DN/IP和TCP/DN/UDP/IP。前者报文头开销较小,后者可以保证报文顺利通过NAT路由器。是同时支持两个协议栈,还是仅仅支持后者?

(2)TCP/DN/IP报文头

本文只是描述了报文头部必需的关键字段,其他还需要哪些字段以及各字段具体该如何定义,需要业界共同明确。

(3)用SDN实现的可能性

在本方案中,域名层构成新的网络层,DNS成为DNR分离的路由平面。用DNS进行流量引导,DNR执行转发和地址翻译功能,正好与SDN的控制平面与转发平面分离的理念相吻合。本协议可能成为SDN技术的研究方向。

(4)最优路由策略

由于DNS体系是严格的树型结构,如果IP子域有多个出口连接到父域(如中国有多个国际出口),或者同一个父域下的多个子域彼此相邻时,网络的实际拓扑与DNS的架构有一定的偏离。需要研究这些情况下的最佳路由策略。

同时,因为TCP/DN/IP中有IP和DN两个网络层,还可能会有两个平面路由协同优化的问题,需要进一步研究加以解决。

7.2 定位

(1)作为IPng的最终解决方案

TCP/DN/IP采用变长的域名作为地址。变长的域名优点是与真实的世界相一致,缺点是转发效率略低。

TCP/DN/IP本身具有极大的地址空间,事实上可以作为下一代互联网的最终解决方案。

(2)作为向IPv6的过渡方案

如果业界偏爱定长的IP地址,坚持以IPv6作为最终的互联网解决方案,事实上TCP/DN/IP也可以作为从IPv4到IPv6的过渡方案。

主机同时支 持3个协议栈:TCP/IPv4、TCP/DN/IPv4和IPv6。先从TCP/IPv4平滑过渡到TCP/DN/IPv4,再从TCP/DN/IPv4平滑过渡到TCP/IPv6。从IPv4平滑过渡到TCP/DN/IPv4的方案已在前文详述,从TCP/DN/IP过渡到IPv6时,DNS和DNR对于TCP/DN/IPv4报文按不同IP域处理,对IPv6报文按同IP域处理,即可完全平滑地实现过渡。

8 结束语

概而言之,双网络层方案有这样一些特点:地址空间无限、与IPv4网络高度兼容、升级过程非常平滑、投资极小,很好地满足了对下一代互联网技术方案的要求。

特别有趣的是,这个方案对升级的激励是正向的,所有各方都会有升级的主动性:对运营商而言,升级只需要极少的投资,就可以获得无限的地址空间;对SP而言,如果只是服务于IP域内用户那么就根本不需要升级,如果升级就可以服务于全球用户;对宽带用户而言,如果满足于目前的主动访问域内服务器的模式也不用升级,如果升级就可以双向访问全球网络,而且升级还很可能是完全自动的。

但一个新的协议从提出到成熟,毕竟需要较长的时间来充分发展。本文只是提出了一个简单的框架。笔者希望这个方案能得到大家的认同。更多的工作,还要期待业界共同推进和完成。

1 RFC1550.IP:Next Generation(IPng)White Paper Solicitation,1993

2 RFC1752.The Recommendation for the IP Next Generation Protocol,1995

3 RFC2373.IP Version 6 Addressing Architecture,1998

4 RFC1034.Domain Names-Conceptsand Facilities,1987

5 RFC1035.Domain Names-Implementation and Specification,1987

6 RFC1123.Requirements for Internet Hosts——Application and Support,1989

7 IETF.NAT444(draft-shirasaki-nat444-06),2012

8 IETF.LAFT6:Lightweight Address Family Transition for IPv6(draft-sun-v6ops-laft6-01),2011

9 IPv6发展为何如此纠结.人民邮电报,2013-10-10

10 姜明.IPv6协议产生的背景过程和现状.http://tech.ccidnet.com/art/218/20030605/48972_1.html

11 Marsan D C.What happens if IPv6 fails.Network world,2011

猜你喜欢

域名IP地址网关
铁路远动系统几种组网方式IP地址的申请和设置
Combosquatting域名抢注的测量研究
信号系统网关设备的优化
IP地址切换器(IPCFG)
如何购买WordPress网站域名及绑定域名
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计