通信工程师网络地址转换/协议转换技术

互联网技术 责任编辑:lihuan_11 2013-11-21

摘要:通信工程师网络地址转换/协议转换技术:隧道技术一般用于IPv6节点间的通信,而对于IPv4和IPv6节点间的通信,采用直接对IPv4和IPv6报文进行语法和语义翻译的网络地址转换/协议转换(NAT/PT)技术。

4.8.3.3 网络地址转换/协议转换技术
隧道技术一般用于IPv6节点间的通信,而对于IPv4和IPv6节点间的通信,采用直接对IPv4和IPv6报文进行语法和语义翻译的网络地址转换/协议转换(NAT/PT)技术。基本工作原理如图4-47所示,当IPv6子网中有IPv6分组发给网关时,网关将其转化成IPv4分组发向IPv4子网:反过来当IPv4子网中有数据分组要发送时,网关就将其转化成IPv6分组发向IPv6子网。转化网关要维护一个IPv4和IPv6地址的映像表。

NAT/PT(NetworkAddressTranslation/ProtocolTranslation)技术是在SIIT(State-lessIP/ICMPTranslator)技术上发展起来的。SIIT是一种网络层的翻译技术,NAT/PT技术主要是按照协议规范规定的报头格式对IPv4和IPv6的协议进行转化,从而连接IPv4和IPv6两个部分。协议转化分为两个部分,一个是IPv4和IPv6地址的转化,另外一个是IPv4和IPv6报头的转化。
  (1)地址转换
IPv4的地址是32位,而IPv6的地址为128位,两个地址格式不同的地址之间需要建立映像关系。有以下几种建立方式:封装IPv4地址为ADDR4类型,封装IPv6地址为AD>DR6类型,封装与IPv4兼容IPv6地址为ADDR64类型。
①DNS解析地址
为了扩展DNS使其支持IPv6,IETF先后定义了两种新的资源记录类型:AAAA和A6。为了实现IPv4和IPv6的转化可以扩充DNS服务器,为IPv4或IPv6的网络提供DNS服务器作“IP转换欺骗”。IPv4主机(ADDR4)向DNS请求査询的时候,如果DNS服务器发现目的主机只有IPv6地址(ADDR6),将会返回给该IPv4主机一个IPv4的地址(ADDR64)作为査询结果。DNS服务器要和NAT-PT转换网关实时的通信,保持ADDR4、ADDR6和ADDR64这3个地址之间对应关系的更新。这样NAT-PT网关就可以根据这些信息进行地址/协议转换。这种转换同样适用于当IPv6主机查询DNS获得IPv4地址的时候。
  ②IPv4和IPv6地址映像表
地址映像表将IPv4地址和IPv6地址分别看作内部地址和全局地址,或者正好相反。内部的IPv4主机和外部的IPv6主机通信时,将IPv4地址(相当于内部地址)变换成IPv6地址(相当于全局地址),服务器维护一个IPv4与IPv6地址的映像表。反之,当内部IPv6主机和外部IPv4主机进行通倍时,IPv6转换为IPv4地址。执行NAT/PT的主机上配置了一个地址映像表。这个映像表形如:
10.10.9.200beef:feed::1234:5678
3ffe:lcff::bead:ed:cafe:dffd100.10.9.188
  ③利用IPv4兼容IPv6地址
类似于::10.10.9.188这样的IPv6地址称为与IPv4兼容的IPv6地址。在v6结点要访问v4结点的时候,可以使用这种地址作为IPv6结点去访问v4结点时的目的地址。NAT/PT网关处理时只要把低32位取出来作为v4包的目的地址即可。对于IPv6地址来说,也可以使用这种与v4兼容的v6地址,但这就要求每个IPv6结点有对应的一个v4地址。
  (2)报头转换
IPv4报头和IPv6报头之间有一些字段可以直接转化,而一些字段是对方特有的,需要特殊处理。
①IPv4ToIPv6
在IPv4没有分段的情况下,也就是IPv4.Df=0,这个时候偏移量也为0。IPv6的报头转换如下:
IPv6.Version=6:将版本变为6
IPv6.TrafficClass=IPv4.TOS:直接拷贝,或者按照语义予以翻译IPv6.FlowLabel=0:可以全部置为0
IPv6.PayloadLength=IPv4.length-length(IPv4-header):新的IPv6中的负载长度定义为净荷的长度,也就是总长度减去IPv4报头和选项的长度IPv6.Nextheader=IPv4.Protocol:协议字段直接拷贝过来
IPv6.HopLimit=IPv4.TTL-l:逐跳限制和IPv4的生存时间含义相似,如果是跳数为0就要发出ICMP报文给源目的地
IPv6.SourceAddress=ADDR64(IPv4.SourceAddress):IPv4地址转换得到的ADDR64地址
IPv6.DestinationAddress=ADDR64(IPv4.DestinationAddress):准备发送的目的地址。
IPv6ToIPv4
在IPv6没有分段扩展报头情况下,IPv6转化到IPv4报头的算法如下:
IPv4.Version=4:将版本变为4
IPv4.length=5:没有选项扩展报头的情况
IPv4.TOS=IPv6.TrafficClass:直接拷贝,或者按照语义予以翻译
IPv4.TotalLength=IPv6.Payloadlength+IPv4.length:总长度设S
IPv4.Identification=zero
IPv4.Flags=0
IPv4.FragmentOffset=0
IPv4.Nextheader=IPv6.Protocol:协议字段直接拷贝过来
IPv4.TTL=IPv6.HopLimit-1:IPv4的生存时间和IPv6逐跳限制和含义相似,如果是0就要发出ICMP报文给源目的地
IPv4.HeaderChecksum=sum():需要对IPv4头做一个校验和IPv4.Protocol=IPv6.Nextheader:协议字段直接拷贝过来
IPv4.SourceAddress=ADDR64(IPv6.SourceAddress):IPv6地址转换得到的AD-DR64地址
IPv4.DestinationAddress=ADDR64(IPv6.DestinationAddress):准备发送的目的地址。

返回目录通信工程师互联网技术知识点IPv协议汇总

编辑推荐

中级通信专业实务互联网技术教程汇总

中级通信专业实务传输与接入教程汇总

通信专业实务考试设备与环境教程汇总

通信专业实务考试交换技术教程汇总

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

通信工程师备考资料免费领取

去领取

距离2025 通信工程师考试

还有
  • 1
  • 3
  • 2
专注在线职业教育24年

项目管理

信息系统项目管理师

厂商认证

信息系统项目管理师

信息系统项目管理师

!
咨询在线老师!