IIS Works by IP but Times Out When Using the Internal DNS Name

0
0
Asked By MellowCactus47 On

We have an IIS website hosted on a server in a DMZ. External users can access it normally, and internal DNS is configured with split-horizon DNS so the site name resolves to the server's internal IP. The firewall allows HTTPS traffic, and connecting directly to the internal IP from inside works.

However, internal users get a timeout when browsing to the site by its DNS name. The DNS lookup returns the expected internal address, and the IIS bindings use a wildcard host name. The site also works when tested with curl while forcing the hostname and internal IP together:

curl -vk --resolve website.company.com:443:10.90.1.12 https://website.company.com/

That test connects successfully and returns an HTTP 302 response from IIS. What could cause normal browser requests using the DNS name to time out when direct-IP access and the forced curl test both work?

3 Answers

Answered By QuietMarble22 On

A wildcard IIS binding does not rule out all hostname issues, especially with HTTPS. Verify that the site has an HTTPS binding on port 443 and that the certificate/SNI configuration matches the hostname. However, a binding problem would normally produce a certificate error, HTTP error, or connection response—not a pure timeout—so I would investigate DNS and the firewall path first.

Check the IIS logs and firewall logs at the exact time of an internal attempt. If there is no IIS log entry, the request is not reaching IIS.

Answered By NimbleOrchid31 On

Another option is to use the external address internally through a firewall hairpin or loopback NAT, but that is usually unnecessary when direct LAN-to-DMZ routing works. If internal DNS returns the private address, confirm that the firewall permits traffic from the specific client subnet to that address on TCP 443 and that the DMZ server’s return route points back through the correct gateway.

The successful --resolve test suggests the route and server are fine from at least that client, so compare the browser’s proxy settings and DNS behavior with the curl test before changing the NAT design.

Answered By CopperLynx8 On

The curl result is an important clue: IIS, the HTTPS binding, SNI, and the internal route are working. Since --resolve forces the intended IP while still sending the real hostname, the failure is probably happening before the request reaches IIS.

Check the actual connection the browser is making. Look for an unexpected AAAA record, a stale DNS result, a configured proxy, secure DNS, or a cached public address. From the affected machine, compare nslookup or Resolve-DnsName results with the address shown in the browser’s network tools. Also try curl without --resolve and use curl -4 and curl -6 separately.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.