5.2 组播地址(Multicast Address)
其中
Flags: 0001 (表示permanent)或 0000(表示临时组播组)
Scope: 表示组播组范围
范围值 | 范围 | 范围值 | 范围 |
---|---|---|---|
0 | 保留 | 8 | 组织-本地范围 |
1 | 节点-本地范围 | 9 | 未分配 |
2 | 链路-本地范围 | A | 未分配 |
3 | 未分配 | B | 未分配 |
4 | 未分配 | C | 未分配 |
5 | 站点-本地范围 | D | 未分配 |
6 | 未分配 | E | 全局范围 |
7 | 未分配 | F | 保留 |
Group ID: 组播组ID
5.2.1 一些熟知的组播地址
节点-本地范围
FF01::1 所有-节点地址
FF01::2 所有-路由器地址
链路-本地范围
FF02::1 所有-节点地址
FF02::2 所有-路由器地址
5.2.2 特殊的组播地址
Solicited-node节点地址:被请求节点组播地址,主要用于重复地址检测和获取邻居节点的链路层地址
地址构成:
前104位:FF02::1:FF/104(64个0)
后24位:单播地址的后24位
工作范围:在本地链路上有效
凡是单播地址后24位相同的接口自动加入相应的请求节点组播组!
- 作用:
- 1、在IPV6中,没有ARP。ICMP代替了ARP的功能,被请求节点的组播地址被节点用来获得相同本地链路上邻居节点的链路层地址
- 2、用于重复地址检测DAD,在使用无状态自动配置将某个地址配置为自已的IPV6地址之前,节点利用DAD验证在其本地链路上该地址是否已经被使用。
5.3 任播地址(Anycast Address)
IPv6地址新类型: IPv6中一个任播地址是分配给不同节点的多个接口的,就是说有若干个网络接口可分配同一个任播地址。当有一个数据包传送给这个地址时,路由器只将此数据包转发到其中一个“最近距离”的接口上就结束了,并不是每个接口都收到此数据包。(这一点上也与IPv6多播不同。) 另外,单从IPv6的地址形式上是无法区分单播与任播地址的
- 目标地址为任播地址的数据报将发送给最近的一个接口
- 适合与One-to-One of Many(一对多之一)的通讯场合
- 仅能做目标地址,且仅分配给路由器
6.一台IPv6主机,一个接口上可以具有的IPv6地址
名称 | 地址 |
---|---|
链路本地地址 | FE80::/10 |
环回地址 | ::1/128 |
所有节点组播地址 | FF01::1(本地接口范围),FF02::1(本地链路范围) |
分配的可聚合全球单播地址 | 2000::/3 |
被请求节点组播地址 | FF02::1:FF00:/104 |
主机所属组的组播地址 | FF00::/8 |
7.IPv6地址配置
- 手工配置
- 无状态地址自动配置(ND协议)
- 有状态地址自动配置(DHCPv6)
默认情况下,IPv6主机可以为每个接口配置一个链路本地地址
7.1 无状态地址自动配置(SLAAC)
无需任何配置即可与外界通信
无状态地址自动配置基于对主机使用的IPv6地址的如下结构:由前缀 和 接口ID 组成
- 接口ID:EUI-64
- 前缀一般是路由器前缀,运行一个无需主机配置的协议即可。
无状态地址自动配置用到的消息
Router Solicitation (RS):促使路由器发送RA消息
Router Advertisement (RA):向主机通告前缀等信息
两种消息都是以ICMP报文形式出现,也是5种ND协议消息中的两种
无状态地址自动配置中的3个机制
(1)路由发现
主机选择默认网关
主机发现前缀,生成前缀列表
参数发现:发现相关参数的过程,如MTU,跳数限制、地址配置方式等
路由发现实例
- 主机请求——触发路由器
注意要点:
- 节点启动最多只能发送3个RS,避免RS泛滥
- 主机收到路由器RA之后,自动设置默认路由器,建立默认路由器列表、前缀列表及其它参数
- 路由器会主动周期性发送RA(默认值200秒)
- 关于地址的生存期:自动配置的IPv6地址在系统中you一个生存周期,跟++优先时间++和++有效时间++有关,对应4种状态
RA消息种prefix选项
- 在Preferred Lifetime周期内的前缀生成的地址,任何上层应用都可不受限制地使用
- 在超过Preferred Lifetime 但未超过ValidLifetime周期内的前缀生成的地址, 正在使用该地址的上层应用可继续使用, 但任何新的上层应用不能使用这个地址
- 在超过Valid Lifetime周期内的前缀构造的地址,
任何上层应用都不能使用该地址
Attention:一个链路本地地址的优先时间和有效时间是无限的,即永不超时
- RA消息中的M和O选项
(2)重复地址检测(Duplicate Address Detection:DAD)
节点确定即将使用的地址是否在链路上唯一的过程,对于所有的IPv6地址,不管是自动配置还是手动配置,都必须要通过DAD,DAD机制通过ND中的NS/NA两种消息实现
基本思想
一个地址在分配给一个接口之后且通过重复地址检测之前称为tentative地址,即试验地址
- 节点组播发送Neighbor Solicitation
- 若接收到Neighbor Advertisment,就证明地址重复
- 若尝试若干次请求,没有收到邻居通告,即可启用该地址
实例
若NS接受者发现目标域中地址对它而言是临时的,则主动放弃使用该地址
若NS接收者发现目标域中地址是一个它正在使用的地址,则发送NA消息,请求发起者将放弃使用该临时地址
(3)前缀重新编址
允许从旧前缀平稳过渡到新前缀,提供对用户透明的网络重新编址能力
当前缀重新编址的时候,路由器会继续通告当前前缀,只是优先时间和有效时间被减到接近0,同时路由器开始通告新的前缀,此时链路中至少有两个前缀共存
当节点收到这样的RA的时候,会发现当前前缀的生命周期较短,停止使用;同时开始使用新的前缀配置接口,并进行DAD,通过后,获得新的地址使用。
Attention:
在转换期间,节点有两个单播地址使用。旧的地址是基于旧的前缀,用以维持以前已经建立的连接。新的地址是基于新的前缀,用来建立新的连接。当旧的前缀的有效时间递减为0时,旧的前缀完全废止,此时,RA中只包含新的前缀
小结:
4中ND协议消息交互
7.2 有状态地址自动配置(DHCPv6)
DHCPv6:Dynamic Host Configuration Protocol for ipv6
在有无状态地址自动配置的情况下,仍然需要DHCPv6的原因:
- 需要动态指定DNS服务
- 不想MAC地址成为IPv6地址的一部分
- 需要良好扩展性
特点
使用UDP来交换报文,端口546/547(v4:67/68),使用本地链路地址或其它机制获得的地址来发送和接收DHCPv6报文。没有了广播, 客户机只需发送给保留的链路范
围组播地址,取消了DHCPv4中的Discover和Offer消息
DHCPv6获取地址和参数的典型过程
- 4步交互地址分配
- 快速地址配置
只需要两个信息交互
- 当客户端已经记录了地址和其他配置信息
- 只需要DNS server、NTP Server等信息
DHCPv6重配置机制
8.IPv6地址子网规划
IPv4地址进行子网划分是为了管理地址稀缺性
IPv6子网划分是根据路由器数量以及支持的网络来构建寻址分层结构
最后更新: 2018年11月09日 20:06
原始链接: https://silence-linhl.github.io/blog/2018/10/25/IPv6-2/