总所周知,Linux 服务器是可以作为一台路由器使用,不仅仅是可以转发单播数据包,同事也可以转发组播数据包.但是多数同学却不知道如何配置.本文将介绍将Linux配置成组播转发路由器的方法做一个分享.
目录
手工开启
1.开启转发开关
和ip单播一样,首先需要打开系统的ipv4转发开关.
[root@dap1:/home/vap]# echo 1 > /proc/sys/net/ipv4/ip_forward
2.在需要开启组播转发的接口上打开组播转发开关.
以下示例是打开所有接口的组播转发开关.
[root@dap1:/home/vap]# cat /proc/sys/net/ipv4/conf/
all/ docker0/ enp62s0f0/ lo/ veth28802fc/ vethbb97ad5/
default/ enp134s0/ enp62s0f1/ veth1811b4c/ veth43493c1/
[root@dap1:/home/vap]# echo 1 > /proc/sys/net/ipv4/conf/all/mc_forwarding
以下为打开docker0接口的组播转发开关.
[root@dap1:/home/vap]# echo 1 > /proc/sys/net/ipv4/conf/docker0/mc_forwarding
可以依照例子手工一次打开各参与组播路由转发的接口开关.
3.手工配置静态组播路由.
以下示例增加了2条静态的组播路由
[root@dap1:/home/vap]# ip route add 224.0.16.0/24 dev docker0
[root@dap1:/home/vap]# ip route add from 12.23.24.15 to 224.0.18.0/24 dev docker0
[root@dap1:/home/vap]# ip route
default via 10.46.169.1 dev enp134s0 onlink
10.46.169.0/24 dev enp134s0 proto kernel scope link src 10.46.169.239
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
224.0.16.0/24 dev docker0 scope link
224.0.18.0/24 dev docker0 scope link
238.97.1.144 dev docker0 scope link
4.配置iptables,放行组播转发报文
首先检查iptables 的 filter 表的 FORWARD 链的默认策略和实际规则,如果发现被阻断的情况需要根据实际情况放通规则.
注意下图中 Chain FORWARD (policy ACCEPT .....),该ACCEPT标识了这条链的默认规则为ACCEPT.
[root@dap1:/home/vap]# iptables -t filter -nvL
Chain INPUT (policy ACCEPT 23306 packets, 3074K bytes)
pkts bytes target prot opt