PowerScale:OneFS:当 AD 域显示“离线”时,客户端无法进行身份验证或连接到节点
Summary: 脱机 Active Directory 提供程序会影响使用它进行身份验证的任何客户端,而不考虑协议。当 AD 显示为离线时,解决群集节点身份验证问题的故障处理步骤如下。
Symptoms
客户端无法向群集中的部分或所有节点进行身份验证,从而导致间歇性或完全数据不可用 (DU)。如果用户依赖离线 AD 提供商,则通过任何协议进行的访问都会受到影响,但我们看到的最常见的协议是 SMB。在许多情况下,可能会导致此情况出现,无论是在群集范围内还是在特定于节点的基础上。当 本地安全机构子系统服务 (LSASS) 失去与域控制器的连接时,SMB 客户端无法连接到群集中的节点。
当 LSASS 失去与域控制器的连接时, /var/log/lsassd.log 文件中将显示类似于以下内容的错误:
2012-06-11T12:58:42-07:00 <30.6> cluster1-13(id13) lsassd[66251]: 0x28f016a0:Domain 'domain.com' is now online
2012-06-11T13:03:57-07:00 <30.6> cluster1-13(id13) lsassd[66251]: 0x28f016a0:Domain 'domain.com' is now offline
2012-06-12T21:05:03-07:00 <30.6> cluster1-13(id13) lsassd[66251]: 0x28f016a0:Domain 'domain.com' is now online
2012-06-13T16:35:03-07:00 <30.6> cluster1-13(id13) lsassd[66251]: 0x28f016a0:Domain 'domain.com' is now offline
2012-06-13T16:40:03-07:00 <30.6> cluster1-13(id13) lsassd[66251]: 0x28f016a0:Domain 'domain.com' is now online
或者,如果使用 isi auth status 查看 Active Directory 的状态,则可能会显示类似的输出:
testcluster-1# isi auth status
ID Active Server Status
-----------------------------------------------------------------------
lsa-activedirectory-provider:TESTDOMAIN.COM dc1.testdomain.com offline
lsa-local-provider:System - active
lsa-file-provider:System - active
-----------------------------------------------------------------------
Total: 3
使用与现有群集相同的机器帐户将不同的群集添加到同一 AD 域:
如果新群集最近已加入同一域,请验证新群集未使用与原始群集相同的计算机帐户。在新群集上运行以下命令(并显示域在线)以验证主机名和计算机帐户:
# isi auth ads view <domain>
(Relevant output)
Hostname: isitest.example.lab.com
<snipped>
Machine Account: ISITEST$
机器账号密码/从 AD 中删除的账号:
如果群集已加入 Active Directory,但现在在 isi auth 状态下不显示任何内容( lsa-activedirectory 不显示任何内容),请检查计算机帐户是否已在 Active Directory 端删除。群集可以重新加入域,以在 Active Directory 中创建新的计算机帐户并恢复身份验证。
DNS 拒绝 SRV 查找。如果发生这种情况,请验证 DNS 是否配置为接受来自相关节点 IP 的查询。
dig @<DNS IP> SRV _ldap._tcp.dc._msdcs.domain.com
; <<>> DiG 9.10.0-P2 <<>> @<DNS IP> SRV _ldap._tcp.dc._msdcs.<domain>
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 52396
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_ldap._tcp.dc._msdcs.<domain>. IN SRV
;; Query time: 0 msec
;; SERVER: <IP>#53(<IP>)
;; WHEN: <date>
;; MSG SIZE rcvd: 59
Cause
由于硬件问题、连接问题或 DNS 缓存中毒,本地安全机构子系统服务 (LSASS)
可能会失去与连接的域控制器的连接。或者,这可能是因为节点已添加到群集,并且该节点没有网络连接。如果域控制器因任何原因不可用,则在节点重新启动或 LSASS 重新启动时,某些域信息可能仍未填充。通常,主域的域 GUID 保持未填充状态。这会导致连接到该节点的用户无法完成身份验证。
Resolution
解决方法 1 - 调查硬件连接问题:
- 在 /var/log/messages 文件中查找硬件连接问题。日志文件中的消息指示节点网络端口是否处于“Up”状态。查看群集中其他节点上的 /var/log/messages 文件,以确定是否在群集范围内出现网络连接问题。
- 查看域控制器中的系统和应用程序事件日志。这些日志文件可能包括与网络连接中断有关的驱动程序或硬件问题方面的错误。
解决方法 2 - 调查 DNS 缓存中毒:
如果网络连接问题与硬件无关,则应检查 Active Directory 域的 _mscds DNS 区域的服务 (SRV) 记录。从群集到 DNS 服务器的 DNS 请求的数据包跟踪显示不正确或缺少的信息。如果在 SRV 记录中注册了不正确的信息,或者如果域控制器 没有_mscds DNS 区域中的所有记录,则群集中的节点会在尝试联系域控制器时报告域处于脱机状态。使用当前信息更新 SRV 记录或更改为其他 DNS 服务器应解决 DNS 缓存中毒问题。
示例 1
此数据包跟踪显示返回到群集中节点的 DNS 服务器和 SRV 记录的列表。SRV 记录信息不可用于 dc2.domain.com。
不。Time Source Destination Protocol Length Info
5 16:40:19.061003 1.1.1.1 1.1.1.2 DNS 110 Standard query SRV _ldap._tcp.dc._msdcs.domain.com
6 16:40:19.062626 1.1.1.2 1.1.1.1 DNS 1270 Standard query response SRV 0 100 389 dc1.domain.com SRV 0 100 389 dc2.domain.com SRV 0 100 389 SRV 0 100 389 dc3.domain.com
7 16:40:19.063146 1.1.1.1 1.1.1.2 DNS 87 Standard query A dc2.domain.com
8 16:40: 20.797403 1.1.1.2 1.1.1.1 DNS 146 Standard query response, No such name
示例 2
在此数据包跟踪中,节点查找 SRV 记录以查找 _ldap._tcp.dc._msdcs.domain.com,但不会向客户端返回任何信息。
不。Time Source Destination Protocol Length Info
15 16:40:21.458636 1.1.1.1 1.1.1.2 DNS 100 Standard query SRV _ldap._tcp.dc._msdcs.domain.com
16 16:40:21.783630 1.1.1.2 1.1.1.1 DNS 100 Standard query response, No such name
在这种情况下,请与您的网络和 Active Directory 团队合作,确保 DNS SRV 记录准确无误并解析到域控制器。
解决方法 3 - 刷新 LSASS:
- 打开与节点的 SSH 连接,然后使用“root”帐户登录。
- 验证身份验证守护程序未连接到 AD,其中 <nodeID> 是最近添加的节点的节点号:
isi_for_array -n <nodeID> 'isi auth ads list'
如果节点已加入域,则会显示类似于以下内容的输出:
cluster-1: Name Authentication Status DC Name Site
cluster-1: --------------------------------------------------------------------
cluster-1: LAB.EXAMPLE.COM Yes online - Default-First-Site-Name
cluster-1: --------------------------------------------------------------------
cluster-1: Total: 1
- 验证是否未填充域 GUID。如果 lsass 未正确检索其配置,则不会填充域 GUID 值:
isi_for_array -n <nodeID> /usr/likewise/bin/lw-lsa get-status | egrep -A 12 "Domain:" | egrep "Domain (SID|GUID)"
将显示类似以下内容的输出:
cluster-1: Domain SID: S-1-5-21-584721463-3180705917-972194821
cluster-1: Domain SID: S-1-5-21-584721463-3180705917-972194821
cluster-1: Domain GUID:
- 在新添加的节点上运行以下命令:
isi_for_array -n < node_range> /usr/likewise/bin/lwsm refresh lsass
- 验证新节点是否报告它已连接到 AD 提供程序。
isi_for_array -n < node_range> 'isi auth ads list -v'
- 确保显示 GUID 值:
isi_for_array -n <node_range> /usr/likewise/bin/lw-lsa get-status | egrep -A 12 "Domain:" | egrep "Domain (SID|GUID)"
将显示类似以下内容的输出:
cluster-1: Domain SID: S-1-5-21-584721463-3180705917-972194821
cluster-1: Domain SID: S-1-5-21-584721463-3180705917-972194821
cluster-1: Domain GUID: 61b2a8c6-af25-1941-8d57-59073b7ceb19
- 在 Windows 客户端上,通过映射驱动器(指定新添加的节点的 IP 地址),验证用户是否可以向群集进行身份验证。
解决方法 4 - 重新启动 LSASS:
1.打开与最近添加的节点的 SSH 连接,然后使用“root”帐户登录。
2.列出可用的域控制器,其中 <domain_name> 是群集加入的域的完全限定域名 (FQDN):isi auth ads trusts controllers list --provider=<domain_name> -v
3.强制连接到域控制器,其中 <domain_name> 是群集加入的域的 FQDN,dc_name <> 是域控制器的 FQDN:isi auth ads modify <domain_name> --domain-controller <dc_name> --v
4.刷新 AD 状态:isi_classic auth ads status --refresh --all
状态应更改为联机,如下所示:
Active Directory Services Status:
Mode: unprovisioned
Status: online
Primary Domain: LAB.EXAMPLE.COM
NetBios Domain: LAB
Domain Controller: dc1.lab.example.com
Hostname: cluster.lab.example.com
Machine Account: CLUSTER$
5.如果状态仍显示为离线,请重新启动身份验证守护程序(请注意,这会中断对节点的身份验证长达一分钟): Single node:
pkill -f 'lw-container lsass'
Multiple nodes (nodes 1-3 here as an example):
isi_for_array -n1-3 'pkill -f "lw-container\ lsass"'
6.重复步骤 4。
7.在 Windows 客户端上,请验证用户是否可以通过映射驱动器来向群集进行身份验证,并指定重新启动 LSASS 的节点的 IP 地址。
Additional Information
域连接问题的故障处理注意事项:
如果您离开并重新加入域,请在重新加入后确认 Active Directory 提供程序显示在相关区域的身份验证提供程序列表中。
对于此 example.com 域,必须重新添加它,因为它已从“身份验证提供程序”部分中删除:
isi zone zones list -v:
Name: accesszonedev1
Path: /ifs/accesszone1
Groupnet: groupnet0
Map Untrusted: -
Auth Providers: lsa-ldap-provider:Primary, lsa-file-provider:System, lsa-local-provider:accesszone1 **No Active Directory Provider** <<<<<<<<<<<<<
NetBIOS Name: -
User Mapping Rules:
Home Directory Umask: 0077
Skeleton Directory: /usr/share/skel
Cache Entry Expiry: 4H
Negative Cache Entry Expiry: 1m
Zone ID: 2
WebUI 可能是将其重新添加并确保按所需顺序进行搜索的最简单方法。请参阅基于 OneFS 版本的适用管理指南。PowerScale OneFS 信息中心