avahi-daemon 및 ".local" 도메인 문제

avahi-daemon 및 ".local" 도메인 문제

나는우분투16.04실행 중인 HTPC/미디어 서버 기반연중무휴. 공식 Ubuntu 배포판을 사용했던 기억으로는 항상 다음과 같은 문제에 직면했습니다.아바히 데몬. 이 문제는 온라인에서 자주 논의됩니다. 어떤 사람들은 데몬만 제거하기로 결정하지만 저는 CUPS 서버를 실행하고 Kodi를 AirPlay 수신기로 사용하고 있기 때문에 실제로 데몬이 필요합니다.

질문

mDNS/DNS-SD는 본질적으로 유니캐스트 DNS 영역 .local과 호환되지 않습니다.. 이러한 유형의 네트워크 설정에서는 Avahi 또는 nss-mdns를 사용하지 않는 것이 좋습니다. 참고: nss-mdns는 일반적으로 Avahi와 함께 번들로 제공되지 않으므로 별도로 다운로드하여 설치해야 합니다. (avahi.org)

증상은 간단합니다. 정상 작동 후 약 2~4일 정도 지나면네트워크 연결이 끊어집니다이것은 기록될 것입니다

Mar 17 18:33:27 15 avahi-daemon[1014]: Withdrawing address record for 192.168.1.200 on enp3s0.
Mar 17 18:33:27 15 avahi-daemon[1014]: Leaving mDNS multicast group on interface enp3s0.IPv4 with address 192.168.1.200.
Mar 17 18:33:27 15 avahi-daemon[1014]: Interface enp3s0.IPv4 no longer relevant for mDNS.

이것네트워크가 복원됩니다괜찮아요물리적으로 다시 연결하는 경우이더넷 플러그를 연결하거나 소프트웨어 측을 다시 연결하십시오.

가능한 해결책

공식 위키에는 출현 이후 작동하지 않은 세 가지 솔루션이 나열되어 있습니다.2016년 6월, 그래서 나는간접적으로 제공하다Archive.org협회

1.) 편집/etc/nsswitch.conf~에서

"hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4"

도착하다

hosts: files dns mdns4

2.) 수정/etc/avahi/avahi-daemon.conf

~에서

domain-name=.local

도착하다

domain-name=alocal

삼.)"관리자에게 .local 영역 이동을 요청하세요"(위키에 나와 있듯이)

내가 뭘 한거지

이것첫 번째 솔루션나에게는 작동하지 않는 것 같습니다. 데몬은 여전히 ​​작동하지만이전처럼 네트워크가 실패합니다.(공평하게 말하면 Wikipedia에서는말해주세요"우리의중간 사이즈사용량중간 사이즈이런V원")

이것두 번째 해결책데몬이 정상적으로 실행되는 것처럼 보이지만(로그를 보면 아무런 문제가 없음)iOS 장치는 기계를 "볼" 수 없습니다.프린터 또는 AirPlay 수신기(및 Windows 컴퓨터의 iTunes)

이것세 번째 솔루션잘 알지 못해서 어렵네요"전체 이야기"네트워크가 어떻게 작동하는지 실제로 시도해 보았는지 잘 모르겠습니다. 내 말은 이것이다: 내 안에아수스 라우터달리기ASUS 멀린저는 설정 하위 카테고리/LAN/DHCP 서버/기본 구성으로 들어갔습니다. 거기에 "를 설정했습니다.RT-AC68U 도메인 이름"를 "lan"("local"과 달리 어떤 것과도 충돌하지 않기 때문에 온라인에서 제안한 도메인 이름)입니다. 제가 아는 한 이것은 ".local 영역 이동"라는 의미입니다. 이것이 실제로 맞다면 이 솔루션은 나에게도 적합하지 않습니다.

결론적으로

그럼 어떻게 해야 하나요? 나는 이 문제로 4개월 넘게 어려움을 겪고 있으며 온라인의 모든 답변은 내가 이미 시도한 것으로 귀결됩니다. 솔직히 말해서 나는 완전히 길을 잃었습니다. 미리 감사드립니다!

답변1

나는 같은 문제를 가지고있다. Mac이 있는 홈 네트워크가 있고 Mac에서 avahi/bonjour 및 .local 도메인을 올바르게 공유하기를 원합니다. 내 ISP는 개인 IP 주소(192.168.1.*)와 로컬 도메인(attlocal.net)을 제공하는 DSL 라우터를 제공합니다. 그러나 실제로는 해당 도메인이 없더라도 .local 유니캐스트 도메인에 대한 권한으로 응답합니다. 금기시되는 일이지만 그들은 어쨌든 그렇게 합니다. Mac이 다른 Mac을 검색하고 연결할 수 있는 네트워크가 남아 있으며, Linux는 avahi 서비스를 볼 수 있지만 연결할 수는 없습니다.

징후: Linux 시스템에 서비스가 표시되지만 노틸러스를 통해 연결할 수 없는 경우. DLNS 서비스에 접속할 수 없는 경우. ping hostname.local해결이 불가능한 경우 . 마지막으로, dig local라우터/ISP 결과의 권한 섹션이 제공되는 경우 .

나에게 맞는 것/etc/mdns.allow: 다음 두 줄을 포함하는 파일을 만듭니다.

    .local
    .local.

/etc/nsswitch.conf그런 다음 로 시작하는 줄의 hosts:항목을 편집 하고 mdns4_minimal바꿉니다 mdns4. 나에게 결과는 다음과 같습니다.

hosts:     files mdns4 [NOTFOUND=return] dns

마지막으로 다시 시작하거나 sudo systemctl restart network. 이는 Ubuntu 18~21과 Debian Stretch 및 Buster(Raspberry Pi 포함)에서 작동합니다. 탐색하는 동안 삼바 공유, AFP 공유, 심지어 SSH 포트까지 보고 연결할 수 있습니다.기타 위치우분투 문서(노틸러스)에 있습니다.

애초에 왜 깨졌지? mdns_minimal쓸모는 없지만 여전히 mdns4유용합니다. 이는 예상한 결과가 아니었고 버그를 보고하려고 시도했지만 mdns_minimalGitHub 사이트에서 왜 이런 일이 발생했는지에 대한 명확한 답변을 찾았습니다.https://github.com/lathiat/nss-mdns. mdns_minimal두 도메인이 모두 .local이고 IPv4가 169.254 자체 구성 범위에 속하지 않는 한 이 문제는 해결되지 않습니다. 또한 /etc/mdns.allow파일을 보지 않습니다 . 따라서 .local을 확인해야 하는데 자체 구성된 주소가 없는 경우 nsswitch.conf위에서 설명한 대로 주소를 바꿔야 할 수 있습니다.

답변2

그래서 "avahi-daemon.conf"의 "hostname" 매개변수를 컴퓨터의 호스트 이름이 아닌 다른 이름으로 변경하려고 시도했고 2주 동안 아무 문제 없이 실행해 왔습니다. 아마도 이것은 자체 목적으로 ".local" 도메인을 사용하여 삼바와 Windows를 실행하는 시스템과 관련이 있는 것일까요?

답변3

제 생각에는 세 번째 해결 방법은 라우터 구성에 액세스할 수 있을 때 가는 방법이라고 생각합니다. "RT-AC68U의 도메인 이름"을 공백으로 설정해 보겠습니다.

다음으로 내가 한 일은 Wireshark와 같은 것을 실행하고 avahai-daemon이 보내고 받는 패킷과 .local(avahai LAN이 아닌 다른 것이 설정되어 있는 경우)로 끝나는 모든 도메인 이름에서 보내고 받는 모든 패킷을 관찰하는 것이었습니다. 거기에서 도메인 이름을 찾을 거예요 .local.

문제가 완전히 다른 것일 수도 있으며, Wireshark가 이를 알려줄 수도 있습니다.

Avahai를 네트워크의 컴퓨터에 도메인 이름을 할당하는 데에만 사용하는 경우 dnsmasq 사용을 고려해보세요. RT-AC88U 라우터에서 실행하거나 Ubuntu 시스템에서 실행할 수 있습니다(사실 이미 Ubuntu 시스템에서 실행 중일 수 있으므로 구성 파일만 조정하면 됩니다).

Asus-Merlin에서 dnsmasq 설정에 대한 문서

관련 정보