宽带城域网地址问题的若干考虑

发布时间:2003-11-26 作者:熊晶晶 / 糜正琨 Xiong Jingjing / Mi Zhengkun 阅读量:

1 引言

  进入21世纪,中国的宽带城域网建设达到了高潮。当人们在欣喜地享受宽带带给人们的种种快捷、高效、便利时,也不无遗憾地发现它所带来的种种问题。其中如何有效地分配和规划IP地址以解决IP地址资源紧张的问题突出地呈现在我们的面前。

  2 城域网IP地址规划

  由于IPv4地址大部分已被分配,而Internet的用户数目仍然保持着快速增长,使得IPv4的地址资源越来越紧张,因此城域网内不能全部采用公有IP地址,必须避免耗用宝贵的地址资源。较好的折衷方案是在网内同时使用公有地址和私有地址这两类地址。当然,在公有地址有保证的前提下,应尽量使用公有地址。
根据RFC 1918 规定,私有IP地址包括:

  10.0.0.0?10.255.255.255,一个A类地址包含256个B类或65 536个C类,共约1 677万个IP地址;
  172.16.0.0?172.31.255.255,一个B类地址包含4 096个C类,约104万个IP地址;
  192.168.0.0?192.168.255.255,一个B类地址包含256个C类,约65 536个IP地址。

  由此得出采用两类地址的城域网结构如图1所示。


图1 城域网混合地址结构

  在图1中,核心层为混合地址域,公有地址和私有地址混合使用。核心层内部公有地址和私有地址之间不需进行地址转换,路由设备要能够同时处理公有和私有地址路由。

  对于小区内个人用户,缺省分配私有地址,并可访问网内宽带业务。

  对于企业内部网和校园网用户,一般分配若干个公有IP地址,至于其内部的IP地址由其自行分配。

  采用混合地址方案解决了宽带接入小区和个人用户永远在线占用大量地址的问题,从而有力地缓解了地址资源短缺的压力。使用私有地址的用户在享受城域服务时不需经过任何变换,因此对城域网内诸如 VoIP 、VoD、 Net conference等增值业务的访问不受限制。但是如果使用私有地址的用户需要访问外部资源时,由于内部网络与公共网络的相对隔离性,则需要运用NAT(网络地址变换)技术进行地址变换。

  3 NAT技术和存在的问题

  由于网络内部IP地址不是合法地址,或者为了保证网络内部IP地址私有性造成了内部地址无法在公共网络使用,为了解决这一问题提出了NAT技术。通过地址翻译,可以使内部网络的主机透明地访问外部网络。其工作机制为当内部节点要与外界网络发生联系时,边缘路由器或者防火墙根据预先建立好的静态或动态地址映射表,将数据包的IP包头进行相应的转换。如数据包是从内部发往外部,则将包头的内部地址替换成全局地址(合法地址,可路由),而从外部进入内部的数据包则将包头的全局地址转换成内部的私有地址,从而在内网与公网间顺利地建立通信。

  一般来说,NAT地址转换有两种类型:静态转换(Static Translation)和动态转换(Dynamic Translations)。

  静态转换是在NAT表中事先为每一个需要转换的内部地址创建固定的映射表,建立内部地址与全局地址的一一对应关系。这样每当内部节点与外界通信时,边缘路由器或者防火墙可以作相应的变换。

  动态转换是将可用的全局地址集定义成NAT Pool (NAT池)。对于要与外界进行通信的内部节点,如果还没有建立转换映射,边缘路由器或者防火墙将会动态地从NAT池中选择一个全局地址替换其内部地址,而在连接终止时再将此地址回收。

  NAPT(端口地址转换)是动态转换的另一种形式,它使多个内部节点共享一个全局IP地址,用源和目的地址的TCP/UDP端口号来区分NAT表中的转换条目。

  虽然NAT可以有效地解决地址短缺的问题,但是实际上IP地址在许多应用中不仅仅只是数据包的传输地址,往往还作为用户的身份标识封装在应用层的数据信息中,这样势必会造成一些网络应用由于NAT的阻隔而无法成功地实现。因此仅仅依靠NAT设备无法为所有的应用提供必要的透明性,此时需要借助ALG(应用级网关)的帮助或者采用RSIP(特定域IP协议)。下面列出一些由于使用NAT设备进行路由而使网络应用受到影响的情况。

  (1)净荷中含有特定域的IP地址信息

  由于采用NAT设备进行路由,使得大量在消息净荷中包含特定域的IP地址或端口号的应用失败。在某些情况下,可以使用ALG来弥补。

  (2)捆绑式的会话应用

  FTP、H.323、SIP、RTSP等采用控制信令建立联系的捆绑式的会话应用由于NAT的阻隔也会被中断。因为这些应用都是在控制信令中交换地址和端口参数以实现数据流的建立,NAT设备并不清楚他们之间的相互联系,从而导致应用的失败。在这种情况下失败的原因可能有两种:一是控制信令中的地址信息是属于特定域的非法IP地址,二是NAT设备不允许通过控制信息中创建数据流方向的信息。

  (3)端到端应用

  与Client/Server应用不同,端到端应用可以由任何一方发起,因而更容易被NAT破坏。当端点分别位于内部网络和外部网络时,由于从外部网络发起的会话事先并不知道位于内部网络的端点所对应的全局IP地址,因此就无法建立联系。

  (4)需保留地址映射关系的应用

  NAT很有可能中断那些需要将地址映射保留到下一次会话的应用。因为这些应用要求保留内部地址到外部地址的映射关系以便后续的通信可以重复使用这些外部地址,而NAT并不了解这一要求,就有可能会将此外部地址回收,分配给其它需要与外部通信的主机。为了防止NAT设备丢弃相关的信息,需要另行制定协议以确保NAT设备保留地址映射关系,或者可以采用应用级网关技术来实现此类应用。

  从以上所列的几种情况,可以清楚地看出单纯依靠NAT并不能解决混合地址变换问题,当消息净荷中包含IP地址和TCP/UDP端口信息时,尤其如此。因此我们必须考虑采用其它辅助技术,在这里我们讨论两种技术:一是建立应用级网关技术,使之与网络地址变换设备相互作用,通过互相协调支持特定应用;二是采用专门制订的RSIP(特定域IP协议)。

  4 应用级网关技术

  ALG是针对特定应用进行处理转换的代理设备,通过ALG,可以使在某一地址域的主机与处在不同域的对端透明地建立联系,创建应用。ALG可以与NAT相互作用,建立状态,利用NAT的状态信息,修改特定的应用层数据信息以及执行某些必要的任务以实现跨越不同地址区域的应用业务。ALG不仅仅只是利用NAT的状态信息,在某些情况下它会收集应用层的负载信息,提醒NAT设备增加额外的状态消息。在工作方式上,ALG与Proxy(代理服务器)十分类似,两者都是为了方便客户端与服务器建立特定的应用连接。但是,Proxy在与代理客户端取得联系时是通过另外的通信协议,然后再将所得到的客户端数据传递给服务器,相反方向的数据流亦如此。与Proxy不同,ALG没有使用任何协议与应用客户端联系,同时也不需要客户端加装额外的软件。

  在这里我们以在VoIP应用中广泛运用的H.323协议为例来说明ALG的作用。H.323协议包括若干个TCP、UDP数据流,端口动态分配。H.323协议的信令过程可分为3个步骤:RAS (登记、接纳和状态)消息用于H.323终端与关守(H.323协议中的网络管理点)之间的注册、鉴权、申请发起业务等信息的交互;Q.931消息用于建立呼叫的控制信令,以实现主叫用户到被叫用户的端到端连接的建立、维护和释放;H.245消息用于建立逻辑通道,交换主叫与被叫能力,确定主从关系等。根据协议,下一级信令地址和端口参数值在上一级信令中交换,如被叫H.245控制信道地址参数是在Q.931的Alerting、Call Proceeding或者Connect消息中指明的,因此,
H.323-ALG必须能够检测H.323包,解释各种H.323控制信令,根据NAT地址变换修改控制数据包中的相应地址参数。由于 Q.931 和 H.245消息采用的是ASN.1 语言编码格式,所以H.323-ALG必须具有ASN.1语言的编解码功能。更为复杂的是,在Q.931消息中还规定可以对H.245消息进行加密,那么除非ALG具有加密功能并能获知密钥,否则就无法解释消息的内容。因此,一般说来ALG功能比较复杂,且针对不同应用需要不同的ALG,这就限制了ALG技术在大规模网络中的应用。

  5 RSIP技术

  RSIP是位于内网的主机与外界发生联系时发布特定IP 地址所采用的一种协议。RSIP客户端位于内网,但采用外网地址与外部主机发生联系以建立端到端通信。任何一方发起呼叫所构造的呼叫建立(Setup)控制信令包中所包含的地址都是外网中唯一的公有地址,因此控制信令包通过NAT设备时,其内容不需要进行任何变换。

  SIP服务器是可同时与内网和外网通信的节点,处理由RSIP客户端产生或发往RSIP客户端的数据信息。RSIP协议分为两种,一种是专门针对IP地址的RSA-IP,另一种是针对IP地址和端口号的RSAP-IP。

  下面我们以RSA-IP的工作流程为例说明RSIP协议的工作机制,RSAP-IP的原理与RSA-IP类似,只是增加了对端口号的处理。

  RSA-IP客户端发起与外网主机的会话时,首先需从外部地址空间中获取一个IP地址。一旦此外部地址被RSA-IP客户端发布后,就不能再被其他用户使用直到该地址被客户端释放时为止。RSA-IP服务器则要求能够静态或动态地为RSA-IP客户端分配外网地址,同时建立与内网和外网的传送层通信,为外网数据在内网传输提供路由机制。通常,我们把RSA-IP服务器放在NAT设备上。一般来说,端到端的RSA-IP包有两种路由方式:一种是在源和目的地之间建立隧道,NAT设备只常规处理外部包头,并不影响内部包头使用的地址;另外一种方法是在RSA-IP客户端和边界路由器之间建立双向内部隧道,客户端发送和接收的数据包都将被封入隧道中,而边界路由器和远端目标之间的数据被正常传送。如果内部网络不执行基于源地址的数据流过滤,则可以建立客户端与边界路由器之间的隧道。图2和图3分别画出RSIP数据包的两种传输方式。图中,主机A为RSA-IP客户端,其内网地址为Addr-A,分配得到的外网地址为Addr-k,主机B为远端目的端点,其对应的外网地址为Addr-B。


图2 RSA-IP包的端到端隧道传送模式


图3 RSA-IP包的内部隧道传送模式

  由RSIP协议的工作机制可知,采用RSIP协议后,进行地址转换时不需要对控制数据包的内容进行解析和变换,NAT设备对任何应用都是透明的。这样大大简化了地址变换的复杂度,有利于大容量NAT设备的开发。

  SIP技术的问题在于,它要求所有主机都能支持RSIP协议,而目前RSIP协议尚未成为标准。

  根据以上分析可知,ALG和RSIP方法各有其技术特点和运用范围,但是也各有其局限性。因此,进一步的考虑是将两种模式结合起来,提出一种新的适于网络部署的使用方法。该方法在网络结构上,借鉴ALG技术,设置专门的Proxy服务器;在变换处理上,借鉴RSIP技术,在NAT设备和主机间交换变换信息,保持NAT设备对所有应用透明的特性。变换信息交换不需要另外制订协议,而是沿用已有的标准协议,如MGCP(媒体网关控制协议)。已有人提出了这种想法,笔者正在进行这方面的研究,限于篇幅,不在此展开介绍。

  6 结束语

  如何解决IP地址资源不足是优化宽带城域网的关键技术之一。在IPv6尚未启用之前,使用私有地址是唯一可行的方法;NAT和ALG以及RSIP协议的结合可以在不同应用环境下支持私有地址的透明使用;基于已有标准协议的进一步解决方案可以更有效地用于大规模网络。上述技术和方法均可望应用于业界正在热烈讨论的软交换网络。

  参考文献

1 IETF RFC 2766. Network Address Translation - Protocol Translation (NAT-PT). 2000
2 IETF RFC 3022. Traditional IP Network Address Translator (Traditional NAT). 2001
3 IETF RFC 3027. Protocol Complications with the IP Network Address Translator. 2001
4 Borella M. Realm Specific IP:Framework. IETF draft. 2000
5 戴建东.宽带IP城域网的规划和建设.江苏通信技术,2001,7(2):21?25

[摘要] 文章从IP地址分配的角度,分析了在建设宽带城域网时存在的地址问题,介绍了与解决这些问题相关的技术??应用级网关技术和特定域IP协议技术,并提出了解决问题的初步思路。

[关键词] 宽带城域网;地址分配;网络地址翻译协议;应用级网关;特定域IP协议

[Abstract] In view of IP address allocation, the paper analyzes some existing problems in the construction of broadband MAN, and gives introductions to the application level gateway technique and the RSIP technique. Both of them are related to the solution of the above-mentioned problems. At the end of the paper the author's preliminary consideration on solving these problems is also noted.

[Keywords] Broadband MAN; Address allocation; NAT; ALG; RSIP