Невозможно изменить значение TTL на локальном DNS Ubuntu 18.04

Я настроил локальный DNS с почтовым сервером, пока проверял dns с использованием dig по умолчанию ttl всегда равен 0.

Как я могу установить TTL 60? Не могли бы вы мне посоветовать?

root@mx:/etc/bind# uname -a
Linux mx.mailserver.local 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
root@mx:/etc/bind# dig localhost

; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 886
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;localhost.                     IN      A

;; ANSWER SECTION:
localhost.              **0**       IN      A       127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Aug 10 15:06:14 IST 2021
;; MSG SIZE  rcvd: 54
root@mx:/etc/bind# dig mx.mailserver.local

; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> mx.mailserver.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55910
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;mx.mailserver.local.             IN      A

;; ANSWER SECTION:

mx.mailserver.local.      **0**       IN      A       192.168.1.55

mx.mailserver.local.      **0**       IN      A       192.168.1.66

mx.mailserver.local.      **0**       IN      A       192.168.1.77

mx.mailserver.local.      **0**       IN      A       192.168.1.88


;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Aug 10 15:06:34 IST 2021
;; MSG SIZE  rcvd: 110

Вот файлы моей зоны.

root@mx:/etc/bind# cat mailserver.local.db
;
; BIND data file for local loopback interface
;
$TTL    14400
@       IN      SOA     ns1.mailserver.local. root.mailserver.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.mailserver.local.
ns1.mailserver.local.     IN      A       192.168.1.55
localhost       60      IN      A       127.0.0.1
;
@       60      IN      A       192.168.1.55
@       60      IN      CNAME   mx.mailserver.local.
;
@      300      IN      MX      5       mx.mailserver.local.
;
mx     60      IN      A       192.168.1.55
mx     60      IN      A       192.168.1.66
mx     60      IN      A       192.168.1.77
mx     60      IN      A       192.168.1.88


root@mx:/etc/bind# cat db.local
;
; BIND data file for local loopback interface
;
$TTL    2419200
@       IN      SOA     localhost. root.localhost. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       60      IN      NS      localhost.
@       60      IN      A       127.0.0.1
@       60      IN      AAAA    ::1

Это моя основная проблема, я не менял IP-адрес и на 192.168.1.55 оставался только пинг.

root@mx:/etc/bind# for i in {1..6};do ping -c 1 mx.mailserver.local|grep ^PING;sleep 1;done
PING mx.mailserver.local (192.168.1.55) 56(84) bytes of data.
PING mx.mailserver.local (192.168.1.55) 56(84) bytes of data.
PING mx.mailserver.local (192.168.1.55) 56(84) bytes of data.
PING mx.mailserver.local (192.168.1.55) 56(84) bytes of data.
PING mx.mailserver.local (192.168.1.55) 56(84) bytes of data.
PING mx.mailserver.local (192.168.1.55) 56(84) bytes of data.
-2
задан 12 August 2021 в 03:31

2 ответа

Значение TTL здесь вам не поможет.

То, что вы видите на своей единственной машине, является стандартным поведением для DNS, ping и т.д. Если для имени хоста возвращается несколько адресов, службы по умолчанию будут использовать первый адрес, указанный в ответе DNS.

Позвольте мне объяснить на примере.

Допустим, у меня есть имя хоста с тремя записями A. Эти записи A указывают на 192.168.10.1, 192.168.10.2 и 192.168.10.3 соответственно для одного и того же домена.

В ответе DNS будет любой из этих адресов. Т.Е. Фактический "ответ" DNS может выдать их в следующем порядке:

192.168.10.2
192.168.10.1
192.168.10.3

Те же три записи в отдельном запросе DNS могут вернуться в таком порядке:

192.168.10.1
192.168.10.3
192.168.10.2

Поэтому, когда вы выполняете разрешение DNS на одном имени хоста для целей ping и т.п., он имеет нулевой приоритет, и "последний ответ", который он получил, будет "кэширован", и этот "первый" адрес будет использоваться для целей ping, веб-запросов, инициализации соединений с именем хоста и т.п.

В ping и т.д. нет концепции "Проверить все IP с разными запросами" - для этого вам нужно вручную переопределить адрес на уровне /etc/hosts или пинговать IP(ы) напрямую. Как правило, если у вас есть три адреса для одной записи домена, вы должны пинговать IP-адреса независимо друг от друга, а не доверять правильному разрешению 'hostname'.

Далее, если вы не удалили systemd-resolved из уравнения, это кэширующий преобразователь на вашей стороне, и он будет "кэшировать" этот начальный IP-ответ для почтового сервера (в моем примере .2 был первым адресом в ответе, поэтому он кэширует его. если я перезапущу этот процесс в системе и промою его кэш, и DNS-сервер, к которому он обращается, вернет . 1, то .1 будет кэширован как "результат" для первого имени хоста DNS, а также для трех других записей.)

0
ответ дан 20 August 2021 в 10:28

Если вы хотите, чтобы IP-адреса поворачивались, я думаю, вам нужно определить разные регистры A с одинаковым именем и разными IP-адресами,затем следует определить регистры MX с одинаковым приоритетом, обычно 10, и разными Ip-адресами. Поэтому, чтобы было понятно, вам нужно иметь два регистра: один из типа A, другой типа MX.

Может быть, вы можете запустить несколько экземпляров Docker и пинговать изнутри, чтобы поймать, что они решают?.

0
ответ дан 20 August 2021 в 10:28

Другие вопросы по тегам:

Похожие вопросы: