6.3、SDN在云计算中的应用

目录

一、SDN概念

1.1、传统网络机制

1.2、SDN网络机制

1.3、二者区别        

1.4、SDN架构

二、云数据中心

2.1、公有云环境特点

  2.2、两大挑战

 2.3、云数据中心引入SDN技术解决两大挑战

三、SDN云计算解决方案

3.1、SDN云计算解决方案之控制平面openflow协议

3.1.1、流表项内容

3.1.1.1、匹配字段

3.1.1.2、优先级

3.1.1.3、计数器

3.1.1.4、指令集

3.1.1.5、超时

3.1.1.6、cookie

3.1.2、读懂openflow流表

3.2、SDN云计算解决方案之转发平面vxlan协议

3.2.1、Vxlan概念

3.2.2、Vxlan封装

3.2.2.1、Vxlan包头

3.2.2.2、外层UDP包头   

3.2.2.3、外层IP包头

3.2.2.4、数据包二层包头

3.2.3、以实例分析在Vxlan数据包转发过程中流经各节点发生的变化


一、SDN概念

        SDN,(software Defined Networking )即软件定义网络

        广义概念:泛指向上层应用开放接口,实现软件编程控制的各类基础网络架构,涉及技术包括:OpenFlow、以Vxlan为代表的Overlay技术、I2RS,并有越来越多的技术纳入到SDN范畴。

        狭义概念:将网络控制功能与转发功能分离,实现控制可编程的新兴网络架构。

1.1、传统网络机制

        如下图,如果想从A访问D,那么就需要对ABCD每个设备配置路由协议。当B到C的流量满载后,传统网络并不会自动调整路由,如果此时想通过A-B-E-F-D路由实现访问,同样需要对每个设备配置转发策略。

        可以看出,传统网络存在三大问题:

        1)管理难、部署难。各厂商配置命令不一,且无法统一管理;

        2)流量控制难。缺少控制大脑对全网链路流量动态调整;

        3)无法灵活调控。无法便捷编程进行借口调用。

1.2、SDN网络机制

        SDN能够完美解决上述传统网络存在的问题,其具有以下三大特征

        1)转控分离。将控制层面集中控制器统一控制;

        2)软件与硬件解耦。不再局限硬件设备只能部署某个厂商的网络操作系统;

        3)业务与网络解耦。实现新业务快速上线。

1.3、二者区别        

        以道路交通为例,如下图

1.4、SDN架构

        3+2架构:3层架构,2个接口

        第1层:开放可编程接口的应用层,主要实现网络业务的抽象,允许用户以自定义的方式对网络业务进行编程;

        第2层:实现集中化网络控制的控制层,整个网络的控制中枢,管理转发设备的运行状态和数据转发;

        第3层:专注于数据转发的转发设备层,基于控制层指令完成数据处理和转发的设备

        三层架构之前形成了2个接口,以控制层为核心,控制层与应用层之间的接口为北向接口,控制层与转发设备层之间的接口为南向接口。

        北向接口是网络开放的核心,主要为http,restful

        南向接口是集中控制的基础,主要为openflow,netconf,ovsdb

二、云数据中心

2.1、公有云环境特点

        1、按需:用户能够自定义其网络架构和网络分区分域,例如能够自定义网段地址,划分Vlan,设置网关。
        2、动态:根据用户的需求能自动化部署网络资源,并能支持客户随时频繁地调整。
        3、安全:用户之间能进行隔离,网络边界能进行防护。

        VM:虚拟服务器

        vswitch:虚拟交换机        

  2.2、两大挑战

        挑战一:在传统数据中心解决方案中,通常采用Vlan或VRF的技术实现用户虚拟网络的隔离,但是这两项技术都存在用户数最大为4096的限制

        挑战二:为保障业务平滑迁移上云,用户期望业务规划的私网ip保持不变,会引发不同用户的私网ip地址冲突问题

 2.3、云数据中心引入SDN技术解决两大挑战

        控制平面:南向接口采用openflow协议实现控制

        数据转发平面:采用Vxlan协议构建overlay叠加网络实现用户网络的安全隔离。

三、SDN云计算解决方案

3.1、SDN云计算解决方案之控制平面openflow协议

        SDN采用openflow协议会通过SDN控制器下发openflow流表至转发设备指导数据包转发,也就是说,SDN转发网元不在通过三层路由表或二层MAC地址表来完成数据转发,因此,首先要读懂openflow流表。下图为流表的流表项:      

3.1.1、流表项内容

3.1.1.1、匹配字段

3.1.1.2、优先级

3.1.1.3、计数器

3.1.1.4、指令集

3.1.1.5、超时

3.1.1.6、cookie

3.1.2、读懂openflow流表

        不同厂家流表不一致

        例1:

        1)该流表为Table160的优先级为90的流表项内容

        2)匹配项为ip数据包,目的MAC:fa:16:3f:00:02:d1,目的ip:192.168.1.4

        3)若是数据包的包头与流表匹配项完全匹配,则执行下面动作:

   actions=mod_dl_dst:fa:16:3e:54:20:6a,mod_dl_src:fa:16:3e:2c:f0:e3,strip_vlan,output:3(修改数据包的目的MAC,修改数据源MAC地址,剥掉vlan标签,从交换机的3端口转发数据包)

        例2:

        1)该流表隐藏了超时和cookie

        2)匹配项为数据包来自虚拟交换机的端口2,源MAC:fa:16:3e:83:38:47,目的MAC:16:3e: 54:db:6a,源IP:192.168.100.1/0.0.0.0,目的IP:192.168.100.200/0.0.0.0。

         3)若是数据包的包头与流表匹配项完全匹配,则执行下面动作:

actions:set(tunnel(tun_id=0xd33d57,src=0.0.0.0, dst=10.0.6.1, tos=0x0,ttl=64,flags(key))),2

(将数据包封装为VNI=d33d57的vxlan隧道,vxlan隧道的源IP为0.0.0.0,目的IP为10.0.6.1,并从端口2转发出去)

3.2、SDN云计算解决方案之转发平面vxlan协议

3.2.1、Vxlan概念

        Vxlan:可扩展虚拟局域网络,是基于IP 网络,采用“MAC in UDP”封装形式的二层VPN 技术

        VTEP: Vxlan的边缘设备,Vxlan的封装和解封都在VTEP上进行,两个VTEP之间的点到点的逻辑隧道叫Vxlan隧道

        Vxlan通过Vxlan ID标识,类似于二层网络中的VLAN ID

        Vxlan数据包在SDN环境中转发模式如下图:

3.2.2、Vxlan封装

        Vxlan封装会在原始二层数据桢外添加8字节Vxlan头、8字节UDP头和32字节IP头。

3.2.2.1、Vxlan包头

        8字节Vxlan包头中,主要介绍标记位和Vxlan ID

        标记位为图中的I位,I位为1,则Vxlan ID有效

        Vxlan ID(VNI)为24比特,因此支持2的24次方个ID,该Vxlan ID为内层VLAN。

3.2.2.2、外层UDP包头   

        外层UDP包头,8字节,Vxlan包含在UDP里面,即“MAC in UDP”,UDP包头中,源端口随机,目的端口固定为4789

3.2.2.3、外层IP包头

        外层IP包头,18字节,源IP为VTEP隧道的本端IP地址,目的IP为VTEP隧道的目的端IP地址

3.2.2.4、数据包二层包头

        数据包二层包头,14字节,源MAC为VTEP隧道的本端MAC地址,目的MAC为VTEP隧道的目的端MAC地址,VLAN ID为VTEP隧道的VLAN ID,该VLAN ID为外层VLAN。

3.2.3、以实例分析在Vxlan数据包转发过程中流经各节点发生的变化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/342058.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python入门,字符串详解

目录 1.通过下标索引取值 ​编辑 2.index()方法 2.replace方法 3.split方法 4.strip方法 5.count统计某字符串出现次数 ​编辑 6.len统计字符串长度 7.字符串的遍历 ​编辑 字符串支持下标索引,从前往后从0开始,从后往前…

19. 从零用Rust编写正反向代理, 配置数据的热更新原理及实现

wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现过程分享出来&#xff…

数字图像处理练习题

数字图像处理练习题 文章目录 数字图像处理练习题第 一 章1.什么是数字图像?2.数字图像有哪些特点?3.数字图像处理的目的是什么?4.简述数字图像的历史。5.数字图像有哪些主要应用?6.列举生活中数字图像的获得途径。7.结合自己的生活实例,举出一个数字图像的应用实例8.数字图…

Unity——VContainer的依赖注入

一、IOC控制反转和DI依赖倒置 1、IOC框架核心原理是依赖倒置原则 C#设计模式的六大原则 使用这种思想方式,可以让我们无需关心对象的生成方式,只需要告诉容器我需要的对象即可,而告诉容器我需要对象的方式就叫做DI(依赖注入&…

centos8部署MySQL5.7故障集

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 在centos8系统上安装MySQL,使用的是centos7上安装MySQL的脚本,出现了以下问题,以做记录&…

工程监测仪器振弦采集仪的应用及技术研究

工程监测仪器振弦采集仪的应用及技术研究 振弦采集仪是一种常用于工程监测的仪器,主要用于测量振动信号的频率、振幅及相位等参数。其应用和技术研究主要包括以下几个方面: 1. 结构监测:振弦采集仪可以用于对建筑物、桥梁、塔楼等结构物的振…

格密码:如何找最近的格点(CVP问题)

目录 一. 摘要 二. 介绍 2.1 简单的CVP问题 2.2 Gram-Schmidt向量 2.3 KZ基 三. 格密码的基本符号 四. CVP问题的发展 五. 如何解决CVP问题 5.1 随机取整算法 5.2 Babai算法随机取整 5.3 小结 六. 推荐论文 一. 摘要 本文章将解释如何利用随机取整算法&#xff08…

设计模式-数据映射模式

设计模式专栏 模式介绍模式特点应用场景技术难点代码示例Java实现数据映射模式Python实现数据映射模式 数据映射模式在spring中的应用 模式介绍 数据映射模式是一种将对象和数据存储映射起来的数据访问方式。具体来说,对一个对象的操作会映射为对数据存储的操作。这…

应急管理蓝皮书 |《应急预案数字化建设现状和发展建议》上篇

《应急预案数字化建设现状和发展建议》:297-313页 导读:《中国应急管理发展报告》系列蓝皮书由中央党校(国家行政学院)应急管理培训中心(中欧应急管理学院)联合社会科学文献出版社研创出版,本着…

2023一带一路暨金砖国家技能发展与技术创新大赛“网络安全”赛项省选拔赛样题卷②

2023金砖国家职业技能竞赛"网络安全" 赛项省赛选拔赛样题 2023金砖国家职业技能竞赛 省赛选拔赛样题第一阶段:职业素养与理论技能项目1. 职业素养项目1. 职业素养项目2. 网络安全项目3. 安全运营 第二阶段:安全运营项目1. 操作系统安全配置与加…

electron+vue网页直接播放RTSP视频流?

目前大部分摄像头都支持RTSP协议,但是在浏览器限制,最新版的浏览器都不能直接播放RTSP协议,Electron 桌面应用是基于 Chromium 内核的,所以也不能直接播放RTSP,但是我们又有这个需求怎么办呢? 市场上的方案…

07- OpenCV:模糊图像

目录 一、模糊原理 二、模糊的相关处理方法: 1、均值滤波(归一化盒子滤波) 2、高斯滤波(正态分布的形状) 3、中值模糊 4、双边模糊算法(美容软件) 5、相关代码: 6、几种模糊算法的比…