IPv6 地址可以表示为 128 位由 0,1 组成的字符串, 为了便于计算机理解, 将 128 位的二进制字符串表示为 32 位的十六进制字符串, 为了便于理解, 人们将其划分为 8 组, 组与组之间用 : 隔开, 每组 4 个字符(也就是 16 位).
128 位的二进制数
通过由冒号分隔的 32 位的 8 组 16 进制字符串
为了进一步优化 IPv6 地址; 引入两条额外的规则
消除前导 0, 如 : 00A1 : 写成 : A1 :
消除连续 0, 如 : 0000 : 0000 : 0000: 变成 : :
这些规则必须产生一个唯一的压缩地址表示. 因此, 连续 0 规则只能用一次, 选择连续 0 最多的部分予以压缩.
如:
IPV6 地址由两部分组成: 前缀 (网络) 部分和接口 ID 部分.
IPv6 地址架构:
在 RFC3513 中定义了 IPV6 寻址架构. 定义了 3 种类型的 IPV6 地址:
单播――标识单个节点, 目的地为单播地址的流量被转发到单个节点;
组播――标识一组节点, 目的地为组播 (多播) 地址的流量被转发到组里的所有节点:
任意播一标识一组节点, 目的地为任意播地址的流量被转发到组里的最近节点.
在 IPV4 中给出了所有这些地址类型, 其中还包括广播地址. 广播流量被证明是太耗费资源的(在常规操作中以及广播风景中), 因此 IPv6 没有任何广播地址, 仅使用组播地址.
下面介绍这些 IPv6 地址类型和通信方法的功能.
单播地址: 目标地址为单播地址的分组被传输到单个接口. 为均衡负载, 位于多台设备中的多个接口可使用相同的地址, 但这种地址被称为任意播地址. 单播地址分多种.
链路本地地址: 类似于 IPV4 私有地址, 也是不可路由的, 它们以 FE80:/10 打头. 可将它们视为一种便利的工具, 让你能够为召开会议而组建临时 LAN, 或创建小型 LAN, 这些 LAN 不与因特网相连, 但需要在本地共享文件和服务.
FE80::/10 链路本地单播地址范围.
唯一本地地址: 这些地址也是不可在因特网路由的, 但也基本上是全局唯一的, 因此不太可能重复使用它们. 唯一的本地地址设计用于替代场点本地地址, 因此它们的功能几乎与 IPV4 私有地址相同: 支持在整个场点内通信, 可路由到多个本地网络. 场点本地地址已于 2004 年 9 月废除.
FC00::/7 唯一本地单播地址范围
全局单播地址: 这是典型的可路由的公有地址, 与 IPV4 中的单播地址相同. 全局地址以 2000::/3 打头.
2000::/3 全局单播地址范围.
组播地址: 与 IPv4 中一样, 目标地址为组播地址的分组被传输到该组播地址表示的所有接口. 这种地址有时也被称为一对多地址. IPv6 组播地址很容易识别, 它们总是以 FF 打头.
FF00::/8 组播地址范围.
任意播地址: 与组播地址一样, 任意播地址也标识多个设备的多个接口, 但有一个很大的差别: 任意播分组只被传输到一个接口――根据路由选择距离确定的最近接口. 这种地址的特殊之处在于, 可将单个任意播地址分配给多个接口. 这种地址被称为 "一对最近" 地址.
0:0:0:0:0:0:0:0 (::) 相当于 IPv4 地址: 0.0.0.0, 通常在使用有状态 DHCP 配置时, 用作主机的源地址.
0:0:0:0:0:0:0:1 (::1) 相当于 IPv4 地址 127.0.0.1.
0:0:0:0:0:0:192.168.100.1 在同时支持 IP4 和 IPv6 的网络中, 从 IPV4 地址转换而来的 IPV6 地址通常这样书写.
IPv6 单播地址:
一个网络的基本功能是为连接到网络的所有主机提供单播可达性. 所以任何网络无论 IP 版本如何, 单播地址都是一个关键角色.
为了保持两个版本寻址结构间的某些并行性, 在 IPV6 地址的场合, 使用了 IPV4 术语主机部分. 但 IPV6 倾向于在一个前缀内标识一个主机的接口而不是主机自己(主机能够有多个接口), 因此, IPV6 地址分段为前缀或网络部分和接口标识符(IID).
- Address: 2001:0:0:A1: :1E2A / 64
- Network portion: 2001:0:0:A1
- Interface identifier in non-compressed format: :0:0:0:1E2A
- Interface Identifier in compressed format: : :1E2A
识别码 压缩 格式
产生接口 ID 方式: .
静态:
人工配置.
从第 2 层地址以修改的 EUI-64 格式构造一个接口 ID. 对于接口 ID 的网络部分, EUI64 格式的高位第 7 位 (u 位) 当设置为 0 时, 定义了一个本地范围, 当设置为 1 时, 就定义了一个全局单播地址 (全局唯一); 高 8 位(g 位) 被设置为 1 时, 表示该地址是一组或组播类型的地址. 针对每种媒介类型, 定义了不同机制以构建符合修改的 EUI-64 格式的完全按口 ID.
动态分配:
如在 RFC 3041 中定义的那样自动产生一个随机地址. 本分配机制开发出来主要是限制一个全局可达地址的暴露程度并增加隐私性(无状态自动配置).
通过 DHCPV6 获得接口 ID.
基于 RFC 3972, 通过包含一个公开密钥的散列函数以加密方式产生地址(CGA). 产生一个接口 lD 的这种方法提供了额外的安全性并支持地址认证. 邻居发现过程的安全性是在 CGA 的帮助下获得的.
在 IPV6 情况下, 通过整合范围的概念更进一步细化了地址的网络部分.
范围标识一个网络域, 无论是物理的还是逻辑的. 能够容易地识别一个 IP 流的范围使网络能够更好地管理它的资源, 其方式足将流量限制在相关城内并对该范围施加策略. 在做出 3 层转发判定时, IP 地址是一个重要参数, 因此它应该表明范围. 在主机的通信范围内, 主机使用合适的 IPSA 和 DA.
在 IPV6 中, 单播地址格式反映了 3 种预定义范围, 如下所示:
链路本地范围――在单个第 2 层城内, 标识所有主机. 在这个范围内的单播地址称为链路本地地址:
唯一本地范围――在一个管理站点或域内(其典型情况下包括多个不同链路), 标识所有可达设备, 在这个范围内的单播地址称为唯一本地地址(ULA);
全局单播地址――在 Internet 中标识所有可达设备, 在这个范围内的单播地址称为全局单播地址(GUA).
如图 2-2 所示, 这些范围是层次化的. 全局范围大于本地 (站点) 范围, 而后者包括链路范围.
在 2003 年 3 月 20 日, IETF IPV6 工作组声明不再使用站点本地范围和相应的 IPV6 地址类型. 图 2-2 中强调了这一点.
站点本地地址的一个替代方案. 为了满足这些要求, IETF IPV6 工作组定义了一个新的范围和地址类型, 称为唯一本地.
链路本地地址:
当支持 IPV6 的节点上线时, 每个接口配置一个 3 层地址, 该地址专门用来和相同链路上的其他主机通信. 链路本地定义了这些地址的范围, 因此分组的 SA 或 DA(来源地址 (SA) ? 目的地址(DA) ) 是这些地址, 就不应该选择到其他链路上. 这些地址称为链路本地. 这些地址用来链接通信及链接操过程, 如寻找邻居或路由器.
图 2-3 给出了链路本地址的结构. 一个链路本地地址由固定格式的网络部分 FE80:/10 组成, 其中高 10 位是 1111111010, 后续 54 位是 0.
如前所述, 在 IPV6 中使用接口标识符术语而不是地址的主机部分, 如图 2-3 所示. 例 2-3 展示了一个以太网接口的链路本地地址, 其接口 ID 是基于第 2 层 Mac 地址产生的.
唯一本地单播地址:(ULA)
站点范围的概念能够容易地映射到一个私有管理域, 其中寻址不必遵循任何全局规则. 指定到这个范围的 IPV6 地址, 如 RFC3513 中所定义, 称为站点本地, 并且它们不必是唯一的(会导致很多问题). 这些地址与 IPV4 私有地址空间的相似性使人想起这种方法的缺陷(见 RFC3879). 反对使用站点本地地址的一些观点如下:
应用问题――当在站点之外, 站点本地地址在净荷中携带时, 应用会有问题. 这种情况的一个好的例子是, 依赖于双方地址的客户端 / 服务器应用, 而双方在不同的站点. 站点间的地址重叠在定位客户时使服务器迷惑. 通过在站点本地地址中增加一个站点标识符以处理地址重叠的问题, 但实现较常规复杂. 对网络节点而言, 记录所有的站点标识符是困难的, 在多节点接入到多个站点的情况尤其如此.
应用通常而言不知道范围, 它们经常泄漏私有地址 (如站点本地) 到私有网络之外. 在采用相同编址的站点之间泄漏地址能够导致路由选择或 DNS 问题.
路由选择和转发问题――站点本地地址的非唯一性属性将迫使路由器必须记录一个接口的前缀及所属站点.
非唯一站点本地地址使通过中间网络互连一个站点的不连续部分变得困难. 在这种情况下建立隧道就是必要的.
多站点的路由器, 必须将其转发的决定, 不仅基于目的地址而且基于进入接口, 并将流量控制在合适的站点内.
在重建 Internet 的原始形式和全局结构的过程中, 在没有站点概念的情况下, TPV6 理论上能够存活. 但是, 务实的考虑提出了比全局范围要小的标识范围的要求. 特别是企业有一种令人可理解的偏好, 即确定它们网络的边界. 由于这些原因, 不再使用的站点本地范围和地址必须被良好定义的概念所替代, 它能够处理提到的问题. 新概念即是一个唯一本地范围和相应的唯一本地地址.
图 2-4 给出了这些地址的格式. 唯一本地单播地址在 RFC4193 中被完整地标准化了.
在单播地址空间中, 为唯一本地地址 (ULA) 保留的部分是 FC00::/7. 图 2-4 给出的 ULA
结构包括下列元素.
L 确定分配策略. 目前只有值 1(FD00::/8)在用, 指定一个本地分配.
全局 ID 是一个 40 位的标识符, 确保了地址的全局唯一性. 它是伪随机产生的并且不必是序列化的. 因为 ULA 不应被全局选路, 它们就不必汇聚, 所以序列化的全局 ID 就不必要.
子网 ID 为本地域管理者提供了一个资源, 能够用来在站点内定义一个层次化的寻址方案.
接口标识符对所有单播地址其合义是相同的, 符合修改的 EUT-64 格式, 具有 64 位长度.
ULA 必须在预定义的域范围内使用, 该域代表了这些特定地址的本地范围. 使用 ULA 作为 SA 或 DA 的流量不应允许穿过域边界. 因为没有地址冲突, ULA 使得互连不同的本地域变得容易. 管理不连续的站点拓扑是容易的. 连接到多个站点的路由器能够仅基于地址将它们区别开来, 因此避免了附加标签的要求. 这些例子说明了唯一本地寻址相对于站点本地寻址的优势.
全局唯一地址(GUA)
全局唯一地址定义用于 IPv6Internet. 它们是全局唯一的和全局可路由的. 如 RFC 3587 中所描述, 保留用作全局范围通信的 IPV6 地址, 且由它们的高 3 位设置为 001(2000::/3)来识别.
提供足够多的全局可访问之地址的 IPV6, 主要目标是通过使用更多地址位来完成的. 附加的长度能够导致如下开销: 通过更长的查找, 显著增大的路由选择表和更大的路由选择更新 (因为和 IPV4 相比存在更多网络的可能) 影响路由选择过程. 雪上加霜的是可能成为现实的, 即 IPV6 网络期待拥有两个或多个共存的寻址机制, 变得明朗的是 IPV6 路由器将需要某些帮助. 提供需要的方法之一是在前缀汇聚上实现并增强强制规则. 这样的规则和策略将减少路由选择表的尺寸并缩短占据路由选择表多数前缀的长度.
在开发 GUA 的一个灵活的结构上已经投入了很多努力, 该结构将使容易的汇聚变得简单. 从 RFC2373 开始, 增强粒度化的地址结构以反映不同层次的汇聚. 在最后, 确定了通过强制的分配策略以增强合适的汇聚并确定了一个更简单的地址结构, 这些已在 RFC 3587 中规范, 如图 2-5 所示.
全局单播地址的组成部分如下:
全局路由选择前缀――由 Internet 地址授权委员会 (IANA) 为一个服务提供商分配该前缀的一部分, 然后服务提供商为其用户分配一个子空间; 基于 RFC 3177 建议, 其长度是 48 位或更短;
子网标识符―― 一个组织从其服务提供商处接受一个前缀, 其中全局路由选择前缀标识服务提供商 (SP) 和 SP 内的组织, 子网标识符标识其网络的组织结构;
接口标识符 - 地址的低 64 位用来标识节点在一条链路上的接口.
注释: 在一个给定接口上, 全局单播地址极可能与其他类型的单播地址共存. 例如, 在一个企业内的用户需要在私有内部网内和 Internet 上的资源交换信息. 这意味着私有网络内的一台主机的接口能够被分配两个地址, 其中一个用于与私有网络内的其他主机和资源通信 (可能是唯一本地地址), 另外一个用于与私有网络外部的主机和资源通信(全局唯一). 对于运营和管理的目的, 一个接口上各种地址类型的元素(字段) 间的相互关联也许是有意义的. 在本例中, 全局单播地址 (GUA) 和唯一本地地址 (ULA) 也许使用相同的接口标识符或者甚至是相同的子网标识符.
特殊用途地址
特殊单播地址不携带范围信息, 因此将它们从其他单播地址独立出来, 进行单独讨论.
两个基本地址具有 lPV6 运营的意义:
非指定地址不分配给任何接口. 但是, 没有 IPV6 地址的设备或它们的 IPV6 地址在链路本地内还没有被证明是惟一的情况下, 这些设备将非指定地址作为 SA. 非指定 lPv6 地址将全部 128 位设置为 0. 它能够表示为 0:0:0:0:0:0:0:0, 或压缩形式的:: .
回环地址被每个节点用来指其自身, 它类似于 IPv4 中的 127.0.0.1 地址. 在 IPv6 中, 回环地址将其前 127 位全部设置为 0, 最后位设置为 1. 它能够表示为 0:0:0:0:0:0:0:1, 或压缩形式的::1.
其他两种特殊地址类型与 IPV4 和 IPV6 共存相关. 开发了两种机制将 IPV4 地址映射到 IPV6 地址:
IPv6 任播地址(Anycast Address):
IPV6 任播地址格式和 IPV6 单播地址相同. 用来标识一组接口的地址. 一般这些接口属于不同的节点, 发往任播地址的报文被送到这组接口中与其最近的接口.
任意播是多个设备共享一个地址, 分配 IPv6 单播 (unicast) 地址给拥有相同功用的一些设备. 发送方发送一个以任意播为目标地址的包, 当路由器接受到这个包以后, 就转发给具有这个地址的离它最近的设备. 单播地址用来分配任意播地址, 对于那些没有配备任意播的地址就是单播地址; 但是当一个单播地址分配给不止一个接口的时候, 单播地址就成了任意播地址.
例如: Mobile 方面的特性, 移动设备漫游到其他区域, 不必接人原始的接入点, 只需要找到
最近的即可.
IPv6 多播地址:
由于 IPv6 没有广播地址, 在控制平面多播将之代替, 因此多播成为 IPv6 网络运营的一个关键部分. 更大的地址空间提供了足够的全局唯一多播组地址, 方便了多播服务的部署.
4 位标志 (flag) 字段中的 3 位目前在使用:(RFC 定义 T,P,R)
永久分配组摇地址, 低位 T 设置为 0; 对于非永久分配的组播地址, 其 T 位设置为 1.
P 位, 表明组播地址是否基于单播前级构建的(足设为 1, 或设为 0).
R 位, 如果设置为 1, 则表明组播组地址包含服务这个组的 RP 的单播地址.
剩下的第四标志位为未来用途保留, 目前设置为 0.
注意: P 位设置为 1 表明组描地址是从一个单播地址构建的, 因为单播地址被认为具有有限的生命存活期, 由其产生的组播地址就不能是永久分配的. 这意味着 P 位设置为 1, 要求 T 位也应设置为 1.
基于单播前缀产生全局惟一 IPV6 组播地址机制, 如图 2-10 所示.
被请求节点的组播地址
被请求节点的组播地址提供了当仅知道链路本地上的一台主机的第 3 层单播地址时, 和它联系的机制. 这个地址类型是针对分配给一个接口的每个单播和任意播前资产生的. 地址格式是 FF02:1:FF00:0000/104, 其低 24 位与产生它的单播地址或任意播地址相同. 它代表了标识链路本地组播组的一个确定方式, 具有某个给定 IPV6 单播地址的主机一直在侦听这个组. 如果建立到主机 (Mac 地址) 的单播连接所需要的信息不全, 通过组播到其被请求节点的组播地址仍然能够到达目的地.
基本的 IPV6 控制平面过程, 如第 2 层到第 3 层地址映射和重复地址检测 (DAD) 使用这个类型的地址. 程序清单 2-6 基于图 2-12 所示的格式构建了一个被请求节点的组播地址.
IPv6 组播地址分配
IPv6
来源: http://www.bubuko.com/infodetail-2939050.html