앞으로 티스토리 대신 blog.stackframe.dev에서 블로깅을 합니다. 이 블로그는 남겨 둘 예정입니다.
로컬 네트워크 내에서 일일히 IP를 적어서 연결하는 것은 귀찮은 일입니다. 거기다 IPv6 Link-local 주소를 사용한다면 더더욱 기억하기 어렵습니다. 그렇다고 네트워크에 DNS 서버를 설치하는 것도 배보다 배꼽이 큰 것 같습니다. 이럴 때 LLMNR이 좋은 해결책이 될 수 있습니다.
LLMNR을 통해 동일한 네트워크 내에서 호스트네임으로 그 이름을 가진 호스트의 IP를 알아낼 수 있습니다. DNS 서버와 다른 점은 멀티캐스트를 사용한 기술이기 때문에 서버가 필요없고, 단지 호스트가 LLMNR 서비스를 실행해두고 있으면 됩니다. 거기다 Microsoft에서 만들었기 때문에 Windows에도 적용되어 있으므로 리눅스와 함께 사용할 수 있습니다.
systemd-resolved는 기본적으로 LLMNR이 활성화되어 있습니다. /etc/systemd/resolved.conf 파일의 LLMNR 옵션은 시스템 전체에, /etc/systemd/network/ 디렉토리의 .network 파일의 LLMNR 옵션은 해당 network 설정이 적용되는 인터페이스에만 영향을 미칩니다. 이전에 LLMNR을 끄거나 하지 않았다면 손 댈 필요없습니다.
현재 시스템과 인터페이스 별 상태를 보고싶다면 resolvectl 명령으로 확인할 수 있습니다.
systemd-resolved가 켜져있는 것만으로 설정은 끝입니다. 이제 그냥 연결하고 싶은 호스트의 IP 대신 호스트명을 사용하면 됩니다.
중요한 점은 호스트명에 . 이 들어가면 안됩니다. LLMNR은 기본적으로 계층없는 호스트명을 사용하기 때문에 . 이 들어가면 FQDN으로 인식하여 LLMNR이 아닌 DNS로 쿼리하게 됩니다.
호스트명을 변경하려면 hostnamectl를 사용하면 됩니다.
'Linux > systemd' 카테고리의 다른 글
systemd-detect-virt로 가상화 환경 확인하기 (0) | 2021.01.31 |
---|---|
systemd 유닛 설정 수정하기 (0) | 2020.07.17 |
[Linux] coredumpctl로 크래시 디버깅하기 (0) | 2020.05.01 |
systemd-networkd로 SIT 터널링 설정하기 (0) | 2020.05.01 |
systemd-boot를 부트로더로 사용하기 (0) | 2020.04.28 |