异构网络系统中实现网络地址转换协议转换的装置及方法\n技术领域\n[0001] 本发明涉及在多协议标签交互虚拟专用网网络中,虚拟专用网与采用异种协议的公网之间的互访技术,尤其涉及采用IPV4(或IPV6)协议的虚拟专用网与采用IPV6(或IPV4)协议的公网构成的异构网络系统中实现网络地址转换协议转换的装置及方法。\n背景技术\n[0002] IPV6作为未来第三代移动通信的重要协议之一,对于运营商来说,其极具吸引力的特点有两个:一是IPV6所采用的128位地址格式,使其具有庞大地址空间;二是IPV6对移动数据业务具有较强的支持能力,克服了移动IPV4固有的一些缺点。\n[0003] MPLS(Multiprotocol Label Switch,多协议标签交换)是一种使得不同的网络传输技术在同一个平台上统一起来的技术,它能够减少网络的复杂度,并兼容主流的网络技术,代表了未来网络发展的一种趋势。MPLS结合了IP路由选择的丰富性和帧中继或ATM的逐跳标签交换的简单性,以提供面向连接的转发与IP网络的无缝结合。\n[0004] 基于MPLS的VPN(Virtual Private Network,虚拟专用网络)是将用户和服务提供商之间的无连接的VPN与网络核心内的面向连接的VPN结合起来的一种技术,它使用MP-BGP发布用户的路由选择信息和MPLS标签,并通过VRF隔离不同VPN的路由,同时也解决了不同VPN之间地址空间重叠的问题。\n[0005] MPLS VPN是一种基于MPLS技术的IP-VPN,是在网络路由和交换设备上应用MPLS技术,简化核心路由器的路由选择方式,利用结合传统路由技术的标记交换实现的IP虚拟专用网络(IP VPN),可用来构造宽带的Intranet、Extranet,满足多种灵活的业务需求。采用MPLS VPN技术可以把现有的IP网络分解成逻辑上隔离的网络,这种逻辑上隔离的网络的应用可以是千变万化的:可以是用在解决企业互连、政府相同/不同部门的互连、也可以时用来提供新的业务---如为IP电话业务专门开辟一个VPN、以此解决IP网络地址不足和QoS的问题,也可以为用MPLS VPN为IPv6提供开展业务的可能。\n[0006] 目前,使用MPLS的骨干网越来越多,因此必须考虑如何在MPLS上集成IPv6。在MPLS网络中,转发是根据标记进行的,这就不需要数据层面支持IPv6的数据转发,即无需核心网络软硬件的升级,只需要边缘路由具有配置IPv6的能力即可。\n[0007] NAT_PT(网络地址转换协议转换,Network Address Translation&Protocol Translation)技术是类似于IPV4网络中的NAT(网络地址转换)技术,即一种地址转换协议转换技术,与NAT不同的是,NAT_PT用于IPV6单协议网络域内主机与IPV4单协议网络域内主机之间的端到端连接,而IPV4的NAT是IPV4的私有网络域内主机与IPV4公共网络主机之间的连接。因此NAT_PT涉及到的转换技术是IPV6和IPV4地址间的转换以及IPV6和IPV4协议之间的转换。\n[0008] NAT_PT是一种纯IPV6节点和IPV4节点间的互通方式,所有包括地址、协议在内的转换工作都由网络设备来完成。支持NAT_PT的网关路由器应具有地址池,例如具有IPV4地址池,在从IPV6向IPV4域中转发包时使用,地址池中的地址是用来转换IPV6报文中的源地址的。此外网关路由器需要DNS_ALG应用层网关的支持,在IPV6节点访问IPV4节点时发挥作用。如果没有DNS_ALG的支持,只能实现由IPV6节点发起的与IPV4节点之间的通信,反之则不行。\n[0009] 在组网的时候,如果处于IPV6网络的主机需要连接到IPV4网络中的主机,IPV6主机可以认为IPV4主机的所对应的IPv6地址为NAT_PT前缀+IPV4主机地址。如:IPV4主机地址为10.18.34.1,NAT_PT设备设定的前缀为2222::/64,则IPV4主机对应的IPv6地址就是2222::10.18.34.1或2222::0a12:2201。\n[0010] 但是,当IPV4网络中的主机需要访问IPV6网络中的主机的时候就不能按照这种方法来做,IPV4主机可以按照IPV6主机所对应的域名来访问,这就需要用到DNS_ALG功能。\nIPV4端主机10.18.34.117需要访问IPV6端主机2000::1,IPV4主机所对应的域名为www.ipv4.com.cn,IPV6主机所对应的域名为www.ipv6.com.cn。首先IPV4主机发送DNS请求1给它的DNS服务器,请求www.ipv6.com.cn这个域名所对应的IPV4地址,IPV4的DNS服务器发现没有这个资源记录,于是它转发这个DNS请求给IPV6的DNS服务器。需要注意到,NAT_PT设备上必须配置两个DNS服务器的地址映射关系,如:10.18.34.252=>2000::2,即IPV6的DNS服务器所对应的IPV4地址为10.18.34.252。\n[0011] 随着IPV6的发展,逐步地将有相当数量的IPV6网络开始建设,但是在一定的时间内,IPV4网络和IPV6网络将共存。在过渡时期,会出现这样以下的两种网络结构,一个IPV4 VPN,但是与之相连的公网是IPV6网络;另外一种情况与之相反,即IPV6VPN网络与IPV4公网互连。这就存在一个IPV4VPN用户如何访问IPV6公网和IPV6 VPN用户如何访问V4公网的问题。\n[0012] 对于这个问题,NAT_PT只是作为IPV4网络向IPV6网络过渡的时候采用的一种手段,NAT_PT自身有一定的局限性,由于转换相当耗费系统资源和时间,所以NAT_PT设备注定不能作为核心的设备,只能用于边缘协议和地址的转换。现有解决方法是在用户网边缘路由器(CE,Custom EdgeRouter)设备上进行NAT_PT转换,这需要CE设备支持NAT_PT功能,但是,多个CE的NAT_PT大大提高了升级和维护的难度。特别的,对于第二种情况,IPV6 VPN网络与IPV4公网互连时,为每一个CE分配一定的V4网络地址也是一种浪费。\n发明内容\n[0013] 本发明所要解决的技术问题在于,提供一种实现网络地址转换协议转换的异构网络系统及方法。在网络协议类型不一样的MPLS VPN网络与公网之间,在运营商边缘路由器上实现网络地址转换协议转换技术,从而实现VPN网络与公网之间互访。\n[0014] 本发明提供一种实现网络地址转换协议转换的异构网络系统,所述系统包括一个公网、邻接公网的运营商边缘路由器PE、与PE相接的用户网边缘路由器CE、以及与CE邻接的采用不同于公网协议的虚拟专用网VPN,所述异构网络系统的特点在于,PE与公网相连的接口、PE与CE相连的接口均采用支持网络地址转换协议转换NAT_PT功能的接口,所述PE包括:\n[0015] NAT_PT管理模块,用于提供NAT_PT相关命令,负责管理转换条目表的生成、删除、老化,并通过虚拟专用网标识VPN ID来区分地址重叠的VPN的转换条目;\n[0016] 路由管理模块,用于将NAT_PT地址池的公网地址路由或者VPN地址路由通过路由协议分别通告到公网或者VPN;\n[0017] 报文转发模块,用于判断报文是否需要进行NAT_PT转换,需要时,查找转换条目,并根据NAT_PT转换条目,正确的进行报文转换及转发。\n[0018] 其中,所述公网或虚拟专用网的协议是IPV4协议或IPV6协议,但公网与虚拟专用网的协议必须是异种类型的。\n[0019] 所述NAT_PT管理模块生成的路由转换条目中包括虚拟专用网标识VPN ID,所述VPN ID在将公网地址转换为虚拟专用网地址的转换条目中为零,在将某一虚拟专用网的地址转换为公网地址的转换条目中是一个确定的能标识该虚拟专用网的非零数值。\n[0020] 所述PE支持域名服务系统_应用层网关DNS_ALG,使得IPV4侧主机能够在不确认对应IPV6侧主机转换后地址情况下,访问该IPV6侧主机。\n[0021] 所述NAT_PT管理模块包括:NAT_PT命令处理模块、转换条目管理模块,其中,NAT_PT命令处理模块配置关于转换规则的命令,将相关的信息通告给路由模块和接入控制列表模块;转换条目管理模块,响应NAT_PT命令处理模块,对转换条目进行创建、删除、显示的操作。\n[0022] 所述报文转发模块包括驱动NAT_PT处理模块、微码NAT_PT处理模块,其中,微码NAT_PT处理模块通过查找路由模块和接入控制列表模块,进行NAT_PT相关处理,查找转换条目,进行报文转发,如果没有查找到转换条目且需要创建的时候,将报文通过驱动NAT_PT处理模块交给转换条目管理模块进行处理。\n[0023] 所述NAT_PT管理模块配置的转换规则为:\n[0024] 将某个VPN中的地址或者某些符合接入控制列表ACL匹配条件的VPN地址转换为一个公网主机地址或者公网地址池中的某些公网地址,并将转换后的地址添加到公网路由表中;\n[0025] 将某个公网中的地址或者某些符合ACL匹配条件的公网地址转换为异种协议类型的网络地址,并将转换后的地址同时加到异种协议类型的公网路由表和对应PE上的各个相关VPN的路由表中。\n[0026] 所述PE具有VPN前缀配置命令,为每个VPN分别配置一个96位掩码长度的IPV6前缀,要求各个VPN的前缀路由不能一样,同时将该前缀添加到公网路由中。\n[0027] 所述报文转发模块,通过微码NAT_PT处理模块对报文处理,查找路由操作,如果路由有NAT_PT属性,判断报文需要进行NAT_PT转换,则查找转换条目,进入到NAT_PT处理流程,继续根据该数据包的源/目的地址等信息查找是否存在转换条目,如果源\目的地址的转换条目都能够查找到,则直接转发,如果查找不到且肯定不能由上层转换条目管理模块生成转换条目,则报文丢弃。\n[0028] 本发明还提供一种基于上述异构网络系统实现网络地址转换协议转换的方法,用于使IPV4虚拟专用网和IPV6公网之间协议类型不同的情况下实现互访,所述IPV4虚拟专用网依次经过用户网边缘路由器CE、运营商边缘路由器PE与IPV6公网相连接,所述方法包括如下步骤:\n[0029] (a)配置PE与CE相连接口和PE与公网相连接口为支持网络地址转换协议转换NAT_PT功能接口;\n[0030] (b)在PE上配置NAT_PT地址池,将该地址池中地址配置为公网IPV6地址,绑定接入控制列表ACL后形成动态规则,或在PE上配置虚拟路由转发实例VRF NAT_PT静态转换规则,利用动态规则或静态转换规则,将VPN地址生成NAT_PT路由并将其写入IPV6公网路由表;\n[0031] (c)在PE上配置指定某个公网IPV6地址的静态规则,将生成的NAT_PT路由同时导入到IPV4公网路由表中和各个IPV4 VPN的路由表中;\n[0032] (d)在PE上配置公网IPV6地址进行转换的动态规则,将生成的NAT_PT路由写入IPV4公网路由表和各个IPV4 VPN的路由表中;\n[0033] (e)在PE上配置针对各个IPV4 VPN的96位长IPV6 NAT_PT前缀,将对应的NAT_PT路由写入IPV6公网路由表中;\n[0034] (f)PE上的报文收发模块,根据收到的报文的目的地址查找路由属性,进行NAT_PT转换处理流程,生成和查找转换条目,对报文进行NAT_PT转换后转发。\n[0035] 进一步地,步骤(b)中所述地址池用于利用动态规则将VPN的主机地址转换为IPV6公网地址,所述静态转换规则,用于将VPN网络中的特定主机地址转换为一个IPV6公网地址,所述地址池和静态转换规则转换后的IPV6公网地址不同。\n[0036] 进一步地,步骤(f)中对于从IPV4 VPN网络收到的数据包进行转发的步骤,包括:\n[0037] (1)查找VPN路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程;\n[0038] (2)针对目的地址,查找到目的地址转换条目,如找不到,则丢弃报文;\n[0039] (3)查找源地址转换条目,如果找不到,则通过动态规则从地址池生成转换条目,所生成的转换条目需要包括VPN ID字段,如果没有得到源地址转换条目,则报文丢弃;\n[0040] (4)按得到的源/目的地址的转换条目,进行报文转换,转换成功之后,报文转发。\n[0041] 进一步地,步骤(2)中的所述目的转换条目,是由配置了的IPV6到IPV4的静态规则产生的;或是由于IPV6网络先前访问过该VPN中的主机,通过地址池已经形成的一条转换条目;或是通过DNS_ALG生成的转换条目。\n[0042] 进一步地,步骤(f)中对于从IPV6公网收到的数据包进行转发的步骤,包括:\n[0043] (1)查找公网路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程;\n[0044] (2)针对目的地址查找目的地址转换条目,如果找不到转换条目,但拥有指定前缀,通过去除前缀生成目的地址转换条目,如果最终依然没能得到目的地址转换条目,则报文丢弃;\n[0045] (3)查找源地址转换条目,如果找不到,通过动态规则生成转换条目,如果最终没有能够得到转换条目,报文丢弃;\n[0046] (4)按得到的源/目的地址的转换条目,进行报文转换,转换成功之后,报文转发。\n[0047] 本发明还提供一种基于上述异构网络系统实现网络地址转换协议转换的方法,用于使IPV6虚拟专用网和IPV4公网之间协议类型不同的情况下实现互访,所述IPV6虚拟专用网依次经过用户网边缘路由器CE、运营商边缘路由器PE与IPV4公网相连接,包括如下步骤:\n[0048] (a)配置PE与CE相连接口和PE与公网相连接口为支持NAT_PT功能接口;\n[0049] (b)在PE上配置NAT_PT地址池,将该地址池中地址配置为公网IPV4地址,绑定ACL后形成动态规则,或在PE上配置虚拟路由转发实例VRFNAT_PT静态转换规则,利用动态规则或静态转换规则,将IPV6 VPN地址生成NAT_PT路由并将其写入IPV4公网路由表;\n[0050] (c)在PE上配置指定某个公网IPV4地址的静态规则,生成NAT_PT路由并导入到IPV6公网路由表中和各个IPV6 VPN路由表中;\n[0051] (d)在PE上配置96位长的IPV6地址前缀,将对应的IPV6 NAT_PT路由写入IPV6公网路由表和各个IPV6VPN路由表;\n[0052] (e)PE上的报文转发模块根据收到的报文的目的地址查找路由属性,进行NAT_PT转换处理流程,生成和查找转换条目,对报文进行NAT_PT转换后转发。\n[0053] 进一步地,步骤(b)中所述地址池用于利用动态规则将VPN的主机地址转换为IPV4公网地址,所述静态转换规则,用于将VPN网络中的特定主机地址转换为一个V4公网地址,所述地址池和静态转换规则转换后的IPV4公网地址不同。\n[0054] 进一步地,步骤(e)中对于从IPV6 VPN网络收到的数据包进行转发的步骤,包括:\n[0055] (1)查找VPN路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程;\n[0056] (2)针对目的地址查找目的地址转换条目,如果找不到转换条目,但拥有指定前缀,则通过去除前缀生成目的地址转换条目,如果最终依然没能得到目的地址转换条目,则报文丢弃;\n[0057] (3)查找源地址转换条目,如果找不到则通过动态规则从地址池生成转换条目,所生成的转换条目需要包括VPN ID字段,如果没有得到源地址转换条目,则报文丢弃;\n[0058] (4)按得到进一步地,的源/目的地址的转换条目,进行报文转换,转换成功之后,报文转发。\n[0059] 进一步地,步骤(e)中对于从IPV4公网收到的数据包进行转发的步骤,包括:\n[0060] (1)查找公网路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程;\n[0061] (2)针对目的地址,查找到目的地址转换条目,找不到则丢弃报文;\n[0062] (3)查找源地址转换条目,如果找不到,则通过动态规则从地址池生成转换条目,如果没有得到源地址转换条目,则报文丢弃;\n[0063] (4)按得到的源/目的地址的转换条目,进行报文转换,转换成功之后,进行报文转发。\n[0064] 进一步地,步骤(2)中的所述目的地址转换条目,是由配置了的IPV6到IPV4的静态规则产生的;或是由于IPV6网络先前访问过该IPV4网络中的主机,通过地址池已经形成的一条转换条目;或是通过DNS_ALG生成的转换条目。\n[0065] 与现有的异种网络协议MPLS VPN私有网络访问公共网络的技术相比,本发明提出的基于VRF的NAT_PT方法,仅需对PE设备进行升级,由PE设备统一进行NAT_PT,实现了网络地址转换协议转换,使得用户侧CE设备无须支持NAT_PT功能。这不但减少了用户的升级维护成本,而且使得管理更为灵活。\n附图说明\n[0066] 图1是MPLS IPV4 VPN私有网络访问IPV6 Internet网络的组网示意图;\n[0067] 图2是MPLS IPV6 VPN私有网络访问IPV4 Internet网络的组网示意图;\n[0068] 图3是VRF NAT_PT模块组成图;\n[0069] 图4是IPV4 VPN往IPV6公网的出报文转发流程图;\n[0070] 图5是IPV6公网往IPV4 VPN的入报文转发流程图;\n[0071] 图6是IPV6 VPN往IPV4公网的出报文转发流程图;\n[0072] 图7是IPV4公网往IPV6 VPN的入报文转发流程图。\n具体实施方式\n[0073] 下面结合附图及具体实施例对本发明所述的技术方案作进一步的详细描述。\n[0074] 本发明提出的实现网络地址转换协议转换的异构网络系统及方法,是基于虚拟路由转发实例(VRF,Virtual Routing Forwarding Instance)的PE-NAT_PT。所述异构网络系统,在硬件上由一个标准的MPLS VPN环境构成,VPN同时通过PE(运营商边缘路由器,Provider Edge Router)链接到公网,且VPN网络和公网协议类型不一样,其具体组网环境如图1、图2所示。图1中显示了IPV4的VPN1、VPN2通过PE连接到公网V6 Internet,图\n2中IPV6的VPN1、VPN2通过PE连接到公网V4 Internet。\n[0075] 本发明区别于一般的NAT_PT功能,将VPN ID字段融合到报文转换条目中,能够实现VPN用户地址和公网地址之间的地址转换。更进一步的,为不同的V4 VPN设定不同的VPN前缀,即能够实现对来自V6公网的数据包的V6的目的地址通过前缀进行转换,同时也能够清晰的确定发往哪个V4VPN,方便了网络管理。\n[0076] 在本发明实施时,只需要对现有的MPLS VPN环境中的PE进行升级,使其支持NAT_PT,对其他设备完全透明,就可实现VPN和公网之间的网络地址转换协议转换,而无需在用户侧的用户网边缘路由器CE上分别配置,减少了用户的升级维护成本,而管理更为灵活。\n[0077] 本实施例所述的基于VRF的PE-NAT_PT涉及到以下模块:NAT_PT管理模块、路由管理模块、报文转发模块。其中:\n[0078] 1)NAT_PT管理模块:提供NAT_PT相关命令,并负责管理转换条目表等表的生成、删除、老化,并通过虚拟专用网标识VPN ID来区分地址重叠的VPN的转换条目,其中,所述地址重叠是指两个VPN可以使用同一IPV4或IPV6的地址,可以采用VPN ID来进行区分;\n[0079] 2)路由管理模块:负责将NAT_PT地址池的公网地址路由或者私网地址路由通过路由协议分别通告到公网或者私网;\n[0080] 3)报文转发模块:判断报文是否需要进行NAT_PT转换,如需要则查找转换条目,并根据NAT_PT转换条目,正确的进行报文转换,然后查找路由,进行报文转发。\n[0081] 这里实际上有两次查找路由的过程,第一次查找路由,发现路由条目有NAT_PT属性,那么报文则进行NAT_PT处理流程。在报文转换之后,报文在某种程度上就像本地发送的报文,需要对转换后的目的地址再查找一次路由,进行转发。\n[0082] 进一步的,本实施例还支持DNS_ALG(域名服务系统_应用层网关,Domain Name System & Application Level Gateway)。DNS_ALG的一个重要功能,就是能够支持IPV4侧主机能够在不确认对应IPV6侧主机转换后地址的情况下,访问该IPV6侧主机。鉴于VPN的特点,一般较少会给VPN中的主机分配域名,本发明还能够支持IPV4 VPN访问IPV6公网的DNS_ALG。\n[0083] 普通的DNS_ALG实现过程为:通过设置DNS server进行域名到地址之间的查找,DNS SERVER之间的报文交互经过PE的时候,PE将报文中的经过域名解析之后的真实地址取出,用从地址池中分配的一个地址替换,生成转换条目。当发起访问的主机使用DNS SERVER告知的替换之后的目的地址进行访问的时候,报文经过PE自然能够查找到对应的目的地址转换条目。\n[0084] 图3显示了本实施方案涉及的各个相关模块之间的层次结构及其相互关系。图3中主要包括路由模块、NAT_PT模块和接入控制列表(ACL,AccessControl List)模块,以及操作、管理和维护模块OAM(Operation,Administration & Maintenance)。所述NAT_PT模块,又包括NAT_PT命令处理模块、转换条目管理模块、驱动NAT_PT处理模块、微码NAT_PT处理模块。\n[0085] 图3中斜线填充的箭头和黑色箭头表示用于各种配置操作的配置流,空心的箭头表示用于报文转发相关操作的转发流。\n[0086] 在配置流中,OAM模块与NAT_PT命令处理模块相互交互实现相关命令的配置等;\n配置关于转换规则等命令,需要将相关的信息通告给路由模块和ACL模块;另外,转换条目管理模块,要响应NAT_PT命令处理模块,对转换条目进行创建、删除、显示等操作。\n[0087] 在转发流中,微码NAT_PT处理模块通过查找路由模块和ACL模块,进行NAT_PT相关处理,查找转换条目,进行报文转发。如果没有查找到转换条目且需要创建的时候,将报文通过驱动NAT_PT处理模块交给转换条目管理模块进行处理。\n[0088] 驱动NAT_PT处理模块,只是一个垫层,它实际上只是将上层NAT_PT转换条目处理模块的信息重新精简之后组织给微码来使用,其条目的创建和删除都由上层触发。另外,就是一些NAT_PT上层模块和微码之间的接口垫层,相关信息和报文的传递。转换条目保存在转换条目管理模块。\n[0089] 在报文到达PE之后,首先是微码NAT_PT处理模块对报文处理,查找路由操作,如果找到的路由条目有NAT_PT属性,该报文进入到NAT_PT处理流程。微码模块继续根据该数据包的源/目的地址等信息查找是否存在转换条目(这里查找的转换条目可能是直接访问上层转换条目管理模块保存转换条目的存储空间,也可能是由上层写给驱动层面之后,驱动层为微码访问特地维护的,这需要依照不同设备的体系结构来决定了,例如,有些路由器就同时存在这两种情况)。如果源\目的地址的转换条目都能够查找到,则直接转发。如果查找不到且肯定不能由上层转换条目管理模块生成转换条目,则报文丢弃。比如,V4 VPN访问V6公网的情况,如果发现目的V4地址无法查找到转换条目的情况,因为这个转换条目只能由静态条目生成,或者前期动态已经生成过。否则的话,将报文通过驱动层上送给转换条目控制管理模块进行转换条目的生成。另外,部分微码不能转换的报文也许要上送处理。\n比如ICMP包、分片包、FTP、DNS等报文。\n[0090] 基于上述对PE的设置,在对采用异种协议的公网和私网之间实现NAT_PT功能时,本实施例需具有如下特点:\n[0091] 1)首先,在普通NAT_PT转换条目中新定义了VPN ID字段,用来区分不同VPN的转换条目。\n[0092] 2)其次,支持NAT_PT转换规则绑定到VPN。这里的规则包括静态规则和动态规则。\n[0093] 可以将某个VPN中的地址或者某些符合ACL匹配条件的VPN地址转换为一个公网主机地址或者公网地址池中的某些地址。上述转换后的地址需要添加到公网路由表中。\n[0094] 也可以将某个公网中的地址或者某些符合ACL匹配条件的公网地址转换为异种协议类型的网络地址。将这些转换后的地址同时加到异种协议类型的公网路由表和对应PE上的各个相关VPN的路由表中,这样的好处是方便性,比如,一个公网地址转换之后,在各个VPN中和采用异种协议类型的公网中都使用一个相同的地址,避免了重复配置。\n[0095] 对于将公网地址转换为VPN地址的转换条目,转换条目中的VPN ID字段可以为零。对于将某个VPN中的地址转换为一个公网地址的转换条目,其中的VPN ID有意义,需要具体赋不同值来区别不同的VPN。\n[0096] 3)设定NAT_PT前缀。\n[0097] PE中需要新增VPN前缀配置命令,为每个VPN分别配置一个96位掩码长度的IPV6前缀,要求各个VPN的前缀路由不能一样,同时将该前缀添加到公网路由中。\n[0098] 这样接收到来自IPV6公网的数据包通过查找公网路由,就能够走到NAT_PT处理流程中。由于前缀的唯一性,就能够确认数据包发往哪个VPN。当然,依然可以配置不针对VPN的NAT_PT前缀,将其同时写入各个IPV6VPN路由表和IPV6公网路由表中。这样各个IPV6 VPN和IPV6公网就能够统一使用该前缀访问IPV4公网了。\n[0099] 4)相应的路由协议必须支持通告NAT_PT路由。对于访问公网的情况,配置相应的路由协议,通告NAT_PT地址池或者静态规则指定地址的公网路由。\n[0100] 本实施例主要是为了解决MPLS VPN网络和公网之间存在网络协议类型不一样的情况下,VPN直接访问公共网络以及VPN网络内部互访的问题。下面分别对IPV4 VPN和IPV6公共网络之间互访、以及IPV6 VPN和IPV4公共网络之间互访的情形进行说明。\n[0101] 本实施例中,如图1所示的网络系统中,通过NAT_PT支持IPV4 VPN和IPV6公共网络之间协议类型不同的情况下互访的主要步骤如下:\n[0102] 第一步、配置PE与CE相连接口和PE与公网相连接口为支持NAT_PT功能接口。\n[0103] 第二步、在PE上配置NAT_PT地址池,该地址池中地址为公网IPV6地址,绑定ACL后形成动态规则,用于转换VPN中的主机地址。同时也可以配置VRF NAT_PT静态转换规则,将VPN网络中的特定主机地址转换为一个IPV6公网地址。注意配置的地址池和静态规则配置的转换后的IPV6公网地址不能相同。生成NAT_PT路由并将其写入IPV6公网路由表。\n[0104] 第三步、在PE上配置指定某个公网IPV6地址的静态规则,将生成的NAT_PT路由同时导入到IPV4公网路由表中和各个IPV4 VPN路由表中。\n[0105] 第四步、在PE上配置公网IPV6地址进行转换的动态规则,将生成的NAT_PT路由同时写入到IPV4公网路由表和各个IPV4 VPN的路由表中。\n[0106] 按以上规则生成的NAT_PT路由在路由表中均已作出标示以便识别,各个转换条目可以通过加入VPN ID来进行识别。这里,动态和静态转换条目生成的路由只是用来对收到报文之后进行路由查找确定走到NAT_PT流程使用,因为报文转换之后还需要进行查路由操作,此时的路由条目才是一般意义上的路由条目概念。\n[0107] 另外,动态规则是在实际分配时才生成路由,但也可能由于设备体系架构的不同存在区别。比如分布式机架,路由同步的问题,可能会在配置动态规则的时候就生成,同步到各个线卡上。\n[0108] 第五步、在PE上配置针对各个IPV4 VPN的96位长IPV6 NAT_PT前缀,将对应的NAT_PT路由写入IPV6公网路由表中。\n[0109] 第六步、PE的报文收发模块,根据收到的报文的目的地址查找路由属性,进行NAT_PT转换处理流程,生成和查找转换条目,对报文进行NAT_PT转换后转发。\n[0110] 下面,结合图4和图5,对第六步中NAT_PT报文转发流程具体处理流程进行描述。\n[0111] A、对于从IPV4 VPN网络收到的数据包,具体处理流程如图4所示,包括:\n[0112] 1)首先,查找VPN路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程。\n[0113] 2)针对目的地址(V6地址),查找到目的转换条目,找不到则丢弃报文。这里的目的地址转换条目,其可能由以下几个地方产生:可能是配置了IPV6到IPV4的静态规则;也可能是由于IPV6网络先前访问过该VPN中的主机,通过地址池已经形成了一条转换条目;\n当然也可能是通过DNS_ALG生成的转换条目。\n[0114] PE中的转换条目是分为IPV4到IPV6的地址转换条目和IPV6到IPV4的地址转换条目,为了说明方便,可根据来源与目的的不同而称为:源地址转换条目和目的地址转换条目。\n[0115] 3)接着,查找源地址转换条目,如果找不到,则通过动态规则从地址池生成转换条目。注意,鉴于VPN之间地址重叠的情况,这里生成的转换条目需要包括VPN ID字段。如果没有得到源地址转换条目,报文丢弃。\n[0116] 4)得到源/目的地址的转换条目,进行报文转换,转换成功之后,报文转发。\n[0117] B、对于从IPV6公网收到的数据包,具体处理流程如图5所示,包括:\n[0118] 1)首先,查找公网路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程,该路由属性可以由路由表中特殊字段的不同位来标示路由属性信息,比如地址路由,PPP路由等等信息。\n[0119] 2)针对目的地址(V4地址)查找目的地址转换条目(地址,端口,无所谓VPN ID)。\n如果找不到转换条目,但是确是拥有指定前缀,通过去除前缀来生成目的地址转换条目(该条目包含VPN ID字段)。注意这里的前缀是区分VPN的,可以确定报文发往那个VPN。\n如果最终依然没能得到目的地址转换条目,则报文丢弃。\n[0120] 3)接着,进行源地址转换条目的查找。如果找不到,通过动态规则生成转换条目。\n如果最终没有能够得到转换条目,报文丢弃。\n[0121] 4)得到源/目的地址的转换条目,进行报文转换,转换成功之后,报文转发。\n[0122] 本实施例中,如图2所示的网络系统中,通过NAT_PT支持IPV6 VPN和IPV4公共网络之间协议类型不同的情况下互访的主要步骤如下:\n[0123] 第一步、配置PE与CE相连接口和PE与公网相连接口为支持NAT_PT功能接口。\n[0124] 第二步、在PE上配置NAT_PT地址池,该地址池中地址为公网IPV4地址,绑定ACL后形成动态规则,用于转换VPN中的主机地址。同时也可以配置VRF NAT_PT静态转换规则,将VPN网络中的特定主机地址转换为一个V4公网地址。注意配置的地址池和静态规则配置的转换后的IPV4公网地址不能相同。生成NAT_PT路由写入IPV4公网路由表。\n[0125] 第三步、在PE上配置指定某个公网IPV4地址的静态规则,将生成的NAT_PT路由,同时导入到IPV6公网路由表中和各个IPV6 VPN路由表中。\n[0126] 第四步、在PE上配置96位长的IPV6地址前缀,将对应的IPV6 NAT_PT路由写入IPV6公网路由表和各个IPV6 VPN路由表中。\n[0127] 第五步、PE上的报文收发模块,根据收到的报文的目的地址查找路由属性,进行NAT_PT转换处理流程,生成和查找转换条目,对报文进行NAT_PT转换后转发。\n[0128] 下面,结合图6和图7,对第五步中NAT_PT报文转发流程具体处理流程进行描述。\n[0129] C、对于从IPV6 VPN网络收到的数据包,具体处理流程如图6所示,包括:\n[0130] 1)首先,查找VPN路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程。\n[0131] 2)针对目的地址(V4地址)查找目的地址转换条目(地址,端口,无所谓VPN ID)。\n如果找不到转换条目,但确是拥有指定前缀,通过去除前缀生成目的地址转换条目。注意这里的前缀是不区分VPN的,所有的IPV6VPN都共用一个相同前缀。也就是说针对某个IPV4公网地址来说,在各个IPV6VPN中使用相同的转换条目。如果最终依然没能得到目的地址转换条目,报文丢弃。\n[0132] 3)接着,查找源地址转换条目,如果找不到,则通过动态规则从地址池生成转换条目。注意,鉴于VPN之间地址重叠的情况,这里生成的转换条目需要包括VPN ID字段。如果没有得到源地址转换条目,报文丢弃。\n[0133] 4)得到源/目的地址的转换条目,进行报文转换,转换成功之后,报文转发。\n[0134] D、对于从IPV4公网收到的数据包,具体处理流程如图7所示,包括:\n[0135] 1)首先,查找公网路由,如果查找到的路由属性为NAT_PT路由,则报文进入NAT_PT处理流程。\n[0136] 2)针对目的地址(V6地址),查找到目的地址转换条目,如果找不到,则丢弃报文。\n这里的目的地址转换条目的产生,可能由以下几个地方:可能是配置了IPV6到IPV4的静态规则;也可能是由于IPV6网络先前访问过IPV4主机,通过地址池已经形成了一条转换条目;当然,也可能是通过DNS_ALG生成的转换条目。\n[0137] 3)接着,查找源地址转换条目,如果找不到,则通过动态规则从地址池生成转换条目。如果没有得到源地址转换条目,则报文丢弃。\n[0138] 4)得到源/目的地址的转换条目,进行报文转换,转换成功之后,报文转发。\n[0139] 下面给出两种应用环境的具体实施例。\n[0140] 第一种情况,是通过NAT_PT支持MPLS IPV4 VPN私有网络访问IPV6公网,其具体组网环境如图1所示。在原有的MPLS VPN网络配置环境下,进行如下步骤:\n[0141] 1)配置PE2与CE3相连接口支持NAT_PT功能,配置PE2与IPV6公网相连接口支持NAT_PT功能。\n[0142] 2)在PE2上配置NAT_PT地址池:\n[0143] ipv6 natpt pool internet-pool6 2000::1 2000::100 prefix-length 96[0144] ipv6 natpt pool internet-pool4 100.1.1.1 100.1.1.100 prefix-length 24[0145] ipv6 natpt v4v6 source list 1 pool internet-pool6 overload[0146] 3)连接pe2的所有ipv4 vpn和非vpn主机访问ipv6公网可以统一使用该地址池。\n[0147] ipv6 natpt v6v4 source list 2 pool internet-pool4\n[0148] 4)ipv6公网设备访问连接pe2的所有ipv4 vpn和非vpn主机,访问可以统一使用该地址池分配地址。\n[0149] 设定访问vpn1的NAT_PT前缀\n[0150] ipv6 natpt prefix 3001::/96 vpn1\n[0151] 设定访问vpn2的NAT_PT前缀\n[0152] ipv6 natpt prefix 3002::/96 vpn2\n[0153] 设定访问非vpn网络的NAT_PT前缀\n[0154] ipv6 natpt prefix 3003::/96\n[0155] 设定ipv6公网地址3000::64.233.167.99转换为IPV4地址10.1.1.1[0156] ipv6 natpt v6v4 source 3000::64.233.167.99 10.1.1.1\n[0157] 5) 假 设 ce3 下 某 个 VPN2 主 机 10.1.2.1 访 问 ipv6 公 网 地 址\n3000::64.233.167.99。同时ce3下某个VPN1主机10.1.2.1也访问IPV6公网主机zte.com.cn(3000::64.233.167.100)。ce3下联接主机Host1(10.1.2.1)也访问ipv6公网地址3000::64.233.167.99。另外,IPV6公网主机通过前缀访问VPN1主机10.1.2.2。使用show ipv6 nat translations命令观察如下:\n[0158] Type IPV4 IPV6 VPN\n[0159] ------ 10.1.1.1 3000::64.233.167.99 --\n[0160] Icmp 10.1.2.1|11 2000::1|5000 --\n[0161] Icmp 10.1.2.1|18 2000::1|5001 1\n[0162] Icmp 10.1.2.1|15 2000::1|5002 2\n[0163] Dns 100.1.1.1 3000::64.233.167.100 --\n[0164] Icmp 10.1.2.2 3001::10.1.2.2 1\n[0165] 第二种情况,是通过NAT_PT支持MPLS IPV6 VPN私有网络访问IPV4公网,如图2所示,在原有的MPLS VPN网络配置环境下,进行采用如下步骤:\n[0166] 1)配置PE2与CE3相连接口支持NAT_PT功能,配置PE2与公网相连接口支持NAT_PT功能。\n[0167] 2)在PE2上配置NAT_PT地址池:\n[0168] ipv6 natpt pool internet-pool4 100.1.1.1 100.1.1.100 prefix-length 24[0169] ipv6 natpt pool internet-pool6 1111::1 1111::100 prefix-length 96[0170] ipv6 natpt v6v4 source list 1 pool internet-pool4 overload[0171] 3)连接pe2的所有IPV6 VPN和非VPN主机访问IPV4公网可以统一使用该地址池。\n[0172] ipv6 natpt v4v6 source list 2 pool internet-pool6\n[0173] 4)IPV4公网设备访问连接pe2的所有IPV6 VPN和非VPN主机访问可以统一使用该地址池分配地址。\n[0174] 设定访问IPV6 VPN和非VPN网络访问IPV4公网的NAT_PT前缀\n[0175] ipv6 natpt prefix 4003::/96\n[0176] 设定IPV4公网地址64.233.167.99转换为IPV6地址5000::10.1.1.1[0177] ipv6 natpt v4v6 source 64.233.167.99 5000::10.1.1.1\n[0178] 5) 假 设 CE3 下 某 个 VPN1 主 机 3000::1 访 问 IPV4 公 网 主 机 zte.com(64.233.167.119)。同时ce3下某个VPN2主机3000::1也访问IPV4公网主机\n64.233.167.99(目的地址5000::10.1.1.1)。ce3下连接的主机host1(4000::1)也访问IPV4公网地址4003::64.233.167.200。使用show ipv6 nat translations命令观察如下:\n[0179] Type IPV4 IPV6 VPN[0180] ------ 64.233.167.99 5000::10.1.1.1 --\n[0181] Icmp 100.1.1.1|5000 3000::1|17 1\n[0182] Icmp 100.1.1.1|5001 3000::1|25 2\n[0183] Icmp 100.1.1.1|5002 4000::1|35 --\n[0184] Dns 64.233.167.119 1111::1 --\n[0185] Icmp 64.233.167.200 4003::64.233.167.200 --\n[0186] 综上所述,使用本发明提出的基于VRF的PE-NAT_PT设备和方法,可以方便的支持异种协议类型的MPLS VPN私网主机和公网互通,而且只需要对现有的MPLS VPN环境中的PE进行升级,对其他设备完全透明,减少了用户的升级维护成本,而且使得管理更为灵活。
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |