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

Как дублировать многоадресные пакеты на нескольких интерфейсах?

Я хотел бы отправить поток с сервера Linux нескольким клиентам Linux через многоадресный адрес. Клиенты напрямую подключены к серверу, но разные интерфейсы: 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, но мне это не удалось.

Заранее спасибо.

Решение состоит не во внедрении правил маршрутизации для дублирования пакетов на двух интерфейсах, а в том, чтобы слияние интерфейсы в один.

Для этого вам необходимо создать и использовать сетевой мост. Мост должен иметь уникальные 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