IPV6技术第二讲-IPV6地址类型

IPV6技术第二讲-IPV6地址类型  

       在上一期介绍了关于IPV6的基本“废话”,这一期介绍一下关于IPV6地址的特性,来了解下IPV6地址与IPV4地址有哪些不同,IPV4中的问题它是如何解决的,又有哪些功能比IPV4先进。

先来看一个正经的IPV6地址长什么样,2031:0000:130F:0000:0000:09C0:876A:130B,这就是一个正经的IPV6地址,非常的长,跟IPV4地址的样子完全不一样,IPV4地址只有数字,而IPV6却有字母。上一期中有介绍到IPV6地址的表示方法是用冒号分十六进制数的方式来表示的,并且,IPV6地址的分段共8段,每段长度为16位,因此,在地址中间能看到ABCDEF。

       看了正经的IPV6地址,那有没有不正经的地址?2031:0:130f::9c0:876a:130b,这个就是不正经的IPV6地址,跟正经的地址对一下你就可以发现其中的不同点,有如下几点:

  1. 地址中的连续4个0的段可以简写成一个0
  2. 每一段地址的开头0可以省略不写
  3. 连续两个段或以上为0的段可以用“: :”来代替
  4. 双冒号方式在一个IPV6地址中只能使用一次

2031::130f::9c0:876a:130b,这是一个错误的IPV6地址,该地址中包含两个冒号,这是不允许的,因为两个冒号代表着中间有多个连续的0,但中间到底有多少个连续的0呢?并不知道,有可能只是4个0,有可能是连续24个0或更多都有可能。如果地址中出现两个冒号就很难判断出地址的哪一段有多少个连续的0。

       了解了IPV6地址的样子,再来看看IPV6地址的名字,其实IPV6地址还是有一个官方的名字的,叫AGUA地址,全称为Aggregate Global Unicast Address,可聚合全球单播地址,一个多么霸气的名字。

       在IPV4地址协议中有听过广播地址,单播地址和组播地址,但在IPV6地址中没有广播地址,但有一个任意播地址。你可能知道多啦A梦的任意门,非常有意思,但是任意播是什么东西?任意播地址是从单播地址空间分配的,其实就是一个单播地址,将这个单播地址分配到一个路由器上,将这个地址同时给多个具有相同服务的设备使用,但请注意,这不是说多个设备同时使用一个地址,这样会选成地址冲突的,也不可能多个设备配置一样的IPV6地址。

关于任意播,作如下解析

举个例子,如现有一组10台服务器组成的服务器群,这个服务器群组内的所有服务器都提供一个80端口的网页服务,这些服务器都指向一个外网的服务IP,这个IP其实就是任意播地址了,现当有广东用户访问这个网站的任意播地址时,路由器会将这个用户的流量转发到这个任意播服务器群组内“最近”的服务身上,这个服务器可能是1号服务器,又当此时,山东用户访问这个网站时,路由器又将此流量转发到任意播组成员服务器中“最近”的服务器,这时候有可能被转发到了5号服务器。这就是任意播地址的作用,简单的理解就是一个地址,只是这地址身后有多个设备提供着服务,任意播地址常用于内容提供服务上。一般任意播地址是不能配在服务器或PC或其他终端设备上的,只能配置在路由器上。

 

       现在来了解下IPV6地址的前缀取值,IPV6是有取值范围的,但这只是限制于互联网使用的地址与一些特殊用途的地址,比如组播与隧道地址等。看下图:

如上图所示,IPV6地址的取值范围是2000::/3,第一个IP是从2000开始,一直到3FFF结束,请注意,这个范围是指互联网与6to4隧道的地址,不包括IPV6的组播地址等。比如,我在路由器的接口上配置一个4000开头的地址不可能吗?当然可以,完全没问题,但是这个地址并不是互联网IP地址,是不能够在互联网中使用的,比如用于网站提供网页服务时这个IP就不可用。另外,互联网地址范围是2001开头的。

 

       Link-Local地址

上图为IPV6地址中Link-Local地址的描述,我猜你应该没看懂是吧?Link-Local地址是一个FE80开头的地址,它的作用是用来描述一个唯一的接口。在第一讲中提到过IPV6有多数组的概念,即在一个路由器的接口上可以配置多个IPV6地址。当接口拥有多个IPV6地址且又运行了路由协议时,对于邻居路由器收到我发送的路由条目时应该为这些路由条目标识一个下一跳IP,但是我本地有多个IPV6地址,这时候Link-Local就起到了作用,邻居路由器会使用我本地接口的Link-Local地址作为下一跳。在每一个接口中都拥有唯一一个Link-Local地址,无论是否配置AGUA地址,Link-Local都可以用来作为通信址。该地址为FE80开头,在地址的最后64bits为接口ID,接口ID其实就是该接口的MAC地址的演化地址,演化过程在本文后段部分会介绍。

 

       IPV4转换IPV6

       IPV4地址可以转换IPV6地址,转换方法为将IPV4地址先转换为16进制的形式,再在其前面加上96位0即可,如下图示:

IPV4地址转换16进制的方法为先将其转换为2进制数后再将期转换为16进制数,如192转换为2进制数为1100 0000,然后将4位为一段,再将这4位看作为16进制数的值,将期转换为16进制数即为C0。因为1100转换为16进制数为12,12对应的16进制数即为C,0000转换后为0,因此192转换为16进制数后为C0。

 

       IPV6地址分配

       如下图,这是一张IPV6地址前缀分配示意图。国家机构注册的IPV6地址前缀可能为23位,进行分配给ISP时分配的IP前缀为32位,ISP拿到地址后需要将其分配给省级的ISP,省级ISP可能拿到的地址前缀为48位,省级ISP再将其分配给市级ISP时长度为64位。

 

       EUI自动配置

       在第一讲时提到IPV6支持地址自动配置的特性,该特性其实为地址后64位自动填充,它并不能影响前面64位,因此,EUI自动配置即为接口ID配置。对于后64位填充,使用了MAC地址加上FFFE凑齐了64位,并且将凑齐的64位地址中的第7位置反,然后将这64位填充到IPV6地址前缀的后64位中。如下图:

如上图为一个MAC加入“FFFE”操作,在MAC地址的中间插入,凑齐64位。

如上图,将凑齐64位的地址中的第7位作置反操作,如第7位中若是0则置为1,若为1则置为0,如上例是,原始MAC地址为0090-2717-FC0F,该MAC地址的第一段0090的00转换为2进制数为00000000,第7位为0,做置反操作后为00000010,再转换为16进制数为02,因此,0090则通过置反后的结果为0290。最后,将这个做过置反操作的64位地址填充到IPV6地址的后64位中去就组成了该接口的IPV6地址。这就是EUI自动配置。

 

       IPV6组播地址

       IPV6地址的组播地址与IPV4地址类似,有固定位与范围,如下图:

Flag:0为永久,1为临时

Scope:1为接口有效,2为广播域内有效,5/8为AS内有效,E全局有效

 

如上图,IPV6的组播地址为FF开头,FF后8位有FALG位和Scope位,不同数值代表的功能都不一样,比较常见的组播地址为FF02开头。如下图所列组播地址:

 

Solicited-node multicast address

       另一个组播地址,称为请求节点组播地址,这个地址的作用用于解决IPV6中无ARP报文带来的问题,致于是如何解决的将下一讲进行阐述。先来看下这个地址的组成:

同样为FF02开头,我们要关注的是该组播地址的最后24位地址,这24位为接口Link-Local地址的后24位,因此请求节点组播地址也可用来标识一个唯一的接口,它在解决ARP问题上有重要的作用。

       关于IPV6的其他特性将在下一讲阐述,本节到此结束。

 

 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhlhely

感谢支持,定当持续更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值