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

Создайте DNS для поддомена с подстановочными знаками, который является localhost

Я пытаюсь создать DNS для поддоменов с подстановочными знаками, которые работают на localhost.

Это не работает. Основной домен в порядке, но поддомены вместо этого указывают на внешний сервер.

Вот что у меня есть:

В /etc/ named.conf:

zone "typeflex" IN {
    type master;
    file "/var/named/typeflex.zone";
    allow-update { none; };
};

В /var/ named/typeflex.zone:

$TTL    86400;
@   IN SOA typeflex.com.    hostmaster.typeflex.com. (
    20170101        ; serial
    3h              ; refresh
    1h              ; retry
    1w              ; expiry
    1d              ; minimum
    )

    IN  NS  typeflex.com.
    IN  A   127.0.0.1

@                       IN A            127.0.0.1
*                       IN A            127.0.0.1
*.typeflex.com.         IN A            127.0.0.1
www                     IN CNAME        typeflex.com.

Ваша зона не для typeflex.com. но для typeflex. TLD. В typeflex.com работает, потому что /etc/hosts отменяет DNS A рекорд для него. Вместо этого для каждого поддомена используется авторитетный DNS-сервер.

Если у вас есть localhost как ваш рекурсивный DNS-сервер, вам не нужно ничего связанного с вашим /etc/hosts; просто создайте авторитетную зону для typeflex.com. и добавить:

$ORIGIN typeflex.com.
@ IN SOA ...
@ IN A 127.0.0.1
* IN A 127.0.0.1

+ Изменить zone "typeflex" IN { к zone "typeflex.com" IN { и убедитесь, что вы бежите rndc reload чтобы сделать изменения активными.

Затем убедитесь, что ваш /etc/resolv.conf использует:

nameserver 127.0.0.1

... а не какие-либо другие серверы имен.

Также убедитесь, что ваша конфигурация привязки допускает рекурсивный поиск из loopback (127.0.0.1).