IPv6 地址状态转换
Address lifetime (地址生存期)
每个配置的 IPv6 单播地址都有一个生存期设置,该设置确定该地址在必须刷新或替换之前可以使用多长时间。某些地址设置为“永久”并且不会过期。“首选”和“有效”生存期用于指定其使用期限和可用性。
自动配置的 IPv6 全局单播地址从 RA 获取其有效和首选的生存期分配。有效生存期是允许地址在接口上保持可用的时间段。首选生存期是指地址在接口上完全使用的时间长度,并且必须小于或等于地址的有效生存期。
Valid and preferred lifetimes(有效生存期和首选生存期)
Preferred lifetime (首选生存期)
该地址可以自由用作与其他设备进行流量交换的源地址和目标地址的时间长度。此时间跨度等于或小于分配给地址的有效生存期。如果此时间到期而未刷新地址,则该地址将被弃用,应替换为新的首选地址。在已弃用状态下,地址可以继续用作现有通信交换的目标,但不用于新交换或从接口发送的流量的来源。只要弃用的地址在其有效生存期内,新的首选地址及其已弃用的对应地址都会出现在 IPv6 相关配置信息输出中。
Valid lifetime (有效生存期)
有效生存期(即地址可用的总时间)等于或大于首选生存期。有效生存期允许在地址弃用之前开始的事务继续进行通信。但是,在此时间范围内,该地址不应再用于新的通信。如果此时间到期而未刷新已弃用的地址,则该地址将变为无效,并可能被分配给另一个接口。
注:VLAN 接口上的首选和有效生存期由接口上接收的 RA 决定。这些值不受 DHCPv6 服务器分配给地址的租用时间的影响。也就是说,无论 RA 分配的生存期处于何种状态,DHCPv6 分配的地址的租约到期都会终止该地址的使用,而路由器分配的租用地址的租约到期将终止交换机对该地址的使用。路由器分配的生存期可以通过接收新的 RA 来延长。静态配置的 IPv6 地址被视为永久地址,不会过期。
IPv6 unicast addresses lifetimes(IPv6 单播地址生存期)
Address source | Lifetime criteria |
---|---|
Link-local (链路本地) | Permanent |
Statically configured unicast (静态配置单播) | Permanent |
Autoconfigured global (自动配置全局) | Finite preferred and valid lifetimes |
DHCPv6-configured (DHCPv6 配置) | Finite preferred and valid lifetimes |
- 下面是来自不同博客不同风格的 IPv6 地址状态生存期图示,孰是孰非?
观点 1
- 图 1.1
- 图 1.2
观点 2
- 图 2.1
- 图 2.2
我更认可观点 2(如有谬误,请留言指正)。
扩展:Linux 内核网络协议栈工具 iproute
IPv6 地址状态
IPv6 地址状态 | 含义 |
---|---|
tentative | 临时状态:刚添加地址还处于地址重复检测 DAD 过程。 |
preferred | 首选状态:完成 DAD 过程,没有收到相应的 NA 报文,表示该地址没有冲突。 |
deprecated | 弃用状态:地址有一定的使用时限( valid_lft 和 preferred_lft), preferred_lft 到期后地址会变化 deprecated 状态。 该状态下的地址不能用于创建新的连接,但是原有的连接可以继续使用。 |
invalid | 无效状态:使用时限超过 preferred_lft 一段时间后仍然没有成功进行租约续约,则 valid_lft 时间到后地址状态会被设置为 invalid,表示该地址不可以再被使用。 |
iproute,或称为 iproute2,实际上是一套 Linux 内核网络协议栈工具,提供了一组用于配置网络接口、路由表、策略路由等网络参数的命令行工具。
它并不是一个单一的命令,而是由多个独立的工具组成,用于替代传统的网络管理工具(例如 ifconfig、route 等),提供更丰富的功能和更灵活的网络配置。
preferred_lft: preferred lifetime,地址为首选状态的寿命, preferred_lft 没有到期的地址可以用于正常通信使用,若有多个 preferred 地址则按照内核具体机制选择地址。
valid_lft: valid lifetime,地址有效的寿命,在 [preferred_lft, valid_lft] 时间段内该地址不能被用于新建连接,已经创建的连接继续有效。