[systemd-devel] mDNS resolution with systemd

Jean-Marie Delapierre jm.delapierre at free.fr
Fri Jan 19 09:31:55 UTC 2024


Le 20/12/2023 à 14:30, Belanger, Martin a écrit :
>> Hi,
>>
>> On one of my servers, I use avahi to realize mDNS resolution. With avahi I am
>> able to choose on which ip version I want avahi to answer to mdns requests
>> (ipv4 or ipv6). In my opinion, this is convenient on local networks with both
>> stacks, espacially for tracking purposes on the network).
> This is indeed convenient, however according to RFC 6762, paragraph 6.2 [1]:
>
>     When a Multicast DNS responder sends a Multicast DNS response message
>     containing its own address records, it MUST include all addresses
>     that are valid on the interface on which it is sending the message,
>
> I interpret this as MUST include both IPv4 and IPv6 addresses (i.e. per
> standard the IP family should not be configurable). One way to solve this
> would be to disable IPv4 (or IPv6) on an interface so that the interface only
> has IPv4 or IPv6 addresses assigned to it.
>
> [1] https://datatracker.ietf.org/doc/html/rfc6762#section-6.2
>
>> I have understood that avahi has to be replaced by systemd-networkd and/or
>> systemd-resolved and I have tried to implement the save behavior with it...
>> Without success (may be I have not found the correct place to adjust it).
>>
>> Following are the capabilities I would like to find in systemd for mDNS resolution
>> (espacially on a server) :
>>
>> - One can specify If he wants systemd to respond only  in ipv4 or ipv6 (or both,
>> by default ?) ;
>>
>> - In ipv4, one can specify the sub-network on which he wants systemd to
>> respond to mdns requests (in my opinion, the full ipv4 adresse is to be
>> elaborated by systemd-network) ;
>>
>> - in ipv6, one can specify the prefix on which he wants systemd to respond to
>> mdns requests (in my opinion, the full ipv6 adresse is to be elaborated by
>> systemd-network) ;
>>
>> Thank you in advance for reading me.
>>
>> Regards.
>>
>> Jean-Marie Delapierre

I agree with your answer , but ...

- The goal of mDNS is to resolve adresses only on a local network , not 
the internet . On the internet , one has to respect the standards , but 
, on his own local network , it can admited that he does what he wants .

- The goal of any software is not only to respect a standard . It also 
has to allow the users to do what they want to do . As much as I 
understand that the default behavior of systemd HAS to be the full 
respect of the standard , as much it has to allow fine tuning for the 
user to do what he wants on his private local network . For example , 
look on all the options you have to configure your local ethernet 
network . Most people don't use them and are happy with the default 
configuration , but some ...

so, I suggest systemd-resolved to propose two options for mDNS resolution :

- in ipv4 : none (ipv4 answering is disabled as if the interface would 
have no ipv4 adress) , all (default) , a list of ipv4 subnetworks 
(answering the adress on each subnetwork if avalaible) .

- in ipv6 : none (ipv6 answering is disabled as if the interface would 
have no ipv6 adress) , all (default) , a list of ipv6 prefixes 
(answering the adress on each prefix if avalaible) .

Thank you in advance for reading me.

Regards.

Jean-Marie Delapierre



More information about the systemd-devel mailing list