OpenThread border router DNS - use domain directive from resolve.conf

I am using the border router's upstream DNS and $ sudo ot-ctl nat64 state shows that it is active. My Thread child device can resolve hosts like google.com without issue. The upstream DNS uses "iot-edge" as an alias for "pc7.ab.cd.com." However, if my child device does a DNS lookup for "iot-edge" using otDnsClientResolveIp4Address() it gets a "No such name error" as seen below.

Similarly, I get an NXDOMAIN error on my Raspberry Pi border router when I try $ dig iot-edge

However, the Pi is able to resolve "iot-edge" when I add the +search flag. This flag uses the search list defined by the searchlist or domain directive in resolv.conf

What setting am I missing in my border router's NAT64 setup to duplicate the +search flag's functionality and enable these alias lookups? Thank you in advance!

  • I was able to talk with an OpenThread developer via discussion post on their GitHub repository page. He clarified that the command line interface's "srp domain" commands are for the OpenThread network itself - not the upstream network that the border router is connected to.

    As a result, my Thread child will need to use fully qualified domain names in its DNS lookups to get things working. This is OK - I have some ideas for alternative means of communicating the domain name to the Thread child and can use that to compose fully qualified domain names.

Related