systemd-resolved가 로컬 도메인에 대한 DNS 서버를 쿼리하지 않습니다


12

17.04로 업그레이드 한 이후 더 이상 로컬 네트워크 (silvesternet.local)의 주소를 확인할 수 없습니다. 다음과 같은 응답이 있습니다.

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

저널에는이 조회와 관련된 트랜잭션의 시간 종료 보고서 만 있습니다.

Wireshark를 사용하여 네트워크 트래픽을 감지했으며 이름을 조회하지 않는 것 같습니다. DNS 트래픽은 전혀 없습니다. 다른 외부 도메인을 찾는 것은 잘 작동합니다.

동일한 주제와 관련된 많은 문제는 nsswitch.conf 변경에 대해 언급하지만 아무것도 해결하지 못하는 것 같습니다. 내 현재 설정은 다음과 같습니다

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
당신은 실행 했습니까 sudo apt update && sudo apt full-upgrade? 릴리스 이미지의 버그가 수정되었습니다 ...
Zanna

당신이 사용하는 경우 systemd-networkd구성 인터페이스에, 당신은 추가해야 할 수 있습니다 UseDomains=true[DHCP]귀하의 섹션 .network파일 : wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
돈키호테

실제로 도메인과 가깝습니다. 실제로 dhcp 응답에서 도메인을 설정하지 않은 Edgerouter 펌웨어의 버그였습니다.
Rob van der 최다

답변:


10

나는 이것이 의도적이라고 생각합니다.

Ubuntu 17.04는 이름 확인을 위해 systemd-resolved로 전환했으며 단일 레이블 이름 확인에는 LLMNR (멀티 캐스트 이름 조회) 만 사용합니다. 자세한 내용은이 링크를 참조하십시오 : https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

이 결정의 이유는 다음 버그 보고서에서 poettering의 답변을 확인하십시오. https://github.com/systemd/systemd/issues/2514

UPD : 이 문제는 로컬 네트워크 용 도메인을 사용하여 해결할 수 있습니다. 검색 도메인을 사용하도록 네트워크 인터페이스를 수동 또는 DHCP로 구성한 경우 systemd-resolved는이 도메인을 단일 레이블 이름에 추가 한 다음 유니 캐스트 DNS를 통해 검색합니다.

이러한 도메인을 인식하도록 로컬 DNS 서버를 다시 구성해야합니다. / etc / hosts에서 로컬 호스트 -IP 쌍을 읽는 dnsmasq의 경우 dnsmasq.conf에 다음 지침을 추가하여 수행 할 수 있습니다.

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2 : 또는 /ubuntu//a/911432/692094에 설명 된대로 dnsmasq로 되돌릴 수 있습니다.


그리고 약간의 설명과 함께 또 하나의 버그 페이지 : github.com/systemd/systemd/issues/4821
틱 - 서쪽

여기서 도메인 이름이 문제였습니다. 실제로 Edgerouter 펌웨어의 버그로 인해 발생했습니다. 구성의 domain-name 옵션이 dhcp 구성에 제대로 저장되지 않았습니다. 따라서 클라이언트는 검색 할 도메인을 얻지 못했습니다.
Rob van der 대부분 1

8

Ubuntu 18.04에서도 같은 문제가 발생했으며 DNS에도 systemd-resolved를 사용합니다. 기본 구성은 단일 레이블 호스트 이름 또는 .local 도메인 호스트 이름을 DNS로 확인하지 않고 각각 LLMNR 또는 mDNS로 확인합니다.

로컬 단일 레이블 호스트 이름 또는 .local 도메인 호스트 이름을 DNS 로 확인하기 위해 systemd-resolved.service 매뉴얼 페이지에 설명 된 "/etc/resolv.conf 처리의 네 가지 모드"의 세 번째를 활성화했습니다 .

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

비슷한 대답이 여기 에 주어 졌다 . 그리고 다시 기본값에 대한 추론에 대해서는 이 버그 보고서 에서 poettering의 답변을 참조하십시오 .


2

18.04로 업그레이드 한 후 Domains 매개 변수를 도메인 (로컬 또는 mydomain.local과 같이)으로 변경하여 /etc/systemd/resolved.conf 파일을 구성하는 것이 저에게 효과적이었습니다. 또한 DNS 매개 변수를 변경했지만 관련이없는 것 같지만 사실이 아닌 경우에 대비하여 언급했습니다. 자세한 정보는 https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html 로 이동 하십시오 .

또한 avahi 구성 (/etc/avahi/avahi-daemon.conf)을 변경하여 서버 섹션의 도메인 매개 변수를 로컬 (기본값)에서 일부 사람들 이이 포럼에서 지적한 것처럼 다른 것으로 변경했습니다.

언급 된 변경 사항으로 점이없는 이름을 사용하여 컴퓨터에 연결할 수 있습니다 (예 : 내 컴퓨터에 핑 (ping)). 그러나 mycomputer.mydomain.local에 핑 (ping)해도 작동하지 않으면 FQDN이 예상대로 해결되지 않습니다.

이를 희망하는 것은 어떤 경우에는 도움이되거나보다 일반적인 해결책으로 이어집니다.


0

잘못 구성되어이 문제에 직면했습니다 nsswitch.conf. 12.04다음 문자열이 예상대로 작동 했기 때문에 . 도메인이없는 호스트 이름은 성공적으로 확인됩니다.

그러나 17.04nss 시스템 구성을위한 이전 템플릿이 포함 된 ubuntu의 새 버전 (및 버전 16.10)은 이전과 같이 작동하지 않습니다.

hosts이전 우분투 버전에서 잘못 구성된 버전 : hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

성공 작업 버전 ( hosts예 : 17.04) : hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.