systemd의 127.0.0.53에서 DNS가 일부 조회를 무시하고 있습니다.


14

127.0.0.53에서 사랑받은 systemd의 DNS는 로컬 컴퓨터를 이름으로 쿼리 할 때를 제외하고 작동하는 것으로 보입니다. 그러나 내가 쿼리하고 로컬 DNS 서버 (내 라우터)를 구체적으로 지정하면 적절한 응답을 얻습니다. 그러나 구성 파일은 라우터를 검색 주소로 사용한다고 말합니다. 이견있는 사람?

Dell 노트북에서 Ubuntu 18.04를 실행하고 있습니다.

잘못된 결과 :

$ nslookup web1

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find web1: SERVFAIL

또한 실패

$ nslookup -i wlp3s0 web1
nslookup: couldn't get address for 'web1': not found

올바른 결과 :

$ nslookup web1 192.168.1.1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107

구성 정보 systemd-resolve

$ systemd-resolve --status

Global
          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 (wlp3s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.1
          DNS Domain: wp.comcast.net

Link 2 (enp2s0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

구성 정보 NetworkManager

$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

그렇다면 nslookup에서 정답을 반환하려면 어떻게해야합니까? 링크 3이 올바른 정보 (Wi-Fi 연결) 인 것으로 보이며 라우터의 DNS가 정답을 반환하지만 로컬 캐시는 주소를 찾지 않습니다.


이 게시물을 확인하고 문제가 해결되는지 확인하십시오. askubuntu.com/questions/1034064/…

구성 파일에 dns = dnsmasq가 없습니다. 이것을 보여주기 위해 내 질문을 업데이트하고 있습니다.
schworak

어떤 버전의 Ubuntu를 실행하고 있으며 IP 구성으로 게시물을 업데이트 할 수 있습니까?

Dell 노트북에서 Ubuntu 18.04를 실행하고 있습니다.
schworak

당신은 plz 시도nslookup -i wlp3s0 web1
cmak.fr

답변:


9

귀하의 resolv.conf 파일이 잘못된 장소를 가리키는되지 않은 - ../run/systemd/resolve/stub-resolv.conf 입니다 그것은 기본적으로에 포인트로 해야하는 경우.

문제는 systemd-resolved점으로 구분되지 않은 이름을 DNS로 전달하지 않는다는 것입니다. 분명히 이것은 "디자인 된대로"작동하고 있습니다. "해결되면 단일 레이블 조회가 유니 캐스트 DNS로 누출되지 않습니다"라는 이 github 문제 를 참조하십시오 .

당신이 GitHub의 문제의 추론에 동의 여부에 상관없이, 거기 이다 이 문제를 해결하는 방법. 우분투 컴퓨터의 기본 설정을 변경할 필요조차 없습니다.

  1. 먼저 LAN의 DNS에 도메인 이름이 있어야합니다.

    dnsmasq를 사용하는 경우 /etc/dnsmasq.confDNS 서버에 다음을 추가하십시오 .

    expand-hosts
    domain=your-domain # replace "your-domain" with domain of your choice
    

    이제 도메인을 추가하면 LAN 호스트 이름을 확인할 수 있습니다.

    nslookup web1.your-domain
    
  2. 둘째, DNS 서버와 다른 경우 LAN 도메인의 이름도 DHCP 서버에 설정되어 있는지 확인하십시오. 내 DHCP 서버 (내 라우터)에서이 설정을 "도메인 이름"이라고합니다.

    그런 다음 Ubuntu 상자에서 DHCP 임대를 갱신하면 다음과 같은 검색 지시문이 나타납니다 /run/systemd/resolve/stub-resolv.conf.

    nameserver 127.0.0.53
    search your-domain
    

이제 조회 web1하면 확장 web1.your-domain하여 DNS 사용을 해결합니다.

$ nslookup web1
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   web1.your-domain
Address: 192.168.1.107

당신이 사용하는 경우주의 dig대신에 nslookup, dig그것의 사용 - 기본적으로 검색 경로를 사용하지 않는 +search것을 가능하게하는 옵션을 선택합니다.


재부팅하기 전에 web1.mydomain.com을 정상적으로 검색했습니다. 그러나 물론 web1 만 검색해도 작동하지 않았습니다. 그래서 나는 재부팅했고 내 인생에서 Comcast 도메인을 어디에서 가져 오는지 전혀 알지 못하지만 이제 web1을 조회하면 올바른 IP로 응답하지만 내 도메인 대신 캐스트 캐스트 도메인을 보여줍니다. 너무 걱정되지 않지만 도대체 어떻게 해결됩니까 ????
schworak

@schworak Weird! DHCP 서버도 Comcast 모뎀입니까? 해당 도메인이 /etc/resolv.conf또는의 출력에 표시 nmcli -g all되거나 표시 systemd-resolve --status됩니까? DHCP 임대무엇이 있는지 살펴보십시오 .
Laurence Gonsalves

컴캐스트 모뎀이 아닙니다. DDWRT가 실행중인 SysLink 라우터가 있습니다. 컴캐스트 설정이 완전히 바뀝니다. 컴캐스트 이름은 부팅시 자동 생성되는 resolv.conf 파일에 나타납니다. 나는 그것에 대해 너무 걱정하지 않지만 이상합니다.
schworak

@LaurenceGonsalves github 이슈 링크에 감사드립니다. 문제에 대한 해결 방법을 찾았지만 실제로 루트 문제를 파악하는 데 도움이되었습니다.
그레고리 아 레니 우스

19

나에게 맞는 수정 프로그램을 찾았습니다.

내 resolv.conf 파일이 잘못된 위치를 가리키고있었습니다. 내 노트북 ​​(이 문제를 처음 발견 한 컴퓨터)과 Ubuntu 18.04 Server를 새로 설치했을 때 우분투의 버그처럼 보입니다.

기본

$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 39 Apr 26 12:07 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

이것을 삭제하고 올바른 파일을 가리 켰습니다. 재부팅 후 내 문제가 해결되었습니다. 랩톱에서 네트워크를 전환 할 수 있었고 DNS가 올바르게 전환되었습니다. 물론 외부 네트워크에서 로컬 컴퓨터를 확인할 수는 없지만 예상됩니다. 로컬 네트워크로 다시 전환하자마자 라우터가 DNS이므로 모든 로컬 컴퓨터가 올바르게 확인됩니다.

수정

$ sudo rm -f /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 32 May 29 08:48 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf

$ sudo reboot

그 후 모든 것이 예상대로 작동했으며 127.0.0.53이 더 이상 사용되지 않습니다.

올바른 결과

$ nslookup web1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107

$ nslookup google.com

Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.7.174
Name:   google.com
Address: 2607:f8b0:4004:80e::200e

를 사용하여이 버그를보고하십시오 ubuntu-bug resolvconf.
차이 티 렉스

전송을 시작하면 resolvconf (설치되지 않음)가 표시됩니다. resolvconf와 systemd-resolve가 같은 것입니까?
schworak

systemd-resolvesystemd패키지 로 제공 되므로 ubuntu-bug systemd대신 시도하십시오 .
차이 티 렉스

감사! 전에는 그 버그보고 기능을 사용한 적이 없었습니다. 아주 좋아요
schworak

1
와, 이건 미친 짓이야 감사합니다. 이 버그가 수정 되었습니까? Docker 관련 버그입니까? resolv.conf도커 브리지 네트워크 DNS에 대해이 방법으로 설정 되었다고 생각 합니까?
void.pointer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.