一种实现网络地址转换的方法及相关设备转让专利

申请号 : CN200810218571.7

文献号 : CN101729606A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 祝宁

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种实现网络地址转换的方法及相关设备,该方法包括:获得媒体网关控制器发送的上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系;对通过所述内部网络接口标识标识的接口接收的来自内部网络,发往外部网络的IP报文,根据所述上下文属性中的地址映射关系对所述IP报文中作为源地址的内部网络IP地址进行修改,并将所述修改了源地址的IP报文发送到外部网络。在本发明实施例所提供的技术方案中,在上下文属性中增加了与IP地址对应的接口的信息,使得仅通过获知上下文属性就可以实现网络地址的转换。

权利要求 :

1.一种实现网络地址转换的方法,其特征在于,所述方法包括:获得媒体网关控制器发送的上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系;

对通过所述内部网络接口标识标识的接口接收的来自内部网络,发往外部网络的IP报文,根据所述上下文属性中的地址映射关系对所述IP报文中作为源地址的内部网络IP地址进行修改,并将所述修改了源地址的IP报文发送到外部网络。

2.如权利要求1所述的方法,其特征在于,

所述地址映射关系中还包括内部网络IP地址以及映射后的外部网络IP地址;

所述根据所述上下文属性中的地址映射关系对所述IP报文中作为源地址的内部网络IP地址进行修改还包括:根据NIPR上下文的所述上下文属性,将所述IP报文中作为源地址的内部网络IP地址修改为映射后的外部网络IP地址。

3.如权利要求2所述的方法,其特征在于,所述上下文属性中还包括外部网络接口标识;

所述将所述修改了源地址的IP报文发送到外部网络包括:

通过所述外部网络接口标识的接口将所述修改了源地址的IP报文发送到外部网络。

4.如权利要求1所述的方法,其特征在于,所述上下文属性中包括通配符号;

所述获得媒体网关控制器发送的上下文属性包括:

获得媒体网关控制器发送的上下文属性,根据所述上下文属性中除了通配符号的其他信息,为所述通配符号分配对应的外部网络IP地址和/或外部网络接口标识;

根据所述上下文属性和分配的所述外部网络IP地址和/或外部网络接口标识生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的外部网络地址和/或外部网络接口标识的上下文属性。

5.如权利要求1至4中任一项所述的方法,其特征在于,所述获得媒体网关控制器发送的上下文属性之前还包括:当接收到IP报文,需要产生新的网络地址映射时,生成上报事件消息,所述上报事件消息中包括内部网络接口标识和/或外部网络接口标识;

将所述上报事件消息发送至所述媒体网关控制器,由媒体网关控制器根据所述上报事件消息生成所述上下文属性。

6.如权利要求5所述的方法,其特征在于,所述上报事件消息中还包括内部网络地址、映射后的外部网络地址、目的网络地址、目的网络子网地址以及协议类型信息中的一种或多种,媒体网关控制器根据所述上报事件消息生成所述上下文属性为:所述媒体网关控制器根据所述上报事件消息中的地址和信息生成包含相应地址和信息的上下文属性。

7.一种媒体网关控制器,其特征在于,该媒体网关控制器包括:地址映射关系确定模块,用于确定媒体网关的内部网络接口标识和地址映射关系;

上下文属性生成单元,用于生成携带所述内部网络接口标识和地址映射关系的上下文属性,该上下文属性用于指示媒体网关对通过所述内部网络接口标识标识的接口接收的来自内部网络、发往外部网络的IP报文,根据所述上下文属性中的地址映射关系对所述IP报文进行地址映射;

发送单元,用于发送所述上下文属性。

8.如权利要求7所述的媒体网关控制器,其特征在于,还包括:接收单元,用于接收媒体网关上报事件消息,该上报事件消息携带内部网络接口信息和/或外部网络接口信息;

则所述地址映射关系确定模块,还用于根据所述上报事件消息携带的内部网络接口信息和/或外部网络接口信息确定内部网络接口标识和地址映射关系。

9.一种媒体网关,其特征在于,所述媒体网关包括:

获取单元,用于获得媒体网关控制器发送的上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系;

报文接收单元,用于通过所述内部网络接口标识标识的接口接收来自内部网络,发往外部网络的IP报文;

映射单元,用于根据所述上下文属性中的地址映射关系对所述IP报文中作为源地址的内部网络IP地址进行修改;

转发单元,用于将所述修改了源地址的IP报文发送到外部网络。

10.如权利要求9所述的媒体网关,其特征在于,所述地址映射关系中包括内部网络IP地址以及映射后的外部网络IP地址;

所述映射单元用于根据NIPR上下文的所述上下文属性,将所述IP报文中作为源地址的内部网络IP地址修改为映射后的外部网络IP地址。

11.如权利要求9所述的媒体网关,其特征在于,所述上下文属性中包括通配符号;

所述获取单元包括:

分配模块,用于获得媒体网关控制器发送的上下文属性,根据所述上下文属性中除了通配符号的其他信息,为所述通配符号分配对应的外部网络IP地址和/或外部网络接口标识;

应答模块,用于根据所述上下文属性和分配的所述外部网络IP地址和/或外部网络接口标识生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的外部网络地址和/或外部网络接口标识的上下文属性。

12.如权利要求9至11中任一项所述的媒体网关,其特征在于,所述媒体网关还包括:上报生成单元,用于当接收到IP报文,需要产生新的网络地址映射时,生成上报事件消息,所述上报事件消息中包括内部网络接口标识和/或外部网络接口标识;

上报发送单元,用于将所述上报事件消息发送至所述媒体网关控制器。

13.如权利要求12所述的媒体网关,其特征在于,所述上报生成单元还用于生成包括内部网络地址、映射后的外部网络地址、目的网络地址/目的网络子网地址以及协议类型信息中的一种多种的上报事件消息,由所述媒体网关控制器根据所述上报事件消息中的地址和信息生成包含相应地址和信息的上下文属性。

14.如权利要求9至11中任一项所述的媒体网关,其特征在于,所述获取单元还用于获得包括内部网络端口、外部网络端口、目的网络地址以及协议类型信息中的一种或多种的上文属性,所述映射单元根据所述上下文属性中内部网络端口、外部网络端口、目的网络地址以及协议类型信息中的一种或多种进行地址映射。

15.一种网络系统,包括媒体网关控制器和媒体网关,其特征在于,所述媒体网关控制用于向媒体网关发送上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系;

所述媒体网关用于根据所述上下文属性进行网络地址映射,将通过所述内部网络接口标识标识的接口接收的来自内部网络的IP报文发送到外部网络。

16.如权利要求15所述的系统,其特征在于,所述媒体网关包括:获取单元,用于获得媒体网关控制器发送的上下文属性,所述上下文属性中的地址映射关系包括内部网络IP地址和映射后的外部网络IP地址;

报文接收单元,用于通过所述内部网络接口标识标识的接口接收的来自内部网络,发往外部网络的IP报文;

映射单元,用于根据NIPR上下文的所述上下文属性将所述IP报文中作为源地址的内部网络IP地址修改成映射后的外部网络IP地址;

转发单元,用于将所述修改了源地址的IP报文发送到外部网络。

17.如权利要求16所述的系统,其特征在于,所述上下文属性中包括通配符号;

所述获取单元包括:

分配模块,用于获得媒体网关控制器发送的上下文属性,根据所述上下文属性中除了通配符号的其他信息,为所述通配符号分配对应的外部网络IP地址和/或外部网络接口标识;

应答模块,用于根据所述上下文属性和分配的所述外部网络IP地址和/或外部网络接口标识生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的外部网络地址和/或外部网络接口标识的上下文属性。

说明书 :

技术领域

本发明涉及通讯领域,尤其涉及一种实现网络地址转换的方法及相关设备。

背景技术

在网络系统中通常分为多个子网,各个子网之间通过网关相互连接。如以软交换设备为核心的下一代网络(Next Generation Network,NGN),其网络结构如图1所示。NGN网络主要包括媒体网关(Media Gateway,MG)和媒体网关控制器(Media Gateway Controller,MGC)。其中,MGC,用于实现呼叫状态的管理,以及对MG承载资源的控制;MG,用于将媒体流类型由一种格式转换为另一种格式,例如,将电路交换网中的E1时隙中的媒体信息转换为IP网络中的实时传输协议(Realtime Transport Protocol,RTP)媒体流,并在MGC的信令控制下实现媒体流的建立、修改、释放以及资源管理等功能。
同时,MG还具有网络地址转换(Network Address Translation或NetworkAddress Translator,NAT)功能。传统NAT是一种把内部私有网络地址,即IP(Internet Protocol,IP)地址,翻译成外部公有网络IP地址的技术。如图2所示。
简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(如NGN网络中的媒体网关)处,将内部地址替换成公用地址,从而在外部公网(Internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共IP地址紧缺的问题。通过这种方法,可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。如图3所示。这里提到的内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由。虽然内部地址可以随机挑选,但是通常使用的是下面的地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255,192.168.0.0~192.168.255.255。NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。而全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址。NAT功能还可以被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。
传统NAT分为两种类型:基本NAT(Basic NAT)和网络地址端口转换(Network Address Port Translation,NAPT)。
(1)基本NAT
NAT拥有多个公开IP地址,当位于内部网络的主机向外部主机发起会话请求时,把内部地址转换成全球惟一的公开IP地址。对于从内部网络中外出的IP包,转换源IP地址以及相关的字段,如IP/TCP/UDP/ICMP头校验和。对于进入内部网络的IP包,转换目的IP地址以及与上面所罗列的相关字段。如果内部网络中主机的数目不大于NAT所拥有的公开IP地址的数目,则可以保证每个内部地址都可以映射到一个公开的IP地址,否则允许同时连接到外部网络的内部主机的数目会受到NAT公开IP地址数量的限制。可以使用静态映射的方式,把特定内部主机映射为一个特定的全球惟一的地址,保证了外部对内部主机的访问。一个内部主机可以利用相同的地址映射同时发起多个会话。
(2)NAPT
NAPT(网络地址端口转换)把“基本NAT”转换的概念延伸了一步,转换地址的同时也转换传输层标志(如TCP/UDP的端口号,ICMP的查询ID),从而把多个内部主机的传输层标志复用为一个惟一的外部地址。NAPT使得一组主机可以共享一个惟一的外部地址。在实际使用中可以把NAPT和基本NAT结合起来,将一组外部地址与端口转换关联起来。
对于从内部网络向外的访问请求,NAPT转换源IP地址、源传输层标志以及相关的字段,如IP,TCP,UDP和ICMP头校验和。对于进入内部网络的包,转换目的IP地址、目的传输层标志以及IP层和传输层头校验和。传输层标志可以是TCP/UDP端口号或ICMP查询ID中的任意一种。
另外,还有一种双向NAT(Bi-directionaINAT,或Two-WayNAT)也能够将内部网络地址转换成外部网络地址。当使用双向NAT时,可以从内部网络向外部网络发起会话请求,也可以从外部网络向内部网络发起会话请求。当在外出或进入任何一个方向上建立连接时,把内部网络地址静态或动态绑定到全局惟一的地址上。这里假设位于内部网络和外部网络之间的名字空间(Fully QualifiedDomain Names,FQDN)是端到端惟一的,因为只有这样才能够使得位于外部编址域的主机利用域名系统(Domain Name System,DNS)访问内部网络的主机。在双向NAT上必须部署DNS应用层网关(DNS-Application Level Gateway,DNS-ALG),以处理名字到地址的映射。当一个DNS包需要穿越内部和外部编址域时,DNS-ALG必须能够将DNS查询和响应消息中的内部地址转换成外部地址,或把外部地址转换成内部地址。
为实现上述NAT功能,通常需要维护NAT地址映射表,该表中有进行内部网络地址和外部网络地址相关转换的映射关系信息。为此,提出了网络地址转换IP路由(NAT IP Route,NIPR)上下文的概念。在NIPR上下文中通常创建两个终端,一个是入终端,一个是出终端,分别代表NAT地址转换的内部网络接口和外部网络接口,如,私有网络接口和公有网络接口。通过NIPR上下文中保存的NAT地址映射信息可以实现NAT功能。
当媒体网关上的接口接收到IP报文,检查到需要有新的NAT地址映射产生时,终端上报事件给媒体网关控制器。上报的事件中携带了内部网络地址和映射后的外部网络地址。还可以携带报文的目的地址等。媒体网关控制器可以通过增加(ADD)命令,修改(MOD)命令或者移动(MOV)等命令对NIPR上下文的属性进行设置,将该地址映射保存在该NIPR上下文中。在该NIPR上下文的属性中包括相关的内部网络地址和外部网络地址。而接口信息则通过终端名携带。
即在实现本发明过程中,发明人发现在现有技术中,进行NAT地址映射的内部网络接口和外部网络接口是通过NIPR上下文中的两个终端的名字来确定的。例如:终端1的终端名为”ip/Interface1Private/1”,终端2的终端名为”ip/Interface2Public/2”。分别标识终端1所在的接口是接口1,并且该接口在该NAT地址映射中是内部网络接口;终端2所在的接口是接口2,并且该接口在该NAT地址映射中是外部网络接口。
这种方式的缺点在于,通过终端名携带其所连接的IP网络的信息对终端名的命名加入了限制,而这本不是终端名本身具有的功能;更重要的是,NIPR上下文用于维护NAT地址映射,当前规定有两个终端能够分别代表入接口和出接口。例如前面说的终端1和终端2。但是,随着技术的发展,有一种趋势是在NIPR上下文中只保留一个终端,而且,该终端可能并不能代表接口,而是仅仅为保证NIPR上下文的存在而存在。这样通过终端名和NIPR上下文的属性的结合就不能得出完整的NAT地址映射信息,进而进行网络地址转换。

发明内容

本发明所要解决的技术问题在于,提供一种实现网络地址转换的方法及相关设备。可以实现不需要通过终端名来携带相关的接口信息,而通过上下文属性携带进行网络地址转换所需的接口信息。
为此,一方面,本发明的实施例提供了一种实现网络地址转换的方法,包括:获得媒体网关控制器发送的上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系;对通过所述内部网络接口标识标识的接口接收的来自内部网络,发往外部网络的IP报文,根据所述上下文属性中的地址映射关系对所述IP报文中作为源地址的内部网络IP地址进行修改,并将所述修改了源地址的IP报文发送到外部网络。
另一方面,本发明的实施例提供了一种媒体网关控制器,其包括:地址映射关系确定模块,用于确定媒体网关的内部网络接口标识和地址映射关系;上下文属性生成单元,用于生成携带所述内部网络接口标识和地址映射关系的上下文属性,该上下文属性用于指示媒体网关对通过所述内部网络接口标识标识的接口接收的来自内部网络、发往外部网络的IP报文,根据所述上下文属性中的地址映射关系对所述IP报文进行地址映射;发送单元,用于发送所述上下文属性。
本发明的实施例还提供了一种媒体网关,包括:获取单元,用于获得媒体网关控制器发送的上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系;报文接收单元,用于通过所述内部网络接口标识标识的接口接收来自内部网络,发往外部网络的IP报文;映射单元,用于根据所述上下文属性中的地址映射关系对所述IP报文中作为源地址的内部网络IP地址进行修改;转发单元,用于将所述修改了源地址的IP报文发送到外部网络。
同时,本发明的实施例还提供了一种网络系统,包括媒体网关控制器和媒体网关,其中,所述媒体网关控制用于向媒体网关发送上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系;所述媒体网关用于根据所述上下文属性进行网络地址映射,以将通过内部网络接口标识标识的接口接收的来自内部网络的IP报文发送到外部网络。
在本发明实施例所提供的技术方案中,在上下文属性中定义了新的信息携带内容,增加了与IP地址对应的接口的信息,使得仅通过获知上下文属性就可以生成完整的上下文,实现网络地址的转换。进一步完善了现有的实现NAT功能的机制。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有的NGN系统的组成示意图;
图2是NAT机制的原理示意图;
图3是NAT机制的另一原理示意图;
图4是本发明中的网络系统的一个具体实施例的组成示意图;
图5是图4中的媒体网关的第一具体实施例的组成示意图;
图6是本发明中的媒体网关的第二具体实施例的组成示意图;
图7是本发明中的媒体网关的第三个具体实施例的组成示意图;
图8是本发明中的媒体网关控制器的一个具体实施例的组成示意图;
图9是本发明中的媒体网关控制器的另一个具体实施例的组成示意图;
图10是本发明中的实现网路地址转换的方法的一个具体实施例的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图4,为本发明中网络系统一个具体实施例的组成示意图。该系统包括:媒体网关控制器1和媒体网关2。其中,媒体网关控制1用于向媒体网关2发送上下文属性,如,可以通过增加(ADD),修改(MOD)或者移动(MOV)等命令下发。所述上下文属性中包括内部网络接口标识和地址映射关系;所述地址映射关系可包括内部网络IP地址,以及映射后的外部网络IP地址,或还包括外部网络接口标识(由于外部网络接口可能仅有一个,或是可以通过外部网络IP地址分析获知外部网络接口,因此该地址映射关系中,可能不包括外部网络接口标识,由媒体网关2通过别的方式获知)。对上下文属性nmi的语法格式可如下定义:
PrivateInterface”|”PrivateIPAddress”|”PublicInterface”|”PublicIPAddress
其中,“|”用作分割符。PrivateInterface代表内部网络侧的接口名;PrivateIPAddress代表被地址映射的内部网络的IP地址;PublicInterface代表外部网络侧的接口名;PublicIPAddress代表地址映射后的的外部网络的IP地址。
该属性可以是新定义的属性,也可以是在现有属性的基础上增加了新的功能。
有些类型的NAT(例如基本NAT)只进行网络IP地址的转换(或称映射),则仅需上述的标识和IP地址信息即可;有些类型的NAT(例如NAPT),在上下文属性中还需包括端口信息(包括内部网络端口和外部网络端口),即四层标识(例如TCP端口,UDP端口等)的组合,在进行网络地址映射时,需要同时对IP报文中的网络IP地址和端口进行转换,获得转换后的网络IP地址和端口。
外部网络接口标识一些情况下可以通过外部网络IP地址以及各接口上的地址配置推断出来,所以,上下文属性中可以不包括具体的映射后的外部网络接口标识。即:将外部网络接口标识作为可选项。则前述上下文属性的语法格式可以定义如下:
PrivateInterface”|”PrivateIPAddress”|”PublicIPAddress[”|Pui:”PublicInterface]
后续的实施例中都将所述上下文属性中的外部网络接口标识作为必选项,但是,这些实施例中将外部网络接口标识改成可选项也一样是可行方案。
根据具体需要的不同,上下文属性还可包括网络目的地址信息(目的网络地址或者目的网络子网地址)以及协议类型信息中的一种或多种。
在本发明其他各实施例中如无特殊说明,对上下文属性的理解均与本处的解释一致。
媒体网关2用于根据所述上下文属性进行网络地址映射,以将来自内部网络的IP报文发送到外部网络。以及将来自外部网络的IP报文发送到内部网络。所述上下文属性所在的上下文为NIPR上下文。其中,媒体网关2在增加、修改以及移动等命令中对NIPR上下文中的所述上下文属性进行处理,并根据所述NIPR上下文中的所述上下文属性管理NAT地址映射信息。
如图5所示,媒体网关2可包括:
获取单元20,用于获得媒体网关控制器发送的上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系,该地址映射关系中可包括内部网络IP地址,以及映射后的外部网络IP地址,或还包括外部网络接口标识;
报文接收单元21,用于通过所述内部网络接口标识标识的接口接收来自内部网络,发往外部网络的IP报文;
映射单元22,用于根据所述上下文属性中的地址映射关系对所述IP报文中作为源地址的内部网络IP地址进行修改,如根据NIPR上下文中的上下文属性将所述IP报文的作为源地址的内部网络IP地址修改成映射后的外部网络IP地址;
转发单元23,用于将所述修改了源地址的IP报文发送到外部网络,如通过所述外部网络IP地址或外部网络接口标识标识的外部网络接口,将所述修改了源地址的IP报文发送到外部网络。当上下文属性中包括外部网络接口标识时,根据该标识将相应的IP报文通过外部网络接口发送到外部网络,当上下文属性中不包括外部网络接口标识时,若仅有一个外部网络,则仅有一个外部网络接口,直接将相应的IP报文通过该外部网络接口发送到外部网络,或者是根据外部网络IP地址获知相应的外部网络接口,再将相应的IP报文通过该外部网络接口发送到外部网络。
其中,所述上下文属性中的地址映射关系中的部分信息可以用通配符号代替,如外部网络接口标识、外部网络IP地址等。如图6所示,相应的获取单元20包括:分配模块201,用于获得媒体网关控制器发送的上下文属性,根据所述上下文属性中除了通配符号的其他信息,为所述通配符号分配对应的外部网络IP地址和/或外部网络接口标识;应答模块203,用于根据所述上下文属性和分配的所述外部网络IP地址和/或外部网络接口标识生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的外部网络地址和/或外部网络接口标识的上下文属性。
如,按照上述的上下文属性的语法格式(即PrivateInterface”|”PrivateIPAddress”|”PublicInterface”|”PublicIPAddress),媒体网关控制器发给媒体网关的上下文属性为:“interface1|200.200.100.10|interface2|$,其中,映射的外部网络的IP地址为通配符号“$”,则分配模块201,分配该外部网络的IP地址具体为“172.100.9.10”,并在应答模块203返回的应答消息中包括上下文属性为“interface1|200.200.100.10|interface2|172.100.9.10”。
如图7所示,所述媒体网关2还可包括:上报生成单元24,用于当报文接收单元21接收到IP报文,需要产生新的网络地址映射时,生成上报事件消息,所述上报事件消息中包括内部网络接口标识和/或外部网络接口标识,也还可以包括内部网络IP地址和端口,映射后的外部网络IP地址和端口,目的网络地址/目的网络子网地址以及协议类型信息等。上报发送单元26,用于将所述上报事件消息发送至所述媒体网关控制器。
相应的,如图8所示,本发明实施例中还提供了一种媒体网关控制器,该媒体网关控制器1包括:地址映射关系确定模块10,用于确定媒体网关的内部网络接口标识和地址映射关系;上下文属性生成单元12,用于生成携带所述内部网络接口标识和地址映射关系的上下文属性,该上下文属性用于指示媒体网关对通过所述内部网络接口标识标识的接口接收的来自内部网络、发往外部网络的IP报文,根据所述上下文属性中的地址映射关系对所述IP报文进行地址映射;发送单元14,用于发送所述上下文属性。
进一步的,如图9所示,媒体网关控制器1还可包括:接收单元16,用于接收媒体网关上报事件消息,该上报事件消息携带内部网络接口信息和/或外部网络接口信息。则所述地址映射关系确定模块10,还用于根据所述上报事件消息携带的内部网络接口信息和/或外部网络接口信息确定内部网络接口标识和地址映射关系。
在本发明实施例所提供的技术方案中,在上下文属性中定义了新的信息携带内容,增加了NAT地址映射涉及的接口的信息,使得仅通过获知上下文属性就可以生成完整的NAT地址映射信息,实现网络地址的转换。同时上下文属性中的部分信息,如外部网络的接口信息,可以不上报,在后续流程中再通过媒体网关和媒体网关控制器的交互进行确定,这增加了媒体网关处理的灵活性。进一步完善了现有的实现NAT功能的机制。
相应的,如图10所示,本发明还提供了一种实现网络地址转换的方法的实施例,该方法包括如下流程:
1001、获得媒体网关控制器发送的上下文属性,所述上下文属性中包括内部网络接口标识和地址映射关系,地址映射关系中可包括内部网络IP地址,以及映射后的外部网络IP地址,还可以进一步包括外部网络接口标识。其中,该上下文属性中还包括网络端口、目的地址信息以及协议类型信息中的一种或多种。
其中,上下文属性中的外部网络接口标识和/或外部网络IP地址可以用通配符号代替。则本步相应为:
A、获得媒体网关控制器发送的上下文属性,根据所述上下文属性中除了通配符号的其他信息,为所述通配符号分配对应的外部网络IP地址和/或外部网络接口标识;
B、根据所述上下文属性和分配的所述外部网络IP地址和/或外部网络接口标识生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的外部网络地址和/或外部网络接口标识的上下文属性。
1002、对通过所述内部网络接口接收的来自内部网络的IP报文,根据NIPR上下文中的上下文属性将所述IP报文的内部网络IP地址修改成映射后的外部网络IP地址,并通过所述外部网络接口将所述修改了IP地址的IP报文发送到外部网络。
其中,在步骤1001中,媒体网关控制指示媒体网关创建NIPR上下文可以是由媒体网络控制器主动发起的,也可以是由媒体网关触发媒体网关控制器发起的,则此时步骤1001之前还包括:
1000、当从内部网络接口接收到IP报文并且查找不到已有可用的NAT地址映射,需要生成新的网络地址映射时,入终端或出终端生成上报事件消息,所述上报事件消息中包括内部网络接口标识或/和外部网络接口标识,还可以包括内部网络IP地址和端口,映射后的外部网络IP地址和端口等信息;将所述上报事件消息发送至所述媒体网关控制器。其中,上报事件消息中还可以包括目的地址信息以及协议类型信息中的一种或多种。该事件可以在接口上下文(Interfacecontext)的终端上设置。也可以定义设置到其它代表接口的终端上。
下面结合图4中的网络系统对本发明实施例做进一步描述。在图4中,媒体网关2分别通过接口1、接口2和接口3,与设备A、设备X和设备B相连。其中,设备A、设备X和设备B分别属于IP网络1、IP网络2和IP网络3。IP网络1和IP网络3为不同的内部网络,为私有网络;IP网络2是外部网络,为公有网络。
设备A的IP地址是addressA,使用的端口是portA;设备B的IP地址是addressB,使用的端口是portB;设备A和设备B发往IP网络3中的IP包通过媒体网关的时候,媒体网关需要将其内部网络的地址映射到外部网络,可能只映射IP地址(例如基本NAT的情况),也可能映射IP地址和端口(例如NAPT的情况)。
对于设备A,有如下实施例一:
步骤1:媒体网关控制器指示媒体网关创建(或修改、或移动)NIPR上下文,并通过上下文属性nmi携带地址映射关系。该属性可以是新定义的属性,也可以是在现有属性的基础上增加了新的功能。
属性nmi的语法如下:
PrivateInterface”|”PrivateIPAddress”|”PublicInterface”|”
PublicIPAddress[“|”prip:PrivatePort”][”|”pubp:PublicPort”]
其中,参照ABNF的语法,中括号”[]”代表可选。“|”用作分割符。
PrivateInterface代表内部网络侧的接口名;
PrivateIPAddress代表被地址映射的内部网络的IP地址;
PrivatePort代表被地址映射的内部网络的端口,该信息可选,可以不必携带,例如,如果是基本NAT;则不需要进行端口转换;
PublicInterface代表外部网络侧的接口名;
PublicIPAddress代表地址映射后的的外部网络的IP地址;
PublicPort代表地址映射后的外部网络的端口,该信息可选,可以不必携带,例如,如果是基本NAT,则不需要进行端口转换。
在可选项前还包括可选项标识,如“prip”和“pubp”等。
该语法定义了一种可行的实现方式,在具体实现时可能形式不完全相同。例如,前面描述过将PublicInterface定义成可选项也是一种可行方案。
有些类型NAT的地址映射和目的地址有关,则该属性中还可以携带目的地址信息(目的网络IP地址和端口,或者目的网络子网地址等)。以使用目的网络IP地址和端口为例,则语法增强为:
PrivateInterface”|”PrivateIPAddress”|”PublicInterface”|”
PublicIPAddress[“|”prip:PrivatePort”][”|”pubp:PublicPort”][″|da:″DestinationIPAddress][″|dp:″DestinationPort]
DestinationIPAddress代表IP报文的目的地址;或者IP报文的目的网络子网地址;
DestinationPort代表IP报文的目的端口;
适用本属性描述的NAT地址映射关系的IP报文必须满足该属性已经设置的目的地址和目的端口。DestinationIPAddress和DestinationPort都是可选项。
对于NAPT,4层的端口号也要参与到地址映射中,目前NAT支持的四层端口分别是UDP端口和TCP端口,所以可能需要在NIPR上下文中携带地址映射所针对的四层协议类型。要实现四层协议类型的携带,可以扩展H.248协议增加定义上下文属性或者终端属性来描述NAT地址映射对应的四层协议类型。例如定义上下文属性proType,其数据类型为枚举,可能的值为“UDP”和”TCP”。NAT上可能为同一个内部网络地址的TCP报文和UDP报文产生不同的地址映射。
也可以在描述NAT地址映射的属性中携带协议类型信息,则语法增强为:
PrivateInterface”|”PrivateIPAddress”|”PublicInterface”|”
PublicIPAddress[“|”prip:PrivatePort”][”|”pubp:PublicPort”][″|da:″DestinationIPAddress][″|dp:″DestinationPort][″|pt:″ProtocolType]
ProtocolType代表协议类型,为可选项。取值分别为”UDP”,”TCP”。也可能进一步扩展支持其它的类型,例如ICMP等。
另一方面,上下文属性中的一些项可以使用通配,例如使用”$”通配符,该上下文属性由媒体网关控制器发送到媒体网关后,媒体网关给通配符项赋值,在应答消息中返回给媒体网关。
如,按照上述语法定义的格式,媒体网关控制器发送给媒体网关的上下文属性nmi值为:
“interface1|200.200.100.10|$|$|da:172.100.9.20”
该属性表示要求媒体网关返回从接口interface1接收到的源地址为200.200.100.10,目的地址是172.100.7.20的IP包,对应的外部网络的接口和映射后的外部网络地址。
媒体网关则为该通配符分配相应的地址信息,并在应答消息中返回:
“interface1|200.200.100.10|interface2|172.100.9.10|da:172.100.9.20”,表示媒体网关从接口interface1接收到的源地址为200.200.100.10,目的地址是172.100.9.20的IP包后,通过接口interface2转发出去,源地址被修改成172.100.9.10。
再例如:媒体网关控制器发给媒体网关的nmi属性为:
“interface1|200.200.100.10|interface2|$”
表示要求媒体网关为接口interface1接收到的源地址为200.200.100.10的IP报文上的在接口interface2上映射一个外部网络的IP地址。媒体网关在应答消息中将nmi设置成“interface1|200.200.100.10|interface2|172.100.9.10”,表示内部网络地址200.200.100.10被映射成了外部网络地址172.100.9.10。
通过这种在上下文属性中的部分信息设为通配符的方法,媒体网关能根据本地情况自由的分配外部或内部网络的地址,接口等,增大了媒体网络进行网络地址转换的灵活性。
该步骤中,下发nmi属性也可以在通过修改和移动等命令中作为上下文属性下发。
步骤2:媒体网关接收到IP网络1中发来的IP报文,如果是NAT类型的网络地址映射方式,则媒体网关在创建好的NIPR上下文中搜索已有的NAT地址映射记录,如果发现符合条件的NAT地址映射,则将该IP报文的源地址修改成映射后的地址;如果是媒体网关进行的是NAPT类型的网络地址映射,则媒体网关在创建好的NIPR上下文中搜索已有的NAPT地址映射记录,如果发现符合条件的NAPT地址映射,则将该IP报文的源地址修改成映射后的地址,其中,NAPT地址映射中还需要获得进行映射的端口号,并进行端口的映射,然后通过映射到的外部网络接口发送到IP网络2。
媒体网关接收到IP网络2中发来的IP报文,如果是NAT类型的网络地址映射方式,则媒体网关在创建好的NIPR上下文中搜索已有的NAT地址映射记录,如果发现符合条件的NAT地址映射,则将该IP报文的目的地址修改成映射后的地址;如果是NAPT类型的网络地址映射方式,则媒体网关创建好的NIPR上下文中搜索已有的NAPT地址映射记录,如果发现符合条件的NAPT地址映射,则将该IP报文的源地址修改成映射后的地址,其中,进行NAPT地址映射时,需要映射IP地址和端口号,因此除了需要获取IP地址外还需要获得进行映射的端口号,并进行IP地址和端口的映射,然后通过映射到的内部网络接口发送到IP网络1。
其中,步骤1和步骤2并没有必然的先后顺序,在步骤2中,媒体网关创建有NIPR上下文后,就可以根据该上下文中的地址映射记录进行相应的地址映射;而步骤1可能发生在初次创建NIPR上下文时,也可能当NIPR上下文创建好后对NIPR中的地址映射记录进行修改,或创建新的NIPR上下文等。
那么,在步骤2中,有可能媒体网关在搜索已有上下文的地址映射记录(或称地址映射关系)时,找不到合适的地址映射记录,这时,其需要触发媒体网关控制下发相应的地址映射记录以便进行网络地址转换,则该过程如实施例二所示。
实施例二:
网络地址转换也可以通过媒体网关接收到的IP报文触发产生,如,媒体网关收到IP报文后进行搜索,发现没有相应的地址映射关系,则生成上报事件消息并发送至媒体网关控制器;也可能是由媒体网关直接生成上报事件消息并发送。该上报事件消息的生成有两种可行的方法:
1、通过检测到新的网络地址映射中代表内部网络接口的终端上报。在该情况下,上报地址映射的时候还需要上报NAT地址映射的外部网络接口信息。
2、通过检测到新的网络地址映射中代表外部网络接口的终端上报。在该情况下,上报地址映射的时候还需要上报NAT地址映射的内部网络接口信息。
以上上报所述事件的终端可以是接口上下文中的终端。
例如,媒体网关在接口3接收到设备B发往IP网络2中的设备X的IP报文。如果接口2上设置了检测新NAT地址映射的事件,则接口上下文中代表接口2的终端上报事件,向媒体网关控制器通知新产生的NAT地址映射。该事件中携带了该NAT地址映射对应的内部网络的接口名(私有网络接口名),也可以增加携带外部接口的接口名。还可以增加携带NAT地址映射的协议类型信息。该上报事件消息的参数nnme格式如下设置:
PrivateInterfaceID″|″PrivateIPAddress″|″PublicIPAddress[″|prp:″PrivatePort][″|pup:″PubicPort][″|da:″DestinationIPAddress][″|dp:″DestinationPort][″|puID:″PublicInterfaceID][″|pt:″ProtocolType]
ProtocolType代表协议类型,为可选项。取值分别为”UDP”,”TCP”。也可能进一步扩展支持其它的类型。
Nnme参数可以在已定义的参数的基础上扩充功能,也可以定义成新的参数。
另外,如果规定在代表NAT地址映射内部网络接口的终端上上报新产生NAT地址映射的事件,则上报的事件中需要携带映射到的外部网络接口名。也可以增加携带内部接口的接口名。
参数nnme格式定义如下:
PublicInterfaceID″|″PrivateIPAddress″|″PublicIPAddress[″|prp:″PrivatePort][″|pup:″PubicPort][″|da:″DestinationIPAddress][″|dp:″DestinationPort].[″|prID:″PrivateInterfaceID][″|pt:″ProtocolType]
如果上报的事件中没有携带映射到的外部网络接口名和/或外部网络地址,例如:nnme的值为”-|192.168.1.100|-|da:61.27.39.99|prID:interface3”,媒体网关通知媒体网关控制器在IP网络3的接口3上接收到源地址为192.168.1.100,目的地址为61.27.39.99的IP报文。PublicInterfaceID和PublicIPAddress的位置填写”-”,表示当前媒体网关还没有选定或者选定了但是不上报外部网络接口和映射后的外部网络地址。媒体网关控制器下一步可以通过实施例一的方式向媒体网关设置NAT地址映射的外部网络接口和映射后的外部网络地址,或者指示媒体网关为该NAT地址映射分配外部网络资源并在应答消息中返回外部网络接口和映射后的外部网络地址。
在本发明实施例所提供的技术方案中,通过事件参数上报与地址映射有关的信息,定义了新的参数格式,在该参数中增加了与NAT地址映射相关的接口的信息,使得仅通过获知该事件参数可以生成完整的NAT地址映射信息,便于进一步的操作。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。