Skip to content

LLMNR has issues in dev/IPv6_integration #842

Open
@evpopov

Description

@evpopov

Description

  • When an LLMNR AAAA query comes in through a IPv4 end-point, the responding code in DNS_ParseDNSReply() will include xEndPoint.ipv6_settings.xIPAddress in the reply. This being an IPv4 end-point though, means that the IPv6 settings are inaccurate. This is a weird one.... xApplicationDNSQueryHook_Multi() simply said: "Yes, I have this hostname" but it had no information on the type of query ( A or AAAA ) and it cannot control which resulting end-point gets used for generating an answer. I don't know the best approach here, so I'm reporting the issue and hope that smarter heads will chime in :-)
  • A similar to the above issue exists with multiple IP addresses. Consider the very simple scenario from the attached Wireshark capture. My PC has a few IP addresses so does the device that I'm trying to ping. The FreeRTOS+TCP device responds to one of the LLMNR requests but the response only has one answer. My PC has no idea of the other IP addresses that the device has and therefor no communication can be established. I may be wrong here, but I believe a response to an "A" query should contain all IPv4 endpoints and a response to an "AAAA" query should contain all IPv6 endpoints.
  • The code in DNS_ParseDNSReply() uses pxDuplicateNetworkBufferWithDescriptor and I believe it should use pxResizeNetworkBufferWithDescriptor. I believe @htibosch fixed a similar issue just a few days ago in DNS_TreatNBNS() sha:afd6ffc4252f0fca7e0d3dc91e2ca92a5878a91c

LLMNR_SingleAnswer.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions