mDNS with router not working correctly

We are running into problems while using the router. If we connect directly with ethernet cable, then roborio-3824.local works fine. However, once we insert the router, using roborio-3824.local only works if the machine from which we are connecting is set to a fixed IP (10.38.24.x) rather than using DHCP. I need to do a little more investigation to be sure the machine is receiving the correct DHCP address, but it appears the router is causing the issue.

Have you used the radio configuration utility?

We are seeing this problem quite a bit, actually multiple “we’s”. There are three teams working at the same facility and all three teams are having various similar issues.

(yes, we have run the radio config utility).

I have not been able to completely isolate the issue. Generally it comes to this: computer connects to wifi successfully, computer can connect to roborio if IP address is used, computer fails to connect if mDNS name is used (roborio-team.local).

A quick fix is to set the computer to a static IP address, it will begin to work, then if you change back to a DHCP address, it will continue to work (at least for a while, I haven’t verified it it works indefinitely or if it fails again later).

IPv6 may have some relation to the issue as the PC ping responses, when they work initially, have IPv6 addresses instead of IPv4 addresses.

Also - mDNS always works when connected directly via ethernet cable to the roborio.

What I have done is run some tests and collected wireshark network traces (attached).

In the traces, I can see the mDNS requests being sent, but never see a response from the roborio.

Here is what I did in my test:

  • powered robot on (roborio and router)
  • connected a PC to the network wirelessly
  • from PC “ping roborio-3824.local” - worked, but response was on IPV6 address
  • logged into DLINK to look at DHCP assignments
  • roborio-3824.local –> 10.38.24.24
  • pc –> 10.38.24.20
  • DHCP range specified as 10.38.24.20 through 199, subnet mask 255.255.255.0
  • connected Mac OS X to wireless network
  • mac received IP 10.38.24.21, subnet 255.255.255.0
  • checked on DLINK - it shows the mac assigned to 10.38.24.21
  • … so far, everything looks good …
  • Mac: “ping roborio-3824.local” – result:
Dropkick-Murphys:~ robert$ ping roborio-3824.local
ping: cannot resolve roborio-3824.local: Unknown host
  • changed Mac to static IP and ping’d - worked
  • changed Mac back to DHCP and ping’d - worked after route failure:
ping: sendto: No route to host
ping: sendto: No route to host
Request timeout for icmp_seq 0
ping: sendto: No route to host
Request timeout for icmp_seq 1
ping: sendto: No route to host
Request timeout for icmp_seq 2
ping: sendto: No route to host
Request timeout for icmp_seq 3
ping: sendto: No route to host
Request timeout for icmp_seq 4
ping: sendto: No route to host
Request timeout for icmp_seq 5
ping: sendto: No route to host
Request timeout for icmp_seq 6
ping: sendto: No route to host
Request timeout for icmp_seq 7
ping: sendto: No route to host
Request timeout for icmp_seq 8
Request timeout for icmp_seq 9
64 bytes from 10.38.24.24: icmp_seq=10 ttl=64 time=1.695 ms
64 bytes from 10.38.24.24: icmp_seq=11 ttl=64 time=5.960 ms

The shorter name is a capture from using the Mac in DHCP only
The longer name was when I wanted to test using static IP. I did a ping from the Mac while in DHCP, then switched to static, did a ping, then switched back to DHCP and did a ping.

wireshark captures.zip (25.3 KB)


wireshark captures.zip (25.3 KB)

To clarify, when you say router, do you mean the Dlink DAP-1522 bridge/ap, or do you mean an actual router that multiple teams are connecting to wirelessly?

The following is assuming the latter:

What router are you using? We are using the WRT610N from the KOP in 2009. We’ve noticed that mDNS does not make it across network interfaces on the router. For example If the robot radio is in bridge 5ghz, mdns does not work on a computer connected to the router’s 2.4ghz signal or through ethernet to the router.

Is your router also connected to the internet? Some ISPs have misbehaving DNS servers that will respond to a .local address, which breaks mDNS.

Actually I meant the Dlink DAP-1522 bridge, configured in AP mode. Sorry for the confusion.

Did you ever solve this? We are mostly OSX too, and none of our computers can properly resolve the roborio-XXX.local address. Our driver station works just fine though.

I did a little bit of messing around with the settings, and every once in awhile I get it to work. However, I never arrive at a solid conclusion – as the working state isn’t consistent.

I saw some posts online that the DAP-1522 has mDNS problems, and theorized that it may be related to QoS… and the first time that I disabled QoS it worked. Subsequent times did not work, however.

No, I have not solved it. All three of the teams working in our facility are seeing issues, but have worked around it by using static IP addresses. I have a hunch there are many other teams that are having the problem but not reporting it because they have the static IP workaround and we’re in a time crunch. I would encourage ANY team that has an issue of mDNS failing to resolve to report the issue.

Go here: http://wpilib.screenstepslive.com/s/4485/m/24193/l/144990-support-resources

Under Forums: NI FRC Community Discussion Section
and
WPILibBug Tracker at the bottom

You can add comments to my reports (search mDNS) or create a new one.

Have you tried disabling IPV6? That apparently fixed the problem for someone, but I can’t find the thread where it was reported.

One of the suggestions came from here:

Our team has seen a couple of issues with the mDNS. Most recently we were noticing that when we had two laptops connected, one with the DS (classmate), one connected using LabVIEW (not a classmate). The DS could ping the mDNS name but the LabVIEW machine could not. Manually disconnecting and reconnecting the LabVIEW machine fixed the issue immediately.