IPv6地址解析

为战队上交的微信推送任务,这里做一下搬运。


据称,11月26日,负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心宣布,全球所有43亿个IPv4地址已全部分配完毕。意味着再也没有新接入的互联网设备在也无法分配到新的IP地址。在目前的形势下,利益相关的同学们第一反应会想到什么呢?是提高IP地址利用率的无类域间路由还是为IPv4续命立下汗马功劳的NAT技术?

不得不说,靠IPv4协议也就图个乐呵,想要彻底解决地址分配问题还得看我IPv6协议

今天由于篇幅有限,主要专注于IPv6的地址解析

IPv6的优势

  • 地址空间大,理论上存在2^128个地址,几乎不用担心地址短缺问题
  • 减少路由表大小,路由器处理报文性能提高
  • 安全性得到提高
  • 服务质量好,服务类型扩展灵活丰富
  • 支持可移动主机和网络
  • 兼容性强,可完全向下兼容IPv4

IPv6地址

IPv6地址的128位地址被分成8段,每16位一段,分别被转成4位十六进制数这种表示方法称之为“冒号十六进制表示法”。

地址格式

X:X:X:X:X:X:X:X

压缩表示

  1. 地址中包含的连续两个或多个均为0的组,可以用双冒号“::”来代替。

    FC00:0:130F:0:0:9C0:876A:130B可写作FC00:0:130F::9C0:876A:130B

    注意:

    1. ::代表的0位数必须最大化;

      错误示例:FC00:0:130F:0:0:9C0:876A:130B不能写作FC00:0:130F::0:9C0:876A:130B

    2. 不能只代表一个全0段;

      错误示例:FC00:1:130F:0:1:9C0:876A:130B不能写作FC00:1:130F::1:9C0:876A:130B

    3. 如果多个连续全0段长度相同,必须的代表最前面的那个

      错误示例:FC00:0:130F:0:0:9C0:0:0不能写作FC00:0:130F:0:0:9C0::

  2. 前导0可以省略

    FC00:0000:130F:0000:0000:09C0:876A:130B可以写作FC00:0:130F:0:0:9C0:876A:130B

地址结构

一个IPv6地址可以分为如下两部分:

  • 网络前缀:n比特,相当于IPv4地址中的网络ID
  • 接口标识:128-n比特,相当于IPv4地址中的主机ID

表示形式如FF00::/8代表地址/前缀长度

接口标识可通过三种方法生成:手工配置、系统通过软件自动生成或IEEE EUI-64规范生成。其中,EUI-64规范自动生成最为常用

地址分类

  • 单播地址

    一对一

    常见的单播地址

    • 未指定地址::/128

      该地址可以表示某个接口或者节点还没有IP地址,可以作为某些报文的源IP地址

    • 环回地址::1/128

      就是本地地址

    • 全球单播地址:带有全球单播前缀,目前已经分配的全球路由前缀的前3bit均为001

      带有全球单播前缀的IPv6地址,其作用类似于IPv4中的公网地址

    • 链路本地地址 :使用了特定的本地链路前缀FE80::/10

      链路本地地址是IPv6中的应用范围受限制的地址类型,只能在连接到同一本地链路的节点之间使用

    • 唯一本地地址:前缀固定为·FC00::/7

      也是一种应用范围受限的地址,它仅能在一个站点内使用,类似于IPv4中的私网地址

  • 组播地址

    IPv6的组播与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点.

    IPv6组播地址的前缀是FF00::/8

    • 标志用来标识组播地址身份
    • scop用来限制组播数据流在网络中发送的范围
    • group ID标识组播组
  • 任播地址

    任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。主要用来在给多个主机或者节点提供相同服务时提供冗余功能和负载分担功能。

    注:IPv6任播地址仅可以被分配给路由设备,不能应用于主机。任播地址不能作为IPv6报文的源地址

整理了一下一个IPv6主机上一个接口可以具备的常见IPv6地址

分享到: