内容简介
《新一代IPv6过渡技术—IPv6单栈和IPv4即服务》以互联网设计原理为指南,详细分析互联网协议第四版(IPv4)和互联网协议第六版(IPv6)数据报头结构和寻址原理,系统介绍新一代过渡技术中的协议翻译和地址映射的技术思路和适用于不同场景的IPv6过渡技术实现方案。
《新一代IPv6过渡技术—IPv6单栈和IPv4即服务》是作者在中国教育和科研计算机网进行IPv6过渡技术研究时对产生的重要研究成果的系统化总结。这些成果已成为国际互联网标准化组织互联网工程任务组(IETF)的RFC标准。
目录
目录
序言
前言
第1章 引言 1
1.1 **代互联网 1
1.1.1 ARPANET 1
1.1.2 NCP 3
1.1.3 TCP/IP 4
1.1.4 互联网的**次过渡:NCP到TCP/IP 6
1.2 下一代互联网 10
1.2.1 IPv6 10
1.2.2 互联网的第二次过渡:IPv4到IPv6 13
1.3 未来互联网 13
1.3.1 未来互联网协议 13
1.3.2 互联网的第三次过渡:过渡到未来网络协议 14
1.4 本章小结 14
参考文献 14
第2章 互联网设计原理 17
2.1 互联网设计原理的概念 17
2.2 IPv4的设计原理 18
2.2.1 基本设计原则 19
2.2.2 域名和地址问题 19
2.2.3 端对端地址透明性 20
2.3 IPv6的设计原理 21
2.3.1 基本设计原则 21
2.3.2 IPv6必须支持的功能 22
2.3.3 IPv6不需要考虑支持的功能 24
2.3.4 IPv6路由原则 25
2.4 IPv6设计原则的实践分析 26
2.4.1 IPv4和IPv6的兼容性问题 26
2.4.2 无状态和有状态技术的选择 29
2.4.3 其他问题 30
2.5 本章小结 30
参考文献 30
第3章 IPv6过渡技术演进 32
3.1 传统IPv6过渡技术和标准 32
3.1.1 双栈技术 33
3.1.2 封装(隧道)技术 34
3.1.3 翻译技术 39
3.2 传统IPv6过渡技术的困境和反思 41
3.2.1 传统IPv6过渡技术的困境 41
3.2.2 IETF关于新一代IPv6过渡技术的考虑 42
3.3 新一代IPv6过渡技术和标准 43
3.3.1 新一代IPv6过渡技术发展历程 43
3.3.2 新一代IPv6过渡技术分类 45
3.3.3 新一代IPv6过渡技术标准 47
3.4 本章小结 49
参考文献 49
第4章 新一代IPv6过渡场景 52
4.1 翻译技术的基本应用场景 52
4.1.1 场景1:IPv6网络(客户机)发起对IPv4互联网(服务器)的访问 53
4.1.2 场景2:IPv4互联网(客户机)发起对IPv6网络(服务器)的访问 53
4.1.3 场景3:IPv6互联网(客户机)发起对IPv4网络(服务器)的访问 54
4.1.4 场景4:IPv4网络(客户机)发起对IPv6互联网(服务器)的访问 54
4.1.5 场景5:IPv6网络(客户机)发起对IPv4网络(服务器)的访问 55
4.1.6 场景6:IPv4网络(客户机)发起对IPv6网络(服务器)的访问 55
4.1.7 场景7:IPv6互联网(客户机)发起对IPv4互联网(服务器)的访问 56
4.1.8 场景8:IPv4互联网(客户机)发起对IPv6互联网(服务器)的访问 56
4.2 翻译技术的扩展应用场景 56
4.2.1 场景1的1:1双重翻译扩展 56
4.2.2 场景1的1:N双重翻译扩展 57
4.2.3 场景1的1:N封装模式扩展 58
4.2.4 场景2的1:1双重翻译扩展 58
4.2.5 场景2的1:N双重翻译扩展 59
4.2.6 场景2的1:N封装模式扩展 59
4.2.7 场景5的双重翻译1:1扩展 60
4.2.8 场景6的双重翻译1:1扩展 60
4.3 翻译技术的框架和组件 61
4.3.1 翻译器 61
4.3.2 域名系统 63
4.3.3 参数发现和配置 63
4.3.4 主机系统 63
4.4 本章小结 63
参考文献 64
第5章 协议处理技术 65
5.1 IPv4 65
5.1.1 IPv4报头格式 66
5.1.2 分片处理 68
5.1.3 IPv4数据报文案例 69
5.2 ICMP 70
5.2.1 IPv4控制消息格式 70
5.2.2 ICMP消息定义 72
5.3 IPv6 79
5.3.1 IPv6报头格式 80
5.3.2 IPv6扩展报头 81
5.3.3 数据报文大小问题 96
5.3.4 流标签 96
5.3.5 流量类型 96
5.3.6 高层协议 97
5.3.7 安全考虑因素 99
5.4 ICMPv6 99
5.4.1 IPv6控制消息格式 100
5.4.2 ICMPv6错误消息 103
5.4.3 ICMPv6信息性消息 108
5.4.4 安全考虑 110
5.5 UDP 111
5.6 TCP 112
5.6.1 TCP报头格式 112
5.6.2 TCP状态 113
5.7 协议翻译 114
5.7.1 IPv4/IPv6翻译模型 114
5.7.2 从IPv4转换为IPv6 116
5.7.3 从IPv6转换到IPv4 123
5.7.4 IP地址映射要点 130
5.7.5 安全考虑因素 130
5.8 ICMP源地址处理 131
5.8.1 ICMP扩展 131
5.8.2 无状态地址映射算法 133
5.9 协议封装 133
5.9.1 IPv6隧道 133
5.9.2 隧道IPv6报头 137
5.9.3 隧道数据报文分片处理 138
5.9.4 IPv6隧道错误报告和处理 138
5.9.5 安全考虑 140
5.10 本章小结 140
参考文献 140
第6章 地址映射技术 144
6.1 IPv4地址结构 144
6.1.1 无分类IPv4地址结构 145
6.1.2 特殊IPv4地址 149
6.1.3 私有地址空间和共享地址空间 149
6.2 IPv6地址结构 152
试读
第1章 引言
几十年来,伴随着互联网的快速发展,互联网协议第四版(internet protocol version 4,IPv4)取得了巨大的成功。然而,网络规模的急剧增长也突显出IPv4地址空间不足、路由可扩展性差等一系列严重问题。2011年2月,互联网编号分配机构(Internet Assigned Numbers Authority,IANA)将其*后5个可用的A类地址空间(网络前缀长度为8比特的IPv4地址空间,可记为/8)分配给各区域互联网注册机构(Regional Internet Registry,RIR),至此全球IPv4地址已经全部分配完,而各地区互联网注册机构的IPv4 地址也在加速耗尽[1]。
虽然全球IPv4地址已经被分配完毕,但是全球还有超过30亿人口尚未接入互联网,而新兴的云计算和物联网应用也在蓬勃发展。作为越来越稀缺的资源,IPv4 地址已经变得越来越昂贵。
作为下一代互联网网络层的核心协议,互联网协议第六版(internet protocol version 6,IPv6)于1995年12月被互联网工程任务组(The Internet Engineering Task Force,IETF)公布(RFC1883[2])。与IPv4相比,IPv6有2128个地址,能够满足物联网庞大的地址需求,足够为现在接入互联网和未来接入互联网的每台主机分配一个*立的IPv6地址。这意味着每台主机均可以透明地与其他任何主机通信,同时可以被溯源,保证了网络的安全性。此外,IPv6优化了分层编址和路由机制,具有更好的服务质量和安全性。因此,为了继续维持互联网的高速增长,向IPv6 过渡是一个必须且紧迫的任务[3]。
实际上,目前从IPv4向IPv6过渡是互联网历史上的第二次过渡。互联网的**次过渡发生在1983年1月1日。那是一个“标志日”(flag day)式的硬切换,即在特定的日期停止原先使用的网络控制程序(network control program,NCP),启动新的传输控制协议/互联网协议(transmission control protocol/internet protocol,TCP/IP)[4]。互联网的**次过渡非常平稳,*终使IPv4互联网成为现今信息社会*重要的基础设施。为了理解为什么**次互联网的过渡顺利而平稳,但是从IPv4到IPv6的第二次互联网过渡已经多年还没有完成,需要回顾一下互联网的历史[4-6]。
1.1 **代互联网
1.1.1 ARPANET
1961年,美国麻省理工学院的伦纳德 克兰罗克(Leonard Kleinrock)发表了**篇关于分组交换(packet switching)的论文。1964年美国兰德公司的Baran提出了基于信息块交换(message block switching)技术的抗毁网络,即使在核攻击之后也能提供对核导弹的发射控制,以确保二次打击能力。Baran的文章列出了三种网络拓扑结构,如图1.1所示。其结论是,只有分布式的网络,才具有*强的抗毁性[7]。
图1.1 三种网络拓扑结构
1967年,Roberts加入美国国防部高级研究计划局(Defense Advanced Research Projects Agency,DARPA),发表了高级研究计划署网络(Advanced Research Projects Agency Network,ARPANET)计划书[8]。ARPANET团队设计了NCP。1969年,ARPANET的四个节点(加州大学洛杉矶分校、斯坦福研究所、加州大学圣巴巴拉分校和犹他大学)联网成功,这标志着全世界**个分组交换网络的正式运行[4],如图 1.2所示。
图1.2 1969年的ARPANET拓扑
1972年,负责ARPANET的罗伯特 卡恩(Robert E. Kahn)在国际计算机通信会议(International Computer Communications Conference,ICCC)上组织了一次非常成功的ARPANET演示,向公众*次公开展示了这种新的网络技术。之后ARPANET如火如荼地发展起来了。
在总结ARPANET的经验时,BBN公司的克雷格 帕特里奇(Craig Partridge)提出了在网络体系结构设计中的六个原则[6]。
(1)坚持自己的理想。
(2)考虑运算和数据流,而不是应用。
(3)接受自己不能回答一些问题的现实。
(4)不要囤积问题。
(5)不要担心后向兼容性。
(6)不要被实现过程中的具体问题所困扰。
麻省理工学院的Clark在1988年将ARPANET的设计哲学[9]总结为以下几点。
(1)能够有效地多路复用现有通信技术。
(2)在网络或网关失效的情况下,仍然能够通信。
(3)互联网必须支持多种类型的网络通信服务。
(4)互联网体系结构必须能够使用各种通信网络。
(5)互联网体系结构必须允许对其资源的分布式管理。
(6)互联网体系结构必须高效。
(7)互联网体系结构必须允许主机容易联网。
(8)互联网体系结构使用的资源必须可问责。
Clark强调这些设计哲学的排序也非常重要,当颠倒了这些优先级时,就可能设计出完全不同的网络体系结构。
有趣的是,克雷格 帕特里奇的原则明确包含“不要担心后向兼容性”。Clark的原则也没有提到与传统通信网(电话网等)的兼容性问题。事实上,ARPANET是世界上**个大规模的分组交换网,与基于电路交换的电话网有革命性的不同。可以