无法使用可路由 IPv6 地址通过低功耗蓝牙 ping 远程设备

无法使用可路由 IPv6 地址通过低功耗蓝牙 ping 远程设备

我在一台实现了 BLE Internet 协议支持配置文件的设备上安装了一个简单的 CoAP 服务器,我想使用 Mozilla Firefox + Copper 插件来测试它。到目前为止,我已经成功连接到我的设备,并使用其链接本地地址对其进行 ping 操作。不幸的是,Firefox 无法访问链接本地地址,因此为了使用它,我必须为我的设备配置一个可路由的地址。

我有这个配置文件... /etc/radvd.conf:

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

然后我在子网中为 Linux 机器设置了一个地址,启用转发并重新启动了 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

这是的输出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)

不幸的是,某些配置仍然不正确。我仍然可以使用本地链接地址 ping 我的设备ping6 fe80::215:83ff:fee8:eb0b%bt0,但当我想使用其可路由地址 ping 它时,ping6 -I bt0 2001:db8::215:83ff:fee8:eb0b却没有得到任何响应。

可能是什么问题?我还需要配置什么吗?

编辑 新的 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;
    };
};

答案1

您的 radvd 配置似乎缺少 ABRO 选项,而该选项是您的系统被识别为 6LoWPAN 边界路由器所必需的。

最小配置如下:

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

请注意节您需要使用边界路由器的链路本地地址。

当然,您的设备必须是蓝牙 4.1(或更高版本)。4.0 设备将不起作用。

相关内容