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

Как мне написать файл зоны, чтобы изменения DNS не имели задержки?

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

Я немного запутался между значениями Refresh, Retry, Expire и TTL. Какой из них мне нужно установить на минимум, чтобы «распространять изменения DNS» (если я могу использовать этот термин) без большой задержки? Я новичок в серверах имен, но у меня три сервера имен настроены на rsync их файлов зоны каждые 2 минуты. Первый сервер (ns1.mydomain) имеет следующие настройки:

mydomain.com.       IN      SOA     ns1.mainnameserver.co.in. admin.mydomain.com. (
                   2007010401           ; Serial
                         1800           ; Refresh [1h=3600] 1800=30m
                          600           ; Retry   [10m]
                        86400           ; Expire  [2weeks] 86400=1day
                          600 )         ; Negative Cache TTL [1h]
;
$TTL 3m;
mydomain.com.      IN     NS      ns1.mainnameserver.co.in.
mydomain.com.      IN     NS      ns2.mainnameserver.co.in.
mydomain.com.      IN     NS      ns3.mainnameserver.co.in.
mydomain.com.      IN     MX      10 her.mainnameserver.co.in.
mydomain.com.      IN     A       198.13.18.223
www.mydomain.com.  IN     A       198.13.18.223
ns1.mydomain.com.  IN     A       197.18.72.23
ns2.mydomain.com.  IN     A       36.124.102.106
ns3.mydomain.com.  IN     A       36.117.98.133
mydomain.com.     3501    IN     TXT   "v=spf1 a:her.mainnameserver.co.in mx:hermes.mainnameserver.co.in mx: ip4:191.21.218.223 ~all"
*.mydomain.com.   3600    IN      CNAME   mydomain.com.

Я предположил, что значение TTL - это то, что мне нужно, и установил его, как указано выше, на 3 минуты. Это правильный способ сделать это?

В связи с этим ... С указанным выше файлом зоны, когда я использую named-checkzone, я получаю /var/lib/bind/db.mydomain.com:1: no TTL specified; using SOA MINTTL instead. Почему отображается это сообщение? Как мне избежать предупреждения и сделать это правильно?

TTL определенно то, что вам нужно.

Вы пробовали написать это за секунды? установите значение TTL на следующее:

$TTL 180;

Я считаю, что вы получаете ошибку из-за того, что вы использовали минуты. Он не понимает, что вы на самом деле указали TTL, и поэтому по умолчанию возвращается значение SOA MINTTL.

Не забудьте перезапустить bind и запустить новую named-checkzone!

Эта страница также хорошо описывает то, что вам нужно - Ссылка на сайт