BIND9 (методическое пособие)
Содержание
Управление
Проверяет конфиг сервера имен
named-checkconf
Перезагружает сервер имен
rndc reload
Перезагружает только изменившиеся зоны
rndc reconfig
Опции
Списки доступа
acl network1 {
1.2.3.0/24;
192.168.0.0/20;
};
acl GoodDns {
1.2.3.4;
};
Ограничение на трансфер зон и запросы
allow-transfer {
localhost;
GoodDns;
};
allow-query {
any;
};
Настройка зоны и подключение файла зоны
zone "example.com" {
type master;
file "/etc/bind/db.example.com.";
allow-query {
any;
};
};
Зона прямого просмотра
Зоны прямого просмотра делегируются нам владельцем родительского домена.
Пример файла зоны, для которой мы являемся мастером (SOA ns1.model.local.) Сервер ns.example.com. указан в качестве вторичного.
;
$ORIGIN model.local.
$TTL 1h
;
@ IN SOA ns1.model.local. hostmaster.model.local. (
2014023001 ; Serial Number
10800 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; min TTL
;
IN NS ns1.model.local.
IN NS ns.example.com.
IN MX 10 mail1
;
gw IN A 10.13.0.1
ns1 IN A 10.13.0.2
net-ctrl-1 IN A 10.13.0.2
front1 IN A 10.13.0.10
front2 IN A 10.13.0.11
back1 IN A 10.13.0.20
back2 IN A 10.13.0.21
; балансировка
back IN A 10.13.0.20
IN A 10.13.0.21
stor1 IN A 10.13.0.30
stor2 IN A 10.13.0.31
stor-vip IN A 10.13.0.40
front-vrrp IN A 10.13.0.50
www IN CNAME model.local.
bc IN A 10.13.0.255
;
; users
user1 IN CNAME back.model.local.
www.user1 IN CNAME back.model.local.
user2 IN CNAME back.model.local.
www.user2 IN CNAME back.model.local.
;
Зона обратного просмотра
Зона обратного просмотра управляется владельцем диапазона ip адресов.
Пример файла зоны обратного просмотра, для которой мы являемся мастером
;
$ORIGIN 0.13.10.IN-ADDR.ARPA.
$TTL 1h
;
@ IN SOA ns1.model.local. hostmaster.model.local. (
2014023001 ; Serial Number
10800 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; min TTL
;
IN NS ns1.model.local.
;
2 IN PTR ns1.model.local.
101 IN PTR netctrl-01.model.local.
255 IN PTR bc.model.local.
;
Зоны по-умолчанию
Зона типа hint для домена точки со списком корневых серверов. Файл зона необходимо периодически обновлять с сервера ftp://ftp.internic.net/domain/named.cache
zone "." {
type hint;
file "/etc/bind/db.root";
};
Зоны замыкания на себя прямые, обратные и броадкастов.
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
Пример прямой и обратной зоны замыкания на себя, входящих в дистрибутив BIND9
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
1.0.0 IN PTR localhost.
Типы ресурсных записей (RR)
SOA
Запись SOA определяет какой сервер является владельцем зоны и какие на зону установлены параметры. После записи SOA надо обязательно указать IN NS запись с тем-же сервером, что и в заголовке.
Пример: домен example.com обслуживается серверами ns.example.com и ns.examle.net. После указания директивы $ORIGIN сервер автоматически допишет за нас все неполные dns имена (таким образом hostmaster читается как hostmaster.example.com). Имя сервера вне зоны пишется полностью.
$TTL 2d ; zone TTL default = 2 days or 172800 seconds
$ORIGIN example.com.
@ IN SOA ns hostmaster (
2003080800 ; serial number
1d12h ; refresh = 1 day 12 hours
15M ; update retry = 15 minutes
3W12h ; expiry = 3 weeks + 12 hours
2h20M ; minimum = 2 hours + 20 minutes
)
IN NS ns
IN NS ns.example.net. ; out-of-zone
...
; A record for the NS RR above
ns IN A 192.168.2.1
;
Пример 2: домен example.com обслуживается двумя серверами вне зоны. Для них указаны полные имена в записях IN NS. Т.к. домен обслуживается другими серверами никакие A записи не допускаются.
$TTL 2d ; zone TTL default = 2 days or 172800 seconds
$ORIGIN example.com.
@ IN SOA ns.example.net. hostmaster.example.com. (
2003080800 ; serial number
1d12h ; refresh = 1 day 12 hours
15M ; update retry = 15 minutes
3W12h ; expiry = 3 weeks + 12 hours
2h20M ; minimum = 2 hours + 20 minutes
)
IN NS ns.example.net. ; out-of-zone name server
IN NS ns.example.org. ; out-of-zone name server
Параметры зоны и директивы сервера bind
View - ограничение видимости зон
Использование ограничения видимости позволяет применять различные опции по отношению к различным клиентам. Опция вступают в действие в зависимости от ip адреса клиента - источника запроса.
Это позволяет использовать разные данные по одной и той-же зоне для разных клиентов. Для внутренних клиентов мы должны разрешить рекурсивные запросы, для внешних - запретить.
Конфигурация зон /etc/bind/named.conf
; список доступа - наши внутренние клиенты
acl internal {
10.13.0.0/24;
localhost;
};
; область видимости для внутренних клиентов
view "internal-view" {
; клиент - соответствует списку доступа
match-clients { internal; };
; разрешена рекурсия для внутренних клиентов
recursion yes;
; зона видима только для внутренних клиентов
zone "model.local" in {
type master;
file "/etc/bind/db.model.local";
};
; зона видима для внутренних клиентов иначе, чем для внешних
; файл зоны свой
zone "model.example.net" in {
type master;
file "/etc/bind/db.model.example.net.internal";
};
; обратная зона для внутренних клиентов тоже своя
zone "0.13.10.in-addr.arpa" in {
type master;
file "/etc/bind/rev.10.13.0.internal";
};
; дефолтные зоны сервера
include "/etc/bind/named.conf.default-zones";
};
; область видимости, доступная всем прочим клиентам
view "external-view" {
match-clients { any; };
; запрет рекурсии
recursion no;
; зона видится внешними клиентами не так, как внутренними
; файл зоны свой
zone "model.example.net" in {
type master;
file "/etc/bind/db.model.example.net";
};
; обратная зона видится внешними клиентами не так, как внутренними
; файл зоны свой
zone "0.13.10.in-addr.arpa" in {
type master;
file "/etc/bind/rev.10.13.0";
};
};