网络虚拟化之FlowVisor:网络虚拟层(中)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

一. 概念理解和回顾

上一篇博客说了,切片定义为一个虚拟网络的实例,而组成切片的流可以被当作有所有可能出现的数据包的包头构成的整个几何空间的一个子空间。举一个例子,OpenFlow的流表项会匹配一定的域,我们可以按照不同的域将整个几何空间进行划分。

FLowVisor定义切片为一组流,因此我们可以将切片当作一组域,给定一个数据包包头,我们可以判断出这个数据包包含在哪个流空间中,即可判断出这个数据包属于哪个虚拟网络,所以可以将FLowVisor的一个实例等价于一个流空间。

FLowVisor的设计目标有三点:

这个虚拟化对控制器来说应该是透明的

不同的切片之间是完全独立的

切片定义是可扩展的

二. FLowVisor的的实现

1. 工作流程

FLowVisor类似于一个OpenFlow代理,对OpenFlow交换机和控制器之间的消息进行拦截,如下图左。所有的OpenFlow消息,不论从交换机到用户还是用户到交换机,都会经过FLowVisor,FLowVisor利用OpenFlow协议和用户、交换机进行通信,FLowVisor对交换机和用户来说是透明的,所以在用户看来,他们是直接和交换机通信的。接下来以下图左简单的例子来阐述FLowVisor的操作流程。

 网络虚拟化之FlowVisor:网络虚拟层

网络虚拟化之FlowVisor:网络虚拟层

Bob在控制器上面运行了一个HTTP负载均衡应用,将所有的HTTP流散播到一组服务器上,Bob的FLowVisor的策略是切片网络从而让自己只处理所有源IP为一个固定值的HTTP流,而控制器上可以看到所有的HTTP流,控制器自信可以实现负载均衡的任务,他会下发流表,对所有的HTTP流负载均衡。当Bob的控制器下发一条流表(如将某个流指引到某个服务器),FLowVisor会拦截他(上图左1),和Bob's的切片策略进行对比(上图左2),重写流表项只对固定源IP的HTTP流有效,这样控制器就实现了只控制固定源IP的流,但是他觉得自己控制了所有的流。同样的,对于从交换机向控制器的消息,FLowVisor只允许满足对应切片流空间的消息上传。FLowVisor不需要FLowVisor实例和物理交换机一对一存在,一个FLowVisor实例可以控制多个物理交换机,甚至可以虚拟化另外一个虚拟网路。如上图右

作者公布了源码,是C语言写的,大约7000行。

2. 切片定义策略

FLowVisor中切片被定义为可插入模块(非常方便和便捷),每个策略由文本配置文件来描述的,一个切片一个。对于带宽分配,一个切片的所有流都会被映射到一个Qos组,每个切片有固定数量的交换机CPU和转发流表的预算,网络拓扑被指定为网络结点和端口的列表。

用一个有序的元素列表,类似于防火墙规则来定义的每个切片的流空间,每个规则描述有一个相关的操作,比如,允许,只读或者拒绝,这些被按照特定顺序来进行解析,执行第一个匹配规则的操作。将所有规则组合起来作为流空间的一部分,基本控制了整个切片。只读规则只允许切片接收OpenFlow控制消息,查询交换机的统计信息,不允许在转发表中插入流表。规则是允许重叠的。

我们接着复杂化前面的场景:Bob邀请了他的一些小伙伴和他合作来做HTTP负载均衡实验,网络管理员Alice准许Bob进行这些合作性实验,Alice将参与这个合作性HTTP实验的人员的HTTP流交由Bob控制,她继续负责剩余的HTTP流,另外,Alice还想要运行一个被动的切片来监测整个网络的性能,为了实现这样的功能,我们可以用下面的流空间规则。

Bob'的试验网络:被定义为所有参与实验的人员所需要的HTTP流,他的网络描述文件对每个用户只有一个规则,格式如下:

Allow: tcp_port: 80 and ip = user_ip

凡是来自于交换机中可以匹配这条规则的OpenFlow消息被转发到Bob的控制器,所有Bob意图插入的流表项都会满足这些规则

Alice的生产网络:是Bob网络的补集,所以规则如下:

Deny: tcp_port:80 and ip=user_ip

Allow: all

凡是不进入Bob虚拟网络的交换机的OpenFlow消息都会被进入生产网络的控制器,对于不满足Bob流空间的流生产控制器就可以随意对它们进行控制

Alice的监测网络:需要看到所有网络中的流,他的规则如下:

Read-only: all

这个规则确保Alice的检测网络是完全被动的,不与她的生产网、Bob的试验网产生任何冲突

通过上面的描述,我们可以发现,基于规则的策略是比较简单的,但是他可以满足实验和部署要求,更重要的是大家可以对自己所需要的规则完全DIY,所以十分灵活和可扩展。

经过这两篇文章,我基本理解了FLowVisor的原理和过程,进一步拓宽了自己的思路,下一篇文章详细说下FLowVisor如何隔离不同的虚拟网络


作者:cotyb 

来源:51CTO

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7天前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
22 3
|
1月前
|
负载均衡 监控 网络虚拟化
|
2月前
|
5G 网络安全 SDN
网络功能虚拟化(NFV)和软件定义网络(SDN):赋能5G网络灵活、智能演进的关键
网络功能虚拟化(NFV)和软件定义网络(SDN):赋能5G网络灵活、智能演进的关键
73 3
|
3月前
|
图形学 缓存 算法
掌握这五大绝招,让您的Unity游戏瞬间加载完毕,从此告别漫长等待,大幅提升玩家首次体验的满意度与留存率!
【8月更文挑战第31天】游戏的加载时间是影响玩家初次体验的关键因素,特别是在移动设备上。本文介绍了几种常见的Unity游戏加载优化方法,包括资源的预加载与异步加载、使用AssetBundles管理动态资源、纹理和模型优化、合理利用缓存系统以及脚本优化。通过具体示例代码展示了如何实现异步加载场景,并提出了针对不同资源的优化策略。综合运用这些技术可以显著缩短加载时间,提升玩家满意度。
137 5
|
3月前
|
存储 安全 网络安全
云计算与网络安全的博弈:保护数据在虚拟世界中的安全移动应用开发之旅:从新手到专家
【8月更文挑战第27天】随着云计算技术的飞速发展,企业和个人用户越来越多地将数据和服务迁移到云端。然而,这一转变同时带来了新的安全挑战。本文旨在探讨云计算环境下的网络安全问题,并分析如何通过技术和策略保障信息安全。我们将从云服务的基础知识出发,逐步深入到网络安全和信息安全的高级概念,最后讨论如何实施有效的安全措施来抵御网络威胁。文章不仅涵盖了理论框架,还提供了实际案例分析,旨在为读者提供一套全面的云计算安全指南。
|
3月前
|
JavaScript 网络协议 API
【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
|
3月前
|
安全 网络虚拟化 虚拟化
揭秘网络虚拟化新纪元:从VLAN到VXLAN,跨越物理界限,解锁云时代网络无限可能!
【8月更文挑战第23天】在网络虚拟化领域,VLAN与VXLAN是两种关键技术。VLAN通过标签划分物理局域网为多个独立的逻辑网络,适用于局域网内部虚拟化;而VXLAN作为一种扩展技术,利用VNI极大提升了网络的可扩展性,支持更大规模的虚拟网络,并能跨数据中心和云服务提供商网络实现虚拟机的无缝迁移。两者分别在第二层和第三层实现流量隔离,共同支撑起现代网络架构的灵活性与安全性。
60 2
|
4月前
|
网络虚拟化 安全 网络架构
|
4月前
|
网络虚拟化 数据中心 虚拟化
|
4月前
|
安全 网络安全 网络虚拟化
什么是VPN虚拟专业网络技术?
虚拟专用网络(VPN)技术利用互联网服务提供商(ISP)和网络服务提供商(NSP)的网络基础设备,在公用网络中建立专用的数据通信通道。VPN的主要优点包括节约成本和提供安全保障。
87 6

热门文章

最新文章