DNS: делегирование разрешения субдомена другому серверу имен

я настраиваю DNS-сервер дома, чтобы облегчить мне псевдоним некоторых из моих локальных серверов, а также как проект, чтобы лучше понять DNS. Поскольку я новичок в этом, пожалуйста, простите (и исправьте, если хотите) любые ошибки с терминологией!

цель моего локального DNS-сервера - использовать мой домен для доступа к некоторым из моих локальных машин. Допустим, мой домен my-domain.com. У меня дома есть медиа-сервер, к которому я хочу получить доступ как media.my-domain.com, и у меня есть два локальных DNS сервера, которые я использую для этой цели. Эти DNS-серверы делегировать Google DNS для других запросов.

вот мой файл зоны для my-domain.com, хранящийся в /etc/bind/zones/db.my-domain.com на моем локальном DNS-сервере ns1:

;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns1.my-domain.com. admin.my-domain.com. (
                  3     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
; name servers - NS records
@   IN  NS  ns1.my-domain.com.
@   IN  NS  ns2.my-domain.com.
;
; name servers - A records
ns1.my-domain.com.  IN  A   10.55.55.55
ns2.my-domain.com.  IN  A   10.55.55.56
;
; 10.55.55.0/24 - A records
media.my-domain.com.    IN  A   10.55.55.100

вот мой файл опций, который хранится в /etc/bind/named.conf.options на моем локальном DNS-сервере ns1:

acl "trusted" {
    10.55.55.0/24; # home network
};
options {
    directory "/var/cache/bind";

    recursion yes;
    allow-recursion { trusted; };
    listen-on { 10.55.55.55; };
    allow-transfer {none; }; # disable zone transfers

    forwarders {
        8.8.8.8; # google1
        8.8.4.4; # google2
    };

    //========================================================================
    // 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
    listen-on-v6 { any; };
};

здесь 10.55.55.0/24 - это моя локальная подсеть, и ns1 и ns2 мои основной и Дополнительный DNS-серверы, соответственно.

я использование my-domain.com для других целей в интернете, например, когда я получаю доступ к admin.my-domain.com он берет меня в консоль администратора общедоступного веб-сайта. То есть, если вы выполняете nslookup on admin.my-domain.com С DNS-серверов Google вы увидите, что он отображается на глобально доступный публичный IP-адрес.

к сожалению, после того, как я реализовал свои локальные DNS-серверы, я не могу решить admin.my-domain.com правильно. Мой nslookup запросы попали на мои локальные DNS-серверы, которые не настроены для этого поддомен, и я получаю "нет ответа" от моего локального DNS.

поведение я хотел бы, вместо этого, для моих DNS-серверов для пересылки запросов на my-domain.com в Google DNS, а только дают ответы ns1.my-domain.com,ns2.my-domain.com и media.my-domain.com. Я видел некоторые вопросы, похожие на мои, но ответы, как правило, создают один файл зоны для каждого поддомена. Это действительно единственный способ? Мне бы очень хотелось иметь возможность сказать: "если я указал правило для x.my-domain.com затем следуйте это правило. В противном случае делегируйте цепочку (в Google DNS в моем случае)."

я не уверен, как устранить эту проблему с Google, так как я не очень ясно, по терминологии, и так как я в общей сложности нуб я не знаю, с чего начать на исправление его сам. То, о чем я прошу, вообще возможно? Любая помощь в том, как я мог бы реализовать это поведение или искать его, была бы принята с благодарностью. Спасибо!

30
задан Jake
10.11.2022 7:10 Количество просмотров материала 2687
Распечатать страницу

1 ответ

проблема в том, что вы настроили Bind быть авторитетным для всего example.com.

таким образом, вы должны либо Настроить локальную привязку для хранения не только внутренних записей DNS, но и копии всех ваших публичных записей DNS в файле зоны для example.com.

в качестве альтернативы, а не делать Bind авторитетным для example.com вы резервируете поддомен example.com для внутреннего использования сделайте свой внутренний DNS только авторитетным для этого. т. е. создать зону звонил home.example.com и использовать media.home.example.com. Таким образом, вы не сможете иметь конфликтующие записи во внутренней и общедоступной DNS.

2
отвечен HBruijn 2022-11-11 14:58

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх