ipv6地址要比ipv4要复杂的多,也跟难理解,下面详细介绍下ipv6地址格式知识,包括ipv6地址分类以及格式分析。
ipv6拥有更为庞大的地址空间,是因为ipv4只是采用32位来表示,而ipv6采用128位来表示,这样大的一个地址空间,几乎可以容纳无数个节点。正因为ipv6使用了128位来表示地址,在表示和书写上面具有相当的困难,原来的ipv4使用10进制来表示,而ipv6由于地址太长,则采用16进制来表示,但无论我们如何表示,计算机都是处理二进制。
ipv6地址格式知识:ipv6地址分类与长度分析
因为10进制表示时,使用0到9共十个数字来表示,而16进制需要在10进制原有的基础上多出6个数字,即需要多出11,12,13,14,15,这6个数字则采用字母的形式来表示,分别为:
a(表示10),b(表示11),c(表示12),d(表示13),e(表示14),f(表示15),这些字母是不区别大小写的。
但是由于ipv6拥有128位的长度,所以不能直接表示,必须像ipv4那样进行分段表示。ipv6将整个地址分为8段来表示,每段之间用冒号隔开,每段的长度为16位,表示如下:
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
从上面可以看出,ipv6中每一个段是16位,每段共四个x,其中x使用4bit表示,一个x就表示一个数字或字母,一个完整的地址共128bit。而一个x使用4bit表示,那么xxxx的取值范围就应该从0000到ffff。
ipv6地址总的来说可分为三大类:单播地址,泛播地址和组播地址
单播地址还可分为几类:可集聚全球单播地址,链路本地单播地址和站点本地单播地址.
见下图ipv6地址分配表:
这样的分配方案支持可集聚地址、本地用地址和组播地址的直接分配,并有保留给nsap地址和ipx地址的空间。其余的地址空间留给将来用。可用于已有使用的扩展(如附加可集聚地址等)或者新的用途(如将定位符和标识符分开),地址空间的15%是初始分配的,其余85%的地址空间留作将来使用。
1.可聚集全球单播地址(简单点理解,这种单播地址就是公网上能用的普通ipv6地址)
全部可集聚全球单播地址定义在[aggr]中。设计这样的地址格式为了既支持基于当前供应商的集聚,又支持被称为交换局的新的集聚类型。其组合使高效的选路集聚可用于直接连接到供应商和连接到交换局两者的站点上。
站点可以选择连接到两种类型中的任何一种集聚点。ipv6可集聚全球单播地址格式如下所示:
2.本地用ipv6单播地址(包括链路本地单播地址和站点本地单播地址)
2.1链路本地单播地址
规定了链路本地和站点本地两种类型的本地使用单播地址。链路本地地址用在单链路上,而站点本地地址用在单站点上。
链路本地地址格式表示如下:
注意此地址就是以fe80::x:x:x:x开头的ipv6地址。
设计链路本地地址的目的是为了用于诸如自动地址配置、邻居发现或无路由器存在的单链路的寻址。路由器不能将带有链路本地源地址或目的地址的任何包转发到其他链路上去。
2.2站点本地地址具有下面的地址格式:
16进制表示为: fec0::x:x:x:x:x,这就是以fec0开头的ipv6地址的原因了。
站点本地地址的设计目的是为了用于无需全球前缀的站点内部寻址。路由器不应转发站点外具有站点本地源或目的地址的任何包(难道是和192.168类的私有地址一样?)
举个例子:这里有全球单播ipv6地址(其中一个网络interface的情况,实际中还有很多隧道呀,和虚拟网卡)
2001:250:4000:4000:f80f:6d4c:4310:xxxx就是能在公网上出现的ipv6地址。
看那个本地链接ipv6地址:fe80::f80f:6d4c:4310:b18e%11这个就是链接本地地址。这个地址只能对应某一条链路!
后面的%11就是指你的网络interface标识符,如下图标志的.(输入routeprint后,有一部分显示出下图)
总的来说,ipv6地址感觉太复杂了,如果想要全面了解的朋友,建议购买相关专业指导书,详细研究一番。