- 16
- 0
- 约2.1万字
- 约 43页
- 2019-12-28 发布于天津
- 举报
Linux SRv6 实战
(第三篇)
多云环境下 Overlay(VPP) 和 Underlay 整合测试
李嘉明 思科系统工程师
苏远超 思科首席工程师
赵 勇 思科顾问工程师
摘要:本文基于 Linux 上开源的 VPP 软件以及 Cisco NCS5500 路由器,验证了
通过 SRv6 实现多云环境下 Overlay 和 Underlay 整合、一体化调度以及快速收敛
功能。
一、VPP 简介
关于 SRv6 原理及 Linux SRv6 常见功能(VPN、流量工程、服务链)的实现,请参
见本系列文章的第一篇和第二篇,这里不再赘述。
VPP 全称 Vector Packet Processing (矢量数据包处理),最早是 Cisco 于
2002 年开发的商用代码。之后在 2016 年 Linux 基金会创建 FD.io 开源项目,
Cisco 将 VPP 代码的开源版本加入该项目,目前已成为该项目的核心。现在一般
来讲的 VPP 特指 FD.io VPP,即 Linux 基金会发起的开源项目。
1
这个项目在通用硬件平台上提供了具有灵活性、可扩展强、组件化等特点的高性能
IO 服务框架。该框架支持高吞吐量、低延迟、高资源利用率的 IO 服务,并可适用
于多种硬件架构(x86/ARM/PowerPC)以及各种部署环境(裸机/VM/容器)。
VPP 底层使用了 Intel 数据平面开发工具包(DPDK:data plane development
kit’s)的轮询模式驱动程序(PMD:poll mode drivers)和环形缓冲区库,旨在
通过减少数据流/转发表缓存的未命中数来增加转发平面吞吐量。
VPP 高度模块化,允许在不更改底层代码库的情况下轻松“插入”新的 Graph Node
(图节点)。这使开发人员可以通过不同的转发图轻松构建任意数量的数据包处理
解决方案,它通过 Graph Node (图节点)串联起来处理数据包,并可以通过插件
的形式引入新的图节点或者重新排列数据包的图节点顺序,或者根据硬件情况通过
某个节点直接连接硬件进行加速,因此可以用于构建任何类型的数据包处理应用。
比如负载均衡、防火墙、IDS、主机栈等。 目前业界已经有客户选用VPP 来实现
自己的数据包处理应用。
图 1 VPP 自定义程序包处理图
上图是 VPP 的自定义应用的处理图,除了 VPP 对一个包的默认处理流程外(图中
蓝色的节点),可以在其中任意一个一个节点后,添加自定义的图节点,并在此实
现自定义的操作或者扩展功能。
2
图 2 VPP 目前支持的功能一览
VPP 目前已经支持了很多的功能,具体如图 2 所示,很多功能还可以通过第三方
开源软件+插件的方式进行扩展,比如动态路由协议 OSPF/BGP 等的支持。
VPP 对于 SRv6 有着非常好的支持,并且提供高性能。
二、多云环境下 Overlay 和 Underlay 的整合问题
一直以来,在多云环境下要实现 overlay 和 underlay 整合,都不太容易。一是如
何将 Overlay 的 SLA 信息映射到 Underlay;二是 Underlay 能否以足够细的颗粒
来满足 Overlay 基于流的 SLA 诉求;三是如何快速实现两者的协同和交接,因为
这通常涉及两个不同的部门。
常见的方案有以下两种:
3
图 3 多云环境下 Overlay 和 Underlay 目前的整合方案
方案一:多云之间之间通过 VXLAN 打通,Underlay 就是纯粹的透传,对设备要
求低。这种方案简单易行,不涉及到两个部门管理边界的问题;但缺点也很明显,
对于需要 Underlay 提供
原创力文档

文档评论(0)