Hi all, thanks for all the suggestions. However it turned out that all I needed to do was to add
domain-insecure: "my.domain" to unbound.conf so that unbound would ignore the lack of DNSSEC of my internal domain. I have not paid much attention to DNSSEC until now, but it seems I may need to. So, problem solved, onto the next one! ;-) /Johan On Wed, Oct 12, 2016 at 04:18:39PM +0300, Kapetanakis Giannis wrote: > Hi, > > Haven't followed the whole thread and by just looking at the topic, > I have a similar setup (carped as well) for caching DNS. > 2 servers, 2 carped IPs. > > This is how it works: > > unbound.conf: > interface: 127.0.0.1 > port: 53 > outgoing-interface: ext_ip > access-control: local_networks > do-not-query-localhost: no > include: "/var/unbound/etc/stub_zones_insecure" > include: "/var/unbound/etc/stub_zones" > > stub_zones: > stub-zone: > name: "foo.example.com." > stub-addr: 127.0.0.1@5678 > > stub_zones_insecure: > domain-insecure: "foo.example.com." > > insecure is for when you have network problems to be able to resolv > otherwrise it hungs at DNSSEC (if you have it enabled). This is for local > zones only. > > resolv.conf: > nameserver 127.0.0.1 > > nsd.conf: > ip-address: 127.0.0.1@5678 > zone: > name: foo.example.com > zonefile: /var/nsd/zones/slave/%s > request-xfr: master_DNS_IP NOKEY > allow-notify: master_DNS_IP NOKEY > > pf.conf: > # requests from local dns server (unbound) > pass out quick on $dns1_if proto {tcp, udp} to $dns1_if:network port 53 > modulate state (if-bound, no-sync) nat-to ($dns1_if) > pass out quick on $dns1_if proto {tcp, udp} to any port 53 modulate state > (if-bound, no-sync) route-to ($dns1_if $dns1_gw) nat-to ($dns1_if) > pass out quick on $dns2_if proto {tcp, udp} to $dns2_if:network port 53 > modulate state (if-bound, no-sync) nat-to ($dns2_if) > pass out quick on $dns2_if proto {tcp, udp} to any port 53 modulate state > (if-bound, no-sync) route-to ($dns2_if $dns2_gw) nat-to ($dns2_if) > > # requests from clients (unbound) > pass in quick on $dns1_if proto {tcp,udp} from $dns1_if:network to > ($dns1_carp) port 53 keep state rdr-to 127.0.0.1 reply-to $dns1_if > pass in quick on $dns2_if proto {tcp,udp} from $dns2_if:network to > ($dns2_carp) port 53 keep state rdr-to 127.0.0.1 reply-to $dns2_if > pass in quick on $dns1_if proto {tcp,udp} from <local_net> to ($dns1_carp) > port 53 keep state rdr-to 127.0.0.1 reply-to ($dns1_if $dns1_gw) > pass in quick on $dns2_if proto {tcp,udp} from <local_net> to ($dns2_carp) > port 53 keep state rdr-to 127.0.0.1 reply-to ($dns2_if $dns2_gw) > pass out quick on $dns1_if proto udp from 127.0.0.1 port 53 nat-to > ($dns1_carp) > pass out quick on $dns2_if proto udp from 127.0.0.1 port 53 nat-to > ($dns2_carp) > > # nsd > pass in quick on $dns1_if proto udp from $master_DNS to ($dns1_if) port 5678 > keep state rdr-to 127.0.0.1 reply-to $dns1_if > > hope these help. For me they work the last 2 years. They only problem I > haven't solved so far which requires a different setup is when you make a > change on the master and the unbound has the previous entry in the cache... > the cache has to expire. > > > G