IPv6与IPv4的基础知识学习分享
前言
2019 年 11 月 26 日,负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)通过电子邮件宣布,其最后的 IPv4 地址空间储备池在 11 月 25 日 UTC + 1 15:35 完全耗尽。国务院办公厅《推进IPv6规模部署行动计划》要求2020年底市地级以上政府外网网站、国内用户量前100网站、5G网络及业务完成IPv6支持。随着IPv6升级改造,其实我们已经在不知不觉中逐步进入到全民IPv6的时代。
本文主要记录IPv6与IPv4的区别,从IPv4过渡到IPv6的技术演进过程。
更新历史
2022年11月15日 - 初稿
阅读原文 - https://wsgzao.github.io/post/ipv6/
IP/IPv4/IPv6 基础知识
关于IPv6相关的新闻进展就不再赘述了,各位可以直接查看最新战况
https://www.ithome.com/search/ipv6.html
什么是 IP
互联网协议 IP(Internet Protocol)主要定义了在相互连接的网络中如何传递数据。网络中的每一个设备(如计算机),要想和其它设备相互通信传递数据,就都需要一个像门牌号码一样的标识 —— 这个标识也就是我们熟悉的 IP 地址。
IPv4
目前被广泛使用的 IP 协议是 IPv4(IP Version 4),网络设备使用的地址即为 IPv4 地址。
IPv4 地址长度为 32 bit,因此能提供的地址最多为 2 的 32 次方(约 43 亿)个地址。但是除去一些预留地址以及用于广播、测试、私有网络的专用地址外,实际可用地址是不足 43 亿的。
互联网发展了这么多年,IPv4 地址一直被分配使用。2019 年 11 月 25 日,负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,全球所有 43 亿个 IPv4 地址已全部分配完毕。
IPv6
不论是国家、行业还是个人,对 IPv6(IP Version 6)都有着迫切的需求并支持推广。
世界上主要的国家和经济体都在力争尽早完成 IPv6 网络的建设,争取网络的率先应用和技术领先(如开篇提到的行动计划和专项行动)。
市场上大量移动终端、固定设备、应用网站及 App 等均已支持 IPv4 和 IPv6 两种协议。
智能家居的普及,家庭和个人拥有了众多智能设备,对这些设备的端到端管理,需要 IPv6 技术的支持。
为什么要用IPv6
核心理由:IP地址分配不合理、资源枯竭
互联网技术来自于美国,互联网的发展、管理由美国人掌控了,据说美国一所大学拥有的IP地址数量比我们中国还要多!后来为了解决分配不合理、资源面临枯竭问题,也出现了划分子网、无类编址、NAT技术来应对,但终究解决不了实质问题。
而IPv6拥有几乎无限的地址空间:地址容量极大扩展,由原来的32位扩充到128位, 这是什么概念呢?
这相当于:
IPv4有(232)= 4,294,967,296个地址,约等于43亿
IPv6有(2128 = 296x232 )= 340,282,366,920,938,463,463,374,607,431,768,211,456个地址(340万亿万亿万亿个地址),相当于地球表面每平方米可以分配到67万亿个地址,彻底解决了IPv4地址不足的问题。
IPv6其他优点自行了解吧
- 更庞大的网络地址数量
IPv6地址长度为128比特,地址空间增大了2的96次倍。IPv6能够为现在和将来的互联网应用提供更多的网络地址,它能够在现在40亿个IPv4的网络地址的基础上增加大体上340万亿万亿万亿的IPv6网络地址。
- 更小的路由表
因为IPv6在地址分配时遵循聚类原则,相同区域默认分配相同前缀IP地址。当路由在查找和传递过程中,可以更高效地选择最优路由进行传递,大大节省传递时的开销。
- IPv6的分段处理
在IPv4的网络中,数据包在传输过程中,路由器会根据其设置的MTU值(最大传输单元,默认为1500字节)来对数据包进行分片传输。
而在IPv6的网络中,主机在发出数据包时,就已经对数据包进行分片处理(默认最小MTU为1280字节),这样在数据传输的过程中就不需要路由器来担任分片工作,大大提高了数据传输的效率。
- 即插即用
在IPv4的网络中,如果用户不想手动配置IP地址,就得依赖DHCP服务来进行地址自动分配。在IPv6中同样可以通过DHCPv6进行有状态地址分配,但是也可以不依赖DHCPv6来进行无状态地址分配(SLAAC)。
IPv6可以通过NDP进行路由请求和通告,获取IPv6地址的网络前缀,而 IPv6地址的后64位是由网卡的物理地址(MAC)加上转换算法得来,本身就是全球唯一的地址,所以也就很难遇到IP地址冲突现象。
- 传输安全性
在IPv6网络中,除了对以往IPv4的报文精简改进,最大的区别就是强制使用IPSec安全加密传输,让用户不再担心数据抓包导致信息泄密,也避免了大多数据数欺骗攻击。
IPv6 的发展现状和过渡技术
对比 IPv4,IPv6 明显优秀得多。但是爱思考的朋友一定会产生这样的疑问 —— 既然 IPv6 这么好,从协议提出到现在也发展了这么多年,为什么一直没有被大规模的应用呢?
这是因为技术的更新换代从来都不是那么容易的事。一方面因为 NAT(Network Address Translation)技术的应用,延缓了 IPv4 地址枯竭的速度。NAT 通过地址转换可以使多个设备共享一个 IP 地址来访问互联网,节省了部分地址资源。
另一方面网络升级到 IPv6 的成本巨大。从 IPv4 到 IPv6 的升级,不仅仅是更改下地址那么简单,而是涉及到网络的方方面面。从个人终端到运营商网络,从各种应用软件到网站服务,都需要全面改造升级。
正因如此,从 IPv4 到 IPv6 的升级不是一次性完成的,而是需要逐步、分层次地推进。在过渡期间,为了保证 IPv4 与 IPv6 能够共存、互通,出现了一些过渡技术。
双栈技术(Dual Stack)
当同时存在 IPv4 和 IPv6 网络时,通过具有双栈功能的设备,结合隧道和转换技术,实现 IPv4 网络和 IPv6 网络的互通。
代表技术 DS-Lite。
其中大多数应用服务器采用的为双栈主机的解决方案,严格意义上它并不是解决IPv4与IPv6互通的问题,而是适配两种网络模式来为不同网络下的客户端提供服务。
当IPv4网络下的客户端发起请求时,服务器及链路会在IPv4网络下进行响应。同理,当发起客户端处于IPv6网络时,服务器会在IPv6网络下进行响应。反之,也可以在客户终端上配置双协议栈,来分别访问不同网络协议下的服务器。
协议转换技术(NAT)
当 IPv4 网络节点或 IPv6 网络节点要和对方通信时,需要借助协议转换技术将 IPv4 和 IPv6 的报文进行转换后才可互通。
代表技术 NAT64。
NAT64的工作原理就是搭建一台翻译网关位于IPv4与IPv6网络之间,将通过网关的IPv6与IPv4的数据包进行翻译传输。NAT64一般只能单方向的将发往IPv4网络的IPv6报文进行翻译,而不能主动翻译反方向的IPv4发往IPv6的报文,需要进行静态条目绑定才能真正实现IPv4访问IPv6网络,在技术实现上成本较高。
隧道技术(Tunnel)
在 IPv4 向 IPv6 过渡的初期,IPv4 网络已经大量部署,而 IPv6 网络只是散落在各地的“孤岛”,隧道技术使 IPv6 报文可以在 IPv4 网络中传输,实现 IPv6 网络间的孤岛互联。
代表技术:6PE、6VPE、GRE、6to4 等。
隧道技术是指将IPv6的数据包封装在IPv4的数据包里进行发送,它好处就是不需要对现有的IPv4网络进行改造,就可以直接利用隧道来传输IPv6的数据包。
隧道技术主要是为了向IPv6网络过渡过程中减少搭建设备的成本,但是它依然无法解决纯IPv4主机与IPv6主机的互通问题。
IPv6地址长什么样
IPv6地址格式
IPv6地址总长度为128比特,分为8组,每组为4个十六进制数的形式,每组十六进制数间用冒号分隔。
例如:FC00:0000:130F:0000:0000:09C0:876A:130B
IPv6地址如何缩写
每组中的前导“0”都可以省略,所以上述地址可写为:FC00:0:130F:0:0:9C0:876A:130B。
地址中包含的连续两个或多个均为0的组,可以用双冒号“::”来代替
所以上述地址又可以进一步简写为:FC00:0:130F::9C0:876A:130B。
需要注意的是,在一个IPv6地址中只能使用一次双冒号“::”
IPv6地址的掩码怎么写
IPv6的掩码使用“前缀长度”来表示,如:
FC00:0:130F::9C0:876A:130B/64
代表这个地址的前缀长度是64,也就是掩码长度为64位
特殊地址
回环地址
0:0:0:0:0:0:0:1 或::1,等同于 IPv4 的 127.0.0.1
过渡地址:内嵌 IPv4 地址的 IPv6 地址
就是在 IPv6 的某一些十六进制段内嵌这 IPv4 的地址,例如 IPv6 地址中 64:ff9b::10.10.10.10,此 IPv6 地址最后 4 个字节内嵌一个 IPv4 的地址,这类地址主要用于 IPv6/IPv4 的过渡技术中。
公有云Seurity Group IPv6出入规则
[::]/0
IPv6 的域名解析
由于 IPv6 的地址扩展为 128 位,比 IPv4 的更难书写和记忆,因此 IPv6 下的 DNS 变得尤为重要。IPv6 的的 DNS 资源记录类型为 AAAA(又称作 4A),用于解析指向 IPv6 地址的完全有效域名。下面是一个示例:
Hostipv6.example.wechat.com IN AAAA 2001:db8:1::1
IPv6 下的域名解析可以认为是 IPv4 的扩展,详细可以查看 RFC3596。
这里值得注意的是,在浏览器中使用 IPv6 的地址访问 web 资源,IPv6 的地址必须要使用中括号“[]”包起来。
Linux 内核 IPv6 架构简析
Linux 内核中,IPv6 协议栈与 IPv4 协议栈并行关系。IPv6 和 IPv4 完全是两套不一样的代码实现。IPv6 完整的协议栈逻辑模块包括:
1、网络层 IPv6,核心逻辑:IPv6 路由子系统
2、传输层 TCP/UDP 实现:TCPv6、UDPv6
3、控制报文协议 ICMPv6,这里值得一提的是 ICMPv6 在 IPv6 协议中的地位十分重要。
ICMPv6 不仅提供了与 ICMPv4 相同的服务诊断功能,例如报告数据包的错误和提供简单的 echo 服务,ICMPv6 是 IPv6 中邻居发现协议的重要组成部分,用于管理链路上的点到点的通信。
4、邻居子系统的实现:邻居发现协议 NDP(对应于 IPv4 里面的 ARP 协议)
5、其他高级实现(IPv6 NAT、IPv6 隧道、iPv6 IPSec 等)
由于我们平时的开发工作在应用层,以上 1-4 是将会接触得最多。
IPv6相关网络工具
http://ip6.me/
http://ip6.me/docs/
1 | # dig dns解析,查看一个域名是否具有AAAA记录 |
IPv6 的未来
尽管面临着许多困难,但 IPv6 技术强大完善的功能以及 5G 时代对网络性能的极大需求,都在推动着 IPv4 网络稳步地向 IPv6 网络演进。
随着 5G 网络的逐步建设,我们国家在物联网、大数据、云计算、人工智能等新兴领域都迎来了快速的发展,那么既能够提供海量地址资源又能解决 IPv4 网络缺陷的高速、可靠、安全的 IPv6 网络无疑是最佳选择。
近年,基于 IPv6 的下一代互联网技术创新体系“IPv6+”也引起了广泛关注。“IPv6+”是 IPv6 的升级,是面向 5G 和云时代的 IP 网络创新体系。
“IPv6+”不仅包括了以 SRv6、网络切片、随流检测、BIERv6 和 APN6 等内容为代表的协议创新,以网络分析、自动调优等网络智能化为代表的技术创新,还包括以 5G 承载和云网融合为重点应用场景的业务创新。
在北京冬奥会期间,IPv6 + 技术也是首次在大型赛事活动上进行了应用。
属于 IPv6 以及“IPv6+”的时代已经到来,你准备好了吗?!
参考文章
“IPv6+”的时代都来了,你还不知道什么是IPv6吗?
https://mp.weixin.qq.com/s/0g_JF1B96XTJV5BnP7QseA
全球 IPv4 地址耗尽,IPv6 来了!
https://mp.weixin.qq.com/s/wMdDiu0o4JfUiqD8hAB75w