dhcpv6_relay: initial import of a lightweight DHCPv6 relay agent#16606
dhcpv6_relay: initial import of a lightweight DHCPv6 relay agent#16606miri64 merged 2 commits intoRIOT-OS:masterfrom
Conversation
|
I added a scapy-based test application (i.e. it requires root) and applied fixes in accordance to that. One-by-one the tests pass, but altogether (or on a non-native board for that matter) they have some issues. Will investigate later. I am also planning to provide a routine to hook this into the DHCPv6 client thread when run on a border router (BR) so the BR can run as a relay agent without an extra thread when the DHCPv6 client is compiled in. |
This is currently not possible, since the DHCPv6 client does not use |
|
With #16643, this PR's tests should now pass on native. |
|
Ok, I refactored the tests to an object-oriented |
|
Updated testing description, no longer WIP. |
b7cae9c to
b1431cf
Compare
|
And squashed and rebased to current master. |
b1431cf to
6b08e64
Compare
b2ab80c to
f790b79
Compare
|
Rebased and squashed to current master to resolve merge conflicts. @benpicco want to take a look? |
There was a problem hiding this comment.
This looks pretty good!
I tested it with the setup_taps.sh script from #16536 (examples/gnrc_networking-subnets) on native.
It works quite well with one relay node, but I see some problems if I introduce a second hop / relay node.
changes to the example
--- a/examples/gnrc_networking-subnets/Makefile
+++ b/examples/gnrc_networking-subnets/Makefile
@@ -24,13 +24,16 @@ USEMODULE += ps
USEMODULE += netstats_l2
USEMODULE += netstats_ipv6
+USEMODULE += event_thread
+USEMODULE += dhcpv6_relay
+
CFLAGS += -DDEBUG_ASSERT_VERBOSE=1
CFLAGS += -DCONFIG_GNRC_IPV6_NIB_NUMOF=16
CFLAGS += -DCONFIG_GNRC_IPV6_NIB_RIO_IN_LAST_RA=1
ifeq (native, $(BOARD))
USEMODULE += netdev_tap
- CFLAGS += -DCONFIG_GNRC_DHCPV6_CLIENT_6LBR_UPSTREAM=6
+ CFLAGS += -DCONFIG_GNRC_DHCPV6_CLIENT_6LBR_UPSTREAM=7
else ifeq (1, $(SLIP))
USEMODULE += slipdev_l2addr
CFLAGS += -DCONFIG_GNRC_DHCPV6_CLIENT_6LBR_UPSTREAM=5
diff --git a/examples/gnrc_networking/main.c b/examples/gnrc_networking/main.c
index 6301f4291d..3b703cc767 100644
--- a/examples/gnrc_networking/main.c
+++ b/examples/gnrc_networking/main.c
@@ -23,6 +23,10 @@
#include "shell.h"
#include "msg.h"
+#include "event/thread.h"
+#include "net/dhcpv6/relay.h"
+#include "net/gnrc/netif/internal.h"
+
#define MAIN_QUEUE_SIZE (8)
static msg_t _main_msg_queue[MAIN_QUEUE_SIZE];
@@ -40,6 +44,17 @@ int main(void)
msg_init_queue(_main_msg_queue, MAIN_QUEUE_SIZE);
puts("RIOT network stack example application");
+ gnrc_netif_t *netif = NULL, *upstream = NULL, *downstream = NULL;
+ while ((netif = gnrc_netif_iter(netif)) != NULL) {
+ if (netif->pid == CONFIG_GNRC_DHCPV6_CLIENT_6LBR_UPSTREAM) {
+ upstream = netif;
+ }
+ else {
+ downstream = netif;
+ }
+ }
+ dhcpv6_relay_init(EVENT_PRIO_LOWEST, downstream->pid, upstream->pid);
+
/* start shell */
puts("All up, running the shell now");
char line_buf[SHELL_DEFAULT_BUFSIZE];The nodes are then started with
make BOARD=native GATEWAY=1 PORT="tap_a0 tap_b0" all termmake BOARD=native GATEWAY=1 PORT="tap_b1 tap_c0" termmake BOARD=native GATEWAY=1 PORT="tap_c1 tap_d0" term
The first two nodes get their addresses just fine, when the third node is introduced I see dropped messages. (This might be a limitation of netdev_tap though)
first node
main(): This is RIOT! (Version: 2021.10-devel-246-g1515c-serial-routing-3)
RIOT network stack example application
All up, running the shell now
> DHCPv6 client: send SOLICIT
DHCPv6 client: resend SOLICIT
DHCPv6 client: received ADVERTISE
DHCPv6 client: scheduling REQUEST
DHCPv6 client: send REQUEST
DHCPv6 client: received REPLY
DHCPv6 client: scheduling RENEW in 10000 sec
DHCPv6 client: scheduling REBIND in 20000 sec
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
gnrc_sock: dropped message to 0x566370d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::c8f4:13ff:fece:3f43%8]:547
second node
RIOT network stack example application
All up, running the shell now
> DHCPv6 client: send SOLICIT
DHCPv6 client: resend SOLICIT
DHCPv6 client: received ADVERTISE
DHCPv6 client: scheduling REQUEST
DHCPv6 client: send REQUEST
DHCPv6 client: discarding 81 stale bytes
DHCPv6 client: discarding 81 stale bytes
DHCPv6 client: discarding 81 stale bytes
DHCPv6 client: received REPLY
DHCPv6 client: scheduling RENEW in 10000 sec
DHCPv6 client: scheduling REBIND in 20000 sec
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [::%8]:546
DHCPv6 relay: forwarding reply towards target failed: 22
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
gnrc_sock: dropped message to 0x565d40d0 (was full)
gnrc_sock: dropped message to 0x565d41b0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
gnrc_sock: dropped message to 0x565d41b0 (was full)
gnrc_sock: dropped message to 0x565d40d0 (was full)
gnrc_sock: dropped message to 0x565d41b0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
gnrc_sock: dropped message to 0x565d40d0 (was full)
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
DHCPv6 relay: forwarding reply towards target [fe80::3c27:6dff:fe25:e95d%8]:546
third node
RIOT network stack example application
All up, running the shell now
> DHCPv6 client: send SOLICIT
DHCPv6 client: resend SOLICIT
DHCPv6 client: received ADVERTISE
DHCPv6 client: scheduling REQUEST
DHCPv6 client: send REQUEST
DHCPv6 client: discarding 81 stale bytes
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
DHCPv6 client: resend REQUEST
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
gnrc_sock: dropped message to 0x565acbb0 (was full)
You did note the mention in the DHCPv6 RFC about PD and relay nodes, right? Or did you use IA_NA from #16228 to "get their addresses"? |
Ah, you seem to have a similar problem like I had the other day (with libCoAP in my case however): For some reason newer Linux kernels decided to rely on some Ethernet offloading which screws up the UDP checksum calculation ([edit] which causes incoming UDP packets to be dropped by RIOT). This seems to be a reoccuring issue, as using this workaround seemed to work for me. So for all bridges and TAP interfaces I did $ sudo ethtool --offload "<iface>" rx off tx off |
|
Will try to reproduce however ASAP. |
Yepp, with ip link | grep -o -e 'br[0-9]\+' -e 'tap_[abc][0-9]\+' | xargs -I{} sudo ethtool --offload {} rx off tx offbeing run before I start the DHCPv6 server and then rebooting all nodes (starting with the most upstream one and then going down the tree), I get the downlink prefix for all running |
(In case rebooting does not work, restarting the whole |
Why three btw when I only use two of each bridge? |
That was just copied from my subnet test where I also have leaf nodes on each level |
(as I only get output for the bridges with that snippet, I think setting offloading only for the bridges might suffice: ip link | grep -e 'br[0-9]\+' | xargs -I{} sudo ethtool --offload {} rx off tx off |
|
Hm I think this is a red herring. The UDP packets are dropped because the mbox in I tried with offloading disabled and I still see the same issue. |
|
Then I am afraid I can't reproduce your issue locally :-/. |
|
How many messages can this |
|
When I run this on hardware ( Maybe that's a limitation of my router though. It answers to edit: same with |
|
So how do we continue? I am unable to reproduce your errors (either because the error does not occur for me or because I do not have the hardware). |
|
Well the problem with the multiple relay hops appears to be caused by a lower layer, the code from this PR looks fine. The single-hop relay case works fine though (with KEA), so if you don't want to investigate this further, feel free to squash. |
In the longtime I'd like to investigate further, if I am able to reproduce this, but for now I just would prefer to have this in (also with #16228 being merged soon and multi-hop in mind). |
63b160b to
0755f6c
Compare
|
Squashed |
0755f6c to
07ad90a
Compare
07ad90a to
264dc93
Compare
|
Updated |
264dc93 to
2d7c613
Compare
|
And fixed the broken |
|
I give #16228 precedence over merging this PR... its the older PR and there will be merge conflicts :-). |
|
Ok, there need to be some fixes there anyway, so go. |
Contribution description
This provides a DHCPv6 relay agent based on
sock_asyncwhich allows for multihop-operation with DHCPv6.This PR is very much WIP as it is to this point only compile tested, I just wanted to publish it already so people know this is coming ;-).
Testing procedure
A test application is provided which can be run with
BOARD="<board>" make -C tests/gnrc_dhcpv6_relay flash -j test-as-rootIf you want to see the relay in action
Apply the following patch to start the relay on the border router and make prefix delegation optional (in a hacky way):
Details
flash the border router example to a board with DHCPv6 and the
dhcpv6_relaymodule and theevent_threadmodule to run it in. I used annrf52840dongle(which needs some additional config to be able to communicate with thesamr21-xproI used as client) so I can just plug it into my home router for DHCPv6 services:UPLINK=cdc-ecm USE_DHCPV6=1 BOARD=nrf52840dongle \ USEMODULE="auto_init_dhcpv6_relay event_thread" \ CFLAGS=-DCONFIG_IEEE802154_CCA_THRESH_DEFAULT=-30 \ make -C examples/gnrc_border_router/ flash -jflash the gnrc_networking example with DNS support and the DHCPv6 client to a board. I used a
samr21-xpro, but any board using 6LoWPAN should work here:BOARD=samr21-xpro \ USEMODULE="auto_init_dhcpv6_client dhcpv6_client_dns gnrc_dhcpv6_client sock_dns" \ make -C examples/gnrc_networking flash -j termPing a host by name from the
gnrc_networkingnodeIssues/PRs references
Requires #16643 for the tests to pass.