Я хотел бы отправить поток с сервера Linux нескольким клиентам Linux через multicast-адрес. Клиенты напрямую подключены к серверу, но наразные интерфейсы: bnep0
и bnep1
. Кроме того, насколько я понимаю, мои многоадресные пакеты направляются на мой шлюз по умолчанию eth0
.
Таблица маршрутизации далее:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bnep1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 bnep0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Я полагаю, что мне нужно создать выделенное правило маршрутизации, чтобы мои многоадресные пакеты отправлялись не на eth0
, а на bnep0
и bnep1
. Мой вопрос: как мне это сделать? Я пробовал использовать ip route
и iptables -t mangle ... TEE
, но у меня ничего не получилось.
Заранее спасибо.
решение1
Решение состоит не в том, чтобы внедрять правила маршрутизации для дублирования пакетов на двух интерфейсах, а в том, чтобыслияниеинтерфейсы в один.
Для этого вам нужно создать и использовать сетевой мост. Мост должен иметь уникальный IP-адрес, тогда как «реальные» интерфейсы не должны, даже если они будут работать.
# apt-get install bridge-utils
# ifconfig bnep0 up
# ifconfig bnep1 up
# brctl addbr br0
# brctl addif br0 bnep0
# brctl addif br0 bnep1
# ifconfig br0 10.0.0.1 netmask 255.255.255.0