Я использую Raspberry Pi 3 с Ubuntu 18.04. В моей компании есть DNS-сервер и пара доменов с «.local». Я знаю, что технически это не правильно, и вместо этого это должен быть «.lan», потому что .local зарезервирован для многоадресных DNS. Но так оно и есть, и его нельзя легко изменить. Поэтому на моей машине с Windows я могу без проблем пинговать и просматривать эти доменные имена. На моем Ubuntu однако я не могу.
Я не могу использовать IP-адреса, потому что некоторые домены находятся на одной и той же машине, а веб-сервер IIS выясняет, что и куда идет.
Я искал, и это приходит довольно часто:
- https://smallbusiness.chron.com/resolving-local-ubuntu-38861.html
- Почему не разрешается ни один из моих локальных серверов?
- сервер Ubuntu не разрешает имена хостов локальной сети
Однако изменение /etc/nsswitch.conf не поможет мне. Я старался
- hosts: files mdns4_minimal [NOTFOUND = return] dns myhostname # default
- хосты: файлы днс
- hosts: files mdns4_minimal [NOTFOUND = continue] dns myhostname
- hosts: files mdns4 [NOTFOUND = return] dns myhostname
- hosts: files mdns4 [NOTFOUND = continue] dns myhostname
- hosts: files dns mdsn4_minimal myhostname
- хосты: днс
- несколько других
Ни один из которых не работал. Я попытался перезагрузиться после изменения тоже. Я пытался сказать avahi, что имя домена = alocal в /etc/avahi/avahi-daemon.conf не работает после перезапуска службы, не работает после перезагрузки. После того, как это не сработало, я попытался полностью отключить службу avahi-daemon.
sudo systemctl disable avahi-daemon
После перезагрузки я снова попробовал несколько перестановок в /etc/nsswitch.conf, но безрезультатно.
с моими текущими настройками в hosts (файлы днс) я получаю такой ответ:
dig login.name.local # not the actual name
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33538
;; flags: qr rd ra; QUERY: 1, ANSWER:0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0 IN A
;; Query time: 2msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE rcvd: 56
Однако, когда я даю команду dig для прямого запроса к серверу, я получаю правильный ответ:
dig @dnsIP login.name.local
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57866
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0 IN A
;; ANSWER SECTION:
login.name.local. 3600 IN A serverIP
;; Query time: 2msec
;; SERVER: dnsIP#53(dnsIP)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE rcvd: 56
Эта версия Ubuntu использует netplan с сетевым менеджером. Правильный DNS-IP определенно есть в списке. (на самом деле это основной DNS.) Также dnsIp такой же, как serverIP, но это не должно быть проблемой.
Пинг или подключение через браузер, и такие не работают, конечно. Никто не использует запрос DNS.
Я в недоумении, что делать. Конечно, мы не можем переключиться на другое доменное имя. Я поместил имя сервера в / etc / hosts, но это только временное решение.