You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DNS轮询多AD服务器时Kerberos报Server not found in Kerberos database错误如何解决

错误触发原因
  • Kerberos认证严格依赖**服务主体名称(SPN)**与目标服务器的对应关系:使用DNS轮询的公共域名/虚拟IP请求Kerberos票据时,AD作为KDC会校验请求的服务主体是否和自身Kerberos数据库中注册的SPN匹配。你配置的轮询入口域名/虚拟IP并未提前在所有AD的Kerberos数据库中注册对应SPN,因此KDC匹配失败就会抛出Server not found in Kerberos database报错。
  • 直接连接单台AD时使用的是该AD本身的主机名/实际IP,这类信息默认已经在AD的Kerberos数据库中注册了对应SPN,因此可以正常完成校验。
  • Kerberos本身无DNS轮询感知逻辑,不会自动把轮询入口地址映射到后端实际AD的SPN记录,所有请求的目标地址必须和KDC中注册的SPN完全匹配才能通过校验。
解决方案
  • 方案1:为轮询DNS的入口域名/虚拟IP注册统一SPN
    使用域管理员权限执行命令:setspn -S DNS/<你的轮询DNS域名> <域名称>\krbtgt,替换占位符为实际环境参数后执行,等待AD域内SPN记录完成全局同步后再尝试认证即可。
  • 方案2:调整Kerberos客户端配置启用反向解析校验(适用于类Unix客户端)
    修改krb5.conf配置文件,在[libdefaults]配置段新增参数rdns = true。开启后客户端会先对轮询返回的AD实际IP做反向解析,拿到对应AD的真实主机名后再请求票据,可直接匹配到AD本身已注册的SPN。
  • 方案3:使用AD域内置的SRV记录替代自定义round-robin DNS
    AD默认会自动发布Kerberos相关的SRV记录(_kerberos._tcp.<你的域名>、_kpasswd._tcp.<你的域名>等),客户端会自动根据SRV记录的权重、优先级轮询可用的AD服务器,无需额外配置自定义轮询DNS,从根源避免SPN不匹配问题。

内容的提问来源于stack exchange,提问作者MargoNULL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:06:02