IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【关于NAT64的实现】 -> 正文阅读

[网络协议]【关于NAT64的实现】

NAT64实现过程

NAT64是什么


地址转换:地址转换技术是将一种协议版本的数据包报头更改为另一种协议版本的数据包报头,因而解决了IPv4设备与IPv6设备之间的互操作问题。
简单的NAT64设置可能是一个设备的两个接口分别连接到IPv4网络与IPv6网络的网关。
IPv6网络的流量经由网关路由,其对两个网络之间传送的分组进行所有必要的翻译。
但是,这种翻译并不是对称的,因为IPv6地址空间比IPv4地址空间大得多,因此就不可能进行一对一的地址映射。如下两种场景:

  • 场景1:c–ipv4–>router–ipv6–>s(ipv4转ipv6,总能在v6里找到ip与v4映射)
  • 场景2:c–ipv6–>router–ipv4–>s(ipv6转ipv4,会面临v4的ip池不够用问题)

总的来说就是当需要的进行NAT的ipv6数量达到了了ipv4支持最大数,就无法建立更多的地址映射。

NAT64并不是?个很好的解决?案,?前确定的NAT64局限性如下:
1、在没有静态地址映射表项的情况下,不允许IPv4设备向IPv6设备发起会话请求(dst_ip无法确定);
2、软件对NAT64的?持程度有限;
3、与其他所有转换器?样,也不?持IP多播;
4、很多应?都不?持。

IPv6、IPV4各自特点

IPV6地址

名称特点数量
未指明地址全0,::/1281个
环回地址最后一位为1其余为0,::1/1281个
多播地址前8位为1,FF00::/82^120个
本地链路单播地址前10位为1111111010,FE80::/102^108个
全球单播地址除上所有地址2128-2-2120-2^108个

IPv4地址

名称特点数量
A类首位为0,网络号8位,主机号24位(27-2)*(224-2)个
B类前2位为10,网络号16位,主机号16位(214-1)*(216-2)个
C类前3位为110,网络号24位,主机号8位(221-1)*(28-2)个
D类前4位为1110,多播地址2^28个
E类前4位为1111,保留为今后使用2^28个

**注:**A类网络号-2的原因是:0.0.0.0是保留地址,意思是“本网络”,其次127...*是环回地址;
B类网络号-1原因是:128.0.0.0用来代表B类网络不指派;
C类网络号-1原因是:192.0.0.0用来代表C类网络不指派;
所有主机号-2原因:主机号全为“0”,不论哪一类网络,主机号全为“0”表示指向本网,常用在路由表中;主机号全为“1”,主机号全为“1”表示广播地址,向特定的所在网上的所有主机发送数据包。

两者报文帧的不同点

与IPv4相比,IPv6对首部中的某些字段进行了如下更改:

  • 取消了首部长度字段,因为的它的首部长度是固定的40B。
  • 取消了服务类型字段,因为优先级和流标号字段实现了服务类型字段的功能。
  • 取消了总长度字段,改用有效载荷长度字段。
  • 取消了标识、标志和片偏移字段,因为这些功能已包含在分片扩展首部中。
  • 把TTL字段改称位跳数限制字段,但作用是一样的。
  • 取消了协议字段,改用下一个首部字段,在没有扩展首部的时候作用和协议字段一样。
  • 取消了检验和字段。
  • 取消了选项字段,而用扩展首部来实现选项的功能。
    在这里插入图片描述

**注:**取消的字段用灰色表示,相同作用的字段用相同颜色表示。

IP头如何转换

原理:IP头有两种方向的转换,从IPv4转为IPv6及从IPv6转为IPv4,这两种转换参考自RFC6145文档

从IPv4转为IPv6

版本:6
通信量类:复制IPv4的服务类型
流标号:全0
有效载荷长度:IPv4头的IP段总长-IPv4首部长度-IPv4选项长度
下一个首部:对于ICMPV4(1)需要转为ICMPV6(58),其余协议直接拷贝IPV4的协议
跳数限制:拷贝IPv4头的TTL
源/目的地址:转换后的源/目的地址
有效载荷:(待讨论)

ICMPv4转为ICMPv6

ICMP消息列表
查询消息:

类型代码处理动作
8/08改为128 0改为129
9-10 13-14drop
未识别类型drop

错误消息:

类型代码处理动作
4-6drop
30-1把代码改为0
32类型改为4,代码改为1
33代码改为4
34类型改为2,代码改为0
35-8,11-12代码改为0
39-10,13,15代码改为1
314drop
3< 0 或 > 15drop
11类型改为3,代码不变,检验和更新
120/2类型改为4,代码改为0
121drop
12< 0 或 > 2drop
未识别类型drop

从IPv6转为IPv4

协议版本:4
首部长度:5(没有选项)
服务类型:复制IPv6的通信量类
IP段总长:有效载荷长度+IPv4首部长度
标识:全0
标记:全0
片偏移:全0
生存时间:拷贝IPv6的跳数限制
协议:对于ICMPV6(58)需要转为ICMPV4(1),其余协议直接拷贝IPV6的下一个首部
校验和:创建完IPv4头后计算
源/目的地址:转换后的源/目的地址

ICMPv6转为ICMPv4

查询消息:

类型代码处理动作
128/129128改为0,129改为8
130-137drop
未知类型drop

错误消息:

类型代码处理动作
10,2,3代码改为1
11代码改为10
14代码改为3
1< 0 或 > 4drop
2类型改为3代码改为4
3类型改为11,代码不变
40类型改为12,代码改为0
41类型改为3,代码改为2
42drop
4其他代码drop
未知类型drop

存在的问题:
IPv4转IPv6后头部长度会变长,可能会大于MTU导致丢包。并且IPv6路由器不能进行分片,只能由发送者进行分片。
这种情况下就需要用ICMPv4发送“我需要分片”的错误信息到发送者,这里的实现比较复杂,暂时先不支持,作为缺陷处理。
报文分片
报文超过MTU

校验和更新

当转换的IP地址算法不是检验和中性的,则需要更新传输层头部检验和,至少支持TCP、UDP(检验和不为全0)、ICMP。
检验和问题
此外,IPv6转为IPv4时检验和需更新
在这里插入图片描述
在这里插入图片描述

IP地址转换

原理:IP地址有两种方向的转换,从IPv4转为IPv6及从IPv6转为IPv4,这两种转换参考自RFC6052文档
地址转换示意图:
地址转换示意图
地址转换方法:
地址转换方法
网络特定前缀:
网络特定前缀
众所周知的前缀:
众所周知的前缀
以上方法是一种无状态转换,支持IPv6、IPv4任一端发起访问,但是对转换器的IPv6端的IP前缀有要求,必须符合转换起预定的前缀要求。若想做到无状态转换则需准备一个符合前缀的IPv6转换池,V6端每来一个IPv6都与转换池里的IPv6地址进行一一绑定,绑定过程是随机一个挑选池里的IP,直达转换池用完,就不能支持更多的连接。
关于无状态转换与有状态转换,可戳这里了解。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:45:47  更:2021-11-20 18:45:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:31:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码