Most programs use User Datagram Protocol (UDP) queries to resolve host names. Only when the contents of the query are larger than the maximum packet size does the program need to use Transmission Control Protocol (TCP).
The Simple Mail Transfer Protocol (SMTP) service is unique, because the SMTP service uses TCP queries by default.
If the Domain Name System (DNS) server does not support TCP queries, the query attempt is reset. Lookup for mail delivery does not work and the following event is logged:
Event ID 4000
Source: SMTPSVC
Type: Warning
Description: Message delivery to the remote domain "your_domain.com" failed.
An internal DNS error caused a failure to find the remote server.
0000: c00402e7
Request for Comments (RFC) 883 and the later RFCs prescribe that DNS servers be able to accept both TCP virtual circuits and UDP.
A Network Monitor trace may show a TCP connection attempt to the destination Internet Protocol (IP) of the DNS server on port 53. If the connection is reset, the DNS server may not support TCP queries and you may need to use a different DNS server.
To test whether TCP queries work, perform the following steps on the SMTP server:
- From a command prompt, type nslookup, and then press ENTER. You should see the following output:
Default Server: dns.nwtraders.com
Address: 10.2.124.134
- To command Nslookup to use TCP queries, at the command prompt, type set vc, and then press ENTER.
- To command Nslookup to do MX record queries, at the command prompt, type set q=mx, and then press ENTER.
- Type a domain name (such as microsoft.com), and then press ENTER. You should see output that is similar to the following text:
microsoft.com MX preference = 10, mail exchanger = mail1.microsoft.com
microsoft.com MX preference = 10, mail exchanger = mail2.microsoft.com
microsoft.com MX preference = 10, mail exchanger = mail3.microsoft.com
microsoft.com MX preference = 10, mail exchanger = mail4.microsoft.com
microsoft.com MX preference = 10, mail exchanger = mail5.microsoft.com
mail1.microsoft.com internet address = 131.107.3.125
mail2.microsoft.com internet address = 131.107.3.124
mail3.microsoft.com internet address = 131.107.3.123
mail4.microsoft.com internet address = 131.107.3.122
mail5.microsoft.com internet address = 131.107.3.121
- To repeat the query for additional DNS servers, type server followed by a space and the DNS server's IP address, and then press ENTER. For example, type:
server 10.2.124.133
Next, repeat step 4; Repeat this for all DNS servers that are listed in the properties of the network interface to make sure they accept TCP queries.
Note: Some earlier, non-Microsoft DNS servers may refuse TCP queries. Also, a firewall, proxy, or an ISA server may be blocking TCP port 53.