ещё раз про DNS

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: ещё раз про DNS

Непрочитанное сообщение Olej » 03 сен 2021, 18:14

Olej писал(а):
03 сен 2021, 16:14
Пробую перенастроить:
Ещё одно изменение в /etc/systemd/resolved.conf - LLMNR в systemd-resolved
Отдельного упоминания заслуживает поддержка в systemd-resolved протокола LLMNR (Link-Local Multicast Name Resolution). Этот протокол позволяет узлам в одной сети (широковещательном домене) обращаться друг к другу по имени хоста, не прибегая к услугам DNS вообще. Работает это следующим образом: какая-нибудь программа пытается обратиться к хосту в своей сети по имени, используя, как мы уже упоминали, библиотечные вызовы; локальный DNS-резолвер, как например герой нашей статьи - systemd-resolved, сначала попытается найти запрашиваемый хост в своей сети, делая групповой запрос на адрес 224.0.0.252 для ipv4 и FF02::1:3 для ipv6; если в сети есть хосты с поддержкой LLMNR и среди них окажется тот, имя которого будет соответствовать запрашиваемому, systemd-resolved незамедлительно вернет запрашивающей программе IP-адрес интересующего ее хоста. Однако стоит заметить, что для работы этого протокола очень важно правильно конфигурировать hostname на каждом компьютере в сети. Вы должны использовать короткую нотацию - не FQDN. В linux имя хоста указывается в /etc/hostname. Вы также можете использоать команду 'hostnamectl set-hostname NAME' для горячего изменения hostname компьютера. Ну и конечно же, LLMNR должен быть включен в вашем systemd-resolved.
Проверяю ДО:

Код: Выделить всё

root@R420:/etc/systemd# ss -ntpul | grep 5355
root@R420:/etc/systemd# 
Меняю строку в /etc/systemd/resolved.conf:

Код: Выделить всё

root@R420:/etc/systemd# cat /etc/systemd/resolved.conf | grep LLMNR
#LLMNR=no
LLMNR=yes
Перезапуск:

Код: Выделить всё

root@R420:/etc/systemd# systemctl restart systemd-resolved

root@R420:/etc/systemd# systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
     Loaded: loaded (/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-09-03 18:05:40 EEST; 7s ago
...
Проверяю ПОСЛЕ:

Код: Выделить всё

root@R420:/etc/systemd# ss -ntpul | grep 5355
udp     UNCONN   0        0                0.0.0.0:5355           0.0.0.0:*      users:(("systemd-resolve",pid=57929,fd=11))                                    
udp     UNCONN   0        0                   [::]:5355              [::]:*      users:(("systemd-resolve",pid=57929,fd=13))                                    
tcp     LISTEN   0        4096             0.0.0.0:5355           0.0.0.0:*      users:(("systemd-resolve",pid=57929,fd=12))                                    
tcp     LISTEN   0        4096                [::]:5355              [::]:*      users:(("systemd-resolve",pid=57929,fd=14))                                    
Есть порт 5355! (для разрешения локальных имён хостов в LAN)

Код: Выделить всё

root@R420:/etc# host R420
R420 has address 127.0.1.1
R420 has address 192.168.1.13

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: ещё раз про DNS

Непрочитанное сообщение Olej » 03 сен 2021, 18:46

Olej писал(а):
03 сен 2021, 14:20
Инструменты наблюдение и проверки работоспособности DNS (и конкретного сервера DNS) - запрос на разрешение:
Но утилиты nslookup, host, dig ... и др. - используют, по-видимому, различные механизмы разрешения имён. Вот с одного и того же хоста разрешение имени другого хоста в LAN:

Код: Выделить всё

olej@R420:~$ host nvme
nvme has address 192.168.1.17
;; connection timed out; no servers could be reached

(1-е разрешение здесь через прописанный /etc/hosts, 2-е, предполагаю, попытка DNS через протокол LLMNR, который на запрошенном хосте не разрешён)

Код: Выделить всё

olej@R420:~$ nslookup nvme
Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	nvme
Address: 192.168.1.17
Здесь разрешение идёт отчётливо через сервер DNS, но через systemd-resolved - адрес сервера DNS 127.0.0.53

Код: Выделить всё

olej@R420:~$ dig nvme

; <<>> DiG 9.16.1-Ubuntu <<>> nvme
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43148
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
nvme.			0	IN	A	192.168.1.17

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Пт сен 03 18:33:27 EEST 2021
;; MSG SIZE  rcvd: 49
И здесь тот же сервер DNS.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: ещё раз про DNS

Непрочитанное сообщение Olej » 03 сен 2021, 18:55

Olej писал(а):
03 сен 2021, 14:20
Инструменты наблюдение и проверки работоспособности DNS (и конкретного сервера DNS) - запрос на разрешение:
Большинство всех этих инструментальных утилит - это из состава пакета bind9-dnsutils :

Код: Выделить всё

olej@R420:~$ apt content bind9-dnsutils
/.
/usr
/usr/bin
/usr/bin/delv
/usr/bin/dig
/usr/bin/mdig
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/share
/usr/share/doc
/usr/share/doc/bind9-dnsutils
/usr/share/doc/bind9-dnsutils/changelog.Debian.gz
/usr/share/doc/bind9-dnsutils/copyright
/usr/share/doc/bind9-dnsutils/NEWS.Debian.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/delv.1.gz
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/mdig.1.gz
/usr/share/man/man1/nslookup.1.gz
/usr/share/man/man1/nsupdate.1.gz

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 20 гостей