Помогите настроить BIND [Решено]

Автор Iflex, 08 декабря 2014, 01:34:08

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Iflex

Всем доброго времени суток!
Помогите, плз, настроить бинд.

Собственно, задача:
Настроить для конкретного домена (пусть будет mydomain) разрешение имён. В сети домена нет. Есть роутер, раздающий интернет, и всё остальное по dhcp.
Нужно сделать так, чтобы компы в сети, обращаясь к узлам ххх.mydomail они резолвились на нашем bind сервере.
Далее, сам не знаю, что  хочу. Хочу вашего совета. Что должно (в нормальной сети) происходить при обращении компов к узлам в инете?
варианты:.
-бинд не находя у себя записей, перенаправляет запрос на роутер, тот в свою очередь, к провайдеру, итд
-бинд не находя у себя записей, перенаправляет запрос на dns гугла(8.8.8.8 ), яндекса и тд.
-бинд имеет список рутовых серверов, не находя у себя записей перенаправляет запрос на корневые dns сервера
-бинд не находит у себя записей, и комп обращается к dns#2 (роутеру) от в свою очередь, к провайдеру, итд

как правильно? ваши варианты?

Ещё один вопрос. Никак не пойму, зачем в настройках файла зоны указывать какой-то NS? что это за неймсервер и зачем его указывать если мы свой настраиваем ?
цитирую файл зоны с https://wiki.debian.org/Bind9#Files
$TTL    3600
@       IN      SOA     sid.example.com. root.example.com. (
                   2007010401           ; Serial
                         3600           ; Refresh [1h]
                          600           ; Retry   [10m]
                        86400           ; Expire  [1d]
                          600 )         ; Negative Cache TTL [1h]
;
@       IN      NS      sid.example.com.
@       IN      MX      10 sid.example.com.

sid     IN      A       192.168.0.1
etch    IN      A       192.168.0.2

pop     IN      CNAME   sid
www     IN      CNAME   sid
mail    IN      CNAME   sid

gardarea51

У меня bind форвардит запросы к DNS вышестоящей конторы, но раньше было настроено к гуглднс. Вот просто мой конфиг (закомменченное у себя я убрал):

/etc/bind/named.conf.options

#Список доступа "lan"
acl "lan" { 192.168.2.0/24; 192.168.3.0/24; 192.168.4.0/24; 127.0.0.1; };
#Глобальные опции
options {
directory "/var/cache/bind";
pid-file "/var/run/named/named.pid";
datasize default;

//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys.  See https://www.isc.org/bind-keys
//========================================================================

#dnssec-validation auto;
#auth-nxdomain no;    # conform to RFC1035
auth-nxdomain yes;

listen-on { lan; };
listen-on-v6 { none; };
allow-query { lan; };
allow-recursion { lan; };
allow-transfer { none; };
allow-update { none; };

forward only;
forwarders { 8.8.8.8; 8.8.4.4; };
}


/etc/bind/named.conf.local


//
// Do any local configuration here
//

#Описание внутренней зоны, пусть будет myzone
zone "my-zone" IN {
      type master;
      file "my-zone.zone";
      check-names ignore;
      allow-query { lan; };
      allow-transfer { lan; };
};

#Обратное преобразование для внутренней зоны
zone "2.168.192.in-addr.arpa" IN {
      type master;
      file "192.168.2.zone";
      allow-query { lan; };
      allow-transfer { lan; };
};


/var/cache/bind/my-zone.zone
$TTL 3h
@ IN SOA ns.my-zone. gard.mail.com. (
                                              20120323        ; serial (date)
                                              3h              ; время обновления
                                              1h              ; повтор каждый час
                                              1w              ; как долго хранить информацию
                                              1h )            ; TTL (время жизни ) записи

;Адреса DNS-серверов
@               IN NS           ns.my-zone.

;Адреса узлов для зоны
ns              IN A            192.168.2.1
tux             IN A            192.168.2.10
m401dn1         IN A            192.168.2.8
m401dn2         IN A            192.168.2.9

;dc              IN A            192.168.2.254

;Псевдонимы
gw              IN CNAME        ns
smb             IN CNAME        ns
jabber IN CNAME ns


Обратное преобразование - /var/cache/bind/192.168.2.zone
$TTL 3h
@ IN SOA ns.my-zone. gard.mail.com. (
                                        20120324        ; serial (date)
                                        3h              ; время обновления
                                        1h              ; повтор каждый час
                                        1w              ; как долго хранить информацию
                                        1h )            ; TTL (время жизни ) записи

; Адреса DNS-серверов
@               IN NS           ns.my-zone.

; Адреса узлов для зоны
1               IN PTR          ns.my-zone.
1               IN PTR          smb.my-zone.
1               IN PTR          gw.my-zone.

10              IN PTR          tux.my-zone.
9               IN PTR          m401dn2.my-zone.
8               IN PTR          m401dn1.my-zone.


Bind очень требователен к синтаксису файлов описания зон, помню долго возился с этим. Еще пробовал настраивать dunamicDNS, работало. Это для того, чтобы ПК в сети сами регистрировались в dns-зонах под своими именами, но тогда файлы зон уже "ведет" сам bind, так как записи в них меняются. Настраивается в связке с dhcp, однако с роутером в роли DHCP это скорее всего не покатит.

Iflex

gardarea51 спасибо за ответ. Но у меня тут всё равно вопрос  :)

что у вас за сервер ns.my-zone. ?
зачем он нужен тут?
@               IN NS           ns.my-zone.
в упор не пойму, какой другой сервер мы должны указать нашему бинду, если он и сам себе неймсервер?

gardarea51

#3
Это здесь и указывается, это nameserver для создаваемой зоны (сам bind), таков синтаксис.

Сообщение объединено: 08 декабря 2014, 11:13:58

Цитировать@  — Имя текущего домена
Вот я тут как-то удачно нагуглил: http://habrahabr.ru/post/137587/

Iflex

gardarea51, да я видел этот пости и гуглил тоже немало.
Только нигде не написано, что ns.my-zone. это оказывается и есть наш бинд.
даже в книжке DNS И BIND этого нет
Открыть содержимое (спойлер)
[свернуть]
там написано, что в файлах зон необходимо указывать эти записи типа NS, но в примере там в бинде мы приписываем два другие сервера.
Исходя из любопытства я, конечно, методом админского тыка уже давно так и сделал, как вы говорите, указал сам себя и всё работает.
Другое дело, что понимания хочется.

Ладно, вернёмся к исходному вопросу. Как будет лучше-быстрее?
моя версия такова:
использовать forward first совместно с allow-recursion для того, чтобы наш бинд не посылал клиента к другому серверу, а сам разолвил и возвращал клиенту запросы и, собственно, накапливал кеш, что по идее, должно увеличить производительность.

gardarea51

По поводу NS тут вот в чем дело может быть. Я уже не помню, но скорее всего если не указывать самого себя, то нужно указать адреса других DNS-серверов, которые могут обновлять файлы зон или как то ими делиться чтоли. Ведь по правилам должно быть минимум 2 DNS-сервера, обслуживающих домен.

По второму вопросу - bind все равно сам перенаправляет клиентский запрос к указанным серверам и отдает ответ клиенту. Ну то есть так или иначе клиент будет общаться с вашим bind'ом, а bind с указанными серверами, при этом накапливая свой кэш. Вполне можете сделать как у меня.

Iflex

Цитата: gardarea51 от 08 декабря 2014, 13:23:56bind все равно сам перенаправляет клиентский запрос к указанным серверам
видимо не всё равно, а зависит от настройкаи forward. Если как у вас, то да, будет отсылать клиента к другим днс. а если forward first то по идее не должен отсылать, а должен сам по серверам шарить и клиенту выдавать.
Ладно, осталось пару штрихов.

1) как настроить ipv6 ? По аналогии создал отдельную зону (и примеры схожие в инете видел), а чёто не резолвится
2) как посмотреть накопленный кеш?

gardarea51

Может быть конечно я сам неправильно понимю, но понимаю так: bind не отсылает клиента, он сам общается с другими dns-серверами, клиент же общается только с bind'ом.

Насчет настройки ipv6 не подскажу, вообще не разбирался толком с ipv6.
А посмотреть кэш можно кажется так: http://hotfreebsd.ru/kak-posmotret-kesh-dns-servera-bind/

Iflex

вот мои настройки
db.local

Открыть содержимое (спойлер)
;
; 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
[свернуть]

db.aaa
Открыть содержимое (спойлер)

$TTL 3h
aaa. IN SOA servak.aaa. admin.aaa. (
1 ; Serial number
3h ; Refresh time
1h ; Retry time
1w ; Expire time
1h ) ; Negative Cache TTL
;
aaa. IN NS servak
;
localhost IN A 127.0.0.1
servak IN A 192.168.1.9
[свернуть]

db.bbb
Открыть содержимое (спойлер)

$TTL 3h
bbb. IN SOA servak.bbb. admin.bbb. (
1 ; Serial number
3h ; Refresh time
1h ; Retry time
1w ; Expire time
1h ) ; Negative Cache TTL
;
bbb. IN NS servak
;
localhost IN AAAA ::1
servak IN AAAA FD00::9
[свернуть]

dig servak.aaa даёт адекватный ансвер:
Открыть содержимое (спойлер)

~ $ dig servak.aaa

; <<>> DiG 9.9.5-3-Ubuntu <<>> servak.aaa.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6049
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;servak.aaa. IN A

;; ANSWER SECTION:
servak.aaa. 10800 IN A 192.168.1.9

;; AUTHORITY SECTION:
hel. 10800 IN NS servak.aaa.

;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Tue Dec 09 18:56:18 MSK 2014
;; MSG SIZE  rcvd: 71

[свернуть]

dig AAAA servak.bbb :
Открыть содержимое (спойлер)

~ $ dig AAAA servak.bbb

; <<>> DiG 9.9.5-3-Ubuntu <<>> AAAA servak.bbb
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30986
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;servak.bbb. IN AAAA

;; ANSWER SECTION:
servak.bbb. 10800 IN AAAA fd00::9

;; AUTHORITY SECTION:
bbb. 10800 IN NS servak.bbb.

;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Tue Dec 09 19:10:21 MSK 2014
;; MSG SIZE  rcvd: 84
[свернуть]

тьфу ты блин, пока пост писал, понял, что пинги то идут по ping6 servak.bbb ))))
и понял, что надо было писать dig AAAA servak.bbb )
всё рабоатет короче.

gardarea51

 :) Тогда отметьте тему как [Решено]

ps: давно хочу поподробнее почитать о bind, да никак не соберусь, все равно особо применять негде )

Iflex

Да, решено. И, спасибо за содействие  ;D

По ссылке, что вы дали, я прочитал какделать дамп кеша и, сделав пару тестов, Убедился что в named.conf.options настройка forward only действительно собирает в кеши все запросы dns клиентов, а forward only - не собирает ничего.

Всё. На этом базовое понимание бинда достигло зыкрытия темы  ;D

gardarea51

Цитата: Iflex от 09 декабря 2014, 19:25:28настройка forward only действительно собирает в кеши все запросы dns клиентов, а forward only - не собирает ничего.
Тут мне кажется описка ) можно узнать при какой же опции запросы клиентов собираются в кэш?

Iflex

Извиняюсь.
Конечно, описка.
forward only ничего не собирает (и вроде даже сервак не сам резолвит отсутствующие в его зоне адреса, а отсылает клиента к ним),
а forward first сам всё резолвит и собирает кеши.

gardarea51

Спасибо за ответ, сделал у себя forward first.