Используйте ip route add для добавления многоадресных маршрутов к нескольким устройствам.
TLDR: есть ли способ использовать "ip route" для добавления многоадресных маршрутов для нескольких сетевых карт?
У нас есть программное обеспечение, которое соединяет два сокета, привязанных к разным IP-адресам в отдельной NICS, к двум отдельным группам многоадресной рассылки, например, сокет 1 связан с 192.168.0.2 и присоединен к группе многоадресной рассылки 233.255.10.1, а сокет 2 связан с 10.57.31.2 и присоединен к многоадресная группа 239.255.100.1.
В настоящее время мы используем скрипт bash (ядро Linux 3.14.39) для установки многоадресных маршрутов на двух сетевых интерфейсах с использованием маршрута, например
route add -net 224.0.0.0 netmask 240.0.0.0 eth0
route add -net 224.0.0.0 netmask 240.0.0.0 eth1
и проверено по маршруту -n
Destination Gateway Genmask Flags Metric Ref Use Iface
224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0
224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth1
Я недавно прочитал, что маршрут устарел / устарел, и что вместо этого мы должны использовать ip route, например
ip route add 224.0.0.0/4 dev eth0
ip route add 224.0.0.0/4 dev eth1
К сожалению, второй вызов завершается с ошибкой "ответы RTNETLINK: файл существует", и, конечно, второй маршрут не отображается после этих вызовов.
Есть ли способ использовать IP-маршрут для добавления многоадресных маршрутов к нескольким сетевым картам?
Я могу использовать /8 в качестве сетевой маски? например
ip route add 233.0.0.0/8 dev eth0
а также
ip route add 239.0.0.0/8 dev eth1
но это проблематично, так как скрипт, который делает это, не знает, какой адрес многоадресной рассылки связан с каким устройством, и его не всегда гарантированно будет одинаковым в зависимости от конфигурации системы. Используя мой первый пример добавления маршрута, это не проблема.