Herramienta y demonio que permite gestionar rutas multicast en un sistema UNIX/Linux. Es especialmente útil en entornos donde se quiere definir rutas multicast estáticas y no se necesita o no se puede utilizar protocolos dinámicos como PIM, IGMP, o protocolos de ruteo multicast más complejos. Incluye los ejecutables smcroutectl y smcrouted
Ejemplo de archivo de configuración:
# nano /etc/smcroute.conf
# Reenviar el grupo 239.1.1.1 desde el origen 192.168.1.10,
# que entra por eth0, hacia eth1
mroute from eth0 group 239.1.1.1 source 192.168.1.10 to eth1
# Unirse a un grupo (para recibir tú mismo el tráfico, sin reenviar)
mgroup from eth0 group 239.5.5.5
# smcrouted -d
# systemctl status smcroute.service
# smcrouted -N
# smcrouted -f /ruta/a/otro.conf
# smcrouted -n
# smcrouted -l debug
# smcroutectl add eth0 192.168.1.10 239.1.1.1 eth1
# smcroutectl add eth0 192.168.1.10 239.1.1.1 eth1 eth2
# smcroutectl remove eth0 192.168.1.10 239.1.1.1
# smcroutectl join eth0 239.5.5.5
# smcroutectl leave eth0 239.5.5.5
# smcroutectl show
# smcroutectl reload
# smcroutectl kill
Nota sobre la explicación del comando:
smvroute -a <IFNAME> <SOURCE-IP> <MULTICAST-GROUP> <IFNAME> [<IFNAME> ...]
IFNAME (inbound) --> la interfaz por donde llega el tráfico multicast, ej. eth0.
SOURCE-IP --> la IP unicast del emisor original del stream. Lo que en multicast se llama (S,G) — Source, Group). smcroute recomienda siempre especificar el origen si se conoce.
MULTICAST-GROUP --> la dirección multicast por ej. 239.1.1.1, el "canal".
IFNAME (outbound) --> una o varias interfaces por donde se debe *reenviar* ese tráfico, por ej. eth1, eth2.