Disabling RPZ for a few clients / views sharing zones

Jay Ford jay-ford at uiowa.edu
Thu Feb 6 20:49:03 UTC 2014


On Thu, 6 Feb 2014, Chuck Anderson wrote:
> On Thu, Feb 06, 2014 at 09:50:26AM -0800, Doug Barton wrote:
>> On 02/06/2014 06:27 AM, Chuck Anderson wrote:
>>> I was kinda hoping that newer
>>> versions of BIND could share zones (with identical zone contents)
>>> between views without requiring the messy multiple IP alias setup.

Evan Hunt just replied, but I already this typed so....

I think that's coming in 9.10, which is in alpha now.

>> You have always been able to do this with include files.
>
> I'm not sure how this helps.  If you do this:
>
> named.conf:
>
> view "no-rpz" {
>    match-clients { 192.168.1.1; };
>
>    zone "example.com" {
> 	type slave;
> 	file "/var/named/slaves/example.com.zone";
> 	masters { 10.0.0.1; };
>    };
> };
>
> view "global" {
>    match-clients { any; };
>    response-policy { zone "rpzip.example.com"; };
>
>    zone "rpzip.example.com" {
> 	type slave;
>        file "/var/named/slaves/rpzip.example.com.zone";
>        masters { 10.0.0.2; };
>    };
>
>    zone "example.com" {
> 	type slave;
> 	file "/var/named/slaves/example.com.zone";
> 	masters { 10.0.0.1; };
>    };
> };
>
> Then the "global" view sees updates to example.com quickly, as soon as
> NOTIFY is sent by the master and the zone is transferred.  However,
> the "no-rpz" view doesn't see changes to example.com in a timely
> manner.  I've had to wait awhile (SOA refresh) for new records to
> appear and old records to disappear from the "no-rpz" view's
> example.com zone.

I like the "trick" of having view A pull the zone from the real master &
notify view B, while view B pulls the zone locally from view A, using TSIG
keys to indicate the "other" view for the notify & transfer.

Adapting your config, using IPv6 loopback addresses, something like this
might work for you:

    key be-internal.keys.example.com. {
            algorithm hmac-md5;
       secret "...secret stuff...";
    };

    view "no-rpz" {
       match-clients {
          192.168.1.1;
          key "be-internal.keys.example.com.";
       };

       zone "example.com" {
    	type slave;
    	file "/var/named/slaves/example.com.zone";
 	masters { ::1; };
 	allow-notify { "localhost"; };
       };
    };

    view "global" {
       match-clients { any; };

       // define self as server using "be-internal" key to allow
       // external->internal notify for common zones mastered by
       // servers unaware of our view games
       server ::1 { keys "intra-dns-be-internal.keys.uiowa.edu."; };

       response-policy { zone "rpzip.example.com"; };

       zone "rpzip.example.com" {
    	type slave;
           file "/var/named/slaves/rpzip.example.com.zone";
           masters { 10.0.0.2; };
       };

       zone "example.com" {
    	type slave;
    	file "/var/named/slaves/example.com.zone";
    	masters { 10.0.0.1; };
         also-notify { ::1; };  // internal->external trickery
       };
    };

The relatively new ability to specify a key in a "masters" statement can
also be useful, but isn't required for the above example.

Evaluate it for use in your context.  I don't know how/if this interacts with
RPZ.  It also assumes you don't do anything else with DNS via loopback
addresses. ...

________________________________________________________________________
Jay Ford, Network Engineering Group, Information Technology Services
University of Iowa, Iowa City, IA 52242
email: jay-ford at uiowa.edu, phone: 319-335-5555


More information about the bind-users mailing list