I'm having a problem getting a split-horizon djbdns (aka tinydns) server to play nicely on my internal network. Here's the scenario:
There are two dns servers, one external, one internal. The external (ext.ns.example.net) server holds host and alias records for several domains. The internal server (int.ns.example.net) is on the LAN here, and only holds records for hosts on the internal example.net networks. They do not replicate between each other because I would really rather not have my internal hosts' IP addresses out on the public Internet.
djbdns is running fine on ext.ns.example.org as a public-facing DNS server: lookups from the Internet run flawlessly for any domain it is authoritative for. To give a bit more background, it essentially serves a small farm of shared-hosting boxes.
On int.ns.example.org, djbdns is running as a caching server per the standard instructions for doing so. This is where the problem is arising.
Lookups are working fine for internal hosts - server.example.net resolves to 10.23.1.5, router.example.net resolves to 10.23.1.1, and so forth; this is also working for any network that the server has been made authoritative for - so testserver.example.net would successfully resolve to, say, 10.23.2.10. The problem arises if I try to resolve an external example.net hostname from inside the network - www.example.net would result in a failed lookup.
I've tried making int.ns.example.net authoritative for the range that www.example.net sits on, making host and alias entries for it, and so forth - but nothing seems to work. I'm really not quite sure where it's breaking here, since I'm realtively new to djbdns. If anyone has any ideas, I'd love to hear them.
There are two dns servers, one external, one internal. The external (ext.ns.example.net) server holds host and alias records for several domains. The internal server (int.ns.example.net) is on the LAN here, and only holds records for hosts on the internal example.net networks. They do not replicate between each other because I would really rather not have my internal hosts' IP addresses out on the public Internet.
djbdns is running fine on ext.ns.example.org as a public-facing DNS server: lookups from the Internet run flawlessly for any domain it is authoritative for. To give a bit more background, it essentially serves a small farm of shared-hosting boxes.
On int.ns.example.org, djbdns is running as a caching server per the standard instructions for doing so. This is where the problem is arising.
Lookups are working fine for internal hosts - server.example.net resolves to 10.23.1.5, router.example.net resolves to 10.23.1.1, and so forth; this is also working for any network that the server has been made authoritative for - so testserver.example.net would successfully resolve to, say, 10.23.2.10. The problem arises if I try to resolve an external example.net hostname from inside the network - www.example.net would result in a failed lookup.
I've tried making int.ns.example.net authoritative for the range that www.example.net sits on, making host and alias entries for it, and so forth - but nothing seems to work. I'm really not quite sure where it's breaking here, since I'm realtively new to djbdns. If anyone has any ideas, I'd love to hear them.
Comment