ILD

igmp snooping & proxy
作者:Yuan Jianpeng 邮箱:yuanjp89@163.com
发布时间:2019-10-10 站点:Inside Linux Development

multicast routing

多播路由需要用户态配置。用户态igmp proxy守护进程接收lan侧的igmp请求,转发给WAN侧。并配置转发条目。


查看多播路由表

1
2
# ip mroute
(192.168.110.110, 224.1.1.1)     Iif: eth4094    Oifs: br-lan


内核多播转发实现在:net/ipv4/ipmr.c

1
2
3
static void ip_mr_forward(struct net *net, struct mr_table *mrt,
              struct sk_buff *skb, struct mfc_cache *cache,
              int local)


/proc/net下两个接口ip_mr_vif,ip_mr_cache可以查看转发条目的情况:

1
2
3
4
5
6
7
8
9
# cat /proc/net/ip_mr_vif
Interface      BytesIn  PktsIn  BytesOut PktsOut Flags Local    Remote
 0 br-lan        21323     116  681906636  503197 00008 00000013 00000000
 1 eth4094    681906636  503197      9405      57 00008 0000000F 00000000
  
# cat /proc/net/ip_mr_cache
Group    Origin   Iif     Pkts    Bytes    Wrong Oifs
010101E0 6E6EA8C0 1     504321 683430780        0  0:1
FAFFFFEF 6400A8C0 0          4      808        0  1:1


multicast snooping

多播抑制的可以通过

1
2
# cat /sys/class/net/br-lan/bridge/multicast_snooping
0

控制。


开启多播抑制的时候,会有mdb表。通过bridge mdb可以查看mdb表。


igmp query可以由内核做,也可以由igmp proxy做。它们都可以发出igmp query。通过/sys/class/net/br-lan/bridge/multicast_querier这个文件控制。


典型的igmp proxy有:

igmpproxy/mcproxy


Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.