NTLM Connection Timeout due to Domain Controller - microsoft/CSS_SQL_Networking_Tools GitHub Wiki
NTLM Connection Timeout due to Domain Controller
The Players
IP Address | Computer Role |
---|---|
10.10.10.1 | DC01 |
10.10.10.2 | DC02 |
10.10.10.3 | Client |
10.10.10.4 | SQL Server virtual IP address |
10.10.10.5 | SQL Server physical IP address |
Symptom
Intermittently, the client application would get a login timeout error:
[Microsoft][SQL Server Native Client 11.0]Login timeout expired
Data Collection
We captured a network trace and ran it through the SQL Network Analyzer program.
A number of login timeout errors while collecting the network trace.
SQLNA Report Analysis
Trace was probably taken on this IP address: 10.10.10.4, MAC Addr 001DD8A7211B, (80%)
Trace was probably taken on this IP address: 10.10.10.5, MAC Addr 001DD8A7211B, (20%)
The network trace was taken on a machine with two IP addresses and the MAC address matches. The first address matches the SQL Server IP address:
IP Address HostName Port ServerPipe Version Files Clients Conversations Kerb Conv NTLM Conv MARS Conv non-TLS 1.2 Conv Redirected Conv Frames Bytes Resets Retransmits IsClustered
----------- ------------- ---- ---------- ----------- ----- ------- ------------- --------- --------- --------- ---------------- --------------- ------ ---------- ------ ----------- -----------
10.10.10.4 SQLPROD01\v01 1433 13.0.17.122 0 6 77 0 37 0 0 0 114366 95,275,362 6 354
The server is a named instance on port 1433; most likely SQL Server is clustered and 10.10.10.4 is the cluster virtual IP address. Many of the conversations are using NTLM to authenticate the user.
There are two domain controllers visible in the network trace:
IP Address Files Clients Conversations Kerb Conv DNS Conv LDAP Conv MSRPC Conv MSRPC Port Frames Bytes
---------- ----- ------- ------------- --------- -------- --------- ---------- ---------- ------ -------
10.10.10.1 0 2 80 0 61 0 5 49673 448 104,027
10.10.10.2 0 1 17 4 0 5 7 49673 292 111,353
There were a number of SQL Server conversations that resulted in a network reset:
The following conversations with SQL Server 10.10.10.4 on port 1433 were reset:
NETMON Filter (Client conv.) Files Reset Frame Start Offset End Offset End Time Frames Duration Who Reset Flags Keep-Alives KA Timeout Retransmits Max RT
-------------------------------------------- ----- ----------- ------------ ---------- --------------- ------ --------- --------- ----- ----------- ---------- ----------- ------
IPV4.Address==10.10.10.3 AND tcp.port==57714 0 12659 11.537988 32.585142 10:35:47.380 AM 18 21.047154 Client A.R.. 0 0 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57719 0 12872 12.639515 33.676661 10:35:48.472 AM 18 21.037146 Client A.R.. 0 0 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57726 0 13683 26.267277 35.293956 10:35:50.089 AM 18 9.026679 Client A.R.. 0 0 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57727 0 13830 27.376348 36.402662 10:35:51.198 AM 18 9.026314 Client A.R.. 0 0 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57722 0 13879 15.843832 36.871136 10:35:51.666 AM 19 21.027304 Client A.R.. 0 0 1 1
IPV4.Address==10.10.10.3 AND tcp.port==57723 0 15859 23.251253 44.278744 10:35:59.074 AM 18 21.027491 Client A.R.. 0 0 0 0
Distribution of RESET connections.
81+|
27+|
9+|
3+|
1+| XXXX X
|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
The conversations all cluster together, indicating there was probably a systematic issue that resulted in multiple failures, and that it cleared up on its own.
There were a number of login failures:
The following conversations with SQL Server 10.10.10.4 on port 1433 timed out or were closed prior to completing the login process or had a login error:
NETMON Filter (Client conv.) Files Last Frame Start Offset End Offset End Time Frames Duration Login Progress Keep-Alives Retransmits DHE NullCreds LoginAck Error
-------------------------------------------- ----- ---------- ------------ ---------- --------------- ------ --------- ---------------------------------- ----------- ----------- --- --------- -------- -----
IPV4.Address==10.10.10.3 AND tcp.port==57714 0 12659 11.537988 32.585142 10:35:47.380 AM 18 21.047154 S PL PR CH SH CE AD NC NR 0 0 Late
IPV4.Address==10.10.10.3 AND tcp.port==57719 0 12872 12.639515 33.676661 10:35:48.472 AM 18 21.037146 S PL PR CH SH CE AD NC NR 0 0 Late
IPV4.Address==10.10.10.3 AND tcp.port==57726 0 13683 26.267277 35.293956 10:35:50.089 AM 18 9.026679 S PL PR CH SH CE AD NC NR 0 0 Late
IPV4.Address==10.10.10.3 AND tcp.port==57727 0 13830 27.376348 36.402662 10:35:51.198 AM 18 9.026314 S PL PR CH SH CE AD NC NR 0 0 Late
IPV4.Address==10.10.10.3 AND tcp.port==57722 0 13879 15.843832 36.871136 10:35:51.666 AM 19 21.027304 S PL PR CH SH CE AD NC NR 0 1 Late
IPV4.Address==10.10.10.3 AND tcp.port==57723 0 15859 23.251253 44.278744 10:35:59.074 AM 18 21.027491 S PL PR CH SH CE AD NC NR 0 0 Late
- These are on the same connections that got reset.
- The NC and NR entries in the Login Progress means the connection was using NTLM.
- The LoginAck column shows "Late" for all entries, meaning that the SQL Server successfully logged the user in, but that it took a while and the client timed out the connection.
- You can see the Duration for many of the connection attempts is 21 seconds, which is longer than the default of 15 seconds for the connection timeout value.
This is further confirmed in the Slow Login report:
The following conversations with SQL Server 10.10.10.4 on port 1433 took more than 2 seconds to login or error out:
Login progress durations are in milliseconds.
NETMON Filter (Client conv.) Files Start Offset End Offset End Time Frames Duration AS PL PR CH SH KE CE AD SS NC NR LA ER Keep-Alives Retransmits
-------------------------------------------- ----- ------------ ---------- --------------- ------ ---------- -- -- -- -- -- -- -- -- -- -- -- ----- -- ----------- -----------
IPV4.Address==10.10.10.3 AND tcp.port==57714 0 11.537988 32.585142 10:35:47.380 AM 18 21.047154 0 0 0 0 0 0 0 0 0 21042 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57719 0 12.639515 33.676661 10:35:48.472 AM 18 21.037146 0 0 0 0 0 0 0 0 0 21032 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57726 0 26.267277 35.293956 10:35:50.089 AM 18 9.026679 0 0 0 0 0 0 0 0 0 9022 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57727 0 27.376348 36.402662 10:35:51.198 AM 18 9.026314 0 0 0 0 0 0 1 1 2 9018 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57722 0 15.843832 36.871136 10:35:51.666 AM 19 21.027304 0 0 0 0 0 0 0 0 0 21021 0 1
IPV4.Address==10.10.10.3 AND tcp.port==57723 0 23.251253 44.278744 10:35:59.074 AM 18 21.027491 0 0 0 0 0 1 0 0 0 21022 0 0
IPV4.Address==10.10.10.3 AND tcp.port==57728 0 30.580409 236.074560 10:39:10.870 AM 65 205.494151 0 0 0 0 0 0 0 0 0 2998 12 0
The Login Ack column (LA) shows the long durations (in ms). All other parts of the login are without appreciable delay.
There also a number failed connections to DC01. They precede the end of the SQL Server logins by 12 seconds (End Time column).
The 12 seconds is due to how the SYN timeout works.
- The first SYN packet is sent. If no response in 3 seconds, then
- The second SYN packet is sent. If no response in 6 seconds, then
- the third SYN packet is sent. If no response in 12 seconds, then
- Assume the connection is bad.
What we see in the network trace is the duration of 9 seconds, the time between the first SYN packet and the last SYN packet (3 + 6). The end time is 12 seconds prior to the SQL Server Login Timeout because we still wait 12 seconds for a response even though this does not show in the network trace.
The following conversations with Domain Controller 10.10.10.1 failed to connect:
DC port NETMON Filter (Client conv.) Files Last Frame Start Offset End Offset End Time Frames Duration
------- -------------------------------------------- ----- ---------- ------------ ---------- --------------- ------ --------
49673 IPV4.Address==10.10.10.5 AND tcp.port==58135 0 7870 11.544119 20.573426 10:35:35.369 AM 3 9.029307
49673 IPV4.Address==10.10.10.5 AND tcp.port==58136 0 8098 12.644529 21.667155 10:35:36.462 AM 3 9.022626
49673 IPV4.Address==10.10.10.5 AND tcp.port==58139 0 8858 15.849071 24.854640 10:35:39.650 AM 3 9.005569
49673 IPV4.Address==10.10.10.5 AND tcp.port==58140 0 12568 23.256426 32.264624 10:35:47.060 AM 3 9.008198
The traffic to the DC comes from SQL Server's physical IP address.
Network Trace Exploration
Filtering on a failing SQL Server conversation, we can see the details of the failed conversation.
Filter: IPV4.Address==10.10.10.3 AND tcp.port==57714
Frame Time Offset Source IP Dest IP Description
----- ----------- ---------- ---------- -----------------------------------------------------------------------------------
4862 11.5387390 10.10.10.3 10.10.10.4 TCP:Flags=CE....S., SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291850407, Ack=
4863 11.5388180 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=.E.A..S., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
4864 11.5392940 10.10.10.3 10.10.10.4 TCP:Flags=...A...., SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291850408, Ack=
4865 11.5395120 10.10.10.3 10.10.10.4 TDS:Prelogin, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., S
4866 11.5396560 10.10.10.4 10.10.10.3 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., S
4867 11.5403920 10.10.10.3 10.10.10.4 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:69, SSLVersionSelector:68, TDS:67
4868 11.5406890 10.10.10.4 10.10.10.3 TLS:TLS Rec Layer-1 HandShake: Server Hello.; TLS Rec Layer-2 Cipher Change Spec; T
4869 11.5412550 10.10.10.3 10.10.10.4 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handsh
4870 11.5418480 10.10.10.3 10.10.10.4 TDS:Data, Version = 7.4 (0x74000004), Reassembled Packet {TDS:67, TCP:66, IPv4:23}
4871 11.5418630 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
4872 11.5421990 10.10.10.4 10.10.10.3 NLMP:NTLM CHALLENGE MESSAGE {TDS:67, TCP:66, IPv4:23}
4873 11.5428260 10.10.10.3 10.10.10.4 NLMP:NTLM AUTHENTICATE MESSAGE Version:NTLM v2, Domain: CONTOSO, User: admin.CONTOS
4879 11.5585300 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
Everything above is a normal NTLM login.
The client only gives SQL Server 1 second to validate the login regardless of the Connection Timeout and closes
the connection in frame 5020. The Server OS ACKs the closure request in frame 5021.
5020 12.5301940 10.10.10.3 10.10.10.4 TCP:Flags=...A...F, SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291851642, Ack=
5021 12.5302260 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
SQL Server responds 20 seconds later in frame 12657, a total of 21 seconds since the client sent the NTLM AUTENTICATE message.
12657 32.5851940 10.10.10.4 10.10.10.3 TDS:Response, Version = 7.4 (0x74000004), SPID = 108, PacketID = 1, Flags=...AP...,
The server OS responds to the close request.
12658 32.5852740 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...F, SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
Since frame 12657 was not a close request, the client resets the connection.
12659 32.5858930 10.10.10.3 10.10.10.4 TCP:Flags=...A.R.., SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291851643, Ack=
Filtering on the same conversation and adding the domain controller traffic, we can see more:
Filter: (IPV4.Address==10.10.10.3 AND tcp.port==57714) OR (IPV4.Address==10.10.10.5 AND IPV4.Address==10.10.10.1)
Frame Time Offset Source IP Dest IP Description
----- ----------- ---------- ---------- -----------------------------------------------------------------------------------
4862 11.5387390 10.10.10.3 10.10.10.4 TCP:Flags=CE....S., SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291850407, Ack=
4863 11.5388180 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=.E.A..S., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
4864 11.5392940 10.10.10.3 10.10.10.4 TCP:Flags=...A...., SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291850408, Ack=
4865 11.5395120 10.10.10.3 10.10.10.4 TDS:Prelogin, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., S
4866 11.5396560 10.10.10.4 10.10.10.3 TDS:Response, Version = 7.4 (0x74000004), SPID = 0, PacketID = 1, Flags=...AP..., S
4867 11.5403920 10.10.10.3 10.10.10.4 TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:69, SSLVersionSelector:68, TDS:67
4868 11.5406890 10.10.10.4 10.10.10.3 TLS:TLS Rec Layer-1 HandShake: Server Hello.; TLS Rec Layer-2 Cipher Change Spec; T
4869 11.5412550 10.10.10.3 10.10.10.4 TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handsh
4870 11.5418480 10.10.10.3 10.10.10.4 TDS:Data, Version = 7.4 (0x74000004), Reassembled Packet {TDS:67, TCP:66, IPv4:23}
4871 11.5418630 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
4872 11.5421990 10.10.10.4 10.10.10.3 NLMP:NTLM CHALLENGE MESSAGE {TDS:67, TCP:66, IPv4:23}
4873 11.5428260 10.10.10.3 10.10.10.4 NLMP:NTLM AUTHENTICATE MESSAGE Version:NTLM v2, Domain: CONTOSO, User: admin.CONTOS
The SQL Server machine asks DNS for the address of the domain controller.
This uses the Node IP as the virtual IP is only for new connections to SQL Server and not for Windows making new connections to other machines.
4876 11.5434340 10.10.10.5 10.10.10.1 DNS:QueryId = 0x4103, QUERY (Standard query), Query for DC01.contoso.com of type
4877 11.5444080 10.10.10.1 10.10.10.5 DNS:QueryId = 0x4103, QUERY (Standard query), Response - Success, 10.10.10.1 {DNS
Windows tries to connect to the domain controller.
4878 11.5448700 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58135, DstPort=49673, PayloadLen=0, Seq=
Meanwhile SQL acknowledge the receipt of the NTLM AUTHENTICATE packet.
4879 11.5585300 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
And the client times out the authentication request after 1 second. This is independent of the connection timeout.
5020 12.5301940 10.10.10.3 10.10.10.4 TCP:Flags=...A...F, SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291851642, Ack=
The SQL machine ACKs the close request, but does not send its own as SQL is busy.
5021 12.5302260 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...., SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
The SQL machine tries to make another connection to the DC.
5053 12.6452800 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58136, DstPort=49673, PayloadLen=0, Seq=
Windows also queries the IP address of the SQL Server Virtual Name.
5096 13.2504300 10.10.10.5 10.10.10.1 DNS:QueryId = 0x22BE, QUERY (Standard query), Query for SQLPROD01.contoso.com of t
5100 13.2509470 10.10.10.1 10.10.10.5 DNS:QueryId = 0x22BE, QUERY (Standard query), Response - Success, 10.10.10.4 {DNS
5104 13.2542320 10.10.10.5 10.10.10.1 DNS:QueryId = 0x8BDF, QUERY (Standard query), Query for SQLPROD01.contoso.com of t
5105 13.2548270 10.10.10.1 10.10.10.5 DNS:QueryId = 0x8BDF, QUERY (Standard query), Response - Success, 10.10.10.4 {DNS
The connections to the domain controller are retried after 3 seconds.
5881 14.5585370 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #4878] [Bad CheckSum]Flags=CE....S., SrcPort=58135, DstPort=4967
6216 15.6522810 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #5053] [Bad CheckSum]Flags=CE....S., SrcPort=58136, DstPort=4967
6773 15.8498220 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58139, DstPort=49673, PayloadLen=0, Seq=
7499 18.8554100 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #6773] [Bad CheckSum]Flags=CE....S., SrcPort=58139, DstPort=4967
7524 19.0597230 10.10.10.5 10.10.10.1 DNS:QueryId = 0x9A6E, QUERY (Standard query), Query for SQLPROD01.contoso.com of t
7525 19.0603900 10.10.10.1 10.10.10.5 DNS:QueryId = 0x9A6E, QUERY (Standard query), Response - Success, 10.10.10.4 {DNS
And they eventually time out as the domain controller does not respond.
7870 20.5741770 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #4878] [Bad CheckSum]Flags=......S., SrcPort=58135, DstPort=4967
8098 21.6679060 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #5053] [Bad CheckSum]Flags=......S., SrcPort=58136, DstPort=4967
8300 23.2563150 10.10.10.5 10.10.10.1 DNS:QueryId = 0xC6A7, QUERY (Standard query), Query for DC01.contoso.com of type
8301 23.2569050 10.10.10.1 10.10.10.5 DNS:QueryId = 0xC6A7, QUERY (Standard query), Response - Success, 10.10.10.1 {DNS
8302 23.2571770 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58140, DstPort=49673, PayloadLen=0, Seq=
8388 23.9237310 10.10.10.5 10.10.10.1 DNS:QueryId = 0x4B6A, QUERY (Standard query), Query for 0.0.0.0.0.0.0.0.0.0.0.0.0.
8389 23.9262680 10.10.10.1 10.10.10.5 DNS:QueryId = 0x4B6A, QUERY (Standard query), Response - Name Error {DNS:116, UDP:
8858 24.8553910 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #6773] [Bad CheckSum]Flags=......S., SrcPort=58139, DstPort=4967
9168 26.2639400 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #8302] [Bad CheckSum]Flags=CE....S., SrcPort=58140, DstPort=4967
9181 26.2726480 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58141, DstPort=49673, PayloadLen=0, Seq=
9452 27.3856390 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58142, DstPort=49673, PayloadLen=0, Seq=
10961 29.2810660 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #9181] [Bad CheckSum]Flags=CE....S., SrcPort=58141, DstPort=4967
11243 30.1252850 10.10.10.5 10.10.10.1 DNS:QueryId = 0x882B, QUERY (Standard query), Query for 3.0.0.0.1.0.0.0.0.0.0.0.0.
11244 30.1258340 10.10.10.1 10.10.10.5 DNS:QueryId = 0x882B, QUERY (Standard query), Response - Name Error {DNS:141, UDP:
11259 30.3903980 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #9452] [Bad CheckSum]Flags=CE....S., SrcPort=58142, DstPort=4967
11416 30.5859220 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58143, DstPort=49673, PayloadLen=0, Seq=
12568 32.2653750 10.10.10.5 10.10.10.1 TCP:[SynReTransmit #8302] [Bad CheckSum]Flags=......S., SrcPort=58140, DstPort=4967
This connection attempt is eventually answered in frame 12642 and frame 12643 completes the TCP 3-way handshake to the domain controller.
12641 32.5783410 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58144, DstPort=DCE endpoint resolution(1
12642 32.5789740 10.10.10.1 10.10.10.5 TCP:Flags=.E.A..S., SrcPort=DCE endpoint resolution(135), DstPort=58144, PayloadLen
12643 32.5790220 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=...A...., SrcPort=58144, DstPort=DCE endpoint resolution(1
MSRPC is the protocol for authentication.
12644 32.5791030 10.10.10.5 10.10.10.1 MSRPC:c/o Bind: EPT(EPMP) UUID{E1AF8308-5D1F-11C9-91A4-08002B14A0FA} Call=0x2 Ass
12645 32.5792520 10.10.10.1 10.10.10.5 TCP:Flags=...A...., SrcPort=DCE endpoint resolution(135), DstPort=58144, PayloadLen
12646 32.5798500 10.10.10.1 10.10.10.5 MSRPC:c/o Bind Ack: EPT(EPMP) UUID{E1AF8308-5D1F-11C9-91A4-08002B14A0FA} Call=0x2
12647 32.5799070 10.10.10.5 10.10.10.1 EPM:Request: ept_map: NDR, Netlogon(NRPC) {12345678-1234-ABCD-EF00-01234567CFFB} v1
12648 32.5800180 10.10.10.1 10.10.10.5 TCP:Flags=...A...., SrcPort=DCE endpoint resolution(135), DstPort=58144, PayloadLen
12649 32.5806020 10.10.10.1 10.10.10.5 EPM:Response: ept_map: NDR, Netlogon(NRPC) {12345678-1234-ABCD-EF00-01234567CFFB} v
Another connection to the domain controller succeeds
12650 32.5809460 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=CE....S., SrcPort=58145, DstPort=49673, PayloadLen=0, Seq=
12651 32.5813610 10.10.10.1 10.10.10.5 TCP:Flags=.E.A..S., SrcPort=49673, DstPort=58145, PayloadLen=0, Seq=2046690876, Ack
12652 32.5813880 10.10.10.5 10.10.10.1 TCP: [Bad CheckSum]Flags=...A...., SrcPort=58145, DstPort=49673, PayloadLen=0, Seq=
And another MSRPC request to authenticate, which succeeds.
12653 32.5814620 10.10.10.5 10.10.10.1 MSRPC:c/o Bind: Netlogon(NRPC) UUID{12345678-1234-ABCD-EF00-01234567CFFB} Call=0x2
12654 32.5817710 10.10.10.1 10.10.10.5 MSRPC:c/o Bind Ack: Netlogon(NRPC) UUID{12345678-1234-ABCD-EF00-01234567CFFB} Call=
12655 32.5819230 10.10.10.5 10.10.10.1 NRPC:NetrLogonSamLogonEx Request, *Encrypted* {MSRPC:168, TCP:167, IPv4:58}
12656 32.5839860 10.10.10.1 10.10.10.5 NRPC:NetrLogonSamLogonEx Response, *Encrypted* {MSRPC:168, TCP:167, IPv4:58}
Now, the user is validated at the domain controller and SQL responds with the LoginACK packet.
Unfortunately, the packet arrives after the client has initiated the connection close, so the connection is reset.
12657 32.5851940 10.10.10.4 10.10.10.3 TDS:Response, Version = 7.4 (0x74000004), SPID = 108, PacketID = 1, Flags=...AP...,
12658 32.5852740 10.10.10.4 10.10.10.3 TCP: [Bad CheckSum]Flags=...A...F, SrcPort=1433, DstPort=57714, PayloadLen=0, Seq=5
12659 32.5858930 10.10.10.3 10.10.10.4 TCP:Flags=...A.R.., SrcPort=57714, DstPort=1433, PayloadLen=0, Seq=4291851643, Ack=
Conclusion
Understanding of typical network patterns and timings can help identify where the issue is.
SQL Network Analyzer reports can help identify what are the useful conversations to look for in the network trace. They are fast and can give you an overview of the problem as to whether it is an isolated issue or part of a larger issue.
There is still the underlying issue of why the domain controller refused to respond for a period of time, but that is a story for another day.