로컬 네트워크의 mdns 멀티캐스트 DNS에 대해 systemd-resolved를 구성하는 방법은 무엇입니까?

로컬 네트워크의 mdns 멀티캐스트 DNS에 대해 systemd-resolved를 구성하는 방법은 무엇입니까?

우분투 18

나는 많은 연구를 했고 이 그림을 정리하려고 하는데 잘 이해가 되지 않습니다.

mdns에 대해 systemd-resolved를 구성하는 방법은 무엇입니까?

나의 구체적인 목표는 다음과 같습니다.

  • 10.0.0.0/16 네트워크에서 서버를 시작합니다.
  • 새 서버가 foo1과 같은 임의의 이름을 스스로 부여하도록 합니다.
  • foo1이라는 이름을 사용하여 동일한 네트워크에 있는 다른 컴퓨터에서 이 서버에 연결할 수 있습니다.

누구든지 systemd-resolved를 사용하여 이를 구체적으로 달성하는 방법을 말해 줄 수 있습니까?

감사해요

지금까지solved.conf를 다음과 같이 구성했습니다.

ubuntu@ip-10-0-0-229:/etc$ --> CHROME -> cat /etc/systemd/resolved.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
LLMNR=yes
MulticastDNS=yes
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
ubuntu@ip-10-0-0-229:/etc$ --> CHROME ->

답변1

늦은 답변이지만 이 주제에 대한 정보가 거의 없기 때문에 누군가에게 도움이 될 수 있다고 생각합니다. 나도 이 문제로 시간을 낭비했다.

/etc/systemd/resolved.conf를 변경하는 것은 작업의 일부일뿐입니다. 변경 후에도 다음 퍼즐을 풀어야 합니다.

멀티캐스트 DNS는 다음과 같은 경우에만 링크에서 활성화됩니다.링크당그리고 전역 설정이 켜져 있습니다.

요령을 알면...쉽습니다.

sudo systemd-resolve --set-mdns=yes --interface=wlan0

wlan0은 mDNS를 요청하기 위한 인터페이스입니다. 그러면 mDNS가 활성화된 것을 확인할 수 있습니다.

$ sudo systemd-resolve --status wlan0            
Link 3 (wlan0)
      Current Scopes: none
 DefaultRoute setting: no
        LLMNR setting: yes
 MulticastDNS setting: yes #<--- BINGO! 
   DNSOverTLS setting: no
       DNSSEC setting: allow-downgrade
       DNSSEC supported: yes

systemctl을 통해 systemd-resolved를 다시 시작합니다.

sudo systemctl restart systemd-resolved 

mDNS가 작동 중입니다!

(앞으로)

~ ❯ ping homebridge.local                                    
ping: cannot resolve homebridge.local: Unknown host

(뒤쪽에)

~ ❯ ping homebridge.local                                    
PING homebridge.local (192.168.1.9): 56 data bytes
64 bytes from 192.168.1.9: icmp_seq=0 ttl=64 time=21.721 ms
64 bytes from 192.168.1.9: icmp_seq=1 ttl=64 time=22.429 ms

답변2

재부팅 후에도 시스템 구문 분석이 유지되도록 많은 시간을 보냈지만 제대로 작동하지 않아 매우 실망스럽습니다.

위의 지침과 설명에 따라 수행한 단계는 다음과 같습니다.

  • 설정 MulticastDNS=yes하다/etc/systemd/resolved.conf
  • /etc/systemd/network/eth0.network다음 내용의 파일이 생성되었습니다.
[Match]
Name=eth0

[Network]
MulticastDNS=yes

나는 이것들을 따라하려고 노력한다지시하다ArchLinux 위키의 NetworkManager를 사용합니다.

아무것도 작동하지 않습니다. 그래서 결국 포기하고 시스템화된 서비스 노선을 택하기로 결정했습니다.

내 솔루션

네트워크 링크에서 mDNS를 활성화하려면 systemd-resolve의 멀티캐스트 DNS(mDNS) 설정을 업데이트하세요.

sudo nano /etc/systemd/resolved.conf

다음 설정을 업데이트하세요.

MulticastDNS=yes
LLMNR=no

systemd-resolved.serviceeth0 네트워크 링크에서 mDNS를 활성화하는 사후 실행 서비스를 생성합니다 . 이렇게 하면 재부팅 후에도 멀티캐스트 DNS가 유지됩니다.

sudo nano /etc/systemd/system/multicast-dns.service

다음을 추가합니다.

[Unit]
Description=Enable MulticastDNS on eth0 network link
After=systemd-resolved.service

[Service]
ExecStart=systemd-resolve --set-mdns=yes --interface=eth0

[Install]
WantedBy=multi-user.target

서비스 를 활성화합니다 multicast-dns.

sudo systemctl enable multicast-dns
sudo systemctl start multicast-dns
sudo systemctl status multicast-dns
sudo systemctl restart systemd-resolved

테스트해 보겠습니다.

# Protocols should show '+mDNS' instead of '-mDNS'
sudo systemd-resolve --status eth0
# The same information voor all network interface
resolvectl status
# Check if the hostname with .local added is resolved
resolvectl query `hostname`.local

이제 재부팅하면 시스템 구문 분석이 제대로 작동합니다 :-)

이것이 누군가의 좌절감을 덜어주기를 바랍니다.

답변3

인터페이스에서 mDNS를 활성화하려면 다음이 필요합니다.설정 MulticastDNS=옵션10.0.0.0/16 네트워크의 인터페이스에 대한 문서 섹션 [Network]..network

이 옵션은 기본적으로 비활성화되어 있으며 인터페이스별로 활성화해야 합니다.

또한 이 systemd-resolve --status명령(Ubuntu 18.04에 포함된 systemd v237에서 사용 가능, 최신 systemd가 이 명령을 대체함 resolvectl)을 사용하여 각 네트워크 인터페이스에 활성화된 옵션을 포함하여 확인된 상태를 쿼리할 수도 있습니다. 10.0.0.0/16 네트워크가 있는 MulticastDNS setting: no인터페이스가 표시되면 Link아직 활성화되지 않은 것입니다.

답변4

mDNS를 처리하는 방법은 다음과 같습니다(avahi).

• sudo apt install ifupdown
• sudo apt install avahi-utils

텍스트에서 얻은 아이디어

• cat /etc/network/interfaces 
• # ifupdown has been replaced by netplan(5) on this system.  See
• # /etc/netplan for current configuration.
• # To re-enable ifupdown on this system, you can run:
• # sudo apt install ifupdown

관련 정보