Назад | Перейти на главную страницу

Не удается проверить связь с удаленным устройством через Bluetooth Low Energy с использованием маршрутизируемого IPv6-адреса

У меня есть простой CoAP-сервер на устройстве, которое реализует профиль поддержки интернет-протокола BLE, который я хотел протестировать с помощью подключаемого модуля Mozilla Firefox + Copper. Пока мне удалось подключиться к своему устройству и пропинговать его, используя его локальный адрес ссылки. К сожалению, 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)

К сожалению, что-то все еще настроено неправильно. Я все еще могу пинговать свое устройство, используя локальный адрес ссылки ping6 fe80::215:83ff:fee8:eb0b%bt0, но когда я хочу пропинговать его с его маршрутизируемым адресом, 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;
    };
};

Похоже, что в вашей конфигурации radvd отсутствуют параметры ABRO, необходимые для того, чтобы ваша система распознавалась как пограничный маршрутизатор 6LoWPAN.

Минимальная конфигурация будет:

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

Обратите внимание, что в этот В строфе вам нужно использовать локальный адрес канала пограничного маршрутизатора.

И, конечно же, ваши устройства должны иметь Bluetooth 4.1 (или выше). Устройства 4.0 работать не будут.