nsswitch.conf 변경 후 무작위 DNS 오류 발생

nsswitch.conf 변경 후 무작위 DNS 오류 발생

최근에 EPSON L3150 프린터용 드라이버를 설치했는데 거의 동시에 일부 응용 프로그램(ssh, nextcloud-client)에서 이상한(임의) DNS 이름 확인 오류가 발생하기 시작했습니다. 이 오류는 서비스를 다시 시작해야만 해결할 수 있었습니다 NetworkManager.

systemctl restart NetworkManager

예를 들어:

$ ssh example.mydomain
ssh: Could not resolve hostname example.mydomain: Name or service not known

또 다른 예는 아무것도 반환하지 않고 코드 2로 종료되는 getent입니다.

$ getent hosts example.mydomain

$ echo $?
2

하지만 nslookup은 잘 작동합니다.

$ nslookup example.mydomain
...
Name:   example.mydomain
Address: 192.168.0.10

나는 그것을 내 파일로 좁혔고 nsswitch.conf그것을 변경한 것에 대해 내 프린터 설치 프로그램을 비난했습니다. 나는 nsswitch.conf.bak거짓말 을 발견했습니다 nsswitch.conf. 그것은 프린터 드라이버를 설치하는 것과 동시에 만들어졌습니다 dnf install epson/*.rpm.

파일의 호스트 줄에 다음과 같은 변경 사항이 있습니다.

-hosts:      files dns myhostname
+hosts:      files myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

그렇다면 질문은 "새" 구성이 무작위로 실패하는 이유는 무엇입니까? 어떻게 예방할 수 있나요? 새 파일이 자동으로 생성되는 것처럼 보이기 때문에 원본 파일을 복원하는 것만으로는 해결책이 될 수 없다고 생각합니다. 상단에 다음과 같이 표시되어 있습니다.

2022년 2월 12일 토요일 18:53:06에 authselect에 의해 생성됨

드라이버를 제거하는 것도 해결책이 아닙니다.

편집하다:

범인은 systemd-resolved. 내 네트워크 구성은 NetworkManager에서 관리되며 두 개의 DNS가 설정되어 있습니다.

$ nmcli con show my-lan
...
ipv4.dns 192.168.0.1 8.8.8.8

컴퓨터가 절전 모드에서 깨어날 때마다 NetworkManager가 두 번째 DNS로 돌아가는 것 같습니다.

$ systemd-resolve --status
...
Link 2 (enp39s0)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 8.8.8.8
       DNS Servers: 192.168.0.1 8.8.8.8
        DNS Domain: mydomain

따라서 systemd-resolve example.mydomain실패합니다(8.8.8.8이 내 도메인을 확인할 수 없기 때문에).

쿼리: 구문 분석 호출 실패: 'example.mydomain'을 찾을 수 없습니다.

이것이 NetworkManager의 버그인 것 같은데요?

답변1

mdns4_minimal [NOTFOUND=return]Epson 프린터에는 멀티캐스트 DNS가 필요합니다.

resolve [!UNAVAIL=return]이름 확인을 활성화하여 systemd-resolved(참조https://www.freedesktop.org/software/systemd/man/nss-resolve.html).

명령이 systemctl status systemd-resolved반환 되면 해당 명령을 줄 에서 Unit systemd-resolved.service could not be found.안전하게 제거할 수 있습니다 . 그 후에는 구문 분석이 정상으로 돌아옵니다.resolve [!UNAVAIL=return]hosts

관련 정보