本文讨论在域加入操作期间遇到的错误代码0x40。
症状
尝试将计算机加入域时,会收到以下错误消息:
指定的网络名称不再可用。
查看 netsetup.log 文件时,会发现类似于以下条目的错误消息:
NetUseAdd to \\dc1.adatum.com\IPC$ returned 64
NetpJoinDomain: status of connecting to dc '\\dc1.adatum.com': 0x40
NetpJoinDomainOnDs: Function exits with status of: 0x40
错误详细信息
| 十六进制错误 | 十进制错误 | 符号性错误字符串 | 友好的错误提示 |
|---|---|---|---|
| 0x40 | 64 | 网络名已删除错误 | 指定的网络名称不再可用。 |
原因
满足以下任一条件时,会出现此问题:
- WAN 加速器设备响应确认 TGS 请求包,但响应不会到达密钥分发中心(KDC)。 通常,IP 生存时间(TTL)帧字段的值为 64 或更低,因为这是类似 Unix 的设备使用的 TTL,WAN 加速器通常基于 Linux。
- 客户端和域控制器(DC)之间的防火墙等网络设备删除了 KDC 响应。 可以在 DC 流量的并发网络跟踪中找到更多详细信息。
故障排除
此问题与获取服务器消息块 (SMB) 会话的 Kerberos 票证有关。 基于网络跟踪排查此问题:
- 使用
net use命令来访问相同的通用命名约定(UNC)路径并重现问题。 - 收集
net use命令执行的网络跟踪。
示例:
下面是网络跟踪的示例:
1534 CLIENT1 DC1.ADATUM.COM TCP TCP:Flags=......S., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=0, Seq=1299628969, Ack=0, Win=8192 ( ) = 8192 {TCP:267, IPv4:5}
1537 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A..S., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785282675, Ack=1299628970, Win=8192 ( Scale factor not supported ) = 8192 {TCP:267, IPv4:5}
1538 CLIENT1 DC1.ADATUM.COM TCP TCP:Flags=...A...., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=0, Seq=1299628970, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1539 CLIENT1 DC1.ADATUM.COM KerberosV5 KerberosV5:TGS Request Realm: ADATUM.COM Sname: cifs/DC1.ADATUM.COM {TCP:267, IPv4:5}
1540 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785282676, Ack=1299628970, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1541 CLIENT1 DC1.ADATUM.COM TCP TCP:[ReTransmit #1539]Flags=...A...., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=1460, Seq=1299628970 - 1299630430, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1542 CLIENT1 DC1.ADATUM.COM TCP TCP:[ReTransmit #1539]Flags=...A...., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=1460, Seq=1299628970 - 1299630430, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1545 CLIENT1 DC1.ADATUM.COM TCP TCP:[ReTransmit #1539]Flags=...A...., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=536, Seq=1299628970 - 1299629506, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1546 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785282676, Ack=1299629506, Win=63704 (scale factor 0x0) = 63704 {TCP:267, IPv4:5}
1547 CLIENT1 DC1.ADATUM.COM TCP TCP:[Continuation to #0]Flags=...A...., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=536, Seq=1299629506 - 1299630042, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1548 CLIENT1 DC1.ADATUM.COM TCP TCP:[Continuation to #0]Flags=...A...., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=536, Seq=1299630042 - 1299630578, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1549 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785282676, Ack=1299630042, Win=63168 (scale factor 0x0) = 63168 {TCP:267, IPv4:5}
1550 CLIENT1 DC1.ADATUM.COM TCP TCP:[Continuation to #0]Flags=...AP..., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=536, Seq=1299630578 - 1299631114, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1551 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785282676, Ack=1299630738, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1552 CLIENT1 DC1.ADATUM.COM KerberosV5 KerberosV5: {TCP:267, IPv4:5}
1553 DC1.ADATUM.COM CLIENT1 TCP TCP:[Continuation to #0]Flags=...AP..., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=290, Seq=2785284136 - 2785284426, Ack=1299630738, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1554 CLIENT1 DC1.ADATUM.COM TCP TCP:Flags=...A...., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=0, Seq=1299632186, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1555 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785284426, Ack=1299631114, Win=63864 (scale factor 0x0) = 63864 {TCP:267, IPv4:5}
1556 CLIENT1 DC1.ADATUM.COM TCP TCP:[Continuation to #1552]Flags=...AP..., SrcPort=59259, DstPort=Kerberos(88), PayloadLen=320, Seq=1299632186 - 1299632506, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1557 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785284426, Ack=1299632186, Win=62792 (scale factor 0x0) = 62792 {TCP:267, IPv4:5}
1558 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785284426, Ack=1299632506, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1559 CLIENT1 DC1.ADATUM.COM TCP TCP:Flags=...A...F, SrcPort=59259, DstPort=Kerberos(88), PayloadLen=0, Seq=1299632506, Ack=2785282676, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1563 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A...., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785284136, Ack=1299632507, Win=64240 (scale factor 0x0) = 64240 {TCP:267, IPv4:5}
1564 DC1.ADATUM.COM CLIENT1 TCP TCP:Flags=...A.R.., SrcPort=Kerberos(88), DstPort=59259, PayloadLen=0, Seq=2785284136, Ack=1299632507, Win=0 (scale factor 0x0) = 0 {TCP:267, IPv4:5}
从追踪中可以发现,DC 对于客户端请求的服务主体名称(SPN CIFS/DC1.ADATUM.COM)的票证授予服务(TGS)请求没有响应。 它会发送回 TCP 确认,这表明 DC 已收到 TGS 请求。 但是,它没有给出有效的 TGS 响应。 最后,客户端终止 TCP 连接。
网络流量分析
注释
充分了解行为需要来自 DC 网络的跟踪,它还可能阐明客户端之前不重置会话的原因。 以下分析基于跟踪中的故障。
在帧 1541、1542 和 1545 中,客户端首先重新传输 TCP 段,然后减小帧的大小。 帧 1545 中的数据在帧 1546 中得到确认。
客户端一直持续发送数据,直到帧 1550 中的最后一段,其中包含 Push 位,并以最后一个字节 1299631114 结束。 此段由服务器在帧 1555 中确认。
同时,客户端在帧 1552 和 1556 中向服务器发送另一个请求,最后一个字节1299632506。 此请求由服务器在帧 1558 中确认。
但是,在客户端决定终止会话之前,服务器中只有一条消息(帧 1553)。 到达客户端的序列号指示服务器确实发送其他数据,如序列号所示:
2785282676 first in frame 1540
2785284426 first in frame 1555
2785284136 first in frame 1563
最后一个序列号低于服务器在帧 1555 中发送的序列号。 客户端永远不会看到此数据,从而在整个网络跟踪中确认2785282676。 这种差异直接表明网络流量的正确流动出现了问题。