阿里云混合云组播最佳实践

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 场景介绍很多企业用户和电信运营商会在相关业务中使用组播技术,例如在线直播、视频会议、视频转码、金融交易平台、多媒体广播及多播传输系统(MBMS)等服务。现在越来越多的用户将本地数据中心的业务迁移到云上,用户不仅仅需要云上环境支持组播,还需要支持本地数据中心与云上之间的组播通信。云上环境的组播技术已经在云企业网-企业版中实现,通过云企业网-企业版实现VPC内或者跨VPC的组播通信,详细信息可以参考官

场景介绍

很多企业用户和电信运营商会在相关业务中使用组播技术,例如在线直播、视频会议、视频转码、金融交易平台、多媒体广播及多播传输系统(MBMS)等服务。现在越来越多的用户将本地数据中心的业务迁移到云上,用户不仅仅需要云上环境支持组播,还需要支持本地数据中心与云上之间的组播通信。

云上环境的组播技术已经在云企业网-企业版中实现,通过云企业网-企业版实现VPC内或者跨VPC的组播通信,详细信息可以参考官方文档。但是有些用户需求是实现本地数据中心与云上之间的组播通信,期望能够支持IGMP,组播路由协议例如PIM(Protocol Independent Multicast)。阿里云原生系统和产品目前还无法支持这种需求,本文介绍一种解决方案实现阿里云混合云组播。

解决方案概述

此解决方案需要在阿里云VPC中部署第三方支持组播路由的应用,并且需要通过隧道打通阿里云与数据中心之间的组播域。至于阿里云与数据中心互通方式是没有限制的,可以通过公网互通,也可以使用专线内网互通。

解决方案的组成部分:

Underlay 网络:

  • 使用物理设备,物理连接,IP路由和VPC网络沟通的底层网络

Overlay网络:

  • 虚拟化的组播网络层,包含使能组播功能的网络设备和阿里云组播组件,设备间通过隧道技术交互组播信息与组播数据

如下图是此解决方案的整体概览:

前提条件

Underlay网络要求

要实现此解决方案的第一步能够通过内网实现阿里云网络与数据中心网络之间的互通,互通的方式有很多种方式,例如:

  • 高速通道专线互联到数据中心,然后配置边界路由器VBR,VBR添加到云企业网企业版中,实现VPC与数据中心IDC互通。
  • 通过VPN实现内网阿里云网络与数据中心网络互通,VPN可以是公网VPN也可以是私网VPN。
  • 通过公网隧道模式实现阿里云与数据中心内网互通

公网隧道模式

本方案中使用公网方式实现阿里云与数据中心之间的互通,然后使用GRE隧道实现混合云内网互通。在阿里云网络中部署一台服务器,服务器上运行虚拟路由器,虚拟路由器上配置了公网EIP,通过EIP可以与数据中心的组播路由器公网互通。然后在阿里云虚拟路由器和数据中心组播路由器上均配置GRE(Generic Routing Encapsulation)隧道,通过GRE隧道实现阿里云虚拟路由器与数据中心组播路由器之间内网互通。

虚拟路由器、安全组

在阿里云虚拟路由器中需要开启组播路由和PIM协议,PIM协议需要运行在GRE隧道tunnel接口上。通过GRE隧道实现阿里云虚拟路由器与数据中心组播路由器建立PIM邻居,PIM协议可以选择使用密集模式(PIM Dense Mode也可以选择稀疏模式(PIM Sparse Mode),如果使用稀疏模式,需要指定静态汇合点( Rendezvous Point ) 或者使用AutoRP功能。配置完成后需要观察PIM邻居是否正常建立完成。

在虚拟路由器的服务器安全组中,需要在入方向安全组中添加安全组规则放行GRE协议和UDP协议流量。因为组播报文是通过UDP协议传输,虚拟路由器会把组播报文封装在GRE隧道中与数据中心之间传输。

Overlay网络组播配置

虚拟路由器

步骤一:创建虚拟路由器

在阿里云ECS服务器上运行虚拟路由器Cisco Catalyst 8000V镜像,镜像可以在阿里云市场中获取,推荐使用g5ne规格创建镜像。通过镜像创建虚拟路由器实例后即可登录系统进行路由配置。

步骤二:配置隧道和组播PIM协议

登录虚拟路由器后配置GRE隧道和PIM协议,阿里云虚拟路由器可以与数据中心路由器通过GRE隧道建立PIM邻居

ip multicast-routing distributed     //开启组播路由功能
ip pim rp-address 10.0.0.1           //配置静态RP地址
interface Tunnel1
 ip address 10.0.0.1 255.255.255.252  // 配置tunnel接口IP地址
 ip pim sparse-mode                   //启用PIM稀疏模式
 tunnel source GigabitEthernet1       //ECS端口
 tunnel destination 8.208.89.x        //数据中心组播路由器公网IP
 
 router ospf 10  //运行ospf协议,通过VPC网段和tunel网段,与IDC之间互相学习到内网路由
 network 10.0.0.0 0.0.0.255 area 0
 network 192.168.0.0 0.0.0.255 area 0

CEN转发路由器

步骤一:开启组播功能

在使用企业版转发路由器搭建组播网络前,需要为企业版转发路由器开启组播功能。您可以通过以下两种方式开启企业版转发路由器的组播功能:

  • 手动创建企业版转发路由器实例时直接开启组播功能。
  • 如果您已经创建了企业版转发路由器实例,但未开启企业版转发路由器的组播功能,您可以通过以下步骤进行开启。

本文在创建创建企业版转发路由器时直接开启了组播功能。

步骤二:创建组播域

开启组播功能后,需要创建组播域并为组播域关联交换机,以此来划分一个组播网络范围。仅在组播网络范围内的资源才能发送和接收组播流量。

点击步骤一中创建的转发路由器实例ID,进入转发路由器配置界面,点击‘组播’ 标签页,创建组播域。在组播域中添加已经连接到转发路由器的VPC实例ID和VPC中的交换机实例ID。创建完成之后可以看到有一个组播域ID和组播域中绑定的交换机信息。

步骤三:创建组播源

创建组播域后,您需要在组播域下创建组播源,并为组播源指定其所属的组播组。组播源创建完成后,会向组播组发送组播流量,该组播组下的组播成员可以接收到该组播源发送的组播流量。

在组播域详情界面点击‘创建组播源’,创建组播源的时候填写组播地址IP,选择组播源所在的交换机和对应的弹性网卡。

步骤四:创建组播成员

创建组播源后,您需要指定组播成员,组播资源只有成为组播成员才能接收到组播流量。组播成员仅接收其所属组播组的组播流量。

在组播域详情界面点击‘创建组播成员’,创建组播成员的时候选择需要加入的组播组,选择组播成员所在的交换机和对应的弹性网卡。此步骤中需要将虚拟路由器添加为组播组成员。

使用案例-组播视频流

此案例整体拓扑如下所示:

此案例中组播源部署在阿里云ECS服务器中,组播成员在客户数据中心。组播数据流量可以在组播路由器中进行复制从而减小带宽占用,在阿里云中网络中转发路由器负责组播流量的转发和流量复制。

在阿里云ECS服务器上运行Linux操作系统,在Linux上安装ffmpeg软件。提前准备ts(Transport Stream)格式的视频文件,此文件可以通过UDP端口在组播组中进行视频流的传输,例如使用如下命令:

ffmpeg -re -i 11.ts -c copy -f mpegts udp://239.0.0.10:1234?pkt_size=1000

ffmpeg软件读取本地.ts文件,指定传输格式为mpegts,将流媒体文件通过组播组239.0.0.10 端口是1234进行传输,传输报文大小为1000字节。

在数据中心侧,我们可以使用wireshark和VLC客户端来接收组播流。通过Wireshark抓包可以证明组播流量可以通过网络传输到数据中心的服务器,VLC可以更直观的显示传输的视频信息。当配置VLC的时候,需要指定与客户端ffmpeg相同的组播组和传输的UDP端口。

在cisco-8000v虚拟路由器中配置如下信息

1、GRE隧道接口,使阿里云与IDC之间数据可以通过GRE互通

2、运行ospf动态路由协议,阿里云和IDC之间互相学习到对方的内网网段路由

3、接口运行PIM协议与手工指定组播RP地址

确保GRE隧道可以正常互通,cisco-8000v可以ping通IDC组播路由器隧道接口IP 10.0.0.2
cisco-8000v#ping 10.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms

查看组播pim邻居表
cisco-8000v#sh ip pim neighbor 
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      P - Proxy Capable, S - State Refresh Capable, G - GenID Capable,
      L - DR Load-balancing Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
10.0.0.2          Tunnel1                  00:00:58/00:01:15 v2    1 / S P G

查看cisco-8000v组播路由表,可以看到组播(*,239.0.0.10)的组播路由表,出口地址为Tunnel1接口,当组播路由器收到239.0.0.10的组播流量后,会自动生成一条(S,G)的组播路由条目。
cisco-8000v#show ip mroute 
IP Multicast Routing Table
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.0.0.10), 00:00:11/00:03:23, RP 10.0.0.1, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Tunnel1, Forward/Sparse, 00:00:11/00:03:23  
(192.168.0.128, 239.0.0.10), 00:00:02/00:02:57, flags: FT  //这是组播(S,G)路由条目,只有组播源发送组播流量的时候才会生成这条路由
  Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0
  Outgoing interface list:
    Tunnel1, Forward/Sparse, 00:00:02/00:03:27    
    
查看组播接口信息,可以查看每个接口的首发组播流量信息,组播流量从G1接口流入,从tunnel1接口流出。    
cisco-8000v#show ip multicast interface 
Tunnel1 is up, line protocol is up
  Internet address is 10.0.0.1/30
  Multicast routing: enabled
  Multicast switching: fast
  Multicast packets in/out: 0/5964
  Multicast TTL threshold: 0
  Multicast Tagswitching: disabled
GigabitEthernet1 is up, line protocol is up
  Internet address is 192.168.0.129/24
  Multicast routing: enabled
  Multicast switching: fast
  Multicast packets in/out: 5096/0
  Multicast TTL threshold: 0
  Multicast Tagswitching: disabled

当组播源通过ffmpeg发送组播视频流时,可以在IDC组播成员服务器中抓到组播报文。

端到端组播流量分析

上面的案例展示了从阿里云ECS发送组播流量到IDC组播服务器的环境和拓扑,下面进一步说明下报文在此拓扑中的转发情况。

1、ECS作为组播源发送组播报文到组播组中,报文源192.168.0.128,目的239.0.0.10。

2、转发路由器配置组播域、组播源、组播成员信息,当收到组播源发送的数据后,会复制和转发数据给组播成员。

3、虚拟路由器作为组播域中的组播成员,接收来自转发路由器的组播报文。

4、组播路由器将组播报文封装到GRE隧道中,发送给IDC边界组播路由器。

5、IDC边界组播路由器接收来自阿里云的封装组播报文的GRE报文。

6、IDC边界组播路由器解封装GRE报文,获取到内层组播报文,将报文进一步查找组播路由表发给组播成员。

7、IDC中的组播成员接收到组播报文。

如果IDC中的服务器作为组播源,云上ECS作为组播服务器,流量和拓扑是类似的,组播流量通过相同的网元进行转发。

负载冗余

网络架构中往往需要保证线路冗余与高可用,可以配置两条隧道实现阿里云与数据中心互通,但是这时候组播流量会从两条隧道中发送,组播成员会收到两份相同的组播数据,这种场景依赖于应用能否处理两份相同数据以及收到相同数据的时候是否会出现异常。

这种情况,可以调整网络结构,使其实现主备冗余功能。在数据中心路由器上配置IP SLA探测,当探测主GRE隧道接口正常的时候关闭备线路GRE接口,当探测到主GRE隧道接口异常的时候就开启备GRE隧道接口。这时候组播流量在同一时刻只会在一条GRE隧道上转发,目的服务器不会收到重复的组播数据,而且还保证了网络的高可用。

总结

本文介绍了如何使用阿里云云企业网转发路由器与IDC数据中心之间通过公网实现组播流量互通,实现了混合云组播交互的网络架构模型。其他互通模式,如专线内网互通,VPN内网互通方案与此类似,不在赘述。

目录
相关文章
|
30天前
|
存储 城市大脑 运维
中国信通院&沙利文最新报告:阿里云混合云全面领先
中国信息通信研究院与国际权威分析机构沙利文(Frost & Sullivan)联合发布《2023 混合云价值影响力矩阵》,报告显示,阿里云是唯一一家全域领导者,在技术表现域、战略布局域以及市场表现域三个维度均排名领先于97%的企业。
|
24天前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。
|
1月前
|
自然语言处理 算法 关系型数据库
阿里云PAI大模型RAG对话系统最佳实践
本文为大模型RAG对话系统最佳实践,旨在指引AI开发人员如何有效地结合LLM大语言模型的推理能力和外部知识库检索增强技术,从而显著提升对话系统的性能,使其能更加灵活地返回用户查询的内容。适用于问答、摘要生成和其他依赖外部知识的自然语言处理任务。通过该实践,您可以掌握构建一个大模型RAG对话系统的完整开发链路。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
|
3月前
|
存储 机器学习/深度学习 人工智能
基于Megatron-Core的稀疏大模型训练工具:阿里云MoE大模型最佳实践
随着大模型技术的不断发展,模型结构和参数量级快速演化。大模型技术的应用层出不穷。大模型展现惊人效果,但训练和推理成本高,一直是巨大挑战。模型稀疏化能降低计算和存储消耗。近期以Mixtral为代表的MoE(多专家混合)大模型证明了稀疏MoE技术能大幅降低计算量、提升推理速度,模型效果甚至超过同规模稠密模型。阿里云PAI和NVIDIA团队深入合作,基于Megatron-Core MoE框架,解决了MoE大模型训练落地时会遇到的可拓展性、易用性、功能性以及收敛精度等核心问题,在下游任务上取得了很好的模型效果。
|
3月前
|
人工智能 监控 算法
阿里云向量检索服务最佳实践测评
随着大数据和人工智能的快速发展,向量检索技术在各个领域的应用越来越广泛。阿里云作为国内领先的云计算服务提供商,也推出了自己的向量检索服务。本文将对阿里云的向量检索服务进行最佳实践测评,探讨其在语义检索、知识库搭建、AI多模态搜索等方面的应用,并与其它向量检索工具进行比较。
1213 4
|
3月前
|
机器学习/深度学习 人工智能 物联网
快速玩转 Mixtral 8x7B MOE大模型,阿里云机器学习 PAI 推出最佳实践
本文介绍如何在PAI平台针对Mixtral 8x7B大模型的微调和推理服务的最佳实践,助力AI开发者快速开箱。以下我们将分别展示具体使用步骤。
|
4月前
电子好书发您分享《阿里云可观测最佳实践》
电子好书发您分享《阿里云可观测最佳实践》
27 1
|
4月前
|
弹性计算 监控 关系型数据库
阿里云ECS e实例最佳实践测评:搭建云上博客
阿里云ECS e实例最佳实践测评:搭建云上博客
56089 2
|
4月前
电子好书发您分享《阿里云可观测最佳实践》
电子好书发您分享《阿里云可观测最佳实践》
21 1

热门文章

最新文章