IPv4和IPv6何去何从
一、缘起
某一天,在公司技术群内运维大佬们发了这么一条消息。
这条消息瞬间勾起了我的好奇心。什么是IPv6?为什么要切IPv6?于是在上班时多去了几次去卫生间之后,对IPv6有了一些初步认识,然后就诞生了本文。
本文主要对什么是IPv6?为什么要切IPv6?两个问题做一个简要阐述。至于怎么切IPv6?就不在运维大佬面前弄斧了(我是真的没看懂-.-)。
先用一张图表示国内对IPv6的态度吧(求关注、点赞、回复三连~.~)。
二、IP协议
1. 什么是IP
❝IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。
❞
2. IP协议版本
目前公布的IP版本很多,远不止IPv4和IPv6两个版本。下表是互联网号码分配机构
IANA(Internet Assigned Numbers Authority)
列出的官方版本号。
通过以上表格可以看出,IP协议实际是从0开始的,目前可见的最大版本号是15。以后会有更大的版本号吗?以目前来看是不会有的。原因是IP协议中,标识协议版本号的是一个长度为4的二进制字段。可表示区间为0000B ~ 1111B,即十进制的0 ~ 15。因此,若需支持15以上的版本号,需要对整个IP协议进行重新设计,不单是加个版本号而已。所以目前来看,IP协议版本号不会超过15。
大家最为熟悉的应该是IPv4,也是IP协议中应用最为广泛的版本。其他版本我在此也进行下简单介绍。
IPv0 ~ 2 实验室版本,此时TCP和IP还没有完全分开。
IPv3 第一个真正意义的IP协议版本,但是存在稳定性问题
IPv4 IPv3基础上增加了稳定性,目前应用最为广泛的版本
IPv5 和IPv4使用相同的寻址系统,目的是支持流媒体视频和其他新媒体。但最终受限于IPv4的地址受限问题被废弃
IPv6 解决了IPv4的核心问题,地址数量受限。目前国内大力推广的版本,转转也积极响应,支持了这个版本
IPv7 ~ 9 和IPv6同期产物,因IPv6的成功而被暂停或废弃
IPv10 基于IPv4和IPv6 目的是解决IPv4和IPv6地址转换互通问题,目前还在草案中。未真正分配。
IPv11 ~ 14 未分配
IPv15 保留
3. IPv4
3.1 地址格式
我们常见的是地址格式是点分十进制,顾名思义,就是用小数点分割开的十进制表示法。如:192.168.0.11
。
可惜的是计算机并不认识十进制,只认识0
和1
,对应关
和开
两种状态。真正的IP地址表示由4段(32比特)组成,每段8比特,段与段用点(.)隔开。每位有0
和1
两种状态值,总计4,294,967,296
( 232),约42.9亿个地址。如192.168.0.11
对应的真正的IP地址为:11000000.10101000.00000000.00001011
。是不是看到这个想说,这是啥?比起来是不是十进制更好接受。
3.2 地址组成
IP地址是由两部分组成的,网络部分和主机部分,比如:
其中网络部分一样的属于同一个网段,主机部分共包含0000B
~ 1111B
共256个可用主机号。主机部分全0
表示网段自身,主机部分全为1
表示网段内所有设备。即广播地址。主机部分为其他值时,表示不同的设备。所以一个网段下最多可包含 0001B
~ 1110B
共254个设备。
3.3 地址分类
由于早期设备性能问题,为了提高地址转发效率,于是对所有IP进行了分类,共五大类。分别为
「A类」:「前8位为网络地址,后24位为主机地址,网络位第一位必须是0」,因此该类IP地址中网络ID的长度为8位,主机ID的长度为24位,该类IP地址范围为1.0.0.0~126.255.255.255,「其子网掩码为255.0.0.0」。(全部是0的(0.0.0.0)是指所有网络所以排除,127.0.0.0~127.255.255是环回地址)
「B类」:「前16位为网络地址,后16位为主机地址。网络位的前2为必须是10」,因为该类IP地址中网络ID的长度为16位,主机ID的长度为16位,该类IP地址范围为128.0.0.0~191.255.255.255,「其子网掩码为255.255.0.0」.
「C类」:「前24位为网络地址,后8位主机地址。网络位的前3位必须是110」,因此该类IP地址中网络ID的长度为24位,主机长度为8位。该类IP地址范围为192.0.0.0~223.255.255.255 、「其子网掩码为255.255.255.0」.
「D类」:「该类IP地址的前四位必须为1110」,它是一个专门保留的地址,并不指向特定的网络。目前这类IP地址被用在组播中,其地址范围为224.0.0.0~239.255.255.255
「E类」:「该类IP地址以11110」开始,为保留地址。其地址范围为240.0.0.0~255.255.255.254
此外,还有全0和全1的IP地址,其中全部是0的(0.0.0.0)是指所有网络,全1的IP地址(255.255.255.255)是所有网络的广播地址
4. IPv6
4.1 地址格式
一个符合规范的IPv6地址格式是这样的:2001:0DB8:0000:0000:0000:8A2E:200C:417A
这是什么?别着急,听我娓娓道来。
每个IPv6地址是由8段(128比特)组成,每段16比特,段与段用冒号(:)隔开。每位有0
和1
两种状态值。总计340,282,366,920,938,463,374,607,432,768,211,456
( 2128),约为。。。地球所有沙子的数量(理解为近似无限地址)
所以上述的IP地址的真正格式为0010000000000001:110110111000:0000000000000000:0000000000000000:0000000000000000:1000101000101110:0010000000001100:0100000101111010
这肯定看不懂对吧。如果使用对待IPv4地址相同的手段处理IPv6地址呢。也就是使用十进制表示该地址位:8193:3512:0:0:0:35374:8204:16762
。
差不多可以看懂了,但是对网络传输来说这个的太占空间了,也就降低了传输效率。而且有了域名解析后,相对IP地址,大家更愿意接受域名。
为了提高传输效率,减少空间占用。于是IPv6地址使用十六进制表示。将上述二进制或十进制表示转为十六进制则为:2001:0DB8:0000:0000:0000:8A2E:200C:417A
至此,是不是对IPv6地址格式有了一些了解。为了压缩空间,在此基础上还有一些其他规则。
前置
0
可省略:IP地址中每一段数值的前置0
可省略。上述地址应用规则后可表示为:2001:DB8:0:0:0:8A2E:200C:417A
连续零可用
::
表示:IP地址中连续的0可使用::
表示,一个IP地址仅可省略一次,即出现一次::
。上述地址应用规则后可表示为:2001:DB8::8A2E:200C:417A
仅可出现一次的原因为:多个
::
会存在地址冲突。如下两个IP地址2001:0:0:0:25DE:0:0:CADE
2001:0:0:25DE:0:0:0:CADE
应用规则后均为:
2001::25DE::CADE
,导致地址冲突了。因此一个IP地址中仅可出现一次::
4.2 地址组成
IPv6地址分为高64比特和低64比特。
高64比特有分配机构进行分配,分配机构也只关心高64比特。
低64比特全部为主机地址。可自行分配。
4.3 地址分类
「单播地址」:在单播寻址模式下,IPv6接口(host)在网段中唯一标识。IPv6数据包包含源IP地址和目标IP地址。主机接口配备有在该网络段中唯一的IP地址。当网络交换机或路由器接收到注定到单个主机的单播IP分组时,它发出其连接到该特定主机的输出接口之一 。
「多播(组播)地址」:IPv6组播模式与IPv4相同。目的地为多个主机的数据包在特殊的多播地址上发送。所有对该组播信息感兴趣的主机需要首先加入该组播组。加入组的所有接口接收组播数据包并对其进行处理,而对组播数据不感兴趣的其他主机则忽略组播信息。
「任播地址」:IPv6引入了一种新型的寻址,称为Anycast寻址。在此寻址模式下,多个接口(host)被分配相同的任播IP地址。当主机希望与配备有任播IP地址的主机通信时,它发送单播消息即可。在复杂的路由机制的帮助下,该单播消息被递送到最接近接收方的主机。
三、为什么要切IPv6
作为FE的我分析比较IPv4和IPv6实在有些困难,在此引用百度百科的对比描述。
❝❞
IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,最大地址个数为232;而IPv6中IP地址的长度为2128,即最大地址个数为2128。与32位地址空间相比,其地址空间增加了2128-232个。
IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。
允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。
更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。
新的选项。IPV6有一些新的选项来实现附加的功能
参考资料
iana(https://www.iana.org/assignments/version-numbers/version-numbers.xhtml)
Where are IPv1, 2, 3 and 5(https://forum.huawei.com/enterprise/en/where-are-ipv1-2-3-and-5/thread/521375-887)
IP(https://baike.baidu.com/item/IP/224599?fr=aladdin)
IPv6(https://baike.baidu.com/item/IPv6/172297?fr=aladdin)
IPv6,到底是什么(https://zhuanlan.zhihu.com/p/36542469)
IPv4地址格式和分类(https://zhuanlan.zhihu.com/p/411205065)
IPv6笔记-地址结构与分类(https://blog.csdn.net/wangcg123/article/details/97398709)