组播路由

组播路由:VPC路由器接收组播源发送的组播消息,并转发给云主机,在发送端和接收端实现点对多点连接。
  • ZStack Cloud支持将云主机作为组播消息接收者,VPC路由器作为组播路由器参与物理网络的组播路由信息交换。
  • VPC路由器支持PIM-SM/PIM-SSM路由协议,在PIM-SM协议中,RP路由器是PIM-SM 域中的核心设备,RP地址可以通过手工方式静态配置,也可以通过BSR机制动态选举。
组播路由的典型场景:
  • 用户拥有一套ZStack Cloud的VPC环境,要求使用VPC路由器通信的云主机能够接收到来自公网的组播数据。对ZStack Cloud环境中对VPC路由器进行相应设置,即可达成需求。
组播路由拓扑图如Figure 1所示:
Figure 1. 组播路由拓扑图


组播路由的使用流程:
  1. 准备组播源。
  2. 设置组播路由。
  3. 验证组播路由是否生效。
假定客户环境如下:
  1. 公有网络
    Table 1. 公有网络配置信息
    公有网络 配置信息
    网卡 em01
    VLAN ID 非VLAN
    IP地址段 10.108.10.100~10.108.10.200
    子网掩码 255.0.0.0
    网关 10.0.0.1
    DHCP服务IP 10.108.10.101
  2. 管理网络
    Table 2. 管理网络配置信息
    管理网络 配置信息
    网卡 em02
    VLAN ID 非VLAN
    IP地址段 192.168.29.10~192.168.29.20
    子网掩码 255.255.255.0
    网关 192.168.29.1
    Note:
    • 出于安全和稳定性考虑,建议部署独立的管理网络,并与公有网络隔离。
    • 此管理网络与ZStack Cloud中的管理网络为相同概念(即:管理物理机、主存储、镜像服务器的网络),如果已创建可直接复用。
  3. VPC网络
    Table 3. VPC网络配置信息
    私有网络 配置信息
    网卡 em01
    VLAN ID 2800
    IP CIDR 192.168.1.0/24
    DHCP服务IP 192.168.1.2

以下介绍组播路由的实践步骤。

  1. 准备组播源。
    按照以下要求配置好公网云主机作为组播源:
    1. 根据规划好的网络配置信息创建公网云主机,命名为发送云主机,使用yum install -y socat命令安装socat,使云主机可以作为组播源发送组播消息。
    2. 交换机已开启组播功能。
  2. 设置组播路由。
    1. 根据规划好的网络配置信息,在ZStack Cloud云平台创建VPC路由器,详情可参考本教程基本部署章节。
      • 公有网络:10.108.10.100~10.108.10.200(与传统物理网络在同一网关,保证网络互通)
      • VPC路由器名称:VPC路由器
    2. 在VPC路由器详情页点击组播路由,进入组播路由界面,点击开启按钮开启组播路由功能并添加静态RP配置:
      • RP Address:输入RP地址,本示例使用10.108.10.125
        Note: RP地址可以通过手工方式静态配置,也可以通过BSR机制动态选举,需使用稳定的公网IP地址作为RP地址。
      • Group:设置组播组,本示例使用239.1.1.1/32
        Note:
        • 组播组是一个用IP组播地址进行标识的接收者的集合,VPC路由器通过加入组播组成为该组播组的成员,从而可以接收发往该组的组播数据。
        • 组播组地址需要使用CIDR形式输入。
      Figure 2所示:
      Figure 2. 添加静态RP设置


    3. 使用VPC路由器创建VPC网络,使用VPC网络创建云主机,命名为接收云主机,使用yum install -y socat命令安装socat,使接收云主机可以接收组播消息。
      Note: 云主机需要正确配置防火墙(启用IGMP协议,接收组播数据)以接收组播消息。
  3. 验证组播路由是否生效。
    1. 在发送云主机控制台输入如下命令,表示向组播组地址为239.1.1.1、端口为54321的地址发送UDP数据包,设置多播组数据的TTL值为10。
      for i in {1..100} ;do echo hi+$i | socat - udp4-sendto:239.1.1.1:54321,sp=54321,ip-multicast-ttl=10 ;done 
      Figure 3所示:
      Figure 3. 发送组播消息


    2. 在接收云主机控制台输入如下命令,表示指定网卡em01加入组播组239.1.1.1,从端口为54321接收UDP的数据包,查看是否接收到组播消息。
      socat stdio udp4-recv:54321,ip-add-membership=239.1.1.1:em01
      Figure 4所示:
      Figure 4. 接收组播消息


    如上所述,接收云主机接收到了来自发送云主机的组播消息,组播路由已成功启用。

至此,组播路由的使用方法介绍完毕。