How to ping Host PC from Thread FTD?

Hey all,

I've been using the SDK for Thread for quite a while and got all the basic stuff up and running with Thread and the nRF52840DK, RPi Border Router, etc.

For example, I can run the google iot coap example and this all runs fine.

What I've been wanting to do is be able to ping my host PC so that I can test some local LAN comms, but for the life of me I can't seem to get this to work.

I've scoured through countless documentation and online forms and there doesn't seem to be any clear instructions on this. I'm hoping someone here knows the magic configuration.

I have a Linksys EA2700 Wi-Fi router that supports IPv6 sitting in between my host PC (Windows 7) and the RPi Border Router. I can ping using IPv4 and IPv6 addresses between these devices all day long. 

I've tried modifying tayga.conf to not use the global prefix but the prefix that seems to be used by the Wi-Fi router, which is 2600:8802:3001:36f0 as per below:

ipv6-addr 2600:8802:3001:36f0::2

prefix 2600:8802:3001:36f0::/96

I've also attached a screenshot of my host PC's ipconfig for review.

Everything else is out of the box. What am I missing? Why can't I ping my host PC from my Thread FTD?

From the Thread FTD's CLI, if I do a ping 2600:8802:3001:36f0::192.168.1.142 i just get "ICMPv6 Destination Unreachable" if I look at it with the Ubiqua sniffer.

Thanks in advance.

Parents
  • Hi,

    Can you post the ifconfig output from your border router? If you do not have a /62 prefix address or lower on the border router, it will not be able to further subnet global IPv6 addresses to the Thread network (requires /64 prefix). Some routers refuse to provide larger prefix networks than /64.

    In any case, you should be able to ping through the NAT64 interface, by modifying the tayga.conf file to use a different NAT64 prefix address from 64:ff9b::/96.

    Best regards,
    Jørgen

  • Hi Jørgen,

    Thanks for your quick response. I've attached the screenshot from the ifconfig output from the border router. Actually, it seems the prefix length is 64 so I have changed tayga to use 

    prefix 2600:8802:3001:36f0::/64

    but still I get the same result as before. 

    Everyone tells the same thing, to change the prefix to something different than the global prefix, but that's what I did and it doesn't work. Would you be able to check this out on your side to see if it works? I think it would be straightforward for you to setup a local network and see how it should be setup. Then I can have confidence in the changes I am making with that working setup. Btw, I am using your default border router image with only these changes. 

    Also, I cannot ping using the link-local IPv6 address of the host PC. I thought at least that should work. 

    Thank you.

  • I did a quick test on this today, and it is working fine on my setup. I'm able to ping both local PC and Google DNS from the CLI node with the changed prefix:

    This was tested with a clean install of all device and the setups consist of a RPi 3 with the border router image, a nRF52840 DK with FTD UART NCP firmware connected to the RPi, and a nRF52840 DK with FTD UART CLI firmware, connected to the host PC. The following steps worked for me:

    1. Modify /etc/tayga.conf by commenting out the well-known prefix and replacing it with the one from GitHub:
      #prefix 64:ff9b::/96
      prefix fd00:470:1f09:97c5::/96
    2. Restart the tayga service:
      sudo service tayga restart
    3. Make sure that the CLI node is connected to the same network as the BR and that it has been assigned the "fd11:22::/64" address:
      > ipaddr
      fd11:22:0:0:e56f:48a6:cfee:553c
      fdde:ad00:beef:0:0:ff:fe00:c800
      fdde:ad00:beef:0:87a2:b565:781b:5ca9
      fe80:0:0:0:2803:ad99:a600:828b
      Done
      

      If this is not the case, I power cycle the NCP board and run "sudo wpantund &" on the border router and check again. This usually solves this.
    4. Test ping against local PC and Google IPv4 DNS to check that everything is working as expected, using the new prefix:
      > ping fd00:470:1f09:97c5::192.168.1.124
      > 16 bytes from fd00:470:1f09:97c5:0:0:c0a8:17c: icmp_seq=7 hlim=125 time=26ms
      ping fd00:470:1f09:97c5::8.8.8.8
      > 16 bytes from fd00:470:1f09:97c5:0:0:808:808: icmp_seq=8 hlim=50 time=46ms

    As far as I know, link-local addresses are not reachable outside the Thread network (unless they can be reached with a single radio transmission - for instance the wpan0 interface of the border router), see IPv6 addressing in OpenThread documentation.

Reply
  • I did a quick test on this today, and it is working fine on my setup. I'm able to ping both local PC and Google DNS from the CLI node with the changed prefix:

    This was tested with a clean install of all device and the setups consist of a RPi 3 with the border router image, a nRF52840 DK with FTD UART NCP firmware connected to the RPi, and a nRF52840 DK with FTD UART CLI firmware, connected to the host PC. The following steps worked for me:

    1. Modify /etc/tayga.conf by commenting out the well-known prefix and replacing it with the one from GitHub:
      #prefix 64:ff9b::/96
      prefix fd00:470:1f09:97c5::/96
    2. Restart the tayga service:
      sudo service tayga restart
    3. Make sure that the CLI node is connected to the same network as the BR and that it has been assigned the "fd11:22::/64" address:
      > ipaddr
      fd11:22:0:0:e56f:48a6:cfee:553c
      fdde:ad00:beef:0:0:ff:fe00:c800
      fdde:ad00:beef:0:87a2:b565:781b:5ca9
      fe80:0:0:0:2803:ad99:a600:828b
      Done
      

      If this is not the case, I power cycle the NCP board and run "sudo wpantund &" on the border router and check again. This usually solves this.
    4. Test ping against local PC and Google IPv4 DNS to check that everything is working as expected, using the new prefix:
      > ping fd00:470:1f09:97c5::192.168.1.124
      > 16 bytes from fd00:470:1f09:97c5:0:0:c0a8:17c: icmp_seq=7 hlim=125 time=26ms
      ping fd00:470:1f09:97c5::8.8.8.8
      > 16 bytes from fd00:470:1f09:97c5:0:0:808:808: icmp_seq=8 hlim=50 time=46ms

    As far as I know, link-local addresses are not reachable outside the Thread network (unless they can be reached with a single radio transmission - for instance the wpan0 interface of the border router), see IPv6 addressing in OpenThread documentation.

Children
  • Hi Jørgen, many thanks ... that worked! I really appreciate it!

    Is it possible to ping the thread FTD from the host PC? I read in one of the posts that it is not possible due to the border router being assigned the 64 prefix length. 

  • If you only has a 64 prefix on the border router, it is not possible to ping the nodes directly, as they do not have any global IPv6 address assigned to them. You could possibly do it with NAT46, but this is not setup in the border router image we provide.

    If your ISP provides a larger prefix than 64, I think the best solution would be to get a router setup that supports assigning a /62 prefix to the border router. A router with OpenWRT or similar should be able to provide this.

Related