IPv6 RA SLAAC 前缀生命周期

网络工程 ipv6
2021-07-16 23:11:56

据我了解,一旦主机安装了前缀,就无法更改前缀生命周期。如果我缩短前缀的有效/首选计时器,它对已经在SLAAC 中使用前缀的主机没有影响,直到主机尝试更新地址?与 RA 生存期(用于默认网关)不同,RA 生存期在收到 RA 消息后得到延长。有人可以将我指向 RFC 部分以了解前缀/默认网关更新过程吗?

我想要实现的是在有效生命周期到期之前通过网络删除一个SLAAC前缀,有什么办法吗?路由器端或访问/主机端。我在 IOS 12.4 上进行了测试,即使关闭/不关闭接口也不会删除从 SLAAC 学到的前缀。我可以配置另一个前缀,但我不希望主机继续使用旧的。

我想我在某处看到带有前缀 life=0 的 RA 可以标记要删除的前缀,这是 RFC 还是某些特定于供应商的东西?如果有这样的事情,如果某些主机错过了第一个,我该如何强制重新生成此消息?

配置 RA/前缀生命周期的指南是什么?它可以有多短?HA 设计考虑?

谢谢

2个回答

对于使用 SLAAC (RFC 4862) 的前缀分配,生命周期完全由第5.5.3节中的描述控制路由器广告处理为了简化:

  1. 如果前缀尚未使用,您可以将它与已发出信号的首选和有效生命周期一起使用,没有限制。
  2. 如果前缀已被使用,则使用信号值更新首选生命周期,没有限制。对于有效生命周期,signaled必须将信号通知的有效生命周期 ( ) 与当前剩余的有效生命周期 ( remaining) 进行比较。
  3. 如果remaining<signaled:只是更新它,没有限制。
  4. 如果signaled<remaining:当心,这可能是 DOS 攻击,只有在signaled > 2h(或源已通过身份验证)时才更新它2 小时应该足够让带有正确计时器的有效 RA 出现。

简而言之,在弃用时,您可以确保 SLAAC 地址不再用于新连接(将首选生命周期设置为 0),但只要有效生命周期在运行,您就不能终止正在进行的会话。当然,各种实现可能会提供管理接口来强制删除地址,但这不在 RFC 范围内。

就 RFC 而言,您可以将首选生命周期设置为任何内容,尽管0没有意义。有效生命周期不能被0弃用。首选必须始终大于有效。所以你把它放在什么时间是你自己的选择,取决于你的用例。

RFC 4862 中关于前缀生命周期的声明与 SLAAC 无关,这纯粹是关于链路上前缀在执行邻居发现时的有效期有多长。

RFC4861 第 6.3.4 节。处理收到的路由器广告: - 如果作为先前收到的广告的结果前缀已经存在于主机的前缀列表中,则将其失效计时器重置为前缀信息选项中的有效生命周期值。如果新的 Lifetime 值为零,则立即超时前缀(参见第 6.3.5 节)。

但是,主机不会立即忘记前缀,至少如果实现是健壮的并且遵循 RFC4862。前缀生命周期处理还有其他规则:请参阅 RFC4862 第 5.5.3 节。路由器广告处理,点 e) 更具体。前缀丢弃前有 2 小时的“安全”期。

选择生命周期时,保持首选生命周期 <= 有效生命周期!