Автор Тема: Проблем с конфигурирането на Master DNS server  (Прочетена 7089 пъти)

alaska

  • Участници
  • ***
  • Публикации: 9
    • Профил
Здравейте,

Имам проблем с конфигурирането на master dns server. ns1.domain.com и ns2.domain са ми делигирани в регистратора като такива за създаване на DNS сървър. Конфигурацията в named.conf е следната:

Код
GeSHi (INI):
  1. zone "domain.com" {
  2. type master;
  3. file "/var/named/domain.com.db";
  4. };

Във domain.com.db конфигурацията ми е следната:

Код
GeSHi (INI):
  1. $ttl 14400
  2. domain.com. IN SOA ns1.domain.com. webmaster.domain.com. (
  3.  
  4. 1211542297 ; Serial in YYYYMMDDXX
  5. 10800;
  6. 3600;
  7. 604800;
  8. 38400;
  9. );
  10.  
  11. domain.com. IN A 11.33.55.77
  12.  
  13. domain.com. IN NS ns1.domain.com.
  14. domain.com. IN NS ns2.domain.com.
  15. domain.com. IN MX 1 domain.com.
  16.  
  17. ns1.domain.com. IN A 11.33.55.77
  18. ns2.domain.com. IN A 22.44.66.88
  19.  
  20. www IN CNAME domain.com.
  21. ftp IN CNAME domain.com.
  22. mail IN CNAME domain.com.

След изпълнение на командите:

Код
GeSHi (Bash):
  1. rndc reload && service named restart

Резултата е нулев. Нямам "резолв" към домейна, а ето и изхода от dig

Код
GeSHi (Bash):
  1. dig ns domain.com
  2.  
  3. ; <<>> DiG 9.3.4-P1 <<>> ns domain.com
  4. ;; global options:  printcmd
  5. ;; Got answer:
  6. ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 33652
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
  8.  
  9. ;; QUESTION SECTION:
  10. ;domain.com. IN NS

Идентичен е резултата и при проверка на A запис. Можете ли да ми дадете някакви насоки, кое, къде да бутна ?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Хмм... при допитването с dig, което ти е нужно, QUESTION SECTION трябва да съдържа "IN A", а не "IN NS", което ме навежда на мисълта, че в командата, която си показал
Код
GeSHi (Bash):
  1. dig ns domain.com
наистина си писал "ns" по средата, а не си заместил "ns" с IP адреса или домейна на DNS-а. Т.е., явно си я изпълнил точно така, както си я показал. Ето верни примери за изпълнението на тази команда
Код
GeSHi (Bash):
  1. dig ns1.domain.com domain.com
  2. dig @111.222.333.444 domain.com
T.e., трябва да заместиш "ns" в командата с IP адреса или домейна на DNS-а, към който отправяш запитването. Както виждаш, когато се използва IP адрес, се слага знак @ пред него. Ако използваш IP адрес в командата, замести 111.222.333.444 с IP адреса на DNS сървъра. След това, ако все още виждаш някакви проблеми, покажи какъв е бил изходът от вече правилно изпълнената команда. Покажи резултатите от запитването и към двата DNS-а (ns1.domain.com и ns2.domain.com), ако това са различни машини ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

alaska

  • Участници
  • ***
  • Публикации: 9
    • Профил
Здравей,

Благодаря ти за насоките. Ето и резултата от dig ns1.domain.com domain.com

Код
GeSHi (INI):
  1. ;; Got answer:
  2. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2048
  3. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
  4.  
  5. ;; QUESTION SECTION:
  6. ;ns1.domain.com. IN A
  7.  
  8. ;; ANSWER SECTION:
  9. ns1.domain.com. 172556 IN A 11.11.11.111
  10.  
  11. ;; AUTHORITY SECTION:
  12. domain.com. 172556 IN NS ns2.domain.com.
  13. domain.com. 172556 IN NS ns1.domain.com.
  14.  
  15. ;; Query time: 2 msec
  16. ;; SERVER: 22.22.22.222#53(22.22.22.222)
  17. ;; WHEN: Fri Aug 28 09:26:12 2009
  18. ;; MSG SIZE  rcvd: 86
  19.  
  20.  
  21. ; <<>> DiG 9.3.4-P1 <<>> ns1.domain.com domain.com
  22. ;; global options:  printcmd
  23. ;; Got answer:
  24. ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 59401
  25. ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
  26.  
  27. ;; QUESTION SECTION:
  28. ;domain.com. IN A
  29.  
  30. ;; Query time: 3 msec
  31. ;; SERVER: 22.22.22.222#53(22.22.22.222)
  32. ;; WHEN: Fri Aug 28 09:26:12 2009
  33. ;; MSG SIZE  rcvd: 34

Това, което виждам е липсата на А запис за самия домейн и това "status: SERVFAIL".

Следва отговора при запитване към ns2.domain.com


Код
GeSHi (INI):
  1. dig ns2.domain.com domain.com
  2. ;; Got answer:
  3. ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 12179
  4. ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
  5.  
  6. ;; QUESTION SECTION:
  7. ;ns2.domain.com. IN A
  8.  
  9. ;; Query time: 5 msec
  10. ;; SERVER: 22.22.22.222#53(22.22.22.222)
  11. ;; WHEN: Fri Aug 28 09:33:31 2009
  12. ;; MSG SIZE  rcvd: 38
  13.  
  14.  
  15. ; <<>> DiG 9.3.4-P1 <<>> ns2.domain.com domain.com
  16. ;; global options:  printcmd
  17. ;; Got answer:
  18. ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 46448
  19. ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
  20.  
  21. ;; QUESTION SECTION:
  22. ;domain.com. IN A
  23.  
  24. ;; Query time: 5 msec
  25. ;; SERVER: 22.22.22.222#53(22.22.22.222)
  26. ;; WHEN: Fri Aug 28 09:33:31 2009
  27. ;; MSG SIZE  rcvd: 34

« Последна редакция: Aug 28, 2009, 09:36 от alaska »
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Добре, продължаваме нататък. Вижда се, че заявката към ns2.domain.com не връща дори IP адреса на DNS-а, но него ще го оправяме, когато нагласим ns1.domain.com. Първо, в зоновия файл за domain.com замести реда
Цитат
domain.com. IN SOA ns1.domain.com. webmaster.domain.com. (
с
Цитат
@ IN SOA ns1.domain.com. webmaster.domain.com. (
Излишно е да си слагаш такова ограничение. След това покажи съдържанието на основния конфигурационен файл на Bind. Кой е, къде е и как точно е кръстен при теб, е малко трудно да се каже, защото това зависи от дистрибуцията и как си инсталирал пакета. Като начало можеш да видиш следната команда дали ще ти подскаже къде е
Код
GeSHi (Bash):
  1. whereis named
Ако не даде резултат, можеш да го потърсиш в папките /etc/bind, /var/named и /etc. Обикновено името му е named.conf, но това не е задължително. Все пак можеш да пуснеш едно претърсване на системата за файл с такова име. Най-голяма нужда в момента има да се прегледа този файл с конфигурация на Bind, в който се съдържа подобна на тази настройка
Цитат
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
        query-source-v6 port 53;
        allow-query     { any; };
};
Може да е с повече или по-малко редове, може редовете да се различават, но настройката винаги се казва options{}
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

alaska

  • Участници
  • ***
  • Публикации: 9
    • Профил
Направих корекцията в зоновия файл domain.com, но като го проверя с named-checkzone ми връща следното съобщение:

Код
GeSHi (Bash):
  1. domain.com.db:2: SOA record not at top of zone (\@IN.domain.com)
  2. zone domain.com/IN: loading master file domain.com.db: not at top of zone

А това е съдържанието на директивата options:

Код
GeSHi (Bash):
  1. options {
  2.       // query-source    port 53;
  3.    // Put files that named is allowed to write in the data/ directory:
  4.    directory                "/var/named"; // the default
  5.    pid-file                 "/var/run/named/named.pid";
  6.    dump-file                "data/cache_dump.db";
  7.    statistics-file          "data/named_stats.txt";
  8.   /* memstatistics-file     "data/named_mem_stats.txt"; */
  9. };

Прави впечатление обаче, че named е стартиран със следните параметри:

Код
GeSHi (Bash):
  1. /usr/sbin/named -u named -t /var/named/chroot

Като в /var/named/chroot също има named.conf и зонови файлове. Съответно options на named.conf, който се намира в /var/named/chroot е:


Код
GeSHi (Bash):
  1. options {
  2.    // query-source    port 53;
  3.    // Put files that named is allowed to write in the data/ directory:
  4.    directory                "/var/named"; // the default
  5.    pid-file                 "/var/run/named/named.pid";
  6.    dump-file                "data/cache_dump.db";
  7.    statistics-file          "data/named_stats.txt";
  8.   /* memstatistics-file     "data/named_mem_stats.txt"; */
  9. };

Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Покажи целия конфигурационен файл, а не само options. И в останалата част има интересни неща за четене. Относно options, добави следните редове в него, за да зададеш порт, на който да слуша Bind, и да позволиш отправяне на външни заявки към него
Цитат
listen-on port 53 { any; };
query-source    port 53;
allow-query     { any; };
и рестартирай Bind след това. Покажи зоновия файл на domain.com, да видя какво си направил в него с промяната на SOA реда.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

alaska

  • Участници
  • ***
  • Публикации: 9
    • Профил
Тук е named.conf, а това е зоновия файл след промяната:

Код
GeSHi (INI):
  1. $ttl 14400
  2. @IN SOA ns1.domain.com. webmaster.domain.com. (
  3.  
  4. 2009082701 ; Serial in YYYYMM
  5. 10800; refresh seconds
  6. 3600; retry
  7. 604800; expire
  8. 38400; minimum
  9. );
  10.  
  11. domain.com. IN A 11.111.111.11
  12.  
  13. domain.com. IN NS ns1.domain.com.
  14. domain.com. IN NS ns2.domain.com.
  15. domain.com. IN MX 1 domain.com.
  16.  
  17. ns1.domain.com. IN A 11.111.111.11
  18. ns2.domain.com. IN A 22.222.222.22
  19.  
  20. www IN CNAME domain.com.
  21. ftp IN CNAME domain.com.
  22. mail IN CNAME domain.com.

Активен

ntrance

  • Напреднали
  • *****
  • Публикации: 696
    • Профил
Една нормално работеще зано :)
$TTL 14400
hosta.bg.   86400   IN   SOA     ns3..............net.   ........bg.   (
                                                2009052805 ;Serial Number
                                                86400 ;refresh
                                                7200 ;retry
                                                3600000 ;expire
                                                86400 ;minimum
        )
hosta.bg.   86400   IN   NS   ns3........net.
hosta.bg.   86400   IN   NS   ns4...............net.
hosta.bg.   86400   IN   NS   ns1..............t.
hosta.bg.   86400   IN   NS   ns2................
hosta.bg.   14400   IN   A   11.11.11.11
localhost   14400   IN   A   127.0.0.1
hosta.bg.   14400   IN   MX   0   mail.hosta.bg.
mail    14400   IN   A   11.11.11.11
www     14400   IN   CNAME   hosta.bg
ftp     14400   IN   A   11.11.11.11
test  14400   IN   A   11.11.11.11
whm     14400   IN   A   11.11.11.11
webmail 14400   IN   A   11.11.11.11
webdisk 14400   IN   A   11.11.11.11
Активен

alaska

  • Участници
  • ***
  • Публикации: 9
    • Профил
Сега е наред:

Код
GeSHi (Bash):
  1. zone domain.com/IN: loaded serial 2009052805
  2. OK

Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Бил си изпуснал интервала между @ и IN в реда за SOA :) Щом сега зоновият файл е наред, добави ли 3-те реда към options, които ти дадох и какво стана след това?
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

alaska

  • Участници
  • ***
  • Публикации: 9
    • Профил
Re: Проблем с конфигурирането на Master DNS server
« Отговор #10 -: Aug 28, 2009, 14:57 »
Резултата от dig е както по-горе бях постнал. Тоест без промяна. В интерес на истината преди години съм настройвал DNS и бе тръгнал от раз, но сега не знам какво става......
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Проблем с конфигурирането на Master DNS server
« Отговор #11 -: Aug 28, 2009, 15:08 »
Я пробвай локално, на самия DNS, да отправиш заявка към DNS-а по IP адрес. Демек
Код
GeSHi (Bash):
  1. dig @127.0.0.1 domain.com
и да видим какво ще върне.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Проблем с конфигурирането на Master DNS server
« Отговор #12 -: Aug 28, 2009, 15:16 »
Опа, имаш грешка в named.conf :) Там, където си описал зоната
Цитат
zone "domain.com" {
        type master;
        file "/var/named/domain.com";
};
Долната затваряща скоба не е затваряща скоба на zone, а е затваряща скоба на view "internal" - секцията, в която, поради тази грешка, попада описаната зона. Предполагам, при това положение, локалната заявка, която преди малко те накарах да направиш, ще работи, тъй като това ще бъде вътрешна (internal) заявка, освен ако липсващата затваряща скоба на зоната не я чупи. Добави затваряща скоба така, че зоната да остане извън "internal" секцията, за да може да е видима не само локално, но и при външни заявки. Т.е., горното да стане така
Цитат
};
};

zone "domain.com" {
        type master;
        file "/var/named/domain.com";
};

edit: Всъщност, както виждаш, добавил съм две скоби, а не една, защото забелязвам, че си изтрил затварящата скоба и на описаната "." зона в "internal" секцията. Преброй си и ти скобите, гледай всяка отворена скоба да се затваря някъде, и то да се затваря там, където е нужно.
« Последна редакция: Aug 28, 2009, 15:19 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

alaska

  • Участници
  • ***
  • Публикации: 9
    • Профил
Re: Проблем с конфигурирането на Master DNS server
« Отговор #13 -: Aug 28, 2009, 15:25 »
Код
GeSHi (INI):
  1. ; <<>> DiG 9.3.4-P1 <<>> @127.0.0.1 domain.com
  2. ; (1 server found)
  3. ;; global options:  printcmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20884
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
  7.  
  8. ;; QUESTION SECTION:
  9. ;domain.com. IN A
  10.  
  11. ;; ANSWER SECTION:
  12. domain.com. 14400 IN A 11.111.111.111.
  13.  
  14. ;; AUTHORITY SECTION:
  15. domain.com. 86400 IN NS ns1.domain.
  16. domain.com. 86400 IN NS ns2.domain.
  17.  
  18. ;; Query time: 256 msec
  19. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  20. ;; WHEN: Fri Aug 28 15:22:59 2009
  21. ;; MSG SIZE  rcvd: 86

Не изглежда зле май сега ?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Проблем с конфигурирането на Master DNS server
« Отговор #14 -: Aug 28, 2009, 15:35 »
Много добре си изглежда даже :) Хайде сега да видим ще се справиш ли и с другия DNS. Ползвай този като пример ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти