I'm getting started with knot resolver and am a bit unclear as to how this config should be structured. 
The result I'm looking for is to forward queries to resolver A if the source is subnet A; unless the query is for the local domain if so then query the local DNS. 

I've been working with the config below to accomplish this. However I'm finding that this config will  if the request does not match the local todname and will use root hints if not but will not use the FORWARD server. 

Ultimately, this server will resolve DNS for several subnets and will forward queries to different servers based on the source subnet. 

Would someone mind pointing me in the right direction on this, please? 

for name, addr_list in pairs(net.interfaces()) do
         net.listen(addr_list)
 end
 -- drop root
 user('knot', 'knot')
 -- Auto-maintain root TA
 modules = {
     'policy',   -- Block queries to local zones/bad sites
     'view',     --view filters
     'hints',    -- Load /etc/hosts and allow custom root hints
     'stats',
 }


 -- 4GB local cache for record storage
 cache.size = 4 * GB

 --If the request is from eng subnet 

 if (view:addr('192.168.168.0/24')) then
     if (todname('localnet.mydomain.com')) then
         policy.add(policy.suffix(policy.FORWARD('192.168.168.1'), {todname('localnet.mydomain.com')}))
     else
         view:addr('192.168.168.0/24', policy.FORWARD('68.111.106.68'))
         
     end
 end


855.ONTRAPORT 
ontraport.com

Get a Demo | Blog | Free Tools