Can't ping remote device via Bluetooth Low Energy using routable IPv6 address

Al Bundy asked:

I have a simple CoAP Server on a device that implements the BLE Internet Protocol Support Profile that I wanted to test using Mozilla Firefox + Copper plug-in. So far I have managed to connect to my device, and ping it using its link local address. Unfortunately, Firefox cannot access link-local addresses, so in order to use that I have to configure my device with a routable address.

I have this config file… /etc/radvd.conf :

interface bt0
{
    AdvSendAdvert on;
    prefix 2001:db8::/64
    {
        AdvOnLink off;
        AdvAutonomous on;
        AdvRouterAddr on;
    };
};

Then I set an address in the subnet for the linux box, enabled forwarding and restarted radvd.

sudo ip address add 2001:db8::1/64 dev bt0
echo 1 | sudo tee /proc/sys/net/ipv6/conf/all/forwarding
sudo service radvd restart

This is the output from ifconfig bt0:

bt0       Link encap:UNSPEC  HWaddr 00-15-83-FF-FE-E8-EB-0B-00-00-00-00-00-00-00-00  
          inet6 addr: fe80::215:83ff:fee8:eb0b/64 Scope:Link
          inet6 addr: 2001:db8::1/64 Scope:Global
          UP POINTOPOINT RUNNING MULTICAST  MTU:1280  Metric:1
          RX packets:111 errors:0 dropped:0 overruns:0 frame:0
          TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:8553 (8.5 KB)  TX bytes:10804 (10.8 KB)

Unfortunately something is still incorrectly configured. I can still ping my device using local link address ping6 fe80::215:83ff:fee8:eb0b%bt0, but when I want to ping it with its routable address, ping6 -I bt0 2001:db8::215:83ff:fee8:eb0b, I have no responses.

What could be the problem?
IS there anything else I need to configure?

EDIT
New radvd.conf

interface bt0
{
    abro fe80::215:83ff:fee8:eb0b/64 {
        AdvVersionHigh 10;
        AdvVersionLow 2;
        AdvValidLifeTime 2;
    };
    AdvSendAdvert on;
    prefix 2001:db8::/64
    {
        AdvOnLink off;
        AdvAutonomous on;
        AdvRouterAddr on;
    };
};

My answer:


It appears that your radvd configuration is missing the ABRO options, required for your system to be recognized as a 6LoWPAN border router.

A minimal configuration would be:

interface bt0 {
    abro fe80::215:83ff:fee8:eb0b/64 {
        AdvVersionHigh 10;
        AdvVersionLow 2;
        AdvValidLifeTime 2;
    }
    #...everything else

Note that in this stanza you need to use the link-local address of the border router.

And of course your devices must be Bluetooth 4.1 (or higher). 4.0 devices will not work.


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.