umdns: unicast response is always sent to udp port 5353
Username: Sergey Shilov
Origin: https://bugs.openwrt.org/index.php?do=details&task_id=2132
According to
RFC
6762 - Multicast
DNS
(
https://tools.ietf.org/html/rfc6762
), section
- Responding
tells:
The destination UDP port in all Multicast
DNS
responses MUST be 5353, and the destination address MUST be the mDNS IPv4 link-local multicast address 224.0.0.251 or its IPv6 equivalent FF02::FB, except when generating a reply to a query that explicitly requested a unicast response:
-
via the unicast-response bit,
-
by virtue of being a legacy query (Section 6.7), or
-
by virtue of being a direct unicast query.
But current umdns implementation sets sender’s IP as dst IP for the response and always sets dst port 5353 ignoring actual sender’s port while sending the unicast response.
Also
RFC
6762 tells that simple
DNS
resolver that uses One-Shot Multicast
DNS
Queries MUST NOT use source port 5353 (sections
- Querying
and
5.1. One-Shot Multicast
DNS
Queries
):
These queries are typically done using a high-numbered ephemeral UDP source port, but regardless of whether they are sent from a dynamic port or from a fixed port, these queries MUST NOT be sent using UDP source port 5353, since using UDP source port 5353 signals the presence of a fully compliant Multicast
DNS
querier.
So simple
DNS
resolver can not receive the response from umdns if it requests the unicast response due to dst port 5353 that is always set by umdns for all responses.