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.rhkb.cn/news/238628.html

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

相关文章

Android studio调试

Android Studio连接手机详细教程(包含遇到的问题集)_android studio 连接手机-CSDN博客 可以创建虚拟机或直连真机或直连模拟器。 无法打开本地终端 Android studio Failed to start [powershell.exe] 利用Android studio的adb命令删除app应用 - 简书 利用ADB工具免root停用A…

深入理解 go chan

go 里面,在实际程序运行的过程中,往往会有很多协程在执行,通过启动多个协程的方式,我们可以更高效地利用系统资源。 而不同协程之间往往需要进行通信,不同于以往多线程程序的那种通信方式,在 go 里面是通过…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-2 常用表单控件

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>常用表单控件</title> <style> form {width: 260px;margin: 0 auto;border: 1px solid #ccc;padding: 20px; } .right {float: right; } </style&g…

Windows系统搭建WebDAV服务并结合内网穿透实现公网访问本地文件

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav&#xff0c;并且结合cpolar的内网穿透工具实现在公网访…

阿尔泰科技——PXIe8912/8914/8916高速数据采集卡

阿尔泰科技PXIe8912/8914/8916高速数据采集卡是2通道同步采样数字化仪&#xff0c;专为输入信号高达 100M 的高频和高动态范围的信号而设计。 与Labview无缝连接&#xff0c;提供图形化API函数。模拟输入范围可以通过软件编程设置为1V 或者5V。配备了容量高达 2GB的板载内存。…

亚马逊实时 AI 编程助手 CodeWhisperer使用体验

文章目录 1&#xff1a;什么是CodeWhisperer &#xff1f;2&#xff1a;试用3&#xff1a;上手体验 1&#xff1a;什么是CodeWhisperer &#xff1f; 最近ChatGPT展现出强大AI能力给我们带来了深刻的影响&#xff0c;AI现在不是一个概念&#xff0c;基于AI的产品一定在各行各业…

Elasticsearch 地理空间搜索 - 远超 OpenSearch

作者&#xff1a;来自 Elastic Nathan_Reese 2021 年&#xff0c;OpenSearch 和 OpenSearch Dashboards 开始作为 Elasticsearch 和 Kibana 的分支。 尽管 OpenSearch 和 OpenSearch Dashboards 具有相似的血统&#xff0c;但它们不提供相同的功能。 在分叉时&#xff0c;只能克…

喜好儿AI周报Weekly(第9期)CES2024 AI产业大爆发 | Rabbit R1 | 3D-Fauna | OLED屏幕 | Genie | MagicVideoV2 | Magnific

各位观众朋友们大家好&#xff01;我是被老板派去出差逛CES2024 拉斯维加斯消费电子展差点迷路回不来的阿喜。一起去看看这一周有什么新鲜事吧。 本期导读&#xff1a; 逛逛CES 2024消费电子展Rabbit R1人工智能设备三星AI机器人BallieLG无线透明OLED屏幕Portalgraph VR空间投…

jmeter和meterSphere如何使用第三方jar包

引用jar包语言使用的都是beanshell 问题起因&#xff1a;metersphere 接口自动化实现过程中&#xff0c;如何实现字符串加密且加密方法依赖第三方库&#xff1b; 使用语言&#xff1a;beanshell脚本语言&#xff0c;java语言 使用工具&#xff1a;idea jmeter metersphere 1.…

如何分析测试任务及需求(附分析流程)

测试分析 确认测试范围 根据测试项目的不同需求&#xff0c;有大致几类测试项目类型&#xff1a;商户/平台功能测试、支付方式接入测试、架构调整类测试、后台优化测试、性能测试、基本功能自动化测试。 测试项目需要按照文档要求进行测试需求分析&#xff0c;并给出对应的输出…

【论文阅读 CIDR17】Self-Driving Database Management Systems

Self-Driving Database Management Systems MySummary ABSTRACT 之前的advisory tools来帮助DBA处理系统调优和物理设计的各个方面&#xff0c;都仍然需要人类对数据库的任何更改做出最终决定&#xff0c;并且是在问题发生后修复问题的反动措施reactionary measures 。 An …

Linux进程【2】进程地址空间(+页表详解哦)

fork 引言&#xff08;程序地址空间&#xff09;进程地址空间进程地址空间mm_struct 虚拟地址到物理地址的转化总结 引言&#xff08;程序地址空间&#xff09; 在之前的学习过程中&#xff0c;我们认识了内存与地址&#xff0c;并且了解了在程序地址空间中的基本分区&#xf…

three.js 使用 tweenjs绘制相机运动动画

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div class"box-right"…

SpringBoot默认配置文件

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot默认配置文件 📚个人知识库: Leo知识库,欢迎大家访问 1.前言☕…

离线安装jenkins:使用rpm安装包

目录 一、安装jdk1.8二、安装yum软件包三、下载rmp安装包四、安装jenkins的rpm安装包五、创建jenkins文件目录六、设置环境变量七、配置jdk位置八、配置Jenkins配置文件九、启动Jenkins十、访问Jenkins十一、安装Jenkins插件十二、解释jenkins目录十三、删除jenkins十四、结合m…

Android perfetto memory开源工具分析

目录 原理 官网链接 下载heap_profile producer_support.cc 本地编译 push heapprofd 工具使用 pb文件获取 打开*.pb文件 trace文件 提高系统CPU性能 拆解特定函数内存占用 环境配置 工具使用 修改heap_profile 脚本 原理 Android perfetto memory分析工具和ma…

Java项目:117SpringBoot动漫论坛网站

博主主页&#xff1a;Java旅途 简介&#xff1a;分享计算机知识、学习路线、系统源码及教程 文末获取源码 117SpringBoot动漫论坛网站 一、项目介绍 动漫论坛网站是由SpringBootMybatis开发的&#xff0c;旅游网站分为前台和后台&#xff0c;前台为用户浏览&#xff0c;后台进…

计算机组成原理之计算机的性能指标和数制与编码

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

pringBoot教程(十) | SpringBoot集成JdbcTemplate

SpringBoot教程(十) | SpringBoot集成JdbcTemplate 1. JdbcTemplate概述 经过了前面的几篇文章&#xff0c;我们几乎讲解完毕了SpringBoot中前端控制器中的一些操作&#xff0c;体验到SpringBoot为我们使用框架所带来的便捷。前面文章中的所有案例&#xff0c;总共只引入了一…

如何优化测试用例设计,节约时间?

进一步优化测试用例设计&#xff0c;不仅可以减少测试用例数量和冗余&#xff0c;还可以减少执行时间&#xff0c;缩短测试周期&#xff0c;更快发现和修复问题&#xff0c;提高测试的质量。而没有优化的测试用例设计可能会导致冗余和重复的测试用例&#xff0c;增加了测试人员…