CN112165539B - 一种IPv6地址转换方法 - Google Patents
一种IPv6地址转换方法 Download PDFInfo
- Publication number
- CN112165539B CN112165539B CN202011006910.2A CN202011006910A CN112165539B CN 112165539 B CN112165539 B CN 112165539B CN 202011006910 A CN202011006910 A CN 202011006910A CN 112165539 B CN112165539 B CN 112165539B
- Authority
- CN
- China
- Prior art keywords
- header
- ipv6
- message
- field
- port
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种IPv6地址转换方法,步骤如下:步骤一、主机Host A发送IPv6报文到达交换机S;步骤二、交换机S将其转发至NAT设备FW‑S;步骤三、NAT设备FW‑S完成替换IPv6报文首部,并为IPv6报文增加SDNAT首部,完成转换;步骤四、将增加SDNAT首部的IPv6报文发转发至网络;步骤五、NAT设备FW‑D通过网络接收IPv6报文并检查,后转换,将转换后的报文转发给交换机D;步骤六、IPv6报文到达交换机D,交换机D完成检查旧校检和,如果旧校检和合格则重新计算校检和,并去除SDNAT首部,之后将报文转发给主机Host B;如果旧校检和不合格,则丢弃报文。该转换方法能够将地址转换过程和重新计算校检和的过程分离,减轻NAT设备压力,具有将计算校检和的任务分派到边缘交换机上的特点。
Description
技术领域
本发明涉及IP网络技术,特别涉及一种IPv6地址转换方法。
背景技术
现代计算机网络的典型代表是因特网(Internet),因特网的诞生与繁荣是现代人类社会进步的标志之一。在因特网上进行通信的主机都需要有IP地址,如何获得与使用IP地址由IP协议簇来规定。目前IP协议簇有两个主要版本:IPv4版本和IPv6版本。IPv4版本中的IP地址是32位的,IPv6版本中的IP地址是128位的。32位的地址长度在发展过程中逐渐无法满足通信需求,因为32位的IP地址能表示的主机数是232,而现代接入网络设备的主机数量已经远超过了这一数目。因此IETF提出了私网地址,地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
用户在自己组网的时候可以自由的使用这三类地址,而不用担心与其他网络的主机发生地址冲突。因为目前规定因特网中的路由器不对目的地址是私网地址的报文进行转发。但这也产生了一个新的问题:如果这些私网中的主机要上网的话如何解决?
网络地址转换(Network Address Translation,NAT)技术应运而生。该技术通过将私网地址与公网地址相互转换从而实现私网主机访问因特网。目前NAT相关技术很多,比较具有代表性的是网络地址端口转换(Network Address Port Translation,NAPT)技术。这种技术的特征是在进行地址转换的时候还加入了端口,由于一个IP地址对应的端口号有216个,因此一个公网网络地址可以满足大量私网网络地址的上网需求。NAPT功能一般由路由器或者防火墙来实现。
我们知道传输层报文(TCP或者UDP)有校检和字段。在进行网络地址转换的时候,由于网络地址和传输层端口都有可能发生变化,因此校检和字段也需要重新计算。由此导致的结果是对于NAPT设备来说,至少要完成如下两方面的工作:
(1)地址转换;
(2)计算新的校检和;
由于NAPT设备往往承担大量的私网用户上网任务,也就是要进行大量的地址转换和大量的校检和计算,这对NAPT设备性能提出了较高要求,导致设备价格也相对比较昂贵。
鉴于上述问题,本发明设计出一种IPv6地址转换方法,本案由此产生。
发明内容
本发明提供一种IPv6地址转换方法,该转换方法能够将地址转换过程和重新计算校检和的过程分离,减轻NAT设备压力,具有将计算校检和的任务分派到边缘交换机上的特点;具体地,本发明是通过以下技术方案实现:
一种IPv6地址转换方法,该方法步骤如下所述:
步骤一、主机Host A发送IPv6报文到达交换机S;
步骤二、交换机S将其转发至NAT设备FW-S;
步骤三、NAT设备FW-S完成替换IPv6报文首部,并为IPv6报文增加SDNAT首部,完成转换;
步骤四、将增加SDNAT首部的IPv6报文发转发至网络;
步骤五、NAT设备FW-D通过网络接收IPv6报文并检查,后转换,将转换后的报文转发给交换机D;
步骤六、IPv6报文到达交换机D,交换机D完成检查旧校检和,如果旧校检和合格则重新计算校检和,并去除SDNAT首部,之后将报文转发给主机Host B;如果旧校检和不合格,则丢弃报文。
进一步,步骤三中,SDNAT首部包括Next header字段、类型字段、Length、原始SrcIPv6、替换后Src IPv6、原始Dst IPv6、替换后Dst IPv6、原始Src Port、替换后Src Port、原始Dst Port和替换后Dst Port。
进一步,步骤三中,将IPv6首部Src IPv6字段替换为NAT设备FW-S地址,Nextheader字段修改,使得Next header字段表示下一个扩展首部是SDNAT。
进一步,步骤五包括以下步骤:
a.NAT设备FW-D根据转换表,检查接收到的报文;
b.NAT设备FW-D根据转换表,将SDNAT首部的Dst IPv6字段修改为主机HostB地址,同时对应修改SDNAT首部的替换后Dst IPv6字段,并将SDNAT首部的Dst port字段修改,完成报文转换;
c.将转换好的报文转发至交换机D。
进一步,步骤六包括以下步骤:
a.检查旧校检和,从SDNAT首部提取出原始Src IPv6字段和原始Src Port字段,然后结合传输层报文,计算校检和,并将计算得出的校检和与原报文中的校检和比对,如果不一致,则丢弃该报文;如果一致,则进行下一步;
b.完成传输层报文首部的替换,用SDNAT首部的替换后的Dst Port字段赋值给传输层首部的Dst port字段,将替换后的Src port赋值给传输层首部的Src port字段;
c.完成传输层报文校检和的重新计算;
d.去掉SDNAT首部,从报文中移除SDNAT首部,将IPv6首部的Next header字段修改,使其指向传输层报文首部;
e.将报文转发至主机Host B。
进一步,交换机的转发过程如下:
a.提取出收到帧的目的MAC地址;
b.检查帧是否含有SDNAT首部,如果没有,则按照正常的以太网交换机方式进行转发,否则进行步骤c;
c.在MAC地址转发表中查找目的MAC地址,如果不存在,则将该帧丢弃;如果存在,则判断目的MAC对应的端口的设备是否是主机;如果不是主机,则直接把帧从对应的端口转发出去;如果是主机,则进行步骤d;
d.检查传输层旧校检和,如果旧校检和合格,则进行传输层字段替换,并重新计算校检和,之后将报文转发给目标主机;如果旧校检和不合格,则丢弃报文。
进一步,交换机的端口连接信息由控制器告知。
进一步,NAT设备具有出方向功能,实现步骤如下:
a.为出方向需要进行地址转换的IPv6报文加入SDNAT首部;
b.进行源地址转换;
c.将报文转发出去;
d.在转换表中,记录转换关系。
进一步,NAT设备具有入方向功能,实现步骤如下:
a.提取首先提取出SDNAT首部的替换后Dst IPv6字段和替换后Dst Port字段,然后查找转换表,看是否有方向为“入”,且原始IP和端口字段分别与上面两个值相同的条目,如果有,则继续步骤b,如果没有则将报文丢弃;
b.进行目的地址转换;对于IPv6首部,根据转换表将Dst IPv6字段用转换后IPv6地址进行替换;
c.对于传输层首部的Dst Port字段,根据转换表确定转换后的端口。
d.修改SDNAT首部部分字段值:修改SDNAT首部替换后Dst IPv6字段和替换后Dstport字段
e.将报文转发出去。
进一步,当IPv6首部中的Next header字段值为253,则表示下一个扩展首部为SDNAT首部,SDNAT首部后面紧接着的是其他扩展首部,其他扩展首部后是传输层数据。
本申请的有益效果在于:
该方法中,通过设计一种新的IPv6扩展首部,即SDNAT首部,使得在转换过程中,地址转换过程由NAT设备完成,而计算校检和的过程由交换机完成,从而将大量的计算任务从NAT设备上剥离,一方面有利于降低NAT设备设计、生产成本,另一方面有利于网络负载均衡,避免NAT设备成为网络瓶颈。
在步骤三和步骤五中,对IPv6的首部部分字段进行了转换,但TCP协议部分没有进行变化。然后将IPv6首部的变化和TCP协议部分需要做的改变都记录在SDNAT首部。该步骤充分利用了IPv6首部无校检和的特点,由于IPv6首部没有校检和字段,因此即使进行了部分字段的转换,但也不需要重新计算IPv6的校检和,而TCP首部是有校检和字段的,但TCP协议部分又没有发生任何变化,从而避免了NAT设备进行校检和的重新计算。
在步骤六中,该步骤完成的是TCP首部转化、重新计算TCP首部的校检和字段和去掉SDNAT首部的过程,在交换机中完成。虽然计算机校检和需要大量的计算,但这种计算工作是由交换机完成,进一步说是由主机所接入的交换机完成的,因此这种计算是一种分布式的计算,而非由NAT设备集中完成。
附图说明
图1为本发明提供的一种IPv6地址转换系图;
图2为为一种SDNAT首部格式图;
图3为主机host A发出的原始IPv6报文格式图;
图4为经过FW-S转换后的IPv6报文格式图;
图5为经过FW-D转换后的IPv6报文格式图;
图6交换机D处理后的IPv6报文格式图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明。
一种软件定义网络中的IPv6地址转换系统,如图1所示,该系统硬件包括主机、交换机、NAT设备和控制器。
其中主机Host A发送IPv6报文给交换机S,交换机S将其转发至NAT设备FW-S,NAT设备FW-S完成报文转换,通过Internet将报文发送至NAT设备FW-D,NAT设备FW-D将报文转换,转换后的报文发送到交换机D上,再转发主机Host B。
该软件定义网络中的IPv6地址转换系统能够将NAT设备中实现的地址转换过程和重新计算校检和的过程分离,减轻NAT设备压力,将分离的计算校检和的任务分派到边缘交换机上
为了实现地址转换与校检和计算分离,我们设计了一种新的IPv6扩展首部,我们称之为SDNAT首部,SDNAT首部包括Nh字段、Type字段、Length字段、原始Src IPv6字段、替换后Src IPv6字段、原始Dst IPv6字段、替换后Dst IPv6字段、原始Src Port字段、替换后SrcPort字段、原始Dst Port字段和替换后Dst Port字段,格式见图2。
各个字段含义如下:
Nh:长度为8比特,表示Next header,即指向下一个IPv6扩展首部,如果没有下一个扩展首部,则表明IPv6数据部分所承载的协议。
Type:长度为8比特,表示类型,默认值为1。
Length:表示SDNAT首部总长度,以字节为单位。
原始Src IPv6:长度为128比特,表示原始IPv6首部中Src IPv6字段。
替换后Src IPv6:长度为128比特,表示要用于替换IPv6首部Src IPv6字段的值。
原始Dst IPv6:长度为128比特,表示原始IPv6首部中Dst IPv6字段。
替换后Dst IPv6:长度为128比特,表示要用于替换IPv6首部中Dst IPv6字段的值。
原始Src Port:长度为16比特,原始传输层首部的Src Port字段。
替换后Src Port:长度为16比特,要用于替换传输层Src Port字段的值。
原始Dst Port:长度为16比特,表示原始传输层首部的Dst Port字段。
替换后Dst Port:长度为16比特,表示要用于替换传输层首部的Dst Port字段的值。
图4表示SDNAT首部在IPv6报文中的位置,当IPv6首部中的Next header字段值为253,则表示下一个扩展首部为SDNAT首部。SDNAT首部后面紧接着的是其他扩展首部,然后是传输层数据,比如TCP或者UDP。
上述控制器主要实现以下两种功能:
(1)、获取网络拓扑信息。
每当交换机接入网络的时候,控制器就利用LLDP(Link Layer DiscoveryProtocol,LLDP)或OSPF(Open Shortest Path First,OSPF)等协议进行拓扑发现,得到网络的拓扑信息。这里得到网络拓扑信息包括网络中有哪些设备,以及这些设备是如何连接的,比如某交换机通过端口2与另一台交换机端口1相连接。
对于网络中的交换机来说,端口连接的设备可以有三种:控制器、其他网络设备或主机。在利用LLDP或OSPF等协议得到网络拓扑信息后,对于每一个交换机,去除掉连接控制器的端口和连接其他网络设备的端口,那剩下的端口就是用于连接主机的端口了。
(2)、下发端口信息
控制器把每台交换机的端口连接信息下发至对应的交换机,这样交换机就知道自己的哪些端口连接的是主机,哪些端口连接的是其他交换机,哪些端口连接的是控制器。端口信息表样式见表1,端口1的对端设备为控制器,端口2的对端设备为其他网络设备,端口3的对端设备为主机。
表1端口信息表
端口 | 对端设备 |
1 | 控制器 |
2 | 其他网络设备 |
3 | 主机 |
交换机主要实现以下功能:
(1)、传统以太网交换机转发功能。
由于交换机的工作原理是根据MAC地址进行转发,每个交换机中都会维持一个MAC地址转发表,转发表的通用格式见表2。当交换机收到一个帧的时候,交换机会从帧的首部提取目的MAC地址。如果目的MAC地址是广播地址,则把帧广播出去。如果不是广播地址,则查询转发表,如果转发表中有该MAC地址,则从对应的端口把帧转发出去,如果转发表中不存在该MAC地址,则交换机会以广播的方式发送该帧。
表2 MAC地址转发表
MAC地址 | 端口 | 类型 |
MACA | 1 | 动态 |
(2)、在本方法中,交换机具有帧转发功能,其过程描述如下。
在收到一个帧的时候,首先提取出帧的目的MAC地址。然后进行如下操作:
步骤1:检查帧是否含有SDNAT首部,如果没有,则按照正常的以太网交换机方式进行转发。否则进行步骤2。
步骤2:在MAC地址转发表中查找目的MAC地址,如果不存在,则将该帧丢弃。如果存在,假设目的MAC对应的端口是x,则进一步检查端口信息表,看端口x对应的设备,如果设备不是主机,则直接把帧从对应的端口转发出去;如果端口x对应的设备是主机,则进行步骤3。
步骤3:
步骤3-1:检查传输层旧校检和。具体方法为交换机从SDNAT首部提取出原始SrcIPv6和原始Dst IPv6字段,结合TCP协议部分,进行校检和计算,然后与报文中的传输层部分Checksum字段进行比较,如果不一致,说明传输程中发送了错误,将该报文丢弃。如果一致,则进行3-2。
步骤3-2:传输层字段替换。将SDNAT首部的替换后Dst port字段赋值给传出层首部的Dst port字段,替换后Src Port赋值给传输层首部的Src port字段,然后进行步骤3-3。
步骤3-3:计算新校检和。结合IPv6首部的Src IPv6字段、Dst IPv6字段和传输层部分,计算新的传输层校检和,然后赋值给传输层Checksum字段。进行步骤3-4。
步骤3-4:转发。把报文转发给目标主机。
上述NAT设备具有出方向功能和入方向功能。
(1)、出方向功能
步骤1:为出方向需要进行地址转换的IPv6报文加入SDNAT首部。具体方法是在IPv6首部之后插入SDNAT首部。
步骤2:源地址转换。
步骤2-1:对于IPv6首部,首先将Src IPv6字段用转换后IPv6地址进行替换,假设转换后的地址为IPpub1,然后将Next header字段值改为253,即表示下一个扩展首部是SDNAT。
步骤2-2:对于传输层首部的Src port字段,NAT设备需要为它选择一个未被占用的端口,假设选择到的端口为portX。
步骤2-3:为SDNAT各个字段进行赋值,具体如下:
Nh:由SDNAT后面的扩展首部或者协议数据决定,比如协议数据是TCP,则Nh值为6,如果协议数据是UDP,则Nh值为17。
Type:采用默认值,值为1.
Length:进过计算的SDNAT首部总长度。
原始Src IPv6:原始IPv6报文中Src IPv6字段。
替换后Src IPv6:这里为IPpub1。
原始Dst IPv6:原始IPv6报文中Dst IPv6字段。
替换后Dst IPv6:与原始Dst IPv6字段相同,表示尚未发生IPv6首部Dst IPv6字段替换。
原始Src Port:原始传输层首部的Src Port字段。
替换后Src Port:要用于替换传输层首部Src Port字段的值,这里为portX。
原始Dst Port:原始传输层首部的Dst Port字段。
替换后Dst Port:与原始Dst Port相同,表示尚未发生传输层首部Dst Port字段替换。
步骤3:把报文转发出去。
步骤4:在转换表中增加两个条目。记录转换关系。第一个条目的方向字段为“出”,原始IP和端口字段填写原始IPv6报文的Src IPv6和Src Port。替换后IP和端口字段填写SDNAT首部的替换后Src IPv6和替换后Src Port。第二个条目的方向字段为“入”,原始IP和端口字段填写SDNAT首部的替换后Src IPv6和替换后Src Port。替换后IP和端口字段填写原始IPv6报文的Src IPv6和Src Port。
(2)、入方向功能:
步骤1:首先提取出SDNAT首部的替换后Dst IPv6字段和替换后Dst Port字段,然后查找转换表,看是否有方向为“入”,且原始IP和端口字段分别与上面两个值相同的条目,如果有,则继续步骤2,如果没有则将报文丢弃。
步骤2:目的地址转换。对于IPv6首部,根据转换表将Dst IPv6字段用转换后IPv6地址进行替换,假设转换后的地址为IPB。
步骤3:对于传输层首部的Dst Port字段,根据转换表确定转换后的端口,假设转换后的端口为portB。
步骤4:修改SDNAT首部部分字段值。修改SDNAT首部替换后Dst IPv6字段和替换后Dst port字段,这里分别为IPB与portB
步骤5:将报文转发出去。
结合图1,对IPv6地址转换的具体过程进行说明。
其中主机Host A的IPv6地址为IPA,MAC地址为MACA;主机Host B的IPv6地址为IPB,MAC地址为MACB,如表3所示。
表3主机地址信息表
IPv6地址 | MAC地址 | |
Host A | IPA | MACA |
Host B | IPB | MACB |
交换机S的MAC地址转发表和端口信息表见表4和表6。端口信息表中端口1对应设备为主机,交换机端口2对应设备为其他网络设备;MAC地址转发表中地址MACA对应端口1;
交换机D的MAC地址转发表和端口信息表见表5和表7。端口信息表中端口2对应设备为主机,交换机端口1对应设备为其他网络设备;MAC地址转发表中地址MACB对应端口2。
表4交换机S的MAC地址转发表
MAC地址 | 端口 | 类型 |
MACA | 1 | 动态 |
表5交换机D的MAC地址转发表
MAC地址 | 端口 | 类型 |
MACB | 2 | 动态 |
表6交换机S端口信息表
端口 | 对端设备 |
1 | 主机 |
2 | 其他网络设备 |
表7交换机D端口信息表
端口 | 对端设备 |
1 | 其他网络设备 |
2 | 主机 |
NAT设备FW-D已经为Host B做好了地址转换,见表8。出方向上原始IP为IPB,端口为portB;替换后IP为IPpub2,替换后的端口为portY;
表8设备FW-D的转换表
方向 | 原始IP和端口 | 替换后IP和端口 |
出 | IPB:portB | IPpub2:portY |
入 | IPpub2:portY | IPB:portB |
NAT设备FW-D入方向上原始IP为IPpub2,端口为portY;替换后IP为IPB,替换后的端口为portB。
IPv6地址转换的具体过程如下所述。
步骤1、主机Host A发送IPv6报文访问网络地址IPpub2的端口portY,采用的传输层协议为TCP,该报文首先到达S1,报文格式如图3所示,各个字段赋值如下:
IPv6首部中,Src IPv6=IPA;Dst IPv6=IPpub2;Next header=6;
TCP首部中,Src port=portA;Dst port=portY;Checksum=checksum1。
步骤2、S1将其转发到转发至NAT设备FW-S。
步骤3、NAT设备FW-S在报文上增加SDNAT首部,具体如下所述:
步骤3-1、IPv6首部替换。将IPv6首部的Src IPv6的IPA替换为IPpub1,Nextheader字段修改为253。
步骤3-2、为IPv6报文增加SDNAT首部。各个字段赋值如下:
Nh=6
Type=1
Length=76
原始Src IPv6=IPA
替换后Src IPv6=IPpub1
原始Dst IPv6=IPpub2
替换后Dst IPv6=IPpub2
原始Src port=portA
替换后Src port=portX
原始Dst port=portY
替换后Dst port=portY
增加SDNAT首部后的报文见图4。
步骤4、将增加SDNAT首部后的报文转发到网络中。
步骤5、NAT设备FW-D转换报文,具体步骤如下所述:
步骤5-1、报文到达NAT设备FW-D后,FW-D检查发现报文访问的目的IP是IPpub2,从TCP首部提取的Dst Port是portY,则FW-D查找自己的转换表(表8),发现需要进行目的地址转换。
步骤5-2、根据转换表,FW-D将IPv6首部的Dst IPv6字段修改为IPB,将SDNAT首部的替换后Dst IPv6字段修改为IPB,将SDNAT首部的替换后Dst port字段修改为portB,转换完成后的报文见图5。
步骤5-3然后将转换后的报文转发到交换机D。
在步骤3和步骤5中,对IPv6的首部部分字段进行了转换,但TCP协议部分没有进行变化。然后将IPv6首部的变化和TCP协议部分需要做的改变都记录在SDNAT首部。该步骤充分利用了IPv6首部无校检和的特点,由于IPv6首部没有校检和字段,因此即使进行了部分字段的转换,但也不需要重新计算IPv6的校检和,而TCP首部是有校检和字段的,但TCP协议部分又没有发生任何变化,从而避免了NAT设备进行校检和的重新计算。
步骤6、报文到达交换机D后,D1发现目的MAC地址是MACB,并且含有SDNAT首部,则查找MAC地址转发表,发现MACB对应的端口是2,再查找端口信息表,发现端口2对应的设备是主机。那么D1需要完成如下动作:
步骤6-1、检查校检和。从SDNAT首部提取出原始Src IPv6字段和原始Src Port字段,然后结合TCP协议部分,计算校检和。如果计算出的校检和与checksum1相等,则继续进行步骤6-2;如果计算出的计算出的校检和与checksum1不相等,则将该报文丢弃。
步骤6-2、完成TCP首部的替换。用SDNAT首部的替换后的Dst Port替换TCP首部的Dst port字段,这里就是用portB替换portY,将替换后的Src port赋值给TCP首部的Srcport字段。
步骤6-3、完成校TCP检和的重新计算。根据现在的IPv6首部和TCP协议部分,重新计算TCP校检和,假设得到的新校检和为checksum2,然后赋值给TCP首部的Checksum字段。
步骤6-4、去掉SDNAT首部。从报文中移除SDNAT首部,将IPv6首部的Next header字段修改为6,也就是指向TCP首部;现在得到的报文见图6。
步骤6-5、将报文转发至主机Host B。
在步骤6中,该步骤完成的是TCP首部转化、重新计算TCP首部的校检和字段和去掉SDNAT首部的过程,在交换机中完成。虽然计算机校检和需要大量的计算,但这种计算工作是由交换机完成,进一步说是由主机所接入的交换机完成的,因此这种计算是一种分布式的计算,而非由NAT设备集中完成。
以上是本发明优选实施方式,在本发明构思前提下所做出若干其他简单替换和改动,都应当视为属于本发明的保护范畴。
Claims (8)
1.一种IPv6地址转换方法,其特征在于:该方法步骤如下所述:
步骤一、主机Host A发送IPv6报文到达交换机S;
步骤二、交换机S将其转发至NAT设备FW-S;
步骤三、NAT设备FW-S完成替换IPv6报文首部,并为IPv6报文增加SDNAT首部,完成转换;SDNAT首部包括Next header字段、类型字段、Length、原始Src IPv6、替换后Src IPv6、原始Dst IPv6、替换后Dst IPv6、原始Src Port、替换后Src Port、原始Dst Port和替换后Dst Port;
步骤四、将增加SDNAT首部的IPv6报文发转发至网络;
步骤五、NAT设备FW-D通过网络接收IPv6报文并检查,后转换,将转换后的报文转发给交换机D;
步骤六、IPv6报文到达交换机D,交换机D完成检查旧校检和,如果旧校检和合格则重新计算校检和,并去除SDNAT首部,之后将报文转发给主机Host B;如果旧校检和不合格,则丢弃报文;
步骤六包括以下步骤:
a.检查旧校检和,从SDNAT首部提取出原始Src IPv6字段和原始Src Port字段,然后结合传输层报文,计算校检和,并将计算得出的校检和与原报文中的校检和比对,如果不一致,则丢弃该报文;如果一致,则进行下一步;
b.完成传输层报文首部的替换,用SDNAT首部的替换后的Dst Port字段赋值给传输层首部的Dst port字段,将替换后的Src port赋值给传输层首部的Src port字段;
c.完成传输层报文校检和的重新计算;
d.去掉SDNAT首部,从报文中移除SDNAT首部,将IPv6首部的Next header字段修改,使其指向传输层报文首部;
e.将报文转发至主机Host B。
2.根据权利要求1所述的一种IPv6地址转换方法,其特征在于:步骤三中,将IPv6首部Src IPv6字段替换为NAT设备FW-S地址,Next header字段修改,使得Next header字段表示下一个扩展首部是SDNAT。
3.根据权利要求1所述的一种IPv6地址转换方法,其特征在于:步骤五包括以下步骤:
a.NAT设备FW-D根据转换表,检查接收到的报文;
b.NAT设备FW-D根据转换表,将IPv6首部的Dst IPv6字段修改为主机HostB地址,同时对应修改SDNAT首部的替换后Dst IPv6字段,并将SDNAT首部的Dst port字段修改,完成报文转换;
c.将转换好的报文转发至交换机D。
4.根据权利要求1所述的一种IPv6地址转换方法,其特征在于:交换机的转发过程如下:
a.提取出收到帧的目的MAC地址;
b.检查帧是否含有SDNAT首部,如果没有,则按照正常的以太网交换机方式进行转发,否则进行步骤c;
c.在MAC地址转发表中查找目的MAC地址,如果不存在,则将该帧丢弃;如果存在,则判断目的MAC对应的端口的设备是否是主机;如果不是主机,则直接把帧从对应的端口转发出去;如果是主机,则进行步骤d;
d.检查传输层旧校检和,如果旧校检和合格,则进行传输层字段替换,并重新计算校检和,之后将报文转发给目标主机;如果旧校检和不合格,则丢弃报文。
5.根据权利要求1或4所述的一种IPv6地址转换方法,其特征在于:交换机的端口连接信息由控制器告知。
6.根据权利要求1所述的一种IPv6地址转换方法,其特征在于:NAT设备具有出方向功能,实现步骤如下:
a.为出方向需要进行地址转换的IPv6报文加入SDNAT首部;
b.进行源地址转换;
c.将报文转发出去;
d.在转换表中,记录转换关系。
7.根据权利要求1所述的一种IPv6地址转换方法,其特征在于:NAT设备具有入方向功能,实现步骤如下:
a.提取首先提取出SDNAT首部的替换后Dst IPv6字段和替换后Dst Port字段,然后查找转换表,看是否有方向为“入”,且原始IP和端口字段分别与上面两个值相同的条目,如果有,则继续步骤b,如果没有则将报文丢弃;
b.进行目的地址转换;对于IPv6首部,根据转换表将Dst IPv6字段用转换后IPv6地址进行替换;
c.对于传输层首部的Dst Port字段,根据转换表确定转换后的端口;
d.修改SDNAT首部部分字段值:修改SDNAT首部替换后Dst IPv6字段和替换后Dst port字段;
e.将报文转发出去。
8.根据权利要求1所述的一种IPv6地址转换方法,其特征在于:当IPv6首部中的Nextheader字段值为253,则表示下一个扩展首部为SDNAT首部,SDNAT首部后面紧接着的是其他扩展首部,其他扩展首部后是传输层数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011006910.2A CN112165539B (zh) | 2020-09-23 | 2020-09-23 | 一种IPv6地址转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011006910.2A CN112165539B (zh) | 2020-09-23 | 2020-09-23 | 一种IPv6地址转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112165539A CN112165539A (zh) | 2021-01-01 |
CN112165539B true CN112165539B (zh) | 2022-11-04 |
Family
ID=73863413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011006910.2A Active CN112165539B (zh) | 2020-09-23 | 2020-09-23 | 一种IPv6地址转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112165539B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190088B (zh) * | 2022-07-13 | 2023-12-05 | 浙江农林大学暨阳学院 | 一种基于软件定义网络的交换机概率转发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1509021A (zh) * | 2002-12-19 | 2004-06-30 | 华为技术有限公司 | 实现网络地址转换的方法 |
CN1988508A (zh) * | 2006-12-04 | 2007-06-27 | 华为技术有限公司 | 一种分片报文传输方法及通讯系统及隧道设备 |
US8051177B1 (en) * | 2003-09-30 | 2011-11-01 | Genband Us Llc | Media proxy having interface to multiple virtual private networks |
CN109842609A (zh) * | 2017-11-27 | 2019-06-04 | 三星电子株式会社 | 用于网络地址转换的通信系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9648121B2 (en) * | 2014-05-27 | 2017-05-09 | Ravello Systems Ltd. | Source-destination network address translation (SDNAT) proxy and method thereof |
-
2020
- 2020-09-23 CN CN202011006910.2A patent/CN112165539B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1509021A (zh) * | 2002-12-19 | 2004-06-30 | 华为技术有限公司 | 实现网络地址转换的方法 |
US8051177B1 (en) * | 2003-09-30 | 2011-11-01 | Genband Us Llc | Media proxy having interface to multiple virtual private networks |
CN1988508A (zh) * | 2006-12-04 | 2007-06-27 | 华为技术有限公司 | 一种分片报文传输方法及通讯系统及隧道设备 |
CN109842609A (zh) * | 2017-11-27 | 2019-06-04 | 三星电子株式会社 | 用于网络地址转换的通信系统和方法 |
Non-Patent Citations (1)
Title |
---|
Partial-state Asymmetric NAT: Universal and asymmetric IPv6 address mapping;Shen Yan;《IEEE》;20140526;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112165539A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3494610B2 (ja) | Tcp終端機能付きipルータ装置および媒体 | |
US8184659B2 (en) | Network system for communicating between different IP versions with multiple translators | |
US6580717B1 (en) | Packet communication method and apparatus and a recording medium storing a packet communication program | |
US6006272A (en) | Method for network address translation | |
US7197035B2 (en) | Packet transfer apparatus having network address translation circuit which enables high-speed address translation during packet reception processing | |
US7577144B2 (en) | Dynamic network address translation system and method of transparent private network device | |
US7701952B2 (en) | Packet communication method and apparatus and a recording medium storing a packet communication program | |
US20070147421A1 (en) | ISATAP router for tunneling packets and method thereof | |
US20040004968A1 (en) | System and method for dynamic simultaneous connection to multiple service providers | |
US9185072B2 (en) | Stateless NAT44 | |
JP2004364141A (ja) | Ipアドレス変換装置およびパケット転送装置 | |
EP1556997A2 (en) | Determining a path through a managed network | |
US20060268863A1 (en) | Transparent address translation methods | |
US20030236913A1 (en) | Network address translation for internet control message protocol packets | |
CN112165539B (zh) | 一种IPv6地址转换方法 | |
KR100433621B1 (ko) | 사설 인터넷의 단대단 서비스를 위한 다중 계층 인터넷프로토콜 및 상기 다중 계층 인터넷 프로토콜 패킷의송/수신 방법 | |
JP5333095B2 (ja) | アドレス変換・プロトコル変換システム、並びに、トランスレータ装置及びトランスレータプログラム | |
KR100716997B1 (ko) | 고객 전자 장치에 대한 이더넷과 1394a 로컬 링크사이에서 번역 브릿지 방법 및 장치 | |
US20040098512A1 (en) | NAPT gateway system with method capable of extending the number of connections | |
US11902158B2 (en) | System and method for forwarding packets in a hierarchical network architecture using variable length addresses | |
JP2000013439A (ja) | マルチリンク型ルーティング方法およびマルチリンク型ルータ | |
JP2000270004A (ja) | ルータ | |
KR20010018115A (ko) | 라우터에서 사설망과 글로벌망 간 접속 방법 | |
KR20010073827A (ko) | 인터넷 엣지 라우터에서의 인터넷 프로토콜 주소확장 방법 | |
KR20030026740A (ko) | 매체 접근 제어를 이용한 망 주소 변환 처리방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |