一种实现网络地址转换的方法、媒体网关和网络系统转让专利

申请号 : CN200810218689.X

文献号 : CN101729388B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 祝宁

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

摘要 :

本发明公开了一种实现网络地址转换的方法、媒体网关和网络系统,该方法包括:获得媒体网关控制器发送的地址映射关系,地址映射关系中包括第一网络的第一地址和第一地址被映射成的第二地址,第二网络的第三地址和第三地址被映射成的第四地址;对从第一网络发往第二网络的IP报文,根据地址映射关系将IP报文中作为源地址的所述第一地址修改成所述第二地址,将IP报文中作为目的地址的所述第四地址修改成所述第三地址,然后转发到第二网络,同理,对第二网络到第一网络的IP报文的地址进行源地址和目的地址的更新。在本方案中,媒体网关可以将IP报文的目的地址和源地址均进行映射,以桥接地址域有重叠的两个网络,解决了地址冲突的问题。

权利要求 :

1.一种实现网络地址转换的方法,其特征在于,所述方法包括:

获得媒体网关控制器发送的地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址;

对接收到的从所述第一网络发往所述第二网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第一地址修改成所述第二地址,将所述IP报文中作为目的地址的所述第四地址修改成所述第三地址,然后转发到所述第二网络;

对接收到的从所述第二网络发往所述第一网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第三地址修改成所述第四地址,将所述IP报文中作为目的地址的所述第二地址修改成所述第一地址,然后转发到所述第一网络;

其中,所述地址映射关系中包含通配符号;

所述获得媒体网关控制器发送的地址映射关系包括:

获得媒体网关控制器发送的地址映射关系,根据所述地址映射关系中除了通配符号的其他信息获得所述通配符号对应的映射地址;

生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的映射地址的地址映射关系。

2.如权利要求1所述的方法,其特征在于,所述地址映射关系还包括第一网络的接口标识和第二网络的接口标识,所述第一网络的接口标识用以标识所述地址映射关系中的第一地址和第二地址对应所述第一网络,所述第二网络的接口标识用以标识所述地址映射关系中的第三地址和第四地址对应所述第二网络。

3.如权利要求1或2所述的方法,其特征在于,所述获得媒体网关控制器发送的地址映射关系还包括:获得媒体网关控制器发送的至少一个上下文属性,所述上下文属性中包括所述地址映射关系。

4.如权利要求3所述的方法,其特征在于,所述地址映射关系中还包括用于标识所述地址映射的类型的地址映射类型信息。

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

获取单元,用于获得媒体网关控制器发送的地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址;

报文接收单元,用于接收从所述第一网络发往所述第二网络的IP报文,或接收从所述第二网络发往所述第一网络的IP报文;

映射单元,用于对接收到的从所述第一网络发往所述第二网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第一地址修改成所述第二地址,将所述IP报文中作为目的地址的所述第四地址修改成所述第三地址,得到地址修改后的IP报文,或用于对接收到的从所述第二网络发往所述第一网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第三地址修改成所述第四地址,将所述IP报文中作为目的地址的所述第二地址修改成所述第一地址,得到地址修改后的IP报文;

转发单元,用于将所述映射单元获得地址修改后的IP报文转发到所述第一网络或第二网络;

其中,所述地址映射关系中包括通配符号,所述获取单元包括:

属性获取模块,用于获得媒体网关控制器发送的至少一个上下文属性;

映射关系获取模块,用于获取所述上下文属性中的地址映射关系;

所述映射关系获取模块包括:

分配子模块,用于获得媒体网关控制器发送的地址映射关系,根据所述地址映射关系中除了通配符号的其他信息获得所述通配符号对应的映射地址;

应答子模块,用于根据分配模块的处理结果生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的映射地址的地址映射关系。

6.一种网络系统,包括媒体网关控制器和媒体网关,其特征在于,

所述媒体网关控制用于向媒体网关发送地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址;

所述媒体网关用于根据所述地址映射关系进行网络地址映射,以将来自第一网络的IP报文发送到第二网络,或将来自第二网络的IP报文发送到第一网络;

其中,所述地址映射关系中包含通配符号,所述媒体网关还用于获得媒体网关控制器发送的地址映射关系,根据所述地址映射关系中除了通配符号的其他信息获得所述通配符号对应的映射地址;生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的映射地址的地址映射关系。

7.如权利要求6所述的系统,其特征在于,所述媒体网关包括:

获取单元,用于获得媒体网关控制器发送的地址映射关系;

报文接收单元,用于接收从所述第一网络发往所述第二网络的IP报文,或接收从所述第二网络发往所述第一网络的IP报文;

映射单元,用于对接收到的从所述第一网络发往所述第二网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第一地址修改成所述第二地址,将所述IP报文中作为目的地址的所述第四地址修改成所述第三地址,得到地址修改后的IP报文,或用于对接收到的从所述第二网络发往所述第一网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第三地址修改成所述第四地址,将所述IP报文中作为目的地址的所述第二地址修改成所述第一地址,得到地址修改后的IP报文;

转发单元,用于将所述映射单元获得地址修改后的IP报文转发到所述第一网络或第二网络。

说明书 :

一种实现网络地址转换的方法、媒体网关和网络系统

技术领域

[0001] 本发明涉及通讯领域,尤其涉及一种实现网络地址转换的方法、媒体网关和网络系统。

背景技术

[0002] 在网络系统中通常分为多个子网,各个子网之间通过网关相互连接。如以软交换设备为核心的下一代网络(Next Generation Network,NGN),其网络结构如图1所示。NGN网络主要包括媒体网关(Media Gateway,MG)和媒体网关控制器(Media Gateway Controller,MGC)。其中,MGC,用于实现呼叫状态的管理,以及对MG承载资源的控制;MG,用于将媒体流类型由一种格式转换为另一种格式,例如,将电路交换网中的E1时隙中的媒体信息转换为IP网络中的实时传输协议(Realtime Transport Protocol,RTP)媒体流,并在MGC的信令控制下实现媒体流的建立、修改、释放以及资源管理等功能。MGC通过H.248协议消息向MG发送控制等信息。
[0003] 同时,MG还具有网络地址转换(Network Address Translation或Network Address Translator,NAT)功能。传统NAT是一种把内部私有网络地址,即IP(Internet Protocol,IP)地址,翻译成外部公有网络IP地址的技术。
[0004] 简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(如NGN网络中的媒体网关)处,将内部地址替换成公用地址,从而在外部公网(Internet)上正常使用。这里提到的内部地址,包括在内部网络中分配给节点的私有IP地址,这个地址能在内部网络中使用,不能被路由。而公用地址,是指合法的IP地址,它是全球统一的可寻址的地址。NAT功能还可以被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。
[0005] 从功能上看,根据RFC的定义,NAT可以分为以下几种类型:
[0006] 1、传统NAT(Traditional NAT)。传统NAT又分为两种类型:基本NAT(Basic NAT)和网络地址端口转换(Network Address Port Translation,NAPT)。
[0007] (1)基本NAT
[0008] NAT拥有多个公开IP地址,当位于内部网络的主机向外部主机发起会话请求时,把内部地址转换成全球惟一的公开IP地址。
[0009] (2)NAPT
[0010] NAPT把“基本NAT”转换的概念延伸了一步,转换地址的同时也转换传输层标志(如TCP/UDP的端口号,ICMP的查询ID),从而把多个内部主机的传输层标志复用为一个惟一的外部地址。
[0011] 2、双向NAT(Bi-directionaINAT或Two-WayNAT)
[0012] 使用双向NAT时,可以从内部网络向外部网络发起会话请求,也可以从外部网络向内部网络发起会话请求。当在外出或进入任何一个方向上建立连接时,把内部网络地址静态或动态绑定到全局惟一的地址上。这里假设位于内部网络和外部网络之间的名字空间(Fully Qualified Domain Names,FQDN)是端到端惟一的,以使得位于外部编址域的主机利用域名系统(Domain Name System,DNS)访问内部网络的主机。在双向NAT上必须部署DNS应用层网关(DNS-Application Level Gateway,DNS-ALG),以处理名字到地址的映射。当一个DNS包需要穿越内部和外部编址域时,DNS-ALG必须能够将DNS查询和响应消息中的内部地址翻译成外部地址,或把外部地址翻译成内部地址。
[0013] 在实现本发明过程中,发明人发现,上述的两种NAT只翻译源或者目的地址(或还包括端口),当一个站点不恰当地使用已分配给其它机构的公开IP地址对其内部主机进行编址时;当一个站点从一家运营商换到另外一家运营商,同时希望在内部保留前一家运营商分配的地址时(而前一家运营商可能会在一段时间后将这些地址重新分配给其它人使用),这些情况下,会发生内部编址域和外部编址域冲突,而现有NAT不能解决这种冲突。

发明内容

[0014] 本发明所要解决的技术问题在于,提供一种实现网络地址转换的方法、媒体网关和网络系统,可以解决当发生内部编址域和外部编址域冲突时,实现正确的网络地址转换。
[0015] 为实现上述目的,一方面,本发明的实施例提供了一种实现网络地址转换的方法,包括:获得媒体网关控制器发送的地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址;对接收到的从所述第一网络发往所述第二网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第一地址修改成所述第二地址,将所述IP报文中作为目的地址的所述第四地址修改成所述第三地址,然后转发到所述第二网络;对接收到的从所述第二网络发往所述第一网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第三地址修改成所述第四地址,将所述IP报文中作为目的地址的所述第二地址修改成所述第一地址,然后转发到所述第一网络;
[0016] 其中,所述地址映射关系中包含通配符号;
[0017] 所述获得媒体网关控制器发送的地址映射关系包括:
[0018] 获得媒体网关控制器发送的地址映射关系,根据所述地址映射关系中除了通配符号的其他信息获得所述通配符号对应的映射地址;
[0019] 生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的映射地址的地址映射关系。
[0020] 另一方面,本发明的实施例提供了一种媒体网关,包括:获取单元,用于获得媒体网关控制器发送的地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址;报文接收单元,用于接收从所述第一网络发往所述第二网络的IP报文,或接收从所述第二网络发往所述第一网络的IP报文;映射单元,用于对接收到的从所述第一网络发往所述第二网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第一地址修改成所述第二地址,将所述IP报文中作为目的地址的所述第四地址修改成所述第三地址,得到地址修改后的IP报文,或用于对接收到的从所述第二网络发往所述第一网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第三地址修改成所述第四地址,将所述IP报文中作为目的地址的所述第二地址修改成所述第一地址,得到地址修改后的IP报文;转发单元,用于将所述映射单元获得地址修改后的IP报文转发到所述第一网络或第二网络;
[0021] 其中,所述地址映射关系中包括通配符号,所述获取单元包括:
[0022] 属性获取模块,用于获得媒体网关控制器发送的至少一个上下文属性;
[0023] 映射关系获取模块,用于获取所述上下文属性中的地址映射关系;
[0024] 所述映射关系获取模块包括:
[0025] 分配子模块,用于获得媒体网关控制器发送的地址映射关系,根据所述地址映射关系中除了通配符号的其他信息获得所述通配符号对应的映射地址;
[0026] 应答子模块,用于根据分配模块的处理结果生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的映射地址的地址映射关系。
[0027] 同时,本发明的实施例还提供了一种网络系统,包括媒体网关控制器和媒体网关,其中,所述媒体网关控制用于向媒体网关发送地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址;所述媒体网关用于根据所述地址映射关系进行网络地址映射,以将来自第一网络的IP报文发送到第二网络,或将来自第二网络的IP报文发送到第一网络;
[0028] 其中,所述地址映射关系中包含通配符号,所述媒体网关还用于获得媒体网关控制器发送的地址映射关系,根据所述地址映射关系中除了通配符号的其他信息获得所述通配符号对应的映射地址;生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的映射地址的地址映射关系。
[0029] 在本发明实施例提供的技术方案中,媒体网关获得媒体网关控制器发送的地址映射关系,该地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址,这样,媒体网关可以根据上述地址映射关系对IP报文的目的地址和源地址均进行映射,以桥接不同的两个网络的地址域,解决了地址冲突的问题。

附图说明

[0030] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0031] 图1是现有的NGN系统的组成示意图;
[0032] 图2是本发明中网络系统的一个具体实施例的组成示意图;
[0033] 图3是图2中的媒体网关的一个具体实施例的组成示意图;
[0034] 图4是图3中的获取单元的一个具体实施例的组成示意图;
[0035] 图5是图4中的映射关系获取模块的一个具体实施例的组成示意图;
[0036] 图6是本发明中实现网络地址转换的方法的第一具体实施例的流程示意图;
[0037] 图7是本发明中实现网络地址转换的方法的第二具体实施例的流程示意图。

具体实施方式

[0038] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039] 如图2所示,为本发明中网络系统的一个具体实施例的组成示意图。该系统包括:媒体网关控制器1和媒体网关2。其中,媒体网关控制1用于向媒体网关2发送地址映射关系,媒体网关2根据该地址映射关系对转发的IP报文进行地址映射。所述地址映射关系中包括IP网络1的第一地址和所述第一地址映射成的第二地址,IP网络2的第三地址和所述第三地址映射成的第四地址。
[0040] 所述映射关系可以描述单个地址之间的映射,也可以描述地址组之间的映射,所述地址组之间的映射表示两个地址组包含的多个地址之间的一一映射。所述映射关系中的第一地址和第二地址同时为单个地址或同时为地址组中的单个地址,第三地址和第四地址同时为所述单个地址或同时为所述地址组中的地址。
[0041] 该地址映射关系可以通过发送上下文属性的方式向媒体网关2发送,如,可以通过增加(ADD),修改(MOD)或者移动(MOV)等命令下发。这些地址信息可以在一个上下文属性中下发,也可以通过两个上下文属性下发,在两个上下文属性中分别描述所述第一地址和所述第二地址的映射关系,和所述第三地址和所述第四地址的映射关系。
[0042] 同时,该地址映射关系中还可进一步包括与地址映射相关的接口的接口标识,接口标识可以在通过在上下文属性中携带给媒体网关2。
[0043] 这里需要指出的是,描述地址映射关系的上下文属性中接口标示不是必需的。接口标示信息可以以其他方式传递,如通过携带前面描述的上下文属性的上下文中的终端的命名方式等发送给媒体网关2。例如上下文中的两个终端分别命名为“IP/G12/interface1/1”和“IP/G34/interface2/2”,该终端名中分别包括表示NAT地址映射涉及到的两个终端各自的接口名,即分别标识终端1所在的是接口名是“interface1”的接口,并且该接口在该网络地址映射中是第一网络接口;终端2所在的是接口名是“interface2”的接口,并且该接口在该网络地址映射中是第二网络接口。
[0044] 同时,媒体网关控制器1下发的地址映射关系中的部分信息可以仅表示为通配符号,而不是具体的地址等信息,如采用通配符号为“$”。具体的地址信息可由媒体网关,根据下发的地址映射关系中的其他信息来进行分配,这样,媒体网关能根据本地情况自由的通配符号对应的信息,增大了媒体网络进行网络地址转换的灵活性。
[0045] 相应的,如图3所示,媒体网关2包括:
[0046] 获取单元20,用于获得媒体网关控制器发送的地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址,所述获取单元20还用于获得包括第一网络端口、第二网络端口以及NAT地址映射类型信息中的一种或多种的地址映射关系;
[0047] 报文接收单元21,用于接收从所述第一网络发往所述第二网络的IP报文,或接收从所述第二网络发往所述第一网络的IP报文;
[0048] 映射单元22,用于对接收到的从所述第一网络发往所述第二网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第一地址修改成所述第二地址,将所述IP报文中作为目的地址的所述第四地址修改成所述第三地址,获得地址修改后的IP报文,或用于对接收到的从所述第二网络发往所述第一网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第三地址修改成所述第四地址,将所述IP报文中作为目的地址的所述第二地址修改成所述第一地址,获得地址修改后的IP报文;
[0049] 转发单元23,用于将所述映射单元获得地址修改后的IP报文转发到所述第一网络或第二网络。
[0050] 其中,如图4所示,获取单元20可包括:属性获取模块200,用于获得媒体网关控制器发送的至少一个上下文属性;映射关系获取模块202,用于获取所述上下文属性中的地址映射关系。
[0051] 当地址映射关系包括通配符号时,如图5所示,映射关系获取模块202包括分配子模块2020,用于获得媒体网关控制器发送的地址映射关系,根据所述地址映射关系中除了通配符号的其他信息获得所述通配符号对应的映射地址,如,可由分配模块2020直接分配,或是网络中其他设备获得;或还包括,应答子模块2022,用于根据所述地址映射关系和分配的所述映射地址生成应答消息,并返回至所述媒体网关控制器,所述应答消息中包括将所述通配符号替换为所述对应的映射地址的地址映射关系。
[0052] 在本发明实施例提供的技术方案中,媒体网关可以将IP报文的目的地址和源地址均进行映射,以桥接地址域有重叠的两个网络,解决了地址冲突的问题。同时,在上述实施例中还提供了,媒体网关获得地址映射关系的多种途径,使得本技术方案更加灵活和实用。
[0053] 相应的,如图6和图7所示,本发明还提供了一种实现网络地址转换的方法的实施例,该方法包括如下流程:
[0054] 601、获得媒体网关控制器发送的地址映射关系,所述地址映射关系中包括第一网络的第一地址和所述第一地址被映射成的第二地址,第二网络的第三地址和所述第三地址被映射成的第四地址。其中,所述映射关系可以描述单个地址之间的映射,也可以描述地址组之间的映射,所述地址组之间的映射表示两个地址组之间的单独的地址之间一一映射;同时,地址映射关系中还可包括接口标识。
[0055] 媒体网关和媒体网关控制器通过同步地址映射关系实现媒体网关控制器对地址映射关系的管理,以及媒体网关根据地址映射关系对经过的媒体IP报文进行NAT地址转换和IP报文转发。
[0056] 第一网络和第二网络可能有地址重叠,所以需要用两次NAT来进行这两个网络之间的IP包转发。这两个网络可以看作是两个私有网络,但是也可以将其中一个看作私有网络,另外一个看作公有网络。后面为了避免混淆,将其称呼为network1和network2.[0057] 上述的地址映射关系可用下述上下文属性的语法表述:
[0058] Network1Interface”|”Network1IPAddress”|”Network1MappedIPAddress”|”[0059] Network2Interface”|”Network2IPAddress”|”Network2MappedIPAddress[0060] 其中,“|”用作分割符,Network1Interface为IP网络1中的接口名(接口标识),Network1IPAddress为IP网络1中的网络地址,Network1IPAddress可以是单个地址,也可以是地址组(或者是子网络地址加掩码)。Network1MappedIPAddress为Network1IPAddress被映射成的地址,其代表的地址个数和Network1IPAddress相同,而且如果是地址组之间的映射,则组内地址为一一对应关系。
[0061] Network2Interface为IP网络2中的接口名,Network2IPAddress为IP网络2中的网络地址,Network2IPAddress可以是单个地址,也可以是地址组(或者是子网络地址加掩码)。Network2MappedIPAddress为Network2IPAddress被映射成的地址,其代表的地址个数和Network2IPAddress相同,而且如果是地址组之间的映射,则组内地址为一一对应关系。
[0062] 例如:
[0063] “interface1|200.200.200.0/24|138.76.28.0/24|
[0064] interface2|200.200.200.0/24|172.16.1.0/24”
[0065] 代表在接口”interface1”上将地址段(或称为地址组)200.200.200.0/24中的地址一一映射成地址段(或称为地址组)138.76.28.0/24中的地址,在接口”interface2”上将地址段(或称为地址组)200.200.200.0/24中的地址一一映射成地址段(或称为地址组)172.16.1.0/24中的地址。
[0066] 其中:
[0067] 200.200.200.0/24表示子网地址为200.200.200.0,网络位为24位,即掩码为255.255.255.0。
[0068] 138.76.28.0/24表示子网地址为138.76.28.0,掩码为255.255.255.0。
[0069] 172.16.1.0/24表示子网地址为172.16.1.0,掩码为255.255.255.0。
[0070] 地址组之间的映射表示地址组之间的地址一一映射。例如:在接口”interface1”上,200.200.200.1映射到138.76.28.1,200.200.200.2映射到138.76.28.2,以此类推。
[0071] 以上的例子是地址组之间的映射,也可以只映射单独的地址,例如:
[0072] “interface1|200.200.200.1|138.76.28.1|
[0073] interface2|200.200.200.100|172.16.1.100”
[0074] 代表在接口”interface1”上将地址200.200.200.1映射成138.76.28.1,在接口”interface2”上将地址200.200.200.100映射成172.16.1.100
[0075] 如果接口信息通过其它方式,例如通过终端名的命名方式等传递给媒体网关,则上述上下文属性中的接口名部分也可以部分或者全部省略。接口信息部分还可以通过静态配置确定,这种情况下也不需要在上下文属性中下发接口信息。
[0076] 一个类似的实现方法是用两个上下文属性分别描述两个网络各自的地址映射关系,例如分别在两个上下文中通过上下文属性分别描述前述的interface1上的地址映射关系和interface2上的地址映射关系。
[0077] 以上方法通过上下文属性描述单个两次NAT地址映射的映射关系。多个上下文中的该上下文属性综合起来可以描述多个两次NAT地址映射的映射关系,形成两次NAT地址映射表。媒体网关从而实现两次NAT设备的功能。
[0078] 上述只是考虑了三层的IP地址之间的映射,如果考虑到四层的TCP/UDP的端口,则前面描述的地址映射关系还需要进一步扩展成描述IP地址加端口的地址映射关系。IP网络一的某个IP地址的某个端口映射成某个地址加端口;IP网络二的某个IP地址的某个端口映射成某个地址加端口。这种情况下,媒体网关实际上实现了两次NAPT的功能。
[0079] 上下文属性中的部分内容可以设置成通配符号,例如第一地址、第二地址、第三地址或第四地址中的一个使用通配符号;或者第一地址和第二地址中的一个一个使用通配符号,第三地址和第四地址中的一个使用通配符号;由媒体网关将与该通配符号相关的地址值返回媒体网关控制器。例如下发上下文属性为:
[0080] “interface1|200.200.200.1|$|interface2|200.200.200.100|172.16.1.100”[0081] 则相当于要求媒体网关返回在interface1上200.200.200.1被映射后的地址,媒体网关在应答消息中返回“interface1|200.200.200.1|138.76.28.1|interface2|200.200.200.100|172.16.1.100”。媒体网关控制器从中获得在interface1上200.200.200.1被映射后的地址为138.76.28.1。
[0082] 两次NAT的地址映射规律和一次NAT(例如传统NAT和双向NAT)不同,对源地址和目的地址都需要进行地址映射。本发明中描述两次NAT的地址映射关系的上下文属性可以是一个新扩展的上下文属性,也可以借用现有技术中用于描述传统NAT的地址映射的属性,例如H.248.64现在的草稿中的iprnat包的nmi属性,来描述本发明中的地址映射关系,后一种情况下要修改现有的该属性的语法。
[0083] 一种实施方法是:在属性语法增加一个标志,比如如果带有标志”type:twice”,则表示本属性描述的是两次NAT的地址映射关系,例如:
[0084] nmi属性的语法还可以做如下修改:
[0085] [“type:”twice](|Network1Interface”|”Network1IPAddress”|”Network1MappedIP Address”|”Network2Interface”|”Network2IPAddress”|”Network2MappedIPAddress)/(|PrivateIPAddress ″ |"PublicIPAddress[ ″ |prp: ″ PrivatePort][″|pup:″PubicPort][″|da:″DestinationIPAddress][″|dp:″DestinationPort])[0086] 其中,符号“[]”中代表的为可选项。
[0087] PrivateIPAddress ″ |"PublicIPAddress[ ″ |prp: ″ PrivatePort][″|pup:″PubicPort][″|da:″DestinationIPAddress][″|dp:″DestinationPort]是对单次NAT(传统NAT或者双向NAT)的NAT地址映射关系的描述。
[0088] Network1Interface”|”Network1IPAddress”|”Network1MappedIPAddress”|”Netw ork2Interface”|”Network2IPAddress”|”Network2MappedIPAddress是对两次NAT的NAT地址映射关系的描述。
[0089] 如,下发的上下文属性为:
[0090] “type:twice|interface1|200.200.200.1|138.76.28.1|
[0091] interface2|200.200.200.100|172.16.1.100”
[0092] 该上下文属性中的地址映射关系表示该NAT地址映射的类型是两次NAT,地址映射在接口”interface1”上将地址200.200.200.1映射成138.76.28.1,在接口”interface2”上将地址200.200.200.100映射成172.16.1.100
[0093] NAT地址映射也可以其它类型,例如:
[0094] “type:BasicNAT|200.200.200.1|138.76.28.1”
[0095] 表示该NAT为基本NAT,将地址200.200.200.1映射成138.76.28.1。
[0096] 该上下文属性中描述NAT类型的部分也移出来单独用一个新扩展的上下文属性来描述,即单独定义一个描述本NIPR上下文描述的NAT的类型的属性。
[0097] 还可以通过数据配置等方式设定整个网关或者某些接口上的NAT地址映射类型为两次NAT的地址映射。
[0098] 根据目前对两次NAT功能的描述,两次NAT的地址映射作用于两个IP网络之间双向的IP报文,实际上本发明也可以用于单向的IP报文,例如只用于IP网络1到IP网络2的两次NAT映射,或者只用于IP网络2到IP网络1的两次NAT映射。
[0099] 602、对从第一网络向第二网络发送的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第一地址修改成所述第二地址,将所述IP报文中作为目的所述第四地址修改成映射后的所述第三地址。
[0100] 如,在图2所示的网络中,IP网络1和IP网络2的地址规划重叠,假设网络地址都是200.200.200.0。则此时媒体网关获得地址映射关系为地址组的映射:将IP网络1中的地址200.200.200.0/24映射成138.76.28.0/24;将IP网络2中的地址200.200.200.0/24映射成172.16.1.0/24;其中,“/”后的24表示表示前24位为网络地址,后8位为主机地址。
[0101] 那 么 有,200.200.200.0/24 表 示 网 络 地 址200.200.200.0,掩 码 为255.255.255.0;138.76.28.0/24表示网络地址138.76.28.0,掩码为255.255.255.0;
172.16.1.0/24表示网络地址172.16.1.0,掩码为255.255.255.0。
[0102] 在本例中,地址映射关系为将一组网络地址映射为另一组网络地址,媒体网关将IP网络1中的地址200.200.200.1映射成138.76.28.1,地址200.200.200.2映射成138.76.28.2,以此类推;媒体网关将IP网络2中的地址200.200.200.1映射成172.16.1.1,地址200.200.200.2映射成172.16.1.2,以此类推。需要说明的是,映射时一个地址只能映射为另一个地址,而不能映射为多个地址,即映射的地址都是一一对应的。
[0103] 若,媒体网关接收到IP网络1中发来的IP数据流,如果源地址和目的地址的范围在前面描述的地址映射关系的范围内,可以适用前面描述的两次NAT地址映射,假设源地址为200.200.200.1,目的地址为172.16.1.100,则媒体网关将IP数据流的源地址200.200.200.1修改为138.76.28.1,将目的地址172.16.1.100修改为200.200.200.100,然后将数据流转发到IP网络2。
[0104] 603、对接收到的从所述第二网络发往所述第一网络的IP报文,根据所述地址映射关系将所述IP报文中作为源地址的所述第三地址修改成所述第四地址,将所述IP报文中作为目的地址的所述第二地址修改成所述第一地址,然后转发到所述第一网络。
[0105] 相应的,若媒体网关接收到IP网络2中发来的IP数据流,如果源地址和目的地址的范围在前面描述的地址映射关系的范围内,可以适用前面描述的两次NAT地址映射,假设源地址为200.200.200.100,目的地址为138.76.28.1,则媒体网关将IP数据流的源地址200.200.200.100修改为172.16.1.100,将目的地址138.76.28.1修改为200.200.200.1,然后将数据流转发到IP网络1。
[0106] 其中,602和603的执行并没有先后顺序之分,可以是同时执行,也可以是先执行602后执行603,或是先执行603后执行602;在步骤601中,媒体网关控制向媒体网关发送地址映射关系的过程,可以是由媒体网络控制器主动发起的,也可以是由媒体网关触发媒体网关控制器发起的,此时步骤601之前还包括步骤:
[0107] 当从媒体网关接收到IP网络1发来的IP报文并且查找不到已有可用的地址映射关系时,媒体网关生成并向媒体网关控制器发送上报事件消息,通知媒体网关控制器源地址和/或目的地址在地址映射表中没有对应项。如果是所述源地址在地址映射表中没有对应项,则媒体网关控制器可以通过和DNS-ALG的交互查找或者为该源地址分配一个新的映射地址,或者媒体网关控制器自发为该源地址查找或者分配一个新的映射地址,新的映射地址可以在后续消息中下发给媒体网关;如果是所述目的地址在地址映射表中没有对应项,则媒体网关控制器可以通过和DNS-ALG的交互查找,或者在媒体网关控制器上查找目的网络以及真正的目的设备及其在目的网络中的地址。该事件可以在接口上下文(Interface context)的终端上设置。也可以定义设置到其它终端上。
[0108] 例如,媒体网关在IP网络1接收到的源地址为200.200.200.1,目的地址为172.16.1.100的IP报文,但是查找不到符合的NAT地址映射项,媒体网关将以上两个地址通过事件上报给媒体网关控制器。媒体网关控制器通过和DNS-ALG的交互查找到IP网络
1中的地址200.200.200.1被映射成138.76.28.1,而目的地址172.16.1.100是IP网络2中的地址200.200.200.100被映射成的地址。媒体网关控制器向媒体发送H.248消息创建新的NIPR上下文,上下文属性中描述两次NAT的地址映射关系为“interface1|200.200.20
0.1|138.76.28.1|interface2|200.200.200.100|172.16.1.100”。其含义前面有描述。流程走到步骤501.
[0109] 在上述实施例中所述的地址映射关系的具体定义和形式也可以适用于本发明的其他实施例。
[0110] 在本发明实施例提供的技术方案中,媒体网关可以将IP报文的目的地址和源地址均进行映射,以桥接不同的两个网络的地址域,解决了地址冲突的问题。同时,在上述实施例中还提供了,媒体网关获得地址映射关系的多种途径,以及具体的多种地址映射关系,使得地址映射时实施的方案可以更加灵活和实用。
[0111] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0112] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。