I'm not that familiar with this with ddns. Have you tried reducing the zone statements in the dhcpd.conf file to only include those for the corresponding subnet and then set a caching dns server IP to handle the rest?
Have read much on this site and very much valued it - but I have never posted! Here goes.
I run Bind 9 on fedora 12. I have 3 views; for public, wireless clients and private wired clients. 3 subnets are in use two lans and on /29 for publicly addressable hosts.
I have created a db file (for Bind) for each of the views hoping to get wireless clients dynamically updated by dhcp (ISC) into the appropriate view based db file and vice versa. I have a shared x.x.x.in-addr.arpa file for each subnet except my public /29 which is not delegated to me for reverse activity.
So if an address is looked up from a subnet that is wireless the intention is to use the wireless view to provide the IP address. Equally if a new wireless client requests an IP address on start up then it will be added to the db file named in that wireless view. The same would happen for the wired subnet.
It all works after a fashion with look ups being fine and ddns updates being OK to a point. The problem is that when a ddns update takes place for say a wireless client it adds it to both the wireless and the wired subnet db files. Interestingly the correct x.x.x.in-addr.arpa gets updated. It seems that the zone statements in dhcp (of which I have 3 - the domain name, and two subnets) working with the view statement (named) are not sufficient for the correct db file to be selected for updates. Anyone have any experience of this please? It may be I have to live with it as look ups are fine.
Thanks for coming back. Interesting thought :-)
Unless I have misunderstood your suggestion though I am not sure caching servers will help as I will not achieve ddns updates from them.
The public view of the domain in question is static both host and address wise. The wired lan and wifi views are dynamic as hosts get addresses for one of the two subnets based upon how they have connected. The services on the two lans differ as do firewall protections. I am not sure how I could use a caching server with ddns updates to achieve the dynamic update after a dhcp allocation; seems sort of counter intuitive? Equally, and back to the problem, how would they distinguish between db files if a caching server could do this?
If I were able to tell dhcp that the domain is made up of multiple db files ( one per view ) which are related to particular subnets then I would be home and dry.
Sorry if I have misunderstood.