首页/网络/BGP 与广域网速查/rekey 与 reauth:密钥更新与重新认证
IPsec VPN60 条

rekey 与 reauth:密钥更新与重新认证

rekey 只换密钥、保留 SA(RFC 7296 的 CREATE_CHILD_SA 流程);reauth 重跑 IKE_AUTH、重新校验身份;IKEv1 只有 rekey 概念。

BGP 与广域网速查网络更新于 2026-10-13

两种「更新」不是一回事

rekey 是密钥轮换:按 RFC 7296 的流程重新协商新的密钥材料,但 SA 与身份关系延续,业务通常感觉不到中断。reauth 则是完整的重新认证:重跑一次 IKE_AUTH,重新校验双方身份,代价是更高的中断风险,尤其在依赖外部认证服务器或严格策略的环境里。IKEv1 只有 rekey 概念,reauth 属于 IKEv2 的能力。两者的周期由各自的定时参数控制,实践中的原则是让 reauth 周期远长于 rekey,或者直接关闭 reauth,把密钥更新的职责交给 rekey 完成。

基本信息

rekey仅轮换密钥,SA 与身份延续,影响小
reauth完整重新认证,重新校验身份,中断风险更高
控制参数rekey 时间与 reauth 时间分别设置
协议差异IKEv1 只有 rekey,reauth 属于 IKEv2
建议取值reauth 周期明显长于 rekey,或关闭 reauth

典型使用场景

  • 合规要求定期换密钥:通过 rekey 周期满足要求而尽量不影响业务
  • 排查隧道周期性中断:确认中断周期是否与 reauth 或 rekey 时间吻合
  • 两端参数对齐:避免一方频繁重协商导致另一方也被拖入重建
  • 对接外部认证的隧道:评估 reauth 是否会因认证服务器响应慢而失败
  • 调整生存期:按业务对中断的容忍度选择更保守的参数

参数示例

参数示例
# strongSwan 配置:轮换与重认证分开设置
connections {
 site2site {
  rekey_time = 1h       # 每小时轮换一次密钥
  reauth_time = 0      # 0 表示不启用重新认证
 }
}
swanctl --list-sas | grep -i rekey   # 查看下次轮换时间
show crypto ikev2 sa | include rekey   # Cisco 侧观察生存期

参数与影响

参数作用设置不当的后果
rekey 时间密钥轮换周期过短会频繁重协商,产生抖动
reauth 时间重新认证周期过短会在严格策略下反复中断业务
生存期SA 最长存活时间两端差异过大导致交替重建
两端一致性双方参数需协调差距过大时按各自节奏重协商,形成额外抖动
排查周期性中断时,把中断间隔与 rekey、reauth、生存期三组时间对照,往往一眼就能看出是哪个定时器在起作用。
把 reauth 当作无关紧要的过场配置是有风险的:它会重新触发身份校验,遇到认证服务慢或策略收紧时可能直接导致隧道无法恢复。

易错点

  • 把 reauth 当无害配置:它会重新触发认证,严格策略下可能中断业务
  • 两端 rekey 周期差异过大:双方各自按自己的节奏重协商,出现额外抖动
  • 误以为 IKEv1 也支持 reauth:协议层面不存在该能力,按错误模型排障会走偏
  • 生存期设置得很短:重协商频率升高,弱设备上可能出现 CPU 波动

数据来源与参考

  • RFC 7296: IKEv2 第 2.8 节
  • strongSwan: rekey/reauth 参数
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌