У меня есть экземпляр qemu-system-aarch64, работающий под управлением linux-3.10.105 с busybox.
Для ipv4 я нашел эту строку конфигурации для включения многоадресной рассылки только с доступным устройством обратной связи:
ip route add 224.0.0.0/4 dev lo
Теперь я хочу включить его и для ipv6, но наивный подход, изменяющий эту команду в диапазоне многоадресной рассылки ipv6, не сработал.
/ # ip route add ff00::/8 dev lo
/ # ip -6 route
unreachable ff00::/8 dev lo metric 1024 error -101
Функции, которые я вызываю:
setsockopt(sockfd_ipv4, IPPROTO_IP, MCAST_JOIN_GROUP, &group_ipv4, sizeof(group_ipv4))
setsockopt(sockfd_ipv6, IPPROTO_IPV6, MCAST_JOIN_GROUP, &group_ipv6, sizeof(group_ipv6))
В то время как первый работает нормально после выдачи команды ipv4, второй возвращает ENODEV (как первый, если я не выполняю команду).
Некоторый контекст: многоадресная передача не выполняетсяне реально работать.В этой версии Linux есть ошибка в коде инициализации ip multicasting, которую я хочу исследовать с помощью gdb.Так что все, что мне нужно, это установка, которая думает, что она может многоадресно передавать без необходимости чего-то, что действительно достигает чего-либо.
Так что другие идеи, которые не используют маршруты, помогают так же долго, как и ENODEV.ошибка исчезнет.