Single slave zone definition for two view (cache file name problem)

/dev/rob0 rob0 at gmx.co.uk
Tue Mar 17 15:32:31 UTC 2015


On Tue, Mar 17, 2015 at 05:36:57PM +0300, Constantin Stefanov wrote:
> After upgrading from BIND 4.6 to 4.10.2, named requires that 
> different slave zone have separate file for cache.

Surely you mean s/4/9/g, and yes, this is true.

> With 4.6 I had the following config:
> 
> named.conf:
> 
> view "internal" {
> 	match /* match condition */;
> 	include "common.zones";
> };
> 
> view "external" {
> 	match /* match condition */;
> 	include "common.zones";
> };
> 
> common.zones:
> 
> zone "aaa.example.org" {
> 	type slave;
> 	file "slave/aaa.example.org";
> 	masters {MASTERIP;};
> };
> 
> It worked fine with 4.6 (although it was considered incorrect).
> 
> After upgrade to 4.10 named started complaining:
> 
> common.zones:3: writeable file 'slave/aaa.example.org': already in 
> use: common.zones:3
> 
> As I understand, now I need to have separate files for different 
> views.
> 
> But is there a way to have them automatically assigned and to write
> something like:
> 
> file "slave/aaa.example.org.${view_name}"
> 
> or any other way to have only one defininition for common zones?

Here is an easy suggestion:

view "common" {
	match-clients { none; };

	zone "example.com" {
		type slave;
		file "common/example.com";
		masters { example.com-masters; };
	};
	// repeat for other common zones
};

And then your other views can be defined and use the include file as 
before, with each zone being:

	in-view "common";

> I found 'in-view' option, but again it requires two definitions for 
> every zone: one with "file" and "masters" directives, and another 
> with "in-view" option. Moreover, these two definitions must be in 
> different files, as I have to include one in first view, and 
> another (with 'in-view') in all other views, so I have to keep two 
> separate files synced with one another.
> 
> So is it possible to have only one definition for slave zones that 
> are shared between different views?

Hmmm.  I am not sure if there is a good workaround for that.  But 
there are tools like make(1) which can do this for you?  I would 
suggest a script to generate the common.zones file from whatever 
you're using for the "common" view.

Maybe someone else will have a better suggestion?
-- 
  http://rob0.nodns4.us/
  Offlist GMX mail is seen only if "/dev/rob0" is in the Subject:


More information about the bind-users mailing list