发明内容
本发明要解决的技术问题是提供一种网络地址转换转发方法及网络地址转换转发装置,以在实现网络地址转换的同时提高转发效率。
为解决以上技术问题,本发明提供了一种网络地址转换转发方法,该方法基于网络地址转换转发装置实现,该方法包括:
网络地址转换转发装置接收数据报文,根据所述数据报文的五元组信息匹配转发表中保存的上、下行转发规则,所述上行转发规则包括网络地址转换(NAT)规则和业务传输通道信息,所述下行转发规则包括NAT规则;
若匹配到对应的转发规则,所述网络地址转换转发装置根据匹配的对应转发规则对所述数据报文进行处理,并将处理后的上行数据报文发送到对应的业务传输通道,将处理后的下行数据报文发送到对应的端口。
进一步地,若未匹配到转发规则,所述网络地址转换转发装置对所述数据报文进行普通网络地址转换(NAT)及转发,并生成对应的NAT规则,所述NAT规则包括数据报文的五元组信息及其对应的NAT转换后的IP地址(NAT IP)及端口(NAT Port)。
进一步地,所述网络地址转换转发装置配置保存标签控制信息(TCI)与业务传输通道的对应关系;且在创建网络连接时,记录该网络连接的连接信息,其中包括网络连接IP地址及对应的TCI;所述转发表中上行转发规则的生成过程包括:
所述网络地址转换转发装置根据对上行数据报文的NAT规则中的NATIP匹配对应的网络连接的连接信息;
根据对应的连接信息中的TCI匹配对应的业务传输通道信息,将五元组信息及对应业务传输通道信息记录到对应的上行转发规则中。
进一步地,所述网络地址转换转发装置对所述上、下数据报文进行NAT后,转发前,根据路由信息找到对应下一路由节点的IP,并通过地址解析协议(ARP)学习到下一跳路由节点的IP地址对应的MAC地址,将目的MAC地址转换为下一跳路由节点对应的MAC地址后再转发,同时记录所述IP地址与MAC地址的对应关系;生成所述上、下行转发规则时,根据所述IP地址关联匹配对应的MAC地址,并记录到对应的上、下行转发规则中;根据上、下行转发规则对所述上、下行数据报文进行处理的过程还包括修改上、下行数据报文中的MAC地址。
进一步地,所述网络地址转换转发装置生成所述上行转发规则时,根据NAT转换后的IP地址匹配对应的TCI,并记录到对应的上行转发规则中;所述网络地址转换转发装置生成所述下行转发规则时,根据目的IP地址匹配对应的TCI,并记录到对应的下行转发规则中;根据所述转发规则对数据报文进行处理的过程包括修改所述数据报文中的TCI。
进一步地,修改所述数据报文中的TCI指在所述上行数据报文中增加对应的TCI或删除所述下行数据报文中的TCI。
进一步地,所述网络地址转换转发装置记录的连接信息还包括对应的PPP信息,所述网络地址转换转发装置生成所述上行转发规则时,根据NAT转换后的IP地址匹配对应的PPP信息,并记录到对应的上行转发规则中;所述网络地址转换转发装置生成所述下行转发规则时,根据目的IP地址匹配对应的PPP信息,并记录到对应下行转发规则中;根据所述转发规则对所述数据报文进行处理的过程包括,在所述网络连接为PPP连接时,修改所述数据报文中的PPP信息。
进一步地,所述TCI与业务传输通道的对应关系是是根据组网要求配置的,所述业务传输通道信息包括GPON中数据逻辑传输通道(GemPort)信息及对应的传输聚合实体(Tcont)信息,所述TCI包括虚拟局域网(VLAN)信息及优先级(Priority)信息。
为解决以上技术问题,本发明还提供一种网络地址转换转发装置,该装置包括:
转发表,用于保存转发规则,其中上行转发规则包括NAT规则及业务传输通道信息,所述下转发规则包括NAT规则;
接收匹配模块,用于接收数据报文,以及根据所述数据报文中的五元组信息匹配对应的上、下行转发规则;
转发处理模块,与接收匹配模块连接,用于在匹配到对应的转发规则时,根据该转发规则对所述数据报文进行处理,并将处理后的上行数据报文发送到对应的业务传输通道,将处理后的下行数据报文发送到对应的端口。
进一步地,所述装置还包括与接收匹配模块连接的普通NAT转发模块,用于对未匹配到转发规则的数据报文进行普通网络地址转换(NAT)及转发,并生成对应的NAT规则,所述NAT规则包括数据报文的五元组信息及其对应的NAT转换后的IP地址(NAT IP)及端口(NAT Port)。
进一步地,所述装置还包括配置记录模块,以及与所述配置记录模块、普通NAT转发模块、转发表连接的规则生成模块,其中,
所述配置记录模块,用于保存标签控制信息(TCI)与业务传输通道的对应关系,以及在创建网络连接时,记录该网络连接的连接信息,其中包括网络连接IP地址及对应的TCI;
所述规则生成模块,用于根据上行数据报文的NAT规则中的NAT IP匹配对应的网络连接的连接信息;以及根据对应的连接信息中的TCI匹配对应的业务传输通道信息,生成所述上行转发规则。
进一步地,所述上、下行转发规则还包括对应的TCI,所述规则生成模块还用于根据上行数据报文的NAT规则中的NAT IP地址匹配对应的TCI;还用于根据下行数据报文的目的IP地址匹配对应的TCI;以及在生成上、下行转发规则时,将匹配的TCI记录到对应的上、下行转发规则中;所述转发处理模块根据所述转发规则对数据报文进行处理的过程包括修改所述数据报文中的TCI。
进一步地,所述配置记录模块记录的连接信息还包括对应的PPP信息,所述规则生成模块还用于根据上行数据报文的NAT规则中的NAT IP地址匹配对应的PPP信息;根据下行数据报文的目的IP地址匹配对应的PPP信息;以及将匹配的PPP信息记录到对应的上、下行转发规则中;所述转发处理模块根据所述转发规则对数据报文进行处理的过程包括在所述网络连接为PPP连接时,修改所述数据报文中的PPP信息。
本发明根据数据报文的五元组信息匹配已建立的上、下行转发规则对上下行数据报文进行处理,并将上行数据报文发送到对应的业务传输通道,提高数据报文的转换转发效率。
具体实施方式
本发明网络地址转换转发方法和网络地址转换转发装置的主要思想是根据数据报文的五元组信息匹配已建立的上、下行转发规则对上下行数据报文进行处理,并将上行数据报文发送到对应的业务传输通道,提高数据报文的转换转发效率。
本发明网络地址转换转发方法,该方法基于网络地址转换转发装置实现,该方法包括:
网络地址转换转发装置接收数据报文,根据所述数据报文的五元组信息匹配转发表中保存的上、下行转发规则,所述上行转发规则包括网络地址转换(NAT)规则和业务传输通道信息,所述下行转发规则包括NAT规则;
若匹配到对应的转发规则,所述网络地址转换转发装置根据匹配的对应转发规则对所述数据报文进行处理,并将处理后的上行数据报文发送到对应的业务传输通道,将处理后的下行数据报文发送到对应的端口。
若未匹配到转发规则,所述网络地址转换转发装置对所述数据报文进行普通网络地址转换(NAT)及转发,并生成对应的NAT规则,所述NAT规则包括数据报文的五元组信息及其对应的NAT转换后的IP地址(NAT IP)及端口(NAT Port)。
为了在建立转发规则,所述网络地址转换转发装置配置保存TCI(TagControl Information,标签控制信息)与业务传输通道的对应关系;且在创建网络连接时,记录该网络连接的连接信息,其中包括网络连接IP地址及对应的TCI;所述NAT规则包括数据报文的五元组信息及其对应的NAT转换后的IP地址(NAT IP)及端口(NAT Port);
所述转发表中上行转发规则的生成的过程包括:
所述网络地址转换转发装置根据对上行数据报文的NAT规则中的NATIP匹配对应的网络连接的连接信息;
根据对应的连接信息中的TCI匹配对应的业务传输通道信息将五元组信息及对应业务传输通道信息记录到对应的上行转发规则中。
所述下行转发规则是所述网络地址转换转发装置根据所述下行数据报文的NAT规则生成的。
为了在转换转发过程中一并实现对MAC信息的处理,所述网络地址转换转发装置对所述上、下数据报文进行NAT后,转发前,根据路由信息找到对应下一路由节点的IP,以及通过地址解析协议(ARP)学习到下一跳路由节点的IP地址对应的MAC地址,将目的MAC地址转换为下一跳路由节点对应的MAC地址后再转发,同时记录所述IP地址与MAC地址的对应关系;生成所述上、下行转发规则时,根据所述IP地址关联匹配对应的MAC地址,并记录到对应的上、下行转发规则中;根据上、下行转发规则对所述上、下行数据报文进行处理的过程还包括修改上、下行数据报文中的MAC地址。
为了在转换转发过程中一并实现对TCI的处理,所述网络地址转换转发装置生成所述上行转发规则时,根据NAT转换后的IP地址匹配对应的TCI,并记录到对应的上行转发规则中;所述网络地址转换转发装置生成所述下行转发规则时,根据目的IP地址匹配对应的TCI,并记录到对应的上行转发规则中;根据所述转发规则对数据报文进行处理的过程包括修改所述数据报文中的TCI。
修改所述数据报文中的TCI指在所述上行数据报文中增加对应的TCI或删除所述下行数据报文中的TCI。
为了支持PPP拨号方式,所述装置记录的连接信息还包括对应的PPP信息,所述网络地址转换转发装置生成所述上行转发规则时,根据NAT转换后的IP地址匹配对应的PPP信息,并记录到对应的上行转发规则中;所述网络地址转换转发装置生成所述下行转发规则时,根据目的IP地址匹配对应的PPP信息,并记录到对应的下行转发规则中;根据所述转发规则对所述数据报文进行处理的过程包括,在所述网络连接为PPP连接时,修改所述数据报文中的PPP信息。
本发明中,所述TCI与业务传输通道的对应关系是根据组网要求配置的,所述业务传输通道信息包括GemPort信息(G-PON Encapsulation MethodPort,GPON中数据逻辑传输通道)及对应的Tcont信息(TransmissionContainer,传输聚合实体,用于GPON上行报文带宽调度),所述TCI包括VLAN信息(Virtual Local Area Network,虚拟局域网,将局域网设备从逻辑上划分成一个个网段,实现虚拟工作组的数据交换)及Priority信息(优先级,即数据报文中的802.1p优先级)。
为了实现以上方法,本发明还提供了一种网络地址转换转发装置实施例,如图1所示,该装置包括:
转发表,用于保存转发规则,其中上行转发规则包括NAT规则及业务传输通道信息,所述下转发规则包括NAT规则;
接收匹配模块,用于接收数据报文,以及根据所述数据报文中的五元组信息匹配对应的上、下行转发规则;
转发处理模块,与接收匹配模块连接,用于在匹配到对应的转发规则时,根据该转发规则对所述数据报文进行处理,并将处理后的上行数据报文发送到对应的业务传输通道,将处理后的下行数据报文发送到对应的端口。
进一步地,本实施例中所述装置还包括与接收匹配模块连接的普通NAT转发模块,用于对未匹配到转发规则的数据报文进行普通网络地址转换(NAT)及转发,并生成对应的NAT规则,所述NAT规则包括数据报文的五元组信息及其对应的NAT转换后的IP地址(NAT IP)及端口(NAT Port)。
进一步地,本实施例中所述装置还包括配置记录模块,以及与所述配置记录模块、普通NAT转发模块、转发表连接的规则生成模块,其中,
所述配置记录模块,用于保存标签控制信息(TCI)与业务传输通道的对应关系,以及在创建网络连接时,记录该网络连接的连接信息,其中包括网络连接IP地址及对应的TCI;
所述规则生成模块,用于根据上行数据报文的NAT规则中的NAT IP匹配对应的网络连接的连接信息;以及根据对应的连接信息中的TCI匹配对应的业务传输通道信息,生成所述上行转发规则。
进一步地,本实施例中所述上、下行转发规则还包括对应的TCI,所述规则生成模块还用于根据上行数据报文的NAT规则中的NAT IP地址匹配对应的TCI;还用于根据下行数据报文的目的IP地址匹配对应的TCI;以及在生成上、下行转发规则时,将匹配的TCI记录到对应的上、下行转发规则中;所述转发处理模块根据所述转发规则对数据报文进行处理的过程包括修改所述数据报文中的TCI。
进一步地,本实施例中所述配置记录模块记录的连接信息还包括对应的PPP信息,所述规则生成模块还用于根据上行数据报文的NAT规则中的NATIP地址匹配对应的PPP信息;根据下行数据报文的目的IP地址匹配对应的PPP信息;以及将匹配的PPP信息记录到对应的上、下行转发规则中;所述转发处理模块根据所述转发规则对数据报文进行处理的过程包括在所述网络连接为PPP连接时,修改所述数据报文中的PPP信息。
所述TCI与业务传输通道的对应关系是是根据组网要求配置的,所述业务传输通道信息包括GPON中数据逻辑传输通道(GemPort)信息及对应的传输聚合实体(Tcont),所述TCI包括虚拟局域网(VLAN)信息及优先级(Priority)信息。
以下结合附图对本发明的较佳实施例进行说明:
本发明转发规则的较佳实施方式中包括如下信息:
(1)五元组信息,即源IP地址信息、源端口信息、目的IP地址信息、目的端口信息和协议,该信息是各种报文的标识,也是转发表的索引;
(2)NAT IP信息,即NAT转换后的IP地址信息;
(3)NAT Port信息,即NAT转换后的端口信息;
(4)网关MAC信息,即报文下一跳的MAC(Media Access Control,介质访问控制)地址信息;
(5)PPP信息,用于记录该Internet连接是否为PPP连接,并记录PPP连接的会话标识;
(6)TCI,即报文转换后的TCI;
(7)GemPort信息,即报文通过的GemPort信息,只有上行报文(发送到GPON OLT的报文)会使用该信息;
(8)Tcont信息,即报文通过的Tcont信息,只有上行报文会使用该信息;
以上部分信息的来源如下:
1、GPON终端与Internet通信时,需要建立一个Internet连接,在建立的过程中需要IP地址、TCI等信息。为了能够实现转发,网络地址转换转发装置在创建Internet连接时将记录如下网络连接的连接信息:
(1)子网序号,用于索引各个Internet连接信息;
(2)IP地址信息,用于记录Internet连接对应的IP地址;
(3)TCI,用于记录Internet连接对应的Vlan/Priority信息;
(4)PPP标记,用于记录Internet连接是否为PPP连接;
(5)PPP会话标识,用于记录Internet连接为PPP连接时的会话标识,如果Internet连接不是PPP连接,该标识为0。
2、GPON终端的网络地址转换转发装置预先配置保存以下信息:
TCI与GemPort的关系,用于记录TCI对应的GemPort信息。
GemPort与Tcont的关系,用于记录GemPort对应的Tcont信息。
3、在协议栈学习到ARP(Address Resolution Protocol,地址解析协议)后将配置ARP表信息,用于记录IP地址和MAC地址对应的信息。
该转发表记录所有转发规则,GPON终端将根据该转发表信息转发报文,如果报文能够匹配转发表,将由转发处理模块直接进行转发,否则进入普通的NAT转发模式,由协议栈按照正常规则转发。
下面结合附图对本发明的技术方法作进一步的详细说明。
如图2所示,生成转发表的实施例流程包括以下几个步骤:
步骤S201:获取普通NAT规则;
当报文没有找到对应的转发表时,报文会走普通的NAT流程,当普通NAT学习到报文的转发规则时,配置给规则生成模块,NAT规则中包括五元组、接口、网关等信息;
步骤S202:根据规则的网关IP地址信息匹配ARP表信息找到对应的MAC地址,也就是报文下一跳的MAC地址,若能够找到,进入步骤S203,否则结束流程;
步骤S203:根据接口信息判断是上行规则还是下行规则,因为上行报文和下行报文的处理方式是不一致的,若是上行规则,进入步骤S204,否则进入步骤S208;
步骤S204:上行规则根据NAT IP信息匹配Internet连接信息,若匹配到进入步骤S205,否则结束流程;
步骤S205:获取该Internet连接的TCI和PPP信息,在报文NAT转换时需要TCI和PPP相关信息,若匹配到进入步骤S206,否则结束流程;
步骤S206:根据TCI匹配对应的GemPort,也就是上行报文发送到的GemPort信息,若匹配到进入步骤S207,否则结束流程;
步骤S207:根据GemPort找到对应的Tcont,也就是上行报文发送到的Tcont信息,若匹配到进入步骤S210,否则结束流程;
步骤S208:下行规则根据目的IP地址信息匹配Internet连接信息,若匹配到进入步骤S209,否则结束流程;
步骤S209:获取该Internet连接的TCI和PPP信息,在报文NAT转换时需要TCI和PPP相关信息,若匹配到进入步骤S210,否则结束流程;
步骤S210:以五元组为索引,匹配该规则在转发表中是否存在,如果不存在,添加新的转发规则,否则修改原来的转发规则,记录五元组对应的NATIP、NAT Port、网关MAC、TCI、PPP、Gemport和Tcont信息,完成规则修改后结束转发表的生成流程。
如图3所示,描述了数据报文处理实施例中的相关流程:
步骤S301:接收到数据报文后,根据报文中的五元组信息匹配转发表,若匹配到对应的信息,进入步骤S302,否则进入普通NAT流程,根据路由等信息找到对应下一跳的网关IP,通过NAT得到转换后的NAT IP地址和NAT Port信息,并通过ARP协议学习到网关IP对应的MAC地址,进行报文的五元组转换,及MAC地址转换,发送转换后的报文,并生成相应的转发规则;
步骤S302:判断报文是上行报文还是下行报文,若是上行报文进入步骤S303,否则进入步骤S309;
步骤S303:上行报文,修改报文中的源MAC为GPON终端的MAC,目的MAC为下一跳网关的MAC;
步骤S304:修改报文的源IP为NAT IP地址,源端口为NAT Port信息;
步骤S305:修改报文中的TCI,在报文中加上相应的Vlan和Priority信息;
步骤S306:判断Internet连接是否为PPP连接,若是进入步骤S307,否则进入步骤S308;
步骤S307:当Internet连接为PPP连接时,需要在报文中加入会话标识等PPP头信息。
步骤S308:将修改后的报文,重新计算校验和之后,发送到对应的Gemport和Tcont信息中,从而完成上行报文的转发;
步骤S309:下行报文,修改报文中的源MAC为GPON终端的MAC,目的MAC为下一跳的MAC;
步骤S310:修改报文的目的IP地址为NAT IP地址,目的端口为NAT Port信息;
步骤S311:修改报文中的TCI,在报文中删除相应的Vlan和Priority信息;
步骤S312:判断Internet连接是否为PPP连接,若是进入步骤S313,否则进入步骤S314;
步骤S313:当Internet连接为PPP连接时,需要在报文中去除PPP头信息。
步骤S314:将修改后的报文,重新计算校验和之后,根据目的MAC地址转发到对应的Lan侧端口,从而完成下行报文的转发。
本发明方法和装置不仅可以实现网络地址的转发,而且通过相关信息的处理,同时完成了TCI的处理和GemPort、Tcont信息的匹配,从而进一步提高了转发的效率,并且适用于PPP拨号的网络环境。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。