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를 사용하는 것을 선호하기 때문에 이것이 정답이라고 생각하지 않지만 적어도 작동합니다...