Networking – How to fix DNS resolution on second router in home network

adsl-routerdnsnetworkingrouter

Symptom:
Delays of up to 30 seconds resolving DNS when plugged in to or Wif Connected to second router.
Ping can take just as long via domain name, near instant via IP
No problems when connecting directly to the router with direct internet connection
Problem presents regardless of OS or of the connection method (wired vs wifi)

Infrastructure Physical Setup:
Plusnet provided Technicolor TG582n (4 x 100 Mbit, Wifi) – Connected to ISP over ADSL
D-Link DSR-250n (8 x 1000 Mbit, Wifi) – Connected to above router using WAN port
PC – Connected to D-Link, wired
Laptop – Connected to D-Link, Wi-Fi
Numerous android devices

Software / Firmware Settings:

  • ADSL router – Wifi off. DMZ set to 2nd router. IP 192.168.1.254
  • D-Link router – WAN interface IP 192.168.1.66. Internet set up as "Dynamic IP (DHCP)" and DNS as "Get dynamically from ISP"
    LAN IP 192.168.0.200. DHCP server on. DNS servers 212.159.13.49 (primary) 8.8.4.4 (secondary). DNS Proxy off.

Attempted fixes:
Setting DNS server IPs manually on client PC, tablet etc… No improvement
Disabling DNS Proxy on Router no effect
Disabling DHCP on second router manually setting IP/DNS/Gateway

Best Answer

The Tecnicolor modem/routers allow you to give one device (by its MAC address) on your internal LAN the "public" IP. This, essentially, puts that device in the DMZ but, at the same time, the device is contactable through your public IP - basically turning the Tecnicolor into just a modem.

As your DMZ device is also a router providing NAT and DHCP I would recommend you disable the DHCP server capabilities of your Tecnicolor router as this will cause problems. I would also recommend turning off the LAN and WiFi capabilities of the Tecnicolor as accidentally connecting to these will only give you Internet and no ability to connect to the other LAN.

Apart from managing the Tecnicolor modem through its GUI you'll never need to use its addresses as your other router is doing all the work.