Задний план
У меня следующая установка:
Я использую 6LOWPAN (реализация IPv6 в IEEE 802.15.4) на моем канале датчика, который имеет адреса IPv6 (без сохранения состояния) как aaaa :: xx / 64
Он использует RaspberryPi (RPI) в качестве граничного маршрутизатора (называемого 6lbr), который подключен к IEEE 802.15.4 и IEEE 802.11 (он выполняет перевод между двумя стандартами и маршрутизирует пакеты). RPI работает под управлением Debian.
Моя сеть не поддерживает рекламу IPv6 (RA), поэтому она назначает только общедоступный IPv4 для RPI.
Наконец, я храню свой серверный код (UDP-сервер / клиент) на сервере Debian, который имеет как общедоступные адреса IPv4, так и IPv6.
Вопрос Я не мог понять, как получить доступ к узлам датчиков со стороны сервера. Например, какой адрес назначения мне нужно ввести SERVADDR
ниже, чтобы отправить одноадресный UDP?
inet_pton(AF_INET6, SERVADDR, &server_addr.sin6_addr);
Предполагается, что это будет одноадресная рассылка IPv4 или IPv6 UDP?
Я попытался использовать NAT64 (проект с открытым исходным кодом под названием wrapsix), но не смог получить к нему доступ. Какое решение для туннелирования мне нужно использовать? Не могли бы вы также указать название проекта с открытым исходным кодом, которое я могу использовать для туннелирования или в качестве брокера?
Как второй вопрос Как мне нужно получить доступ к сенсорной сети (aaaa :: xx), если моя точка доступа выделяла частный IPv4-адрес (192.168.x.x) интерфейсу wlan0 RPI? В таком случае, какое решение мне нужно использовать?
ИЗМЕНИТЬ 1 Ссылаясь на комментарии @ kasperd, я сделал лучший поиск по туннелированию IPV6. Я не могу использовать NAT64, потому что для этого требуется уникальный сетевой префикс IPv6, которого у меня нет.
Я не могу использовать 6to4, для которого требуется общедоступный IPv4 (учитывая мой второй вопрос).
как предложил @kasperd, я должен использовать 6in4, для которого требуется брокер. Как я вижу в Интернете, я могу использовать Hurricane Electric или SixXS. Оба они заявляют, что свободны, но не могут понять, в чем основная разница. Насколько я понимаю, я не могу использовать решение Hurricane Electric за IPv4 NAT, но SixXS имеет протокол под названием AYIYA, который можно использовать за IPv4 NAT. Недостатком этого решения является то, что если у меня несколько похожих проблем с подключением, мне нужно настраивать их индивидуально. Во-вторых, SixXS позволяет использовать его в коммерческих целях, однако, поскольку он бесплатный, они передают информацию другим организациям, которые могут прекратить предоставлять использование адреса IPv6, который один использует в своем проекте. Это создает соображения надежности. Еще одно соображение заключается в том, что проблема может заключаться в том, что некоторые брандмауэры могут не разрешать туннелирование 6 в 4.
Кроме того, в Ubuntu / Debian есть пакет Miredo на основе туннелирования Teredo (на основе пакетов UDP). Это решение можно использовать за IPv4 NAT. Кроме того, поскольку это связь на основе UDP, почти все межсетевые экраны разрешают туннелирование. Однако говорят, что Teredo - временное решение, и его следует деактивировать (ретрансляторы Teredo), когда IPv6 станет более зрелым, чтобы побудить всех использовать собственный IPv6.
РЕДАКТИРОВАТЬ 2 SixXS.net не принимает новых регистраций. Я создал учетную запись на HE, но у нее есть ограничение на 5 туннелей. Если нужно более 5 туннелей, думаю, Майредо будет лучшим вариантом. Я пробовал использовать как брокера HE, так и Miredo, который получает IPv6, но я предполагаю, что у меня проблема с правилами маршрутизации: я не могу пропинговать этот IPv6 с удаленного ПК.