상상하다
IP 주소를 호스트 이름과 연결하는 비교적 간단한 방법을 사용하고 싶습니다.
이를 위해 저는 Fedora 배포판에 Avahi와 mdns/nss를 설치했습니다.
저는 기본 ".local" 대신 가상 최상위 도메인 ".o"를 로컬 도메인으로 사용하고 싶습니다.
나는 /etc/nsswitch.conf
그것이 설정되었는지 확인했습니다 mdns4
:
hosts: files myhostname mdns4 [NOTFOUND=return] resolve [!UNAVAIL=return] dns
/etc/avahi/avahi-daemon.conf
한 줄을 변경하고 모든 것을 동일하게 유지한 후 :
domain-name=o
내 호스트 이름이 이므로 desk
도메인을 desk.o
사용할 수 있게 됩니다. 어쨌든 그건 내 이해다.
마지막으로 에서 /etc/avahi/hosts
IP-호스트 이름 관계를 설정했습니다.
192.168.0.1 router.o
예상되는 동작
내 컴퓨터 이름이 이라고 가정하면 도메인을 사용할 수 있기를 desk
원합니다 . desk.o
또한 네트워크에 Avahi를 실행할 수 없는 일부 컴퓨터가 있어서 /etc/avahi/hosts
해당 IP 주소 등을 게시하는 데 사용합니다. 한 가지 이유는 Avahi를 실행하지 않는 꽤 오래된 네트워크 프린터가 있고 IP나 Avahi와 같은 것(또는 그 안에 있는 항목 /etc/hosts
) 만 사용해야 하기 때문입니다 .
따라서 위 파일의 경우 192.168.0.1 등으로 확인하고 hosts
싶습니다 .router.o
관찰된 행동
변경한 후 Avahi( systemctl restart avahi-daemon.service
)를 다시 시작했지만 약간 이상하게 작동합니다.
실행하면 getent hosts desk.local
다음과 같은 결과가 나타납니다.
2a02:xxxx:xxxx:xxxx:xxxx:xxxx:8878:583d desk.local
fe80::f990:519a:4ba5:9f22 desk.local
x
(첫 번째 IP 부분이 헷갈립니다. 16진수만 있는 곳도 있습니다 .)
나는 그것에 만족하고(대부분), desk.local
여전히 사용할 수 있을 것이라고 기대하지는 않지만, (아직) 제거할 수 없는 일종의 기본값이라고 가정하고 있습니다.
실행할 때 getent hosts desk.o
다음을 얻습니다.
127.0.0.1 desk.o
이 컴퓨터에만 있는 한 괜찮지만 FQDN 호스트 이름이 이를 해결한다는 것이 조금 이상합니다.
getent hosts router.o
나는 달리는 것에서 아무것도 얻지 못한다. 출력이 없습니다.
질문
그렇다면 Avahi는 이를 무시한 것 같습니다 /etc/avahi/hosts
. 이 파일을 변경한 후 Avahi를 다시 시작했기 때문에 다시 읽을 것이라고 가정합니다.
Avahi는 설정된 호스트 이름을 자체적으로 "게시"하지 않습니까?
Avahi와 시스템이 예상대로 작동하도록 하려면 어떻게 해야 합니까? 아니면 여기서 기본적인 사고 오류를 범하고 있는 걸까요?
이상적으로 Avahi-hostname 파일은 내 어딘가에 있어야 $HOME
Avahi에 대한 시스템 전체 호스트 이름 파일을 조정할 필요가 없습니다(해당되는 경우). 이것이 작동하지 않더라도 괜찮습니다. 이는 호스트 이름 확인이 원칙적으로 작동하는 방식에 어긋난다고 생각하기 때문입니다.
이 문제가 해결되고 있다는 사실에 조금 놀랐지만 desk.o
(실제로 예상했던 방식은 아님) 적어도 해결되었습니다.무엇따라서 적어도 부분적으로는 효과적입니다.