I have a new Comcast Business Gateway that just replaced my old, perfectly-functional residential modem. I noticed the router I had only had a 10/100 ethernet WAN port but I have a 100mbit connection, so I took the router off and my speeds jumped from about 85 to 107 mbits.

The modem/gateway has a router and firewall built in. I took the port forwarding rules from the old router and applied them in the new gateway.

Now I have people telling me they can get to my websites, which means the port forwarding is working externally; however, when I browse to any of the URLs, I get "Internet Explorer cannot display the webpage" or "Oops! Google Chrome could not connect to". The browsers do not report any HTTP status code.

  • My IIS is configured to listen on all IPs, so local traffic should be served.
  • When I run a tracert to my public IP or domain, or to the web server's local IP, all come back within one hop.
  • I have not changed any configuration on the webserver.
  • I do not have any firewall rules that prevent (1) outgoing local traffic from my test machine, (2) incoming local traffic on the webserver, or (3) port 80 traffic through the router.
  • I tried putting the webserver in the DMZ to no avail.
  • The old modem was a Cisco DPC-3000. The old router was a D-Link GamersLounge DGL-4100. The new modem/gateway is an SMC SMCD3G.

What must I do to re-enable the local traffic?


From your LAN, do not connect to your public IP. Connect to your web server's local IP instead.

Edit: As Kyle said in the comments, if you're using name-based virtual hosting you'll want to edit your hosts file or set up an internal DNS server in order to have the domain names resolve to the local IP.

| improve this answer | |
  • But I host multiple websites on that IP. It uses the requested domain header value to determine which website to host. How can I tell it which domain I want? Why did it work before? – tsilb Jul 6 '11 at 17:30
  • 5
    tsilb: Some gateway devices allow this sort of traffic flow while others do not. In my experience it's been unpredictable. You should use internal DNS or hosts file entries to tie your domains to the internal IP address of your webserver. – Kyle Smith Jul 6 '11 at 18:46

Which piece(s) of hardware is in place now? Is the SMCD3G the only thing between your IIS server and the world? If so, you may need to set up a local DNS server for your internal hosts so they get the proper internal IP address of your IIS server.

I suspect (but do not know for sure) that you can set up the server which is running IIS as a forwarding DNS server. Then you'd have to do the following

  1. Have the DNS server forward queries to the ISP's DNS server (or OpenDNS or whatever you like)
  2. Set up a Forward Lookup Zone for each domain you want to override and populate the domain names so that they point to the IIS server's internal address
  3. Tell your internal hosts to use the IIS server's DNS service; this way they will get the proper internal IP address for the DNS names you configured.

As for how it worked before, I can't say; it's possible the old modem was informed of (or could automatically detect) which domain names you were hosting on it, and knew enough to resolve those names in a split DNS fashion for internal clients.

| improve this answer | |
  • This network is basically my server, desktop, laptop, and a few electronic devices; that seems like overkill. Since I really only use the desktop, a hosts entry it is for me. Good advice though. Upvotes all around! – tsilb Jul 7 '11 at 0:57
  • ... Then again, 100mbit business cable is overkill too :) – tsilb Jul 7 '11 at 0:57
  • Ah; since you mentioned IIS and business-class cable internet, I was thinking that you might be serving DNS for the domain IIS serves. – Handyman5 Jul 7 '11 at 1:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.