Назад | Перейти на главную страницу

Bind9 DNS преобразует полный домен в localhost

Я установил DNS-сервер Bind9 на моей виртуальной машине разработки, на которой работает Debian Wheezy. Мои адреса разрешаются с моего хост-компьютера (Win7) на мою виртуальную машину разработчика, и я могу пинговать оттуда. Внутри виртуальной машины я могу пинговать свои имена (www, share, my_name и т. Д.), И он разрешает правильный IP (11.11.11.11). Но когда я пингую свой полный FDQN (www.app.dev), он преобразуется в localhost. Это неверно для my_name.app.dev, только записи CNAME в моем файле db.app.dev в моей папке / etc / bind /. Итак, если я пингую www, разрешается 11.11.11.11, www.app.dev разрешается до 127.0.0.1. Пинг www.app.dev или просто www вне виртуальной машины DNS разрешает нормально. Это ожидаемое поведение или я что-то упускаю?

Вот файлы, которые, я думаю, вам нужны. Я добавил resolv.conf на случай, если там что-то не так.

/etc/bind/zones/db.app.dev

$TTL    604800
@   IN  SOA app.dev. root.app.dev. (
                 15     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;

app.dev.   IN NS my_name.app.dev.
app.dev.   IN A 11.11.11.11
;@  IN  A   127.0.0.1
;@  IN  AAAA    ::1
my_name     IN A 11.11.11.11
gateway     IN A 11.11.11.2
vmhost      IN A 11.11.11.1
www         IN CNAME app.dev.
stream      IN CNAME app.dev.

/etc/bind/ named.conf.local

include "/etc/bind/zones.rfc1918";

zone "app.dev" {
    type master;
    file "/etc/bind/zones/db.app.dev";
};

zone "11.11.11.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/db.11";
};

/etc/resolv.conf

domain app.dev
search app.dev
nameserver 11.11.11.11

Вот файл hosts / etc / hosts

127.0.0.1                       localhost
11.11.11.11 my_name.app.dev     my_name

# The following lines are desirable for IPv6 capable hosts
#::1     localhost ip6-localhost ip6-loopback
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

копать при условии: dig www.app.dev any #=>

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> www.app.dev any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51223
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.app.dev.           IN  ANY

;; ANSWER SECTION:
www.app.dev.        604800  IN  CNAME   app.dev.


;; AUTHORITY SECTION:
app.dev.        604800  IN  NS  my_name.app.dev.

;; ADDITIONAL SECTION:
my_name.app.dev.        604800  IN  A   11.11.11.11

;; Query time: 2 msec
;; SERVER: 11.11.11.11#53(11.11.11.11)
;; WHEN: Wed Aug 13 12:48:15 2014
;; MSG SIZE  rcvd: 78

вот пинг: ping www.app.dev

PING www.app.dev (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.035 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.032 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.038 ms
^C
--- www.app.dev ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.032/0.035/0.038/0.002 ms

Я забыл где isc-bind по умолчанию его журналы; так что рассмотрите следующее дополнение к вашему named.conf. Это конфигурация ведения журнала, которую я использовал последние 10 лет или около того. Вероятно, это немного чрезмерно; но он ничего не должен упускать. Я работаю на FreeBSD; поэтому расположение журналов может быть несовершенным. Вам также нужно будет создать namedb подкаталог и сделать его доступным для записи BIND (в моем случае это bind:wheel 755). После того, как вы убедитесь, что у вас хороший журнал (возможно, уже), grep для error в /var/log/namedb/general.

Вы делаете это, чтобы убедиться, что named доволен вашей конфигурацией.

(На самом деле у меня все это есть в файле под названием named.logs и я копирую это и include Это. Содержание не изменилось с момента появления вер. 9 удалил категорию "статистика".)

logging {
    channel "default_debug" {
    file "/var/log/named.run";  // Redefine the built-in debug
                    // channel; so named.run is
                    // written to a consistent location
    severity dynamic;       // log at the server's
                    // current debug level
    };
    channel "default" {
    file        "/var/log/default" versions 3 size 100k;
    severity    debug;
    //severity  debug 3;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "general" {
    file        "/var/log/general" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "database" {
    file        "/var/log/database" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "security" {
    file        "/var/log/security" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "resolver" {
    file        "/var/log/resolver" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "xfer" {
    file        "/var/log/xfer" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "notify" {
    file        "/var/log/notify" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "client" {
    file        "/var/log/client" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "unmatched" {
    file        "/var/log/unmatched" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "network" {
    file        "/var/log/network" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "update" {
    file        "/var/log/update" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "queries" {
    file        "/var/log/query.log" versions 3 size 5m;
    //severity  debug;
    //print-category    yes;
    //print-severity    yes;
    print-time  yes;
    };
    channel "dispatch" {
    file        "/var/log/dispatch" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "dnssec" {
    file        "/var/log/dnssec" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "lame-servers" {
    file        "/var/log/lamoes" versions 3 size 100k;
    severity    debug;
    print-category  yes;
    print-severity  yes;
    print-time  yes;
    };
    channel "statistics" {
    // This is for cricket
    file        "/var/log/stats.log" versions 3 size 1k;
    };

    category "default"      { "default"; };
    category "general"      { "general"; };
    category "database"     { "database"; };
    category "security"     { "security"; };
    category "config"       { "general"; };
    category "resolver"     { "resolver"; };
    category "xfer-in"      { "xfer"; };
    category "xfer-out"     { "xfer"; };
    category "notify"       { "notify"; };
    category "client"       { "client"; };
    category "unmatched"    { "unmatched"; };
    category "network"      { "network"; };
    category "update"       { "update"; };
    category "queries"      { "queries"; };
    category "dispatch"     { "dispatch"; };
    category "dnssec"       { "dnssec"; };
    category "lame-servers" { "lame-servers"; };
//    category "statistics" { "statistics"; };
};

Если ясно, что named работает без ошибок, вам нужно сделать несколько dig's (по просьбе @ Håkan Lindqvist, чтобы увидеть конкретно, о чем идет речь, например:

dig @127.0.0.1 my_name.app.dev.
dig @11.11.11.11 my_name.app.dev.

Windows не имеет dig; поэтому вы ограничены устаревшими nslookup и (я полагаю) придется использовать интерактивный режим. Укажите различные «серверы» и запросите «my_name.app.dev».

Пожалуйста, дайте нам знать, что вы видите.

если у вас есть настройка www в качестве имени хоста вашего компьютера в файле hosts (/ etc / hosts), он будет разрешен сначала с локального компьютера (хосты проверяются перед настройками преобразователей). Проверьте свой файл hosts ...