42 lines
699 B
Text
42 lines
699 B
Text
% for view in views:
|
|
acl "${view['name']}" {
|
|
${' '.join(f'{e};' for e in view['acl'])}
|
|
};
|
|
% endfor
|
|
|
|
% for view in views:
|
|
view "${view['name']}" {
|
|
match-clients { ${view['name']}; };
|
|
|
|
% if view['is_internal']:
|
|
recursion yes;
|
|
% else:
|
|
recursion no;
|
|
rate-limit {
|
|
responses-per-second 2;
|
|
window 25;
|
|
};
|
|
% endif
|
|
|
|
forward only;
|
|
forwarders {
|
|
1.1.1.1;
|
|
9.9.9.9;
|
|
8.8.8.8;
|
|
};
|
|
|
|
% for zone in zones:
|
|
zone "${zone}" {
|
|
type ${type};
|
|
% if type == 'slave':
|
|
masters { ${master_ip}; };
|
|
% endif
|
|
file "/var/lib/bind/${view['name']}/db.${zone}";
|
|
};
|
|
% endfor
|
|
|
|
include "/etc/bind/named.conf.default-zones";
|
|
include "/etc/bind/zones.rfc1918";
|
|
};
|
|
|
|
% endfor
|