Loading
close

配置二层组播

time 更新时间:2025-05-22 10:50:47

背景描述

越来越多的应用场景需要支持高效的多点通信,包括券商普通组播业务,以及IP语音组播业务。传统的单播和广播模式虽然可以完成点对点和一对全网的通信,但在多点传输中存在很多问题,尤其是在带宽、网络延迟和网络资源的使用上。因此,二层组播可用于满足特定应用对多点通信的需求。

本实践方案通过配置网络组播完成上述需求。

前提条件

  1. 参考“计算”帮助中“云主机”的相关内容,提前制作并上传镜像好云主机需要的“镜像”。

操作步骤

  1. 配置物理交换机(以盛科E580交换机为例)。

    1. 启用 Igmp Snooping。
      # 可以全局开启,也可以指定vlan开启
      ip igmp snooping ( vlan VLAN_ID | )
    2. 指定运行的 IGMP 版本。
      # VER 取值 1-3,推荐配置为3
      ip igmp snooping ( vlan VLAN_ID | ) version VER
    3. 在 VLAN 上使能组播查询器功能。
      # 开启组播查询器
      ip igmp snooping vlan VLAN_ID querier
      # 设置组播查询器的源地址
      ip igmp snooping vlan VLAN_ID querier address IP_ADDR
    4. 关闭 IGMP snooping 成员快速离开功能
      no ip igmp snooping ( vlan VLAN_ID | ) fast-leave
    5. 丢弃未知的组播流量(可选)。
      ip igmp snooping ( vlan VLAN_ID | ) discard-unknown
    6. 使用 ipv6 组播
      # ipv6 组播侦听者发现协议 MLD,需要使用ipv6相关命令
      如:启用 MLD Snooping
      ipv6 mld snooping ( vlan VLAN_ID | )
    7. 恢复配置
      # 可以在命令开头使用关键字 no 恢复
      如:关闭 Igmp Snooping
      no ip igmp snooping ( vlan VLAN_ID | )
  2. 创建开启组播的网络。

    1. 在云平台的顶部导航栏中,依次选择[产品与服务]-[网络]-[网络],进入“网络”页面。

    2. 单击 创建网络 ,进入“创建网络”页面。

    3. 网络模式选择“VLAN”后,配置开启“组播”,单击 创建网络 ,完成操作。其中,各参数的具体说明,请参考 创建二层基础网络

  1. 使用组播网络创建云主机。

    1. 在云平台的顶部导航栏中,依次选择[产品与服务]-[计算]-[云主机],进入“云主机”页面。

    2. 单击 创建云主机 ,进入“创建云主机”的“基础配置”页面,云主机数量输入“3”。其余配置参考“计算”帮助中“云主机”的相关内容。

    3. 单击 下一步:网络配置 ,进入“网络配置”页面。“虚拟网卡”选择步骤1创建的组播网络,配置其他参数后,单击 确认配置。其余配置参考“计算”帮助中“云主机”的相关内容。

  1. 在云主机上启动IGMP。

    1. 使用开源软件SMCRoute来管理IGMP,实现IGMP组播组的加入离开。

    2. 三台云主机vm1、vm2、vm3,其中vm1作为点播者,使用SMCRoute加入组播组;vm2作为对照不加入组播组;vm3作为组播源,使用iperf发送组播UDP报文。

    3. 进入云主机vm1的VNC,执行如下步骤。

      1. 编译SMCRoute
        $ wget https://github.com/troglobit/smcroute/releases/download/2.5.7/smcroute-2.5.7.tar.gz
        $ tar xvf smcroute-2.5.7.tar.gz
        $ cd ./smcroute-2.5.7
        $ ./autogen.sh
        $ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
        $ make && make install
      2. 启动SMCRoute
        # 在网卡eth0上加入组播组225.1.2.3
        $ cat ./smcroute.conf
        mgroup from eth0 group 225.1.2.3
        $ systemctl restart smcroute
      3. 查看组播组关系表
        $ smcroutectl show groups
        
        Group Memberships Table
        GROUP (S,G)                                IIF
        (*, 225.1.2.3)                             eth0
      4. 动态加入和离开组播组
        $ smcroutectl join eth0 225.0.0.3
        $ smcroutectl leave eth0 225.0.0.3
      5. 使用tcpdump抓包,验证加入组播组的成员可以收到组播流量
        $ tcpdump -i eth0 -nne -vvv udp
    4. 进入云主机vm2的VNC,使用tcpdump抓包,验证没有加入组播组的成员收不到组播流量。

      $ tcpdump -i eth0 -nne -vvv udp
    5. 进入云主机vm3的VNC,使用iperf发送组播流量

      $ iperf -c 225.1.2.3 -u -t 3000 -T32  -b 1M

结果验证

查看云主机vm1和vm2的抓包结果,vm1可以收到来自vm3的组播流量,vm2则收不到。

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品