Vlan 之间的多播路由

Vlan 之间的多播路由

我正在尝试在 VLAN 之间创建多播消息服务。当多播客户端和服务器都在同一个 VLAN 中时,客户端可以毫无问题地接收数据包。当客户端和服务器位于不同的 VLAN 中时,我需要将多播数据包从 VLAN1 路由到 VLAN2。我目前正在使用一台带有两个网卡(eth0 和 eth1)的 Linux 机器作为路由器。我找到了配置路由器以路由多播数据包的来源,但找不到使用 Linux 机器执行相同操作的来源。有人能帮忙吗?

以下是我的设置的描述: 设置

答案1

您可以使用顺风车路线为此(是的,您需要一个单独的守护进程来管理多播路由)。SMCRoute 可用于在 Linux 内核的多播路由表中设置静态多播路由,该路由表与单播路由表是分开的。下载最新发布并使用以下命令构建它:

tar xf smcroute-2.4.4.tar.gz
cd smcroute-2.4.4/
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make

您现在可以运行make install以将 SMCRoute 安装到您的系统中。但是,我选择不在下面显示,这取决于您。我的回复提醒使用相对于您的构建目录的路径。

现在创建一个smcroute.conf包含以下行的文件:

mroute from eth0 source 192.168.1.2 group 224.0.0.3 to eth1

像这样在后台启动 SMCRoute 守护程序:

sudo ./src/smcrouted -f smcroute.conf

然后,您可以使用以下方法之一检查多播路由表:

ip mroute
sudo ./src/smcroutectl show routes

确保检查来自服务器的多播流的 TTL,它必须大于 1 才能被内核路由。

此外,您可能需要考虑更改服务器的组。224.0.0.* 范围保留给链路本地多播,根据定义,它永远不应该被路由。

相关内容