我在一台实现了 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 设备将不起作用。