IPv6详解

一、概述

        由于IPv4的地址短缺,使用NAT以及子网划分等方式已经不能满足地址的需求了,所以开发出了近乎无限的IPv6地址,IPv6拥有庞大的地址数目,层次化的分配,以及即插即用的优势,他与IPv4的作用近乎相同但本质上还是有所差异,IPv4的内容可见IPv4详解本章节我们就来介绍IPv6协议,并介绍IPv6地址在实际网络当中的使用场景等。

二、IPv6的基本报头

         IPv6的包头与IPv4的类似,做了部分的删减和修改并增加了部分字段,具体可见下图

        IPv6报文的处理机制

三、IPv6的地址结构

1、IPv6地址的表现形式

        IPv6地址总长度为128比特,通常分为8组,每组为4个十六进制数的形式,每组十六 进制数间用冒号分隔。例如:FC00:0000:130F:0000:0000:09C0:876A:130B,这是IPv6地址的首选格式。

2、IPv6地址的缩写

为了书写方便,IPv6还提供了压缩格式,以上述IPv6地址为例,具体压缩规则如下。

  • 如果一组中4个十六进制数全为“0”,可只写一个“0”。
  • 每组中的前导“0”都可以省略,所以上述地址可写为: FC00:0:130F:0:0:9C0:876A:130B。
  • 地址中包含的连续两个或多个均为0的组,可以用双冒号“::”来代替,所以上述地址 又可以进一步简写为:FC00:0:130F::9C0:876A:130B。

注意:

在一个IPv6地址中只能使用一次双冒号“::”,否则当计算机将压缩后的地址恢复成128 位时,无法确定每个“::”代表0的个数。

3、什么是网络前缀?什么又是接口标识

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

  • 网络前缀:n比特,相当于IPv4地址中的网络ID。(就是我们前面IPv4章节中提到的网络部分)
  • 接口标识:128−n比特,相当于IPv4地址中的主机ID。(就是我们前面IPv4章节中提到的主机位)

        对于IPv6单播地址来说,如果地址的前3位不是000,则接口标识必须为64位;如果地址的前3位是000,则没有此限制。

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

IEEE EUI-64规范是将接口的MAC地址转换为IPv6接口标识的过程。如下图所示, MAC地址的前24位(用c表示的部分)为公司标识,后24位(用m表示的部分)为扩展标识符。从高位数,第7位是0表示了MAC地址本地唯一。

转换的第一步将FFFE插入MAC地址的公司标识和扩展标识符之间,第二步将从高位 数,第7位的0改为1表示此接口标识全球唯一。

例如:MAC地址000E-0C82-C4D4,转换后为020E:0CFF:FE82:C4D4。

这种由MAC地址产生IPv6地址接口标识的方法可以减少配置的工作量,尤其是当采 用无状态地址自动配置时,只需要获取一个IPv6前缀就可以与接口标识形成IPv6地址。但是使用这种方式最大的缺点是任何人都可以通过二层MAC地址推算出三层IPv6地址,不安全。

四、IPv6的地址分类

        IPv6地址分为单播地址、任播地址(Anycast Address)、组播地址3种类型。和IPv4相比,取消了广播地址类型,以更丰富的组播地址代替,同时增加了任播地址类型。

1、IPv6单播地址

        IPv6单播地址标识了一个接口,由于每个接口属于一个节点,因此每个节点的任何接口上的单播地址都可以标识这个节点。发往单播地址的报文,由此地址标识的接口接收。 但与IPv4中的单播地址不一样的是,IPv6中定义了多种单播地址,目前常用的单播地址 有:未指定地址、环回地址、全球单播地址、链路本地地址、唯一本地地址(ULA,Unique Local Address)。

  • 未指定地址
    • IPv6中的未指定地址即0:0:0:0:0:0:0:0/128 或者::/128,类似于IPv4中的0.0.0.0,0.0.0.0 代表任意地址。该地址可以表示某个接口或者节点还没有IP地址,可以作为某些报文的源 IP地址(例如在NS报文的重复地址检测中会出现)。源IP地址是“::”的报文不会被路由设 备转发。
  • 环回地址
    • IPv6中的环回地址即0:0:0:0:0:0:0:1/128或者::1/128,与IPv4中的127.0.0.1作用相同, 主要用于设备给自己发送报文。该地址通常用来作为一个虚接口的地址(如Loopback接 口)。实际发送的数据包中不能使用环回地址作为源IP地址或者目的IP地址。
  • 全球单播地址
    • 全球单播地址是带有全球单播前缀的IPv6地址,类似于IPv4中的公网地址。这种类 型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量。
    • 全球单播地址由全球路由前缀(Global routing prefix)、子网ID(Subnet ID)和接口标识(Interface ID)组成,其格式如下图所示。
    • Global routing prefix:全球路由前缀,由提供商(Provider)指定给一个组织机构, 与IPv4中的网络ID作用相似。通常全球路由前缀至少为48位。目前已经分配的全球路由 前缀的前3 bit(高3位)均为001。
    • Subnet ID:子网ID。组织机构可以用子网ID来构建本地网络(Site),与IPv4中的 子网号作用相似。子网ID通常最多分配到第64位。
    • Interface ID:接口标识,用来标识一个设备(Host),与IPv4中的主机ID作用相 似。
  • 链路本地地址
    • 链路本地地址是IPv6中应用范围受限制的地址类型,只能在连接到同一本地链路的节 点之间使用。它使用了特定的本地链路前缀FE80::/10(最高10位值为1111111010),同时 将接口标识添加在后面作为地址的低64比特。
    • 当一个节点启动IPv6协议栈时,启动时节点的每个接口会自动配置一个链路本地地址 (其固定的前缀+EUI-64规则形成的接口标识)。这种机制使得两个连接到同一链路的 IPv6节点不需要进行任何配置就可以通信。所以链路本地地址广泛应用于邻居发现、无 状态地址配置等应用。
    • 以链路本地地址为源地址或目的地址的IPv6报文不会被路由设备转发到其他链路。 链路本地地址的格式如下图所示。
  • 唯一本地地址
    • 唯一本地地址是另一种应用范围受限的地址,它仅能在一个站点内使用,用于替代在RFC3879中定义的本地站点地址。
    • 唯一本地地址的作用类似于IPv4中的私网地址,任何没有申请到提供商分配的全球单播地址的组织机构都可以使用唯一本地地址。唯一本地地址只能在本地网络内部被路由 转发,而不会在全球网络中被路由转发。唯一本地地址格式如下图所示。
    • Prefix:前缀,固定为FC00::/7。
    •  L:L标志位;值为1代表该地址为在本地网络范围内使用的地址;值为0被保留, 用于以后扩展。
    • Global ID:全球唯一前缀,通过伪随机方式产生。
    • Subnet ID:子网ID,划分子网使用。
    • Interface ID:接口标识。 唯一本地地址具有如下特点。
    • 具有全球唯一的前缀(虽然利用随机方式产生,但是冲突概率很低)。
    • 可以进行网络之间的私有连接,而不必担心地址冲突等问题。
    • 具有知名前缀(FC00::/7),方便边缘设备进行路由过滤。
    • 如果出现路由泄漏,该地址不会和其他地址冲突,不会造成Internet路由冲突。
    • 应用中,上层应用程序将这些地址看作全球单播地址对待。
    • 独立于互联网服务提供商(ISP,Internet Service Provider)。

2、IPv6组播地址

        IPv6的组播与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点。一个节点可能属于0到多个组播组。发往组播地址的报文被组播地址标识的所有接口接收。例如组播地址FF02::1表示链路本地范围的所有节点,组播地址FF02::2表示链路本地范围的所有路由器。

        一个IPv6组播地址由前缀、标志(Flag)字段、范围(Scope)字段以及组播组 ID(Global ID)4个部分组成(如下图所示)。

  • 前缀:IPv6组播地址的前缀是FF00::/8。
  • 标志字段(Flag):长度4 bit,目前只使用了最后一个比特(前3位必须置0),当 该位值为0时,表示当前的组播地址是由IANA所分配的一个永久分配地址;当该位值为1 时,表示当前的组播地址是一个临时组播地址(非永久分配地址)。
  • 范围字段(Scope):长度4 bit,用来限制组播数据流在网络中发送的范围,该字 段取值和含义的对应关系如图1-19所示。
  • 组播组ID(Group ID):长度112 bit,用以标识组播组。目前,RFC2373并没有将 所有的112位都定义成组标识,而是建议仅使用该112位的最低32位作为组播组ID,将剩 余的80位都置0。这样每个组播组ID都映射到一个唯一的以太网组播MAC地址 (RFC2464)。

在IPv6中有一种特殊的组播IP地址,即被请求节点组播地址。

        被请求节点组播地址通过节点的单播或任播地址生成。当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。一个单播地址或任 播地址对应一个被请求节点组播地址。该地址主要用于邻居发现机制和地址重复检测功能。

        IPv6中没有广播地址,也不使用ARP。但是仍然需要从IP地址解析到MAC地址的功能。在IPv6中,这个功能通过邻居请求(NS,Neighbor Solicitation)报文完成。当一个节点需要解析某个IPv6地址对应的MAC地址时,会发送NS报文,该报文的目的IP就是需要 解析的IPv6地址对应的被请求节点组播地址;只有具有该组播地址的节点会检查处理。 被请求节点组播地址由前缀FF02::1:FF00:0/104和单播地址的最后24位组成。这里的请求过程详细可见后续文章NDP协议详解。

3、IPv6任播地址

        任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。

        任播地址设计用来在给多个主机或者节点提供相同服务时提供冗余功能和负载分担功能,如网络中多台Web服务器共享同一个IPv6,不同地区的用户通过这个共享的IPv6地址 访问网站时与用户最近的Web服务器连接。目前,任播地址的使用通过共享单播地址方式来完成。将一个单播地址分配给多个节点或者主机,这样在网络中如果存在多条该地 址路由,当发送者发送以任播地址为目的IP的数据报文时,发送者无法控制哪台设备能够 收到,这取决于整个网络中路由协议计算的结果。这种方式可以适用于一些无状态的应用,例如DNS等。

        IPv6中没有为任播规定单独的地址空间,任播地址和单播地址使用相同的地址空 间。目前IPv6中的任播主要应用于移动IPv6。

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

        在IPv6中有一种特殊的任播地址,即子网路由器任播地址。子网路由器任播地址由n bit子网前缀标识子网,其余用0填充。格式如下图所示。

        子网路由器任播地址是已经定义好的一种任播地址(RFC3513)。发送到子网路由器 任播地址的报文会被发送到该地址标识的子网中路由意义上最近的一个设备。所有设备都 必须支持子网任播地址。子网路由器任播地址用于节点需要和远端子网上所有设备中的一 个(不关心具体是哪一个)通信时使用。例如,一个移动节点需要和它“家乡”子网上的所 有移动代理中的一个进行通信。

4、IPv6应用举例

以上就是本章的全部内容了,感谢大家的浏览观看!文章若有错误或疑问可联系博主删除更改。

中文高清 PDF 格式 目 录 译者序 前言 第一部分 IP基础知识 第1章 为何要升级IP 1 1.1 IP的影响 1 1.1.1 什么是IP 2 1.1.2 IP应用在哪些地方 3 1.1.3 有多少人在使用IP 3 1.1.4 当IP发生变化时会产生哪些影响 4 1.2 IPv4的局限性及其缺点 4 1.2.1 IP地址空间危机 5 1.2.2 IP性能议题 5 1.2.3 IP安全性议题 6 1.2.4 自动配置 6 1.3 紧迫感 7 第2章 TCP/IP网络互联简介 8 2.1 网络互联问题 8 2.2 分层网络互联模型 9 2.2.1 OSI模型 10 2.2.2 Internet模型 10 2.2.3 封装 11 2.3 IP 12 2.3.1 IP寻址 13 2.3.2 IP头 15 2.3.3 数据报的转移 17 2.4 ICMP 18 2.5 选路、传输和应用协议 18 2.5.1 选路协议 19 2.5.2 传输协议 19 2.5.3 应用协议 19 第3章 IPv4的问题 20 3.1 修改还是替换 20 3.2 过渡还是不过渡 26 第4章 通向IPng之路 27 4.1 概念的诞生 27 4.1.1 对Internet将来的估计 27 4.1.2 Internet发展中需要考虑的领域 28 4.2 第一回合 29 4.3 拾遗 31 4.4 IPv6,第一回合 32 4.5 IPv6,第二回合 32 第二部分 IPv6细节 第5章 IPv6的成型 33 5.1 IPv6 33 5.1.1 变化概述 33 5.1.2 包头结构 35 5.1.3 IPv4IPv6的比较 36 5.1.4 流标签 37 5.1.5 业务流类别 37 5.1.6 分段 38 5.1.7 扩展头 39 5.2 ICMPv6 40 第6章 IPv6寻址 43 6.1 地址 43 6.1.1 地址表达方式 43 6.1.2 寻址模型 44 6.1.3 地址空间 45 6.2 地址类型 46 6.2.1 广播路在何方 46 6.2.2 单播 46 6.2.3 单播地址格式 47 6.2.4 组播 51 6.2.5 泛播 53 第7章 IPv6扩展头 54 7.1 扩展头 54 7.2 扩展头的用法 54 7.2.1 扩展头的标识 55 7.2.2 扩展头的顺序 56 7.2.3 建立新的选项 56 7.2.4 选项扩展头 56 7.2.5 选项 57 7.3 逐跳选项 58 7.4 选路头 59 7.5 分段头 59 7.6 目的地选项 60 第8章 IPv6选路 62 8.1 地址对IP网络的影响 62 8.1.1 标识符和定位符 62 8.1.2 地址分配、无缝互操作和网络 拓扑 64 8.2 选路问题 65 第9章 IPv6身份验证和安全性 69 9.1 为IP增加安全性 69 9.1.1 安全性目标 69 9.1.2 RFC 1825及建议的更新 70 9.2 IPsec 70 9.2.1 加密和身份验证算法 71 9.2.2 安全性关联 73 9.2.3 密钥管理 74 9.2.4 实现IPsec 74 9.2.5 隧道模式与透明模式 75 9.3 IPv6安全性头 76 9.3.1 身份验证头 76 9.3.2 封装安全性净荷头 78 第10章 相关的下一代协议 80 10.1 协议的层次 80 10.1.1 应用层 80 10.1.2 传输层 80 10.1.3 链路层 81 10.2 IPv6域名系统扩展 81 10.3 地址解析协议和邻居发现 82 第11章 自动配置和移动IP 84 11.1 IPv6的即插即用 84 11.1.1 状态自动配置与无状态自动 配置 84 11.1.2 IPv6无状态自动配置 85 11.1.3 BOOTP和DHCP 86 11.1.4 DHCPv6 86 11.2 移动网络技术 86 11.2.1 IPv4中的移动IP 87 11.2.2 IPv6中的移动IP 87 第三部分 IP过渡和应用 第12章 IP过渡策略 89 12.1 IPv6协议隧道方法 89 12.1.1 与IPv4兼容的IPv6地址 90 12.1.2 配置隧道和自动隧道 90 12.1.3 IPv6隧道类型 90 12.2 IPv4/IPv6双栈方法 91 12.3 IPv6地址分配 92 12.4 6BONE 93 第13章 IPv6解决方案 94 13.1 需要支持IPv6的产品 94 13.2 正在开发IPv6产品的公司 94 13.3 对IPv6的期待 95 附录A 与IPv6有关的RFC索引 97 附录B RFC精选 100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fanmeang.

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值