6.3、SDN在云计算中的应用

news2024/12/23 13:37:17

目录

一、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.coloradmin.cn/o/1375932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue前端开发自学,父子组件传递数据,借助于Props实现子传父

vue前端开发自学,父子组件传递数据,借助于Props实现子传父! 之前我们说过,Props这个是用在父传子的情况下,今天为大家介绍的代码,就是在父组件里,自定义事件,绑定一个函数,让子组件可以接受到这…

架构01 - 知识体系详解

架构,又称为知识体系,是指在特定领域或系统中的组织结构和设计原则。它涵盖了该领域或系统的核心概念、基础理论、方法技术以及实践经验等。架构的主要作用是提供一个全面且系统化的视角,帮助人们理解和应用相关知识,并指导系统的…

PHP短链接url还原成长链接

在开发过程中,碰到了需要校验用户回填的短链接是不是系统所需要的,于是就需要还原找出短链接所对应的长链接。 长链接转短链接 在百度上搜索程序员,跳转页面后的url就是一个长链接。当然你可以从任何地方复制一个长链接过来。 长链接 http…

MySQL 按日期流水号 条码 分布式流水号

有这样一个场景,有多台终端,要获取唯一的流水号,流水号格式是 日期0001形式,使用MySQL的存储过程全局锁实现这个需求。 以下是代码示例。 注:所有的终端连接到MySQL服务器获取流水号,如果获取到的是 “-1”…

2022 年全国职业院校技能大赛高职组云计算赛项试卷

【赛程名称】云计算赛项第一场-私有云 某企业拟使用OpenStack 搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。 系统架构如图 1 所示,IP 地址规划如表 1 所示。 图 1 系统架构图 表 1 IP 地址规划 设备…

【Oracle】数据库对象

一、视图 1、视图概述 视图是一种数据库对象 视图 > 封装sql语句 > 虚拟表 2、视图的优点 简化操作:视图可以简化用户处理数据的方式。着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。视图提供了一个简单而有效的安全机制&#x…

使用 gitee+sphinx+readthedocs 搭建个人博客

给大家安利如何快速搭建个人博客网站! 前言 这是我本地运行的一个使用sphinx构建的博客服务,这些文章,都是用markdown写的。 一直有个想法,就是把自己写的这些文件,搞成一个博客网站,放到网上&#xff0c…

正面PK智驾,华为与博世「硬扛」

12月20日,随着奇瑞星纪元ES的亮相上市,华为与博世,分别作为新旧时代的供应商角色,首次在高阶智驾赛道进行正面PK。 11月28日,奇瑞和华为合作的首款车型智界S7上市,作为星纪元ES的兄弟车型,搭载华…

Jenkins基础篇--凭据(Credential)管理

什么是凭据 Jenkins的Credentials直译为证书、文凭,我们可以理解为它是钥匙,用来做某些事情的认证。 如Jenkins 和 GitLab交互时,需要添加GitLab的API令牌和登录凭证。 如Jenkins 添加从节点时,需要添加从节点的登录凭证或者Je…

Maven和MyBatis框架简单实现数据库交互

MyBatis是一种基于Java语言的持久层框架,它的主要目的是简化与数据库的交互过程。MyBatis通过XML或注解配置来映射Java对象和数据库表之间的关系,并提供了灵活的查询方式和结果集处理机制。MyBatis还提供了事务管理、缓存机制、插件扩展等特性。 使用My…

详细分析Java中的分布式任务调度框架 XXL-Job

目录 前言1. 基本知识2. Demo3. 实战 前言 可视化任务调度 可视化配置 1. 基本知识 在Java中,分布式任务调度框架 XXL-Job 是一个开源的分布式任务调度平台,用于实现分布式系统中的定时任务调度和分布式任务执行。 下面是关于XXL-Job的一些概念、功…

【Docker】概述与安装

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. Docker的概述 1.Docker为什么出现 2…

RabbitMQ入门到实战——高级篇

消息的可靠性 生产者的可靠性(确保消息一定到达MQ) 生产者重连 这⾥除了enabled是false外,其他 initial-interval 等默认都是⼀样的值。 生产者确认 生产者确认代码实现 application中增加配置:(publisher-returns…

【谭浩强C程序设计精讲 7】数据的输入输出

文章目录 3.5 数据的输入输出3.5.1 输入输出举例3.5.2 有关数据输入输出的概念3.5.3 用 printf 函数输出数据1. printf 的一般格式2. 格式字符 3.5.4 用 scanf 函数输入数据1. scanf 函数的一般形式2. scanf 函数中的格式声明3. 使用 scanf 函数时应注意的问题 3.5.5 字符输入输…

Find My游戏手柄|苹果Find My技术与手柄结合,智能防丢,全球定位

游戏手柄是一种常见电子游戏机的部件,通过操纵其按钮等,实现对游戏虚拟角色的控制。随着游戏设备硬件的升级换代,现代游戏手柄又增加了:类比摇杆(方向及视角),扳机键以及HOME菜单键等。现在的游…

货拉拉智能监控实践:如何解决多云架构下的故障应急问题?

一分钟精华速览 在月活超千万的大规模业务背景下,货拉拉遭遇了多云环境下的监控碎片化、规划无序等问题。为了应对这些挑战,货拉拉开发了一站式监控平台——Monitor。该平台的部署有效地实现了对核心应用的监控和报警全覆盖,显著提高了应急响…

Aigtek高压放大器的工作原理和指标应用介绍

高压放大器是一种用于放大高压信号的电子设备,具有高压输出,低噪声,高精度,高稳定性,高可靠性,低功耗,低成本等的优点,所以才被广泛应用在磁场探测、电磁脉冲放大、电磁波放大、电磁…

Zynq 电源

ZYNQ芯片的电源分PS系统部分和PL逻辑部分,两部分的电源分别是独立工作。PS系统部分的电源和PL逻辑部分的电源都有上电顺序,不正常的上电顺序可能会导致ARM系统和FPGA系统无法正常工作。 PS部分的电源有VCCPINT、VCCPAUX、VCCPLL和PS VCCO。 VCCPINT为PS内…

vue3+acro实现日期组件可以直接展示在界面上,不用非得弹框展示

前言: 在很多时候,我们使用日期组件的时候,不希望每次都是点击弹出日期弹框,而是,点击日期弹框直接能展示在界面上,在这里我们介绍下 使用 acro 来更加轻松的实现他的效果。 实现效果: 实现步骤…

安卓Android Studio读写MifareOne M1 IC卡源码

本示例使用的发卡器&#xff1a; https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c-s.w4002-21818769070.11.66af789eLeok2R <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout …