Gostaria de enviar um fluxo de um servidor Linux para vários clientes Linux através de um endereço multicast. Os clientes estão diretamente conectados ao servidor, mas eminterfaces diferentes: bnep0
e bnep1
. Além disso, pelo que entendi, meus pacotes multicast são roteados para meu gateway padrão eth0
.
Tabela de roteamento a seguir:
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
Suponho que preciso criar uma regra de roteamento dedicada, para que meus pacotes multicast sejam enviados não para eth0
, mas para bnep0
e bnep1
. Minha pergunta é: como eu poderia fazer isso? Tentei usar ip route
e iptables -t mangle ... TEE
, mas não tive sucesso.
Desde já, obrigado.
Responder1
A solução não é implementar regras de roteamento para duplicar pacotes nas duas interfaces, mas simmesclaras interfaces em uma.
Para isso, é necessário criar e utilizar uma ponte de rede. A ponte deverá ter endereços IP exclusivos, enquanto as interfaces "reais" não, mesmo que estejam ativas.
# 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