CN115996211A - 网络封包转换方法 - Google Patents
网络封包转换方法 Download PDFInfo
- Publication number
- CN115996211A CN115996211A CN202111201183.XA CN202111201183A CN115996211A CN 115996211 A CN115996211 A CN 115996211A CN 202111201183 A CN202111201183 A CN 202111201183A CN 115996211 A CN115996211 A CN 115996211A
- Authority
- CN
- China
- Prior art keywords
- packet
- ipv6
- network address
- destination host
- ipv4
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出一种网络封包转换方法,执行此方法的电路系统以其中固件设计有硬件表格字段,用以实现IPv4网络与IPv6网络之间的封包转换,在网络封包转换方法中,根据IPv4封包路由决定采用使用封装以映射地址与端口的方法(MAP‑E)或使用转译以映射地址与端口的方法(MAP‑T),并可实现上行与下行流程。其中表格如内容查找表,储存MAP‑E与MAP‑T插入转换后的IPv6包头,控制查找表用以决定加上IPv6包头后需要更新的字段控制,以及转送映射规则表,这是用以决定上行IPv6封包的目的主机网络地址的转换,或是下行IPv4封包的来源主机网络地址与目的主机网络地址的转换。
Description
技术领域
本申请公开一种在网络间转换封包的方法,特别是指一种利用电路中查找表执行封包转换的网络封包转换方法。
背景技术
现行IPv4(网络协议第4版)的网络地址(IP:Internet Protocol)格式是采用32位长度,网络地址能提供2的32次方个,经分配后已经不敷使用,于是有IPv6协议(网络协议第6版)的发展,IPv6的网络地址格式则采用128位长度,其地址能提供的数量远远超过IPv4。而随着IPv6协议逐渐普及,网络世界也进入IPv4与IPv6共存的时代,因此网络封包在IPv4和IPv6网络间互相传递的需求也愈来愈高。
根据现行方案,IPv4转换到IPv6网络的转换方式可以通过转译(translate)或隧道(tunnel)方式,习知技术发展出两个技术,包括一种使用转译以映射地址与端口的方法(mapping of address and port using translation(MAP-T)RFC 7599)和一种使用封装以映射地址与端口的方法(mapping of address and port with encapsulation(MAP-E)RFC 7597),这两个新兴技术是IPv4网络转换IPv6网络的方式。其中,MAP-T直接将原本的IPv4包头(header)转译成IPv6包头,MAP-E则是运用IPv6隧道来穿越IPv6网络。
然而,不论MAP-T或是MAP-E,一般都是通过软件来达成,因此操作时会耗费不小的运算资源,需要高效能硬件配合。
发明内容
本申请提出一种网络封包转换方法与系统,其中应用表格字段的设计与设定实现将IPv4网络封包转换到IPv6网络(上行)上,或是将IPv6网络封包转换到IPv4网络(下行)上的目的,适用使用转译以映射地址与端口的方法(MAP-T)和使用封装以映射地址与端口的方法(MAP-E),并可以通过电路系统实现,如通过一特定应用集成电路(ASIC)直接处理,提供加速处理方案。
所提出的电路系统可应用于网络装置中,其中固件设计有硬件表格字段,用以实现转换网络协议第4版下的封包(IPv4封包)为网络协议第6版下的封包(IPv6封包),根据其中执行的网络封包转换方法实施例,在此上行流程中,先决定所述几个查找表,如内容查找表、控制查找表与转送映射规则表,如此,可根据内容查找表记载的IPv6包头的长度字段插入至IPv4包头前缀,可根据控制查找表中记载插入IPv6包头的长度字段,以更新插入至IPv4包头前缀的IPv6包头的长度字段,再根据是否指定所述转送映射规则表来决定IPv6封包中的目的主机网络地址,之后更新IPv6封包中目的主机网络地址的IPv4封包组成的部分,即完成IPv4封包转为IPv6封包的转换。
优选地,在所述方法中,根据IPv4封包路由的需求决定输出的接口采用一使用封装以映射地址与端口的方法(MAP-E)或一使用转译以映射地址与端口的方法(MAP-T)。
优选地,所述内容查找表储存使用转译以映射地址与端口的方法和使用封装以映射地址与端口的方法插入转换后的IPv6包头;控制查找表用以决定加上IPv6包头后需要更新的字段控制;转送映射规则表用以决定上行IPv6封包的目的主机网络地址的转换,以及下行IPv4封包的来源主机网络地址与目的主机网络地址的转换。
根据所提出的电路系统的再一实施例,可以其中固件设计的硬件表格字段实现转换网络协议第6版下的封包(IPv6封包)为网络协议第4版下的封包(IPv4封包),在此下行的网络封包转换方法流程中,即根据虚拟局域网和IPv6包头中记载的一目的主机网络地址决定采用使用封装以映射地址与端口的方法(MAP-E)或使用转译以映射地址与端口的方法(MAP-T),之后根据一控制查找表,根据IPv6封包形式,决定转换至IPv4封包的标头,即完成IPv6封包转换为IPv4封包的步骤。
在其中使用封装以映射地址与端口的方法中,根据使用封装以映射地址与端口的方法关联的控制查找表,当IPv6封包形式为外层为IPv6网络协议而内层为IPv4网络协议封装的封包,即移除外层为IPv6网络协议的标头。
另一方面,于使用转译以映射地址与端口的方法中,即根据使用转译以映射地址与端口的方法关联的控制查找表,当IPv6封包形式为单层的IPv6通讯协议封装的封包,即取出IPv6封包中的标头,插入IPv4包头。
为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,然而所提供的附图仅用于提供参考与说明,并非用来对本发明加以限制。
附图说明
图1显示为IPv4转换到IPv6目的主机网络地址的封包格式示例之一;
图2显示为IPv4转换到IPv6目的主机网络地址的封包格式示例之二;
图3显示依照前缀长度IPv4转换到IPv6目的主机网络地址的转换表示例;
图4显示上下行网络封包转换方法实施例流程;
图5显示执行所述网络封包转换方法的电路系统实施例;
图6显示针对上行封包使用封装以映射地址与端口的方法(MAP-E)所实现的网络封包转换方法的实施例流程图;
图7显示针对上行封包使用转译以映射地址与端口的方法(MAP-T)所实现的网络封包转换方法的实施例流程图;
图8显示针对下行封包使用封装以映射地址与端口的方法(MAP-E)所实现的网络封包转换方法的实施例流程图;
图9显示针对下行封包使用转译以映射地址与端口的方法(MAP-T)所实现的网络封包转换方法的实施例流程图。
符号说明:
500:电路系统
50:网络装置
501:局域网通讯模块
502:广域网通讯模块
511:IPv4网络
512:IPv6网络
步骤S401~S413上下行网络封包转换流程
步骤S601~S619针对上行封包使用MAP-E的封包转换流程
步骤S701~S719针对上行封包使用MAP-T的封包转换流程
步骤S801~S805针对下行封包使用MAP-E的封包转换流程
步骤S901~S913针对下行封包使用MAP-T的封包转换流程
具体实施方式
以下是通过特定的具体实施例来说明本发明的实施方式,本领域技术人员可由本说明书所公开的内容了解本发明的优点与效果。本发明可通过其他不同的具体实施例加以施行或应用,本说明书中的各项细节也可基于不同观点与应用,在不悖离本发明的构思下进行各种修改与变更。另外,本发明的附图仅为简单示意说明,并非依实际尺寸的描绘,事先声明。以下的实施方式将进一步详细说明本发明的相关技术内容,但所公开的内容并非用以限制本发明的保护范围。
应当可以理解的是,虽然本文中可能会使用到“第一”、“第二”、“第三”等术语来描述各种组件或者信号,但这些组件或者信号不应受这些术语的限制。这些术语主要是用以区分一组件与另一组件,或者一信号与另一信号。另外,本文中所使用的术语“或”,应视实际情况可能包括相关联的列出项目中的任一个或者多个的组合。
已知转换IPv4与IPv6网络之间封包的MAP-T和MAP-E两种技术都是利用软件来解析并转换封包格式,尤其是这两种技术所执行的转换都必须跟着传输层(L4)通讯端口(port,如TCP/UDP通讯端口)动态进行来源主机网络地址(SIP)与目的主机网络地址(DIP)的转换,因此难以简单地通过电路查找表处理来硬件加速。
为了改善使用转译以映射地址与端口的方法(MAP-T)和使用封装以映射地址与端口的方法(MAP-E)等已知转换IPv4与IPv6网络之间封包的技术需要耗费较大运算资源的缺点,本申请提出一种网络封包转换方法与系统,其中技术主要是应用表格字段的设计与设定实现IPv4与IPv6网络相互封包转换(上行与下行)的技术,涵盖MAP-E与MAP-T两种方法的表格字段的设计和设定,实现封包上行与下行都可以通过特定应用集成电路(ASIC)等电路系统直接做硬件加速。
在本申请提出的网络封包转换方法中,设计硬件转换规则,通过一个内容查找表(content table)储存要MAP-T/MAP-E插入转换后的IPv6包头(header),再通过一个控制查找表(control table)决定加上IPv6包头后需要更新的字段控制,另外额外根据一转送映射规则表(FMR(forwarding mapping rule)table)来决定MAP-E/MAP-T上行(IPv4到IPv6)IPv6封包的目的主机网络地址(DIP)的转换,以及MAP-T下行(IPv6到IPv4)IPv4封包的来源主机网络地址(SIP)与目的主机网络地址(DIP)的转换。
所述网络封包转换方法特别支持已知MAP-E/MAP-T的封包格式,其中技术概念主要分为内容查找表、控制查找表与转送映射规则表的建立,以及封包所需字段自动更新的逻辑设计。
在此定义网络封包转换方法所采用的几个查找表,电路系统中记载的内容查找表(content table)与接口(interface)为MAP-T/MAP-E相关,所述接口为网络地址(IPaddress)与通讯端口(port)相关信息的组合,可用于判断采用的MAP-E/MAP-T转换方法。举例来说,接口的内容以IPv4封包为例,如以下IPv4标头记载的内容,也是用来查询关联性而判断采用MAP-T或MAP-E的接口信息:
L3 Destination IP:10.10.10.10=0x0a0a0a0a
L3 Source IP:11.11.11.11=0x0b0b0b0b
L4 Destination Port:0x1234
L4 Source Port:0x5678
所述内容查找表用于储存基本的IPv6格式(format),如要执行转译或封装映射地址与端口(MAP-T/MAP-E)插入转换后的IPv6包头,可作为控制查找表(control table)修改的基底。内容查找表包括了40字节的IPv6包头,内容查找表示例如:Destination IP:0000:0001:0002:0003:0004:0005:0006:0007:0008。
控制查找表(control table)同样与所述接口(网络地址与通讯端口等相关信息的组合)相关,用于决定加上IPv6包头后需要更新的字段控制,针对封包加上内容查找表的标头后执行的行为设定,控制查找表的示例如下。
针对MAP-E的控制查找表示例:
control.len=40
control.format=MAP-E type
control.ipv6_len_diff=0
针对MAP-T的控制查找表示例:
control.len=40
control.format=MAP-T type
control.ipv6_len_diff=0
contorl.mapt_l4_sum_recalculate=1
control.mapt_prefix_len=64
控制查找表中定义的字段包括:
格式(format):记载进入封包的表项(entry)为MAP-T格式(MAP-T type format)或是MAP-E格式(MAP-E type format)。
长度(len):记载在内容查找表中IPv6包头的长度。
IPv6长度差异(ipv6_len_diff):记载插入IPv6包头(header)的长度,用来更新上述IPv6包头长度字段。
MAP-T前缀长度(mapt_prefix_len):记载MAP-T(使用转译以映射地址与端口的方法)前缀的长度。
MAP-T草稿版本(mapt_draft_ver):记载MAP-T自身的版本的IPv6来源主机网络地址(ipv6.sip)是否使用意见请求稿(request for comments,RFC)的草稿版本。
MAP-T重算第四层校验码(mapt_l4_sum_recalculate):表示MAP-T重算第四层(L4)校验码(checksum),需要使用插入IPv6包头中的伪装网络地址(pseudo ip)重新计算校验码。
转送映射规则表(FMR table)用于决定MAP-E/MAP-T上行IPv6目的主机网络地址(DIP)的转换以及MAP-T下行的IPv4来源主机网络地址(SIP)与目的主机网络地址(DIP)的转换,转送映射规则表示例如:
FMR.ipv6_address_prefix64=0123:4567:89ab:cdef
FMR.PSID_refill=1
FMR.PSID_start_offset=2
FMR.PSDI_end_offset=9
FMR.draft_ver=0
转送映射规则表中定义的字段包括:
IPv6封包前缀地址(ipv6_address_prefix64):包含IPv6前缀规则(rule-ipv6-prefix)与用于标记用户的标识符(EA-bits),共64位,所述EA-bits由IPv4子网标识和埠设识别符(port set ID,PSID)组成,用于唯一标记不同的用户。
埠设识别符偏移开始(PSID_start_offset):记载埠设识别符(PSID)在第四层传输协议目的端口(L4 Dport)的16位中的起始位置。
埠设识别符偏移结束(PSID_end_offset):记载埠设识别符在第四层传输协议目的端口的16位中的结束位置。
重填埠设识别符(PSID_refill):记载是否动态修改封包中IPv6中目的主机网络地址(DIP)中的埠设识别符字段。
终端使用者IPv6封包前缀(end_user_ipv6_prefix):记载Ipv6前缀位以及用于标记用户的标识符(EA-bits)的长度。
草稿版本(draft_ver):记载远程版本是否使用意见请求稿草稿(RFC draft)的版本。
上述埠设识别符可以根据埠设识别符偏移开始(PSID_start_offset)和埠设识别符偏移结束(PSID_end_offset)在第四层传输协议目的端口(L4 Dport)的起始与结束位置取出,若埠设识别符长度(PSID length)为0,则将重填埠设识别符(PSID_refill)设定为0。
列举一示例,草稿版本(draft_ver)为1(draft_ver=1)时,IPv6的目的主机网络地址(DIP)的组成如图1所示,其中前缀记载IPv6的地址,v4(32)表示IPv4的目的主机网络地址,PSID记载埠设识别符,图1显示即为IPv4转换到IPv6目的主机网络地址的封包格式示例。
草稿本版(draft_ver)为0(draft_ver=0)时,IPv6的目的主机网络地址(DIP)的组成如图2所示的另一封包格式示例。
若在转译以映射地址与端口的方法(MAP-T)中未指定转送映射规则表(FMRtable),则转换定义为默认映射规则(default mapping rule,DMR)格式,IPv6封包格式即会根据控制查找表中MAP-T前缀长度(mapt_prefix_len)不同而做出转换。如图3所示依照前缀长度IPv4转换到IPv6目的主机网络地址的转换表示例,其中记载前缀(prefix)、后缀(suffix)以及第4代通讯协议下的网络地址,可让网络封包转换方法操作时,在没有指定转送映射规则表时,以此默认映射规则将IPv4网络封包转换到IPv6网络上。
图4显示上下行网络封包转换方法实施例流程,即通过电路系统执行IPv4与IPv6两种网络协议之间的封包转换(步骤S401),其中涵盖上行流程,即将IPv4网络封包转换为IPv6网络封包,以及下行流程,即将IPv6网络封包转换为IPv4网络封包。
在上行流程中,可先决定内容查找表、控制查找表与转送映射规则表,先根据内容查找表记载,针对IPv4封包,将IPv6包头的长度字段插入至IPv4包头前缀(步骤S403),再根据控制查找表中记载插入IPv6包头的长度字段,以更新插入至IPv4包头前缀的IPv6包头的长度字段(步骤S405),接着可以根据是否指定转送映射规则表来决定IPv6封包中的目的主机网络地址(步骤S407),之后更新IPv6封包目的主机网络地址字段中的IPv4封包组成的部分(步骤S409),即完成转换到IPv6封包的步骤。相关实施例流程可参考图6与图7。
在下行流程中,根据所要处理的数据流中的信息,如虚拟局域网(vlan)和IPv6包头中记载的目的主机网络地址(DIP),以决定采用使用封装以映射地址与端口的方法(MAP-E)或一使用转译以映射地址与端口的方法(MAP-T)(步骤S411),接着即根据控制查找表与IPv6封包形式决定转换至IPv4封包的标头(步骤S413),即完成IPv6封包转换为IPv4封包的步骤。可参考图8与图9所示的实施例流程。
图5显示执行所述方法的电路系统,图标电路系统500如设于网络装置50中的封包处理电路,如专用集成电路(ASIC)实现的电路系统,其中固件设计有MAP-E/MAP-T硬件表格字段,如上述实施例描述的内容查找表、控制查找表与转送映射规则表,以此实现封包上行(可定义为IPv4网络511转换到IPv6网络512)与下行(可定义为IPv6网络512转换到IPv4网络511)的封包转换,并可以通过硬件电路系统直接处理加速。
当普遍使用的IPv4网络511切换到IPv6网络512时,根据一实施例,IPv4网络511可运行在局域网(LAN),IPv6网络512则运用在广域网(WAN),电路系统500如路由器,执行封包路由,设有局域网通讯模块501,联机IPv4网络511(涵盖其中计算机主机、服务器与网络设备),用以处理局域网封包;设有广域网通讯模块502,联机IPv6网络512(涵盖其中计算机主机、服务器与网络设备),用以处理广域网封包。
基于上述实施例流程、电路系统以及各式查找表中字段定义,以下列举应用MAP-E与MAP-T方法实现IPv6/IPv4上下行封包转换流程实施例,并可参考上述图1、图2与图3所列举包头之实施示例。
[上行流程MAP-E实施例]
根据以上提出网络封包转换的机制,续参考图6描述使用封装以映射地址与端口的方法(MAP-E)所实现针对上行封包(指IPv4网络协议下的封包转换为IPv6网络协议下的封包)的网络封包转换方法的实施例流程。所述流程较佳为以如ASIC的电路系统所执行。
一开始如步骤S601,根据原本IPv4封包路由决定输出接口要采用使用封装以映射地址与端口的方法(MAP-E),根据其中IPv4封包路由的需求,将这条网络封包的数据流指定关联的内容查找表(content table)、控制查找表(control table)以及转送映射规则表(FMR table)。接着,如步骤S603,将内容查找表记载的IPv6包头长度字段插入至IPv4包头前缀。
在步骤S605中,根据控制查找表中记载插入IPv6包头长度字段(header.len),用以更新插入至IPv4包头前缀的IPv6包头长度字段(可表示为ipv6.len=control.ipv6_len_diff+ipv4.len)。在此以MAP-E实现的流程中,指定转送映射规则表(FMR table)为可选项目,在步骤S607中,判断是否有指定转送映射规则表,若不指定(否),如步骤S609,代表不需要修改标头中的目的主机网络地址(DIP);反之,若有指定转送映射规则表(是),则进行步骤S611,根据所指定的转送映射规则表记载的IPv6封包前缀地址(ipv6_address_prefix64)更新要转换的IPv6包头前缀字段中的目的主机网络地址。
在接续步骤S613中,判断转送映射规则表中的重填埠设识别符(PSID_refill)是否为0,若为0(是),表示埠设识别符长度(PSID length)为0,如步骤S615,也就是无须动态修改IPv6封包中目的主机网络地址(DIP)中的埠设识别符字段;相反地,若转送映射规则表中的重填埠设识别符不为0,则执行步骤S617,根据转送映射规则表中埠设识别符偏移开始(PSID_start_offset)与埠设识别符偏移结束(PSID_end_offset)两个字段信息取出的埠设识别符来动态修改IPv6封包中目的主机网络地址的埠设识别符字段,其中的埠设识别符位置则是跟着转送映射规则表中的草稿版本(draft_ver)的值而有所不同,可参考图1(draft_ver=1)与图2(draft_ver=0)所示。
最后,不论是否修改IPv6封包中目的主机网络地址中的埠设识别符字段,如步骤S619都进一步完成更新IPv6封包中目的主机网络地址的IPv4封包组成的部分,即完成IPv4转IPv6上行封包的转换。
[上行流程MAP-T实施例]
图7描述使用转译以映射地址与端口的方法(MAP-T)所实现针对上行封包(指IPv4网络封包转换到IPv6网络)的网络封包转换方法的实施例流程。
一开始,如步骤S701,根据原本IPv4封包路由决定出输出接口要采用使用转译以映射地址与端口的方法(MAP-T),同时将这条封包数据流指定关联的内容查找表(contenttable)、控制查找表(control table)以及转送映射规则表(FMR table)。接着,如步骤S703,将内容查找表记载的IPv6包头长度插入至IPv4包头前缀,再如步骤S705,根据控制查找表中记载插入IPv6包头(header)的长度字段,用以更新IPv6包头长度字段。
同样地,此例的转送映射规则表亦为可选项目,在步骤S707中,判断是否指定转送映射规则表。若不指定转送映射规则表,如步骤S709,则根据默认映射规则表(DMR table)中控制查找表的MAP-T前缀长度(mapt_prefix_len)字段和IPv4封包中目的主机网络地址修改IPv6封包中的目的主机网络地址。其中不同上述控制查找表中MAP-T前缀长度字段,这步骤是针对IPv6的目的主机网络地址修改的位置不一样所致。
反之,若有指定转送映射规则表,如步骤S711,则根据转送映射规则表中IPv6封包前缀地址(ipv6_address_prefix64)字段来更新IPv6封包的目的主机网络地址的前缀。后续步骤(步骤S713)同样也会根据映射规则表中的重填埠设识别符(PSID_refill)是否为0判断是否要动态修改IPv6封包中目的主机网络地址中的埠设识别符字段,可参考图7步骤S713至S717,在此不再赘述。最后,同样地,不论是否修改IPv6封包中目的主机网络地址中的埠设识别符字段,如步骤S715都进一步完成更新IPv6封包中目的主机网络地址的IPv4封包组成的部分,并且如步骤S717,根据控制查找表中MAP-T重算第四层校验码(mapt_l4_sum_recalculate)字段决定更新(或不更新)第四层传输协议(L4)校验码(checksum)。最后,如步骤S719,移除原本IPv4的标头部分,即完成IPv4转IPv6上行封包的转换。
[下行流程MAP-E实施例]
再一实施例如图8与图9实施例所描述针对下行封包(指IPv6网络协议下的封包转换为IPv4网络协议下的封包)的转换流程。其中图8描述使用封装以映射地址与端口的方法(MAP-E)针对下行封包的网络封包转换方法之实施例流程。
此例为根据虚拟局域网(vlan)和IPv6包头中记载的目的主机网络地址(DIP)决定使用封装以映射地址与端口的方法(MAP-E)(步骤S801),此时根据MAP-E关联的控制查找表,在MAP-E封包处理方法中,当IPv6封包形式为将一个封包封装进另一个封包中(IPinIP),此例指外层为IPv6网络协议而内层为IPv4网络协议封装的封包,则将此封包外层IPv6的标头移除(步骤S803),即完成IPv6封包转换为IPv4封包,并针对已经移除IPv6包头的IPv4进行转送步骤(步骤S805)。
[下行流程MAP-T实施例]
图9描述使用转译以映射地址与端口的方法(MAP-T)针对下行封包的网络封包转换方法之实施例流程。
此例包头中IPv6的DIP、所采用DMR与FMR、控制查找表示例如下:
-IPv6 Destination Address:
0123:4567:89ab:cdef:0000:0b0b:0b0b:009e
DMR
-IPv6 Source Address:0000:0001:0002:0003:000a:0a0a:0a06:0007
FMR
-IPv6 Source Address:0123:4567:89ab:cdef:0004:0a0a:0a0a:008d
控制查找表:
control.mapt_prefix_len=64
control_mapt_draft_ver=0
转送映射规则表:
FMR[0]:
Ipv6_address_prefix64:0123:4567:89ab:cdef
end_user_ipv6_prefix:64
draft_ver=0
FMR[1]:
Ipv6_address_prefix64:0123:4567:89ab:cdef
end_user_ipv6_prefix:32
draf_ver=1
根据虚拟局域网(vlan)和网络封包由IPv6网络协议封装于封包外层的IPv6包头中的目的主机网络地址(DIP)决定出使用转译以映射地址与端口的方法(MAP-T),以此执行IPv6封包至IPv4封包的转换(步骤S901)。此时根据MAP-T关联的控制查找表,在MAP-T封包处理方法中,当IPv6封包形式为单层IPv6网络协议封装的封包,则移除(pop)封包中的IPv6包头,并插入(insert)IPv4包头(步骤S903)。在此一提的是,在此将IPv6封包转换为IPv4封包的下行数据流处理流程中,须根据以下规则插入IPv4标头中的来源主机网络地址(SIP)与目的主机网络地址(DIP)。
针对来源主机网络地址(SIP)的处理如下。在转换到IPv4网络协议时需在包头插入来源主机网络地址(SIP),其中将原来IPv6封包的来源主机网络地址比对转送映射规则表(FMR table)中所有的纪录,如转送映射规则表记载的IPv6封包前缀地址(ipv6_address_prefix64)与终端使用者IPv6封包前缀(end_user_ipv6_prefix),以进行最长前缀匹配(longest prefix match)(步骤S905)。在此一提的是,最长前缀匹配是在路由器中进行路由选择的算法,也就是在路由表中选择标头前缀中与目的地地址表项(entry)匹配最多的路径。
这是流程判断是否有匹配成功(步骤S907),若有匹配(是),则引用此转送映射规则表,根据其中草稿版本(draft_ver)取出IPv4封包的来源主机网络地址(步骤S909),可参考图1与图2的包头示例。
反之,若没有匹配成功(否),则表示需使用默认映射规则表(DMR table)转换成IPv4封包的来源主机网络地址(步骤S911),即使用控制查找表中MAP-T前缀长度(mapt_prefix_len)根据默认映射规则表描述(如图3示例)取出IPv4封包的来源主机网络地址。
列举一示例,若来源主机网络地址为:0123:4567:89ab:cdef:0004:0a0a:0a0a:008d,查转送映射规则表,比对上述列举表中的FMR[0],64bits全部匹配,比对FMR[1],32bits也全匹配,表示FMR[0]与FMR[1]都算查到表,此时根据最长前缀匹配原则,FMR[0]匹配的位数较多,所以选FMR[0],根据FMR[0].draft_ver=0,参考图2可得IPv4的来源主机网络地址:SIP=0x0a0a0a0a=10.10.10.10。
在一示例中,若来源主机网络地址为:0000:0001:0002:0003:000a:0a0a:0a06:0007(IPv6),当查转送映射规则表没有匹配成功,则以默认映射规则转换回IPv4的来源主机网络地址,根据图3,control.mapt_prefix_len=64,可得知转回来的后的IPv4的来源主机网络地址为:0x0a0a0a0a=10.10.10.10。
接着是针对目的主机网络地址(DIP)的处理,在下行转换到IPv4网络的流程中,根据控制查找表中MAP-T草稿版本(mapt_draft_ver)辨认出原本IPv6包头记载的目的主机网络地址中IPv4的目的主机网络地址的组成(步骤S913),即参考图1与图2所示示例。如此,即完成IPv6封包转为IPv4封包的步骤。
列举一示例,目的主机网络地址为:0123:4567:89ab:cdef:0000:0b0b:0b0b:009e,根据控制查找表中MAP-T草稿版本(mapt_draft_ver=0),对照图2示例,可得IPv4封包的目的主机网络地址:DIP=0x0b0b0b0b=11.11.11.11。
综上所述,根据上述网络封包转换方法的实施例所描述采用MAP-E/MAP-T的上行与下行封包转换流程,所述方法可以电路或软件方法实现,较佳地可以运行于单芯片系统(SoC)实现的专用集成电路(ASIC)的固件中,其中主要设计有执行现行通用的IPv4转换到IPv6网络协议上行封包转换的硬件表格设计,其中主要包括IPv4转换到IPv6的产生方式,这是通过内容查找表加上控制查找表的字段设计来控制产生基本的IPv6包头,以及可采用使用转译以映射地址与端口的方法(MAP-T)或使用封装以映射地址与端口的方法(MAP-E)通过转送映射规则表(FMR table)字段设计,来执行上行封包中IPv6目的主机网络地址(DIP)转换,以及采用MAP-T对下行封包执行IPv6到IPv4的来源主机网络地址(SIP)与目的主机网络地址(DIP)的转换,以集执行草稿版本兼容性的控制。
以上所公开的内容仅为本发明的优选可行实施例,并非因此局限本发明的权利要求保护范围,所以凡是运用本发明说明书及附图内容所做的等效技术变化,均包含于本发明的权利要求保护范围内。
Claims (10)
1.一种网络封包转换方法,用以转换一IPv4封包为一IPv6封包,其特征在于,包括:
根据一内容查找表记载的一IPv6包头的长度字段插入至一IPv4包头前缀;
根据一控制查找表中记载插入该IPv6包头的长度字段,以更新插入至该IPv4包头前缀的该IPv6包头的长度字段;
根据是否指定一转送映射规则表来决定该IPv6封包中的一目的主机网络地址;以及
更新该IPv6封包中该目的主机网络地址的IPv4封包组成的部分,即完成IPv4封包转为IPv6封包的转换。
2.如权利要求1所述的网络封包转换方法,其特征在于,根据IPv4封包路由决定输出的接口采用一使用封装以映射地址与端口的方法或一使用转译以映射地址与端口的方法。
3.如权利要求2所述的网络封包转换方法,其特征在于,于该使用封装以映射地址与端口的方法中,于决定该IPv6封包中的该目的主机网络地址步骤中,若指定该转送映射规则表,根据该转送映射规则表记载的IPv6封包前缀地址字段更新该IPv6封包的该目的主机网络地址;若不指定该转送映射规则表,不需要修改该IPv6包头中的该目的主机网络地址。
4.如权利要求3所述的网络封包转换方法,其特征在于,于决定该IPv6封包的该目的主机网络地址的步骤中,进一步地决定该目的主机网络地址的一埠设识别符字段,其中:判断该转送映射规则表中的一重填埠设识别符是否为0,若为0,无须动态修改该IPv6封包中的该目的主机网络地址中的该埠设识别符字段;以及
若该转送映射规则表中的该重填埠设识别符不为0,根据该转送映射规则表中一埠设识别符偏移开始与一埠设识别符偏移结束两个字段信息取出的该埠设识别符来动态修改该IPv6封包中该目的主机网络地址的该埠设识别符字段。
5.如权利要求2所述的网络封包转换方法,其特征在于,于该使用转译以映射地址与端口的方法中,于决定该IPv6封包中的该目的主机网络地址步骤中,若指定该转送映射规则表,根据该转送映射规则表记载的IPv6封包前缀地址字段更新该IPv6封包的该目的主机网络地址;若不指定该转送映射规则表,即根据一默认映射规则表中一控制查找表的一使用转译以映射地址与端口的方法的前缀长度字段和该IPv4封包中一目的主机网络地址,修改该IPv6封包中的该目的主机网络地址。
6.如权利要求5所述的网络封包转换方法,其特征在于,于决定该IPv6封包的该目的主机网络地址的步骤中,进一步地决定该目的主机网络地址的一埠设识别符字段,其中:
判断该转送映射规则表中的一重填埠设识别符是否为0,若为0,无须动态修改该IPv6封包中的该目的主机网络地址中的该埠设识别符字段;以及
若该转送映射规则表中的该重填埠设识别符不为0,根据该转送映射规则表中一埠设识别符偏移开始与一埠设识别符偏移结束两个字段信息取出的该埠设识别符来动态修改该IPv6封包中该目的主机网络地址的该埠设识别符字段。
7.如权利要求5所述的网络封包转换方法,其特征在于,当移除该IPv6包头中原本IPv4的标头部分,即完成该IPv4封包转为该IPv6封包的步骤。
8.如权利要求1至7中任一项所述的网络封包转换方法,其特征在于,该内容查找表储存一使用转译以映射地址与端口的方法和一使用封装以映射地址与端口的方法插入转换后的该IPv6包头;该控制查找表用以决定加上该IPv6包头后需要更新的字段控制;该转送映射规则表用以决定上行IPv6封包的目的主机网络地址的转换,以及下行IPv4封包的来源主机网络地址与目的主机网络地址的转换。
9.一种网络封包转换方法,用以转换一IPv6封包为一IPv4封包,其特征在于,包括:
根据一虚拟局域网和一IPv6包头中记载的一目的主机网络地址决定采用一使用封装以映射地址与端口的方法或一使用转译以映射地址与端口的方法;以及
根据一控制查找表,根据该IPv6封包形式,决定转换至一IPv4封包的标头,完成该IPv6封包转换为该IPv4封包的步骤。
10.如权利要求9所述的网络封包转换方法,其特征在于,于该使用封装以映射地址与端口的方法中,即根据该使用封装以映射地址与端口的方法关联的该控制查找表,当该IPv6封包形式为外层为该IPv6网络协议而内层为该IPv4网络协议封装的封包,即移除外层为该IPv6网络协议的标头。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111201183.XA CN115996211A (zh) | 2021-10-15 | 2021-10-15 | 网络封包转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111201183.XA CN115996211A (zh) | 2021-10-15 | 2021-10-15 | 网络封包转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115996211A true CN115996211A (zh) | 2023-04-21 |
Family
ID=85988966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111201183.XA Pending CN115996211A (zh) | 2021-10-15 | 2021-10-15 | 网络封包转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115996211A (zh) |
-
2021
- 2021-10-15 CN CN202111201183.XA patent/CN115996211A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100803273B1 (ko) | 패킷 터널링하는 isatap 라우터 및 그 방법 | |
US8160069B2 (en) | System for forwarding a packet with a hierarchically structured variable-length identifier | |
US7680943B2 (en) | Methods and apparatus for implementing multiple types of network tunneling in a uniform manner | |
US7158526B2 (en) | Packet communication method and apparatus and a recording medium storing a packet communication program | |
US20060098644A1 (en) | Translating native medium access control (MAC) addresses to hierarchical MAC addresses and their use | |
US7599364B2 (en) | Configurable network connection address forming hardware | |
US7440460B2 (en) | Apparatus and method for forwarding mixed data packet types in a high-speed router | |
US7830870B2 (en) | Router and method for transmitting packets | |
KR20130112863A (ko) | 사설 ipv4 도달가능성으로 ds-라이트 향상 | |
US10880264B1 (en) | Customer-side and provider-side translation of Internet Protocol addresses without pre-shared prefixes | |
US20150295729A1 (en) | Hardware accelerator for tunnel processing | |
US7386699B1 (en) | Aligning IP payloads on memory boundaries for improved performance at a switch | |
CN107547407B (zh) | 报文传输方法、装置和实现装置 | |
US20110032952A1 (en) | Two stage internet protocol header compression | |
US20190182366A1 (en) | Efficient parsing of extended packet headers | |
US20180048593A1 (en) | Flow entry generating and packet processing based on flow entry | |
US7742471B2 (en) | Methods and systems for routing packets with a hardware forwarding engine and a software forwarding engine | |
US9525661B2 (en) | Efficient method of NAT without reassemling IPV4 fragments | |
CN105515995B (zh) | 报文处理方法及装置 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN112261054B (zh) | 基于应用业务服务质量的Ethernet/IP与IPv6协议转换系统及方法 | |
CN106878308B (zh) | 一种icmp报文匹配系统及方法 | |
JP2016503267A (ja) | ネットワークのプロトコルアドレスを扱う方法及び処理デバイス | |
CN115996211A (zh) | 网络封包转换方法 | |
CN105282055B (zh) | 识别网络分组的内部目的地的方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |