кэширующий DNS systemd
Модераторы: Olej, bellic, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Там же выяснилось (OpenNIC DNS и EmerCoin) ... очень интересное и ... непотребное свойство кэширующего сервера - что он меняет IP из списка DNS ... по непонятному мне пока принципу.
Смотрим:
Код: Выделить всё
olej@R420:~$ nslookup flibusta.lib
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find flibusta.lib: NXDOMAIN
Разрешение имён с домена .lib, которые должны разрешаться через шлюз OpenNIC DNS - теряется!
Код: Выделить всё
olej@R420:~$ cat /etc/systemd/resolved.conf | grep -v ^#
[Resolve]
DNS=194.36.144.87 94.247.43.254 1.1.1.1 8.8.4.4
LLMNR=yes
Сервера OpenNIC DNS здесь, в списке resolved.conf - 1-й и 2-й по порядку.
Но:
Код: Выделить всё
olej@R420:~$ resolvectl status
Global
Protocols: +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Current DNS Server: 1.1.1.1
DNS Servers: 194.36.144.87 94.247.43.254 1.1.1.1 8.8.4.4
Link 2 (eno1)
Current Scopes: DNS LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.3
DNS Servers: 194.36.144.87 192.168.1.3 1.1.1.1 8.8.4.4
Link 3 (eno2)
Current Scopes: DNS LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.3
DNS Servers: 194.36.144.87 192.168.1.3 1.1.1.1 8.8.4.4
Current DNS Server: 1.1.1.1 ... он сменил порядок использования динамически.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Заставляю его перечитать конфигурацию (даже без рестарта!):
Код: Выделить всё
olej@R420:~$ sudo pkill -SIGHUP systemd-resolve
[sudo] пароль для olej:
Код: Выделить всё
olej@R420:~$ resolvectl status
Global
Protocols: +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
DNS Servers: 194.36.144.87 94.247.43.254 1.1.1.1 8.8.4.4
Link 2 (eno1)
Current Scopes: DNS LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 194.36.144.87 192.168.1.3 1.1.1.1 8.8.4.4
Link 3 (eno2)
Current Scopes: DNS LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 194.36.144.87 192.168.1.3 1.1.1.1 8.8.4.4
Код: Выделить всё
olej@R420:~$ nslookup flibusta.lib
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: flibusta.lib
Address: 179.43.150.83
Через какое время?
По какому принципу systemd тасует IP адреса DNS серверов?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Пока переконфигурировал так:
Код: Выделить всё
olej@R420:~$ cat /etc/systemd/resolved.conf | grep -v ^#
[Resolve]
DNS=94.16.114.254 94.247.43.254 51.254.162.59 194.36.144.87
FallbackDNS=192.168.1.3 1.1.1.1 8.8.4.4
LLMNR=yes
Код: Выделить всё
olej@R420:~$ sudo pkill -SIGHUP systemd-resolve
Код: Выделить всё
olej@R420:~$ resolvectl status
Global
Protocols: +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Current DNS Server: 94.16.114.254
DNS Servers: 94.16.114.254 94.247.43.254 51.254.162.59 194.36.144.87
Fallback DNS Servers: 192.168.1.3 1.1.1.1 8.8.4.4
Link 2 (eno1)
Current Scopes: LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 3 (eno2)
Current Scopes: LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Код: Выделить всё
olej@R420:~/2023/R420.tech/R420.net$ nslookup flibusta.lib
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: flibusta.lib
Address: 179.43.150.83
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Про конфигурационные параметры /etc/systemd/resolved.conf в документации по systemd (по крайней мере, по состоянию на 28 октября 2017 - 129 стр.) нет ни слова.
Более-менее что-то внятное здесь: Настройка systemd-resolved для локального кэширования DNS в Debian 10.
И:
Код: Выделить всё
olej@R420:~$ man resolved.conf
...
DNS=
Разделенный пробелами список адресов IPv4 и IPv6 для использования в качестве системных DNS-серверов. Каждый адрес может дополнительно содержать номер порта, разделенный знаком «:», имя или индекс сетевого интерфейса, разделенный знаком «%», и указание имени сервера (SNI), разделенный знаком «#». Когда адрес IPv6 указан с номером порта, адрес должен быть заключен в квадратные скобки. То есть приемлемыми полными форматами являются «111.222.333.444:9953%ifname#example.com» для IPv4 и «[1111:3333]:9953%ifname#example.com» для IPv6.
FallbackDNS=
Разделенный пробелами список адресов IPv4 и IPv6 для использования в качестве резервных DNS-серверов.
Cache=
В качестве аргумента принимает логическое значение или "no-negative". Если «Yes», разрешение доменного имени, которое уже было запрошено ранее, вернет предыдущий результат, пока он все еще действителен, и, таким образом, не приведет к новому сетевому запросу. Имейте в виду, что отключение кэширования приводит к потере производительности, которая особенно высока при использовании DNSSEC. Если «no-negative» (по умолчанию), кэшируются только положительные ответы.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Контроль что кэширующий сервер DNS работает:
Код: Выделить всё
olej@R420:~$ sudo netstat -anp | grep 127.0.0.53:53
[sudo] пароль для olej:
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 20458/systemd-resol
udp 0 0 127.0.0.53:53 0.0.0.0:* 20458/systemd-resol
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Приложения, которые не используют библиотечные вызовы, а обращаются к DNS серверам напрямую (ping и прочие), не будут использовать systemd-resolved. Они будут брать днс сервера из файла /etc/resolv.conf.
Можно оставить как есть, но есть еще 2 варианта:
1. Создать ссылку на /run/systemd/resolve/resolv.conf, который генерируется автоматически при изменении конфига systemd-resolved. В этом случае не нужно будет менять адреса DNS серверов в двух местах. Кеш прямых запросов в этом случае не будет работать.
2. Направить все прямые DNS запросы на адрес резолвера (127.0.0.53). В этом случае будет работать кеш запросов, но нужно будет следить за тем, чтобы сервис systemd-resolved всегда был активен.
Код: Выделить всё
olej@R420:~$ grep -v '^$\|^#' /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search .
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Проверка на сервере где работает этот форум:
Код: Выделить всё
olej@277938:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
Код: Выделить всё
olej@277938:~$ resolvectl status
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
Код: Выделить всё
olej@277938:~$ systemctl status systemd-resolved.service --no-pager --full
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/systemd-resolved.service.d
└─resolvconf.conf
Active: inactive (dead)
Docs: man:systemd-resolved.service(8)
https://www.freedesktop.org/wiki/Software/systemd/resolved
https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
Но так же по дефолту не запущен.
Смотрим из какого пакета он пришёл:
Код: Выделить всё
olej@R420:~$ apt contains resolvectl
systemd: /usr/bin/resolvectl
systemd: /usr/share/bash-completion/completions/resolvectl
systemd: /usr/share/man/man1/resolvectl.1.gz
systemd: /usr/share/zsh/vendor-completions/_resolvectl
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Задача: добавить OpenNIC DNS URL для разрешение имён в альтернативных доменных зонах.
Отбираю несколько серверов OpenNIC из полного списка OpenNIC Public Servers (по принципу близости не к моему локальному хосту, а к серверу форума ):
Код: Выделить всё
olej@277938:~$ ping -c3 91.217.137.37
PING 91.217.137.37 (91.217.137.37) 56(84) bytes of data.
64 bytes from 91.217.137.37: icmp_seq=1 ttl=58 time=60.7 ms
64 bytes from 91.217.137.37: icmp_seq=2 ttl=58 time=58.2 ms
64 bytes from 91.217.137.37: icmp_seq=3 ttl=58 time=58.5 ms
--- 91.217.137.37 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 58.175/59.109/60.675/1.131 ms
Код: Выделить всё
olej@277938:~$ ping -c3 94.16.114.254
PING 94.16.114.254 (94.16.114.254) 56(84) bytes of data.
64 bytes from 94.16.114.254: icmp_seq=1 ttl=56 time=97.7 ms
64 bytes from 94.16.114.254: icmp_seq=2 ttl=56 time=97.2 ms
64 bytes from 94.16.114.254: icmp_seq=3 ttl=56 time=97.1 ms
--- 94.16.114.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 97.108/97.341/97.745/0.460 ms
Код: Выделить всё
olej@277938:~$ ping -c3 94.247.43.254
PING 94.247.43.254 (94.247.43.254) 56(84) bytes of data.
64 bytes from 94.247.43.254: icmp_seq=1 ttl=57 time=95.9 ms
64 bytes from 94.247.43.254: icmp_seq=2 ttl=57 time=95.3 ms
64 bytes from 94.247.43.254: icmp_seq=3 ttl=57 time=95.5 ms
--- 94.247.43.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 95.251/95.566/95.947/0.382 ms
Код: Выделить всё
olej@277938:~$ ping -c3 51.254.162.59
PING 51.254.162.59 (51.254.162.59) 56(84) bytes of data.
--- 51.254.162.59 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 55ms
Код: Выделить всё
olej@277938:~$ ping -c3 194.36.144.87
PING 194.36.144.87 (194.36.144.87) 56(84) bytes of data.
64 bytes from 194.36.144.87: icmp_seq=1 ttl=56 time=97.4 ms
64 bytes from 194.36.144.87: icmp_seq=2 ttl=56 time=96.8 ms
64 bytes from 194.36.144.87: icmp_seq=3 ttl=56 time=96.7 ms
--- 194.36.144.87 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 96.711/96.983/97.442/0.326 ms
Код: Выделить всё
olej@277938:~$ ping -c3 51.83.172.84
PING 51.83.172.84 (51.83.172.84) 56(84) bytes of data.
64 bytes from 51.83.172.84: icmp_seq=1 ttl=52 time=86.3 ms
64 bytes from 51.83.172.84: icmp_seq=2 ttl=52 time=83.4 ms
64 bytes from 51.83.172.84: icmp_seq=3 ttl=52 time=86.3 ms
--- 51.83.172.84 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6ms
rtt min/avg/max/mdev = 83.367/85.295/86.263/1.363 ms
Код: Выделить всё
olej@277938:~$ ping -c3 185.181.61.24
PING 185.181.61.24 (185.181.61.24) 56(84) bytes of data.
64 bytes from 185.181.61.24: icmp_seq=1 ttl=55 time=72.8 ms
64 bytes from 185.181.61.24: icmp_seq=2 ttl=55 time=72.4 ms
64 bytes from 185.181.61.24: icmp_seq=3 ttl=55 time=72.5 ms
--- 185.181.61.24 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 72.355/72.571/72.848/0.372 ms
Код: Выделить всё
olej@277938:~$ ping -c3 151.80.222.79
PING 151.80.222.79 (151.80.222.79) 56(84) bytes of data.
64 bytes from 151.80.222.79: icmp_seq=1 ttl=53 time=108 ms
64 bytes from 151.80.222.79: icmp_seq=2 ttl=53 time=107 ms
64 bytes from 151.80.222.79: icmp_seq=3 ttl=53 time=107 ms
--- 151.80.222.79 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 4ms
rtt min/avg/max/mdev = 107.410/107.774/108.417/0.592 ms
Код: Выделить всё
olej@277938:~$ ping -c3 103.1.206.179
PING 103.1.206.179 (103.1.206.179) 56(84) bytes of data.
64 bytes from 103.1.206.179: icmp_seq=1 ttl=50 time=328 ms
64 bytes from 103.1.206.179: icmp_seq=2 ttl=50 time=325 ms
64 bytes from 103.1.206.179: icmp_seq=3 ttl=50 time=325 ms
--- 103.1.206.179 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 4ms
rtt min/avg/max/mdev = 324.870/326.013/328.198/1.545 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
кэширующий DNS systemd
Заполняю /etc/systemd/resolved.conf ... копированием того, что успешно работает уже несколько месяцев у меня на локальном хосте, только подменив ему список IP серверов DNS:
Код: Выделить всё
olej@277938:~$ cat /etc/systemd/resolved.conf | grep -v ^# | grep -v ^$
[Resolve]
DNS=91.217.137.37 185.181.61.24 51.83.172.84 94.247.43.254
FallbackDNS=1.1.1.1 8.8.4.4
LLMNR=yes
Код: Выделить всё
root@277938:/etc/systemd# systemctl start systemd-resolved.service
Код: Выделить всё
root@277938:/etc/systemd# systemctl status systemd-resolved.service --no-pager --full
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/systemd-resolved.service.d
└─resolvconf.conf
Active: active (running) since Sat 2023-04-08 13:29:50 MSK; 1min 20s ago
Docs: man:systemd-resolved.service(8)
https://www.freedesktop.org/wiki/Software/systemd/resolved
https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
Process: 17971 ExecStartPost=/bin/sh -c [ ! -e /run/resolvconf/enable-updates ] || echo "nameserver 127.0.0.53" | /sbin/resolvconf -a systemd-resolved (code=exited, status=0/SUCCESS)
Main PID: 17970 (systemd-resolve)
Status: "Processing requests..."
Tasks: 1 (limit: 1149)
Memory: 2.1M
CGroup: /system.slice/systemd-resolved.service
└─17970 /lib/systemd/systemd-resolved
апр 08 13:29:50 277938.local systemd[1]: Starting Network Name Resolution...
апр 08 13:29:50 277938.local systemd-resolved[17970]: Positive Trust Anchors:
апр 08 13:29:50 277938.local systemd-resolved[17970]: . IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5
апр 08 13:29:50 277938.local systemd-resolved[17970]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
апр 08 13:29:50 277938.local systemd-resolved[17970]: Negative trust anchors: 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-addr.arpa 20.172.in-addr.arpa 21.172.in-addr.arpa 22.172.in-addr.arpa 23.172.in-addr.arpa 24.172.in-addr.arpa 25.172.in-addr.arpa 26.172.in-addr.arpa 27.172.in-addr.arpa 28.172.in-addr.arpa 29.172.in-addr.arpa 30.172.in-addr.arpa 31.172.in-addr.arpa 168.192.in-addr.arpa d.f.ip6.arpa corp home internal intranet lan local private test
апр 08 13:29:50 277938.local systemd-resolved[17970]: Using system hostname '277938.local'.
апр 08 13:29:50 277938.local systemd[1]: Started Network Name Resolution.
Код: Выделить всё
olej@277938:~$ resolvectl status
Global
LLMNR setting: yes
MulticastDNS setting: yes
DNSOverTLS setting: no
DNSSEC setting: allow-downgrade
DNSSEC supported: yes
Current DNS Server: 185.181.61.24
DNS Servers: 91.217.137.37
185.181.61.24
51.83.172.84
94.247.43.254
Fallback DNS Servers: 1.1.1.1
8.8.4.4
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 3 (tun0)
Current Scopes: LLMNR/IPv6
DefaultRoute setting: no
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: allow-downgrade
DNSSEC supported: yes
Link 2 (eth0)
Current Scopes: LLMNR/IPv4 LLMNR/IPv6
DefaultRoute setting: no
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: allow-downgrade
DNSSEC supported: yes
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя