笔记02:IPv6地址分类

IPv6地址分为3类:单播、任播和多播。IPv6中还有特殊的未指定地址和环回地址。

1. 单播地址

单播地址用于标识一定范围内的单个(唯一的)网络接口。只要单播路由拓扑无误,去往某个单播地址的数据包就可以被发送到单一的接口。通常情况下,前缀长度(类似于IPv4中的网络号部分)和接口标识符(类似于IPv4中的主机部分)都是64位。为了能负载均衡,RFC 4291支持在多个接口上使用相同的地址,这些接口在IPv6环境中会作为同一个接口出现。

单播地址又可分为4类:全球单播地址、链路本地地址、唯一本地地址(站点本地单播地址)、内嵌IPv4地址的过渡地址。

1.1 全球单播地址

IPv6全球单播地址相当于IPv4的公有地址,在全球IPv6 Internet上可聚合、可路由。目前已分配的全球单播地址主要是前3位是“001”的地址,即2000::/3,其范围是:

2000::~
3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF。

1.2 链路本地地址

链路本地地址类似于在RFC 3927中定义的、前缀为169.254.0.0/16的IPv4链路本地地址。链路本地地址以fe80::/64开头,即将前64位设置为1111 1110 1000 0000...0000的地址,这些地址用于节点与同一链路上的邻居节点通信——以路由器为界的单一链路范围内,路由器网关不会将来自本地链路的数据转发到别的出口。自动配置机制、邻居发现机制等都会用到链路本地地址。

通常情况下,链路本地地址都是自动配置的,即只要接口启用了IPv6协议,就会自动生成fe80::/64+64位接口ID形式的IPv6地址。

1.3 唯一本地地址

唯一本地地址是IPv6中的私网地址,它类似于RFC 1918中定义的不可路由到互联网上的私网IPv4地址。唯一本地地址主要以FD00::/8开头(之前划分的也叫做站点本地单播地址,已被取代)。

1.4 内嵌IPv4地址的过渡地址

主要用于从IPv4到IPv6的过渡——在IPv4网络中建立IPv6自动隧道,将各个IPv6网络连接起来——IPv6过渡技术的工作原理是部署双协议栈节点(路由器网关或主机本身),在IPv6侧使用过渡地址,在IPv4侧提取过渡地址中的IPv4地址信息,构建IPv4报头,然后对IPv6进行封装,从而在IPv4网络中通过这种自动隧道实现IPv6网络的互联。

常见的IPv6过渡地址有:
::FFFF/96 + 32位IPv4地址;
6to4使用的过渡地址:2002(16位) + IPv4地址(32位) + 子网ID(16位) + 接口ID(64位);
ISATAP隧道使用的过渡地址:固定前缀(64位) + 0000:5EFE(32位) + IPv4地址(32位)。

1.5 未指定的地址

未指定的地址(0:0:0:0:0:0:0:0或::)相当于IPv4的未指定地址0.0.0.0,通常在目标地址还未确定时充当源地址使用。未指定的地址不能分配给接口或是作为目标地址使用。

1.6 环回地址

将环回地址(0:0:0:0:0:0:0:1或::1)分配给环回接口,使得节点能够向自己发送数据包。该地址相当于IPv4的环回地址127.0.0.1。发往环回地址的数据包永远不应该通过链路发送或通过IPv6路由器进行转发。

2. 任播地址

任播地址在地址格式上与单播地址相同,为了与单播地址区分,任播地址一般约定64位接口ID全是0。与单播地址不同,一个任播地址可以被分配给多个接口。去往一个任播地址的数据包会被路由设备发送到最近的一个分配了该任播地址的接口。因此,路由设备就必须知道哪个接口分配了任播地址,以及这些接口的以路由为度量的距离。

根据RFC 4291的定义,任播地址只能充当目标地址,且只能分配给路由器使用。任播地址取自单播地址的空间,因此它的范围就是单播地址类型的范围。在使用任播地址时一定要谨慎,需要事先约定哪些地址作为任播地址,不然网络中就会出现地址冲突。

3. 组播地址

IPv6组播地址的前8位设定为 1111 1111——以FF开头。组播地址不能充当源地址或路由扩展头部的中间目的地址——只能用作目的地址,用来标识多个接口,它对应于一组接口的地址,且这些接口通常分属于不同的节点。由源节点发送到组播地址的数据包会被由该地址标识的每个接口所接收。

在IPv6中,组播流量的运作方式与IPv4中相同。任意位置的IPv6节点都能侦听任意IPv6组播地址上的组播流量。IPv6节点能同时侦听多个组播地址。节点随时都能加入或脱离某个组播组。

IPv6组播地址替代了所有形式的IPv4广播地址。

IPv6组播地址的结构如下图:

  • 标记:此字段长度为4位。其中的最后1位(T)标记,0表示永久——由IANA分配的永久(众所周知的)组播地址;1表示临时。
  • 范围:指定组播数据需要被发往哪个IPv6网络范围。此字段长度为4位。除了使用组播路由协议提供的信息外,路由器还要使用组播范围段来判定组播流量能否发送出去。目前,范围字段定义的十六进制数主要是:

“1”表示本地接口范围;

“2”表示本地链路范围;(较常用)

“3”表示本地子网范围;

“4”表示本地管理范围;

“5”表示本地站点范围;

“8”表示组织机构范围;

“E”表示全球范围。

3.1 常见组播地址及含义:

组播地址

含义

FF01::1

本地接口范围的所有节点

FF01::2

本地接口范围的所有路由器

FF02::1

本地链路范围的所有节点

FF02::2

本地链路范围的所有路由器

FF05::2

在一个站点范围内的所有路由器

3.2 被请求节点组播地址

被请求节点组播地址的前104位是固定的,即FF02::1:FF00:0000/104,后面的24位是某个单播或任播地址的低24位。被请求节点组播地址主要用于替代IPv4的地址解析协议(Address Resolution Protocol,ARP)来获取邻居的MAC地址以生成邻居表,并用在局域网中进行地址冲突检测。

例如,分配给节点A的链路本地地址为FE80::2AA:FF:FE28 :9C5A ,同时节点A也会在相应的请求节点组播地址FF02::1:FF28 :9C5A 上进行侦听(下划线是指该请求节点组播地址低24位使用的是链路本地地址的低24位)。由于本地链路上的节点B必须将节点A的链路本地地址FE80::2AA:FF:FE28:9C5A解析为相应的链路层地址,因此节点B就会向请求节点组播地址FF02::1:FF28:9C5A发送邻居节点请求信息。由于节点A会在这个组播地址上侦听,因此它就会处理这个邻居节点请求信息,并发送一个单播的邻居节点通告信息作为回应。

3.3 组播地址到MAC地址的映射

而在IPv6中,映射关系是前16位为固定的十六进制3333,然后再加上组播地址的低32位,这构成了48位MAC地址。例如,组播地址是FF02::1111:AAAA:CCCC,则对应的MAC地址就是33-33-AA-AA-CC-CC。(在IPv4中,其映射关系是前24位固定为01-00-5E,第25位为0,然后再加上组播地址的低23位,从而构成MAC地址。)

以太网的网络适配器维护着一张其感兴趣的目标MAC地址列表。若收到含有其感兴趣的目标MAC地址发来的以太网帧,网络适配器就会将其发送到上层进行进一步的处理。在默认情况下,这个表中包含了MAC层的广播地址(0xFF-FF-FF-FF-FF-FF)和分配给适配器的单播MAC地址,也可以加入或移除组播地址。

例如,一个MAC地址为00-AA-00-3F-2A-1C(链路本地地址为FE80::2AA:FF:FE3F:2A1C)的IPv6主机可以将下列组播MAC地址添加到自己以太网适配器的MAC地址列表中。

  • 地址33-33-00-00-00-01 :该地址对应的是链路本地范围内所有节点的组播地址FF02::1(完全展开后为FF02:0000:0000:0000:0000:0000:0000:0001 )。
  • 地址33-33-FF-3F-2A-1C :该地址对应的是请求节点地址FF02::1:FF3F:2A1C 。
  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值