Bionic으로 업그레이드한 후 Dnsmasq가 중단됨: 작동하지만 쿼리를 해결하는 데 30초 정도 걸립니다.

Bionic으로 업그레이드한 후 Dnsmasq가 중단됨: 작동하지만 쿼리를 해결하는 데 30초 정도 걸립니다.

16.04에서 Ubuntu 18.04로 업그레이드한 후 dnsmasq 구성이 손상되었습니다.

  • systemd-resolved가 활성화되어 실행 중입니다.
  • dnsmasq가 활성화되어 실행 중입니다.

외부 세계에 대한 모든 DNS 쿼리는 성공하기 전에 약 30초 동안 중단됩니다. 내 로컬 호스트(anything.mylocal)에 대한 쿼리는 즉시 성공합니다.

dnsmasq(예: )를 중지하면 service dnsmasq stop외부 세계에 대한 모든 DNS 쿼리가 즉시 작동합니다(물론 .mylocal은 작동하지 않음).

위치: /etc/dnsmasq.conf

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1

위치: /etc/NetworkManager/NetworkManager.conf

[main]
...
# dns=dnsmasq
...

dns= 행의 주석 처리를 제거하면 모든 dns 쿼리가 방지됩니다.

위치: /etc/systemd/resolved.conf

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=no

위치: /etc/resolv.conf

이 파일은 다음을 포함하는 ../run/resolvconf/resolv.conf에 대한 링크입니다.

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

위치: /etc/nsswitch.conf

passwd:         compat systemd
group:          compat systemd
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

출력과 눈에 띄는 차이점 중 하나는 다음과 같습니다 systemd-resolve --status.

  • dnsmasq가 실행되면 Global의 첫 번째 줄은 다음과 같습니다.DNS Servers: 127.0.0.1
  • dnsmasq가 중지되면 이 줄이 없고 전역 DNS 서버가 없으며 첫 번째 유용한 서버는 내 기본 게이트웨이(192.168.1.1)를 지정하는 Link 2 섹션에 정의됩니다.

어떤 도움이라도 대단히 감사하겠습니다 :)

답변1

하룻밤을 자고 난 후 ;-) 이것이 제가 생각해낸 것입니다. 방금 일부 공용 업스트림 서버를 수동으로 추가했습니다(1.1.1.1은 CloudFlare, 8.8.8.8은 Google).

위치: /etc/dnsmasq.conf:

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1
server=1.1.1.1
server=8.8.8.8

나머지 파일은 모두 내 질문과 같습니다. systemd-resolved와 dnsmasq가 모두 활성화되어 실행 중입니다.

이렇게 하면 DNS 쿼리가 작동합니다.

나는 네트워크에서 제공하는 DNS를 사용하는 것을 선호하기 때문에 이것이 정답이라고 생각하지 않지만 적어도 작동합니다...

관련 정보