Я настраиваю 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
на 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, так как я не совсем понимаю терминологию, и, поскольку я абсолютный новичок, я не знаю, с чего начать, чтобы исправить это самостоятельно. Возможно ли то, что я прошу? Буду очень признателен за любую помощь в том, как я могу реализовать это поведение или искать его. Спасибо!