我在设备上有一个简单的CoAP服务器,该设备实现了我想使用Mozilla Firefox +铜插件testing的BLE Internet协议支持configuration文件。 到目前为止,我已经设法连接到我的设备,并使用其链接本地地址进行ping。 不幸的是,Firefox无法访问链接本地地址,所以为了使用它,我必须用可路由的地址来configuration我的设备。
我有这个configuration文件… /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)
不幸的是有些东西仍然configuration不正确。 我仍然可以使用本地链接地址ping6 fe80::215:83ff:fee8:eb0b%bt0来ping设备,但是当我想用它的可路由地址Ping时, ping6 -I bt0 2001:db8::215:83ff:fee8:eb0b ,我没有回应。
可能是什么问题呢? 还有什么我需要configuration?
编辑新的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; }; };
看来你的radvdconfiguration缺lessABRO选项,你的系统需要被识别为6LoWPAN边界路由器。
最小的configuration是:
interface bt0 { abro fe80::215:83ff:fee8:eb0b/64 { AdvVersionHigh 10; AdvVersionLow 2; AdvValidLifeTime 2; } #...everything else
请注意,在本节中,您需要使用边界路由器的链路本地地址。
当然,你的设备必须是蓝牙4.1(或更高)。 4.0设备将无法正常工作。