11月25日,业内资深云计算架构师Eason在信服云《云集技术学社》系列直播课上进行了《软件SDN技术原理》的分享,继上周介绍了SDN技术发展与应用后,Eason本周又详细介绍了SDN架构、OpenFlow相关技术和网络虚拟化相关技术。以下是他分享内容摘要,想要了解更多可以文尾扫码关注。

看点一:SDN架构

SDN的整体架构是一个比较清晰的层次结构。一个SDN架构通常分成三个平面。

第一个是管理平面,它的作用是负责处理来自用户的请求,并转换为内部网络配置,通过北向接口(NBI)下发到控制平面。常见的云管理平面有OpenStack、NSX、Sangfor Cloud Platform等。另外,管理平面也可以基于开放平台构建用户自己的云管理平台。

第二个是控制平面,由SDN控制软件构成,负责将内部网络配置转换成数据平面可理解的语义。控制平面北向通过NBI和应用层对接,南向可通过标准化协议(例如OpenFlow的一些协议)与数据平面通信。

第三个是数据平面,主要为转发设备,根据控制平面的控制逻辑进行转发和处理数据。

这三个平面之间通过两种类型的接口进行通信,一个是北向接口,负责管理平面和控制平面之间的通信,一个是南向接口,负责数据平面和控制平面之间的通信。

通过这样的分层结构,用户就可以将一些用户请求转化成数据平面可以实现的数据转发逻辑,从而通过软件的方式来集中式的管理数据平面的网络转发设备。通过这些接口,数据平面也同样可以把统计数据、行为数据等上报给控制平面或者上报给管理平面,让管理平面或者用户可以拿到这些数据做更多的处理。

看点二:OpenFlow相关技术

谈到SDN就不得不谈OpenFlow相关技术,因为OpenFlow是SDN诞生后的第一个开源协议。数据平面有一个比较著名的实现叫做OVS。OVS包括3个主要模块:运行在内核态的datapath,以及运行在用户态的vswitchd和ovsdb-server。

第一个是Datapath,是负责数据转发的内核模块,属于快路(fast path)转发。该模块从网络接口收取数据报文,并根据报文头部匹配流表(Flow table)中的流表项,如果成功则直接转发,否则将报文递交到vswitchd处理。内核模块在初始化和端口绑定的时候会注册回调函数,从而接管端口的报文处理。

第二个是vswitchd,vswitchd是一个用户态守护进程,是本地OVS的管理和控制服务,属于慢路(slowpath)转发,可以处理内核模块未匹配的报文。vswitchd通过unix socket和ovsdb交互,并通过netlink和内核模块交互。vswitchd北向通过OpenFlow协议与控制平面对接。

第三个模块是ovsdb-server,ovsdb是OVS的数据库,用于保存OVS的配置信息。ovsdb-server对外提供RPC接口。

OVS工作依赖的核心数据结构是Flow table。Flow table是存储Flow的数据结构,Datapath根据Flowtable进行数据转发。Flow Table里面有一些字段,OVS通过将这些字段与数据报文进行匹配,并执行相应的动作就实现了报文转发。

在OVS里面,流表的核心处理流程是报文依次匹配多张表,并执行相应的指令。其中的单表也有对应的匹配流程。当一个报文进来的时候,它就会找到满足匹配条件的优先级最高的表项,接下来会执行指令动作,然后发送匹配数据和动作指令到下一张表。下一张表收到报文和指令后,会紧接着做后续的处理,直到整个流水线都运行完毕后,就会将报文从某一个端口输出或者是丢弃。通过这样的一个流程,OVS就完成了一次报文转发。

而在控制平面,也有一个开源实现叫做OVN(Open Virtual Network)。通常情况下,OVN分为四个模块。

第一个是Northbound DB,它接收并存储来自云管平台(CMS,Cloud Management System)的逻辑网络配置(逻辑交换机、路由器、ACL等)信息,目前基于ovsdb-server实现。它有两个客户端:OVN/CMS插件,ovn-northd。

第二个是ovn-northd,它是集中式控制器,同时连接Northbound DB和SouthboundDB,并负责把云管平台写入Northbound DB的基于传统网络概念的逻辑网络配置转换成Southbound DB的数据表。

第三个是Southbound DB,它也是基于ovsdb-server,包含三类数据:物理网络信息(PhysicalNetwork),它包括了所有overlay封装的必要信息,如IP地址,支持的封装类型等;逻辑网络信息(Logical Network),比如逻辑交换机、路由器的拓扑、ACL、防火墙规则等;物理网络和逻辑网络的绑定关系信息(Binding)。这些数据由各个ovn-controller消费。

第四个是ovn-controller,它是OVN的本地控制进程,是运行在每台主机上的本地SDN控制器。它北向通过ovsdb协议与OVN SouthboundDB通信,南向通过ovsdb协议与本地ovsdb-server通信,以及通过OpenFlow协议与ovs-vswitchd通信。

看点三:网络虚拟化技术

了解网络虚拟化技术首先要理解什么是虚拟网络或者什么是Overlay。Overlay网络是一种建立在另一个网络之上的计算机网络。Overlay网络节点可以被认为是通过虚拟或逻辑链接相连。节点之间通过下层网络(Underlay)中的多个物理连接实现相连。通过Overlay网络可以实现网络虚拟化,从而将虚拟网络与物理网络解耦。

虚拟网络实现有几种比较常见的方式:

第一个是VLAN(802.1Q),通过在物理交换机上划分VLAN实现多个虚拟的交换机。VLAN的限制是最大只支持4096个划分,并且Underlay网络不支持跨三层。

第二个是VPN(虚拟专用网络),通过隧道协议将分支或个人与总部网络连通的技术。Underlay网络一般用于在互联网上分支与总部间的点对点的连接。

第三个是VXLAN,可以在三层连通的Underlay网络上实现虚拟的二层连通性。这个二层连通性是在分布式虚拟交换机上实现的。

报文转发流程首先是虚拟机VM1发送ARP请求虚拟机VM2(IP=192.168.5.22)的MAC地址;其次VTEP1封装ARP请求为多播报文,并且将VNI设置为121;VTEP2收到报文后,将VTEP1和虚拟机VM1的映射关系加入VXLAN表格;VTEP2解封装报文,提取VNI信息,并把ARP请求发送到虚拟机VM2;虚拟机VM2回复ARP请求;VTEP2根据之前学习到VTEP1和VM1的映射关系和VNI信息封装VM2回复的ARP请求,并以单播方式发送给VTEP1;VTEP1收到来自VTEP2的报文,解封装,提取VNI信息,并把解封后的来自VM2回复ARP请求发送给VM1。

理解网络虚拟化技术的另一个重要的方面了解控制面的工作原理。在由控制面的情况下,主机1会将VTEP1和虚拟机VM1的映射关系上送控制器(VNI=121,VM MAC = 00:AC:AA:55:20:C1,VTEP IP = 10.0.0.163),同时主机2也会将VTEP2和虚拟机VM2的映射关系上送控制器(VNI=121,VM MAC = 00:AC:BB:77:44:C2,VTEP IP = 10.0.0.192)。控制器在聚合各主机信息后会将完整的映射关系分别同步到主机1和主机2。

通过网络虚拟化技术,可以实现虚拟路由器。虚拟路由器实现上有两种形态:分布式虚拟路由和集中式虚拟路由。这样实现的好处是虚拟路由器既有分布式路由性能和扩展性方面的优势,也有集中式路由功能服务方面的优点。

分布式虚拟路由器主要处理东西向流量,它可以在源端完成路由计算,实现物理上的一跳转发;集中式虚拟路由器主要处理南北向流量,负责与物理网络连通,实现集中式服务(NAT、DHCP、DNS、集中式防火墙、负载均衡)。

最后,通过网络虚拟化技术,可以实现软件定义防火墙。

软件定义防火墙分成两种,集中式防火墙和分布式防火墙。

集中式的防火墙有四个特点:第一个是中心化的管理;第二是集中式的防火墙部署在边界节点;第三是它主要用来防护的是南北向的流量;第四是通过集中式的防火墙,可以很容易集成第三方的服务。

分布式防火墙同样也是中心化管理,但分布式防火墙直接部署在虚拟机的网络接口上,它主要防护东西向流量,易于水平扩展。

来自外部或者互联网上的流量,通常会经过集中式路由或集中式的防火墙,进入内部网络。来自内部的流量在没有分布式防火墙之前也是通过集中式的防火墙来控制,有了分布式防火墙之后,就可以在虚拟机之间或者在主机之间直接进行防护,而不用再绕行到集中式防火墙的节点上,性能和安全性上会有很大的提升。

以上就是本期直播的主要内容,还想了解更多有关云计算相关的知识与应用吗?敬请关注云集技术学社,信服云还将邀请更多行业大咖来分享云计算干货。

云集技术学社|软件SDN技术原理都在这里了相关推荐

  1. 云集技术学社|什么是SDN?

    业内资深云计算架构师Eason在<云集技术学社>系列直播课上进行了<SDN技术发展与应用>的分享,详细介绍了什么是SDN及SDN的演进.应用.以下是他分享内容摘要,想要了解更多 ...

  2. 直播软件搭建技术原理:CDN 与直播

    直播软件搭建技术原理:CDN 与直播 很多直播都是基于 CDN 来实现的.而通过声网的服务,或基于声网SDK与 CDN 结合,还可以实现在直播中的连麦互动.白板同步等强调实时性的场景.本文源自社区投稿 ...

  3. 局域网SDN技术硬核内幕 二 从软件Overlay到硬件Overlay

    局域网SDN技术硬核内幕 二 从软件Overlay到硬件Overlay 在前一阶段的文章中,我们介绍了Neutron和NSX中的几个基本概念: IRB(Integrated Routing & ...

  4. 大厂小厂都在用的RAID软件磁盘阵列技术,必须学起来!

    RAID软件磁盘阵列 一.常用RAID介绍 1.1 RAID 0(条带化存储)- 性能最佳 1.2 RAID 1(镜像存储)- 完整备份 1.3 RAID 5 - 性能与数据备份的均衡考虑 1.4 R ...

  5. 为什么要学习C++软件调试技术?掌握这类技术都有哪些好处?

    目录 1.为什么要学习C++软件调试技术? 1.1.IDE调试手段虽必不可少,但还不够 1.2.通过查看日志和代码去排查异常崩溃问题,费时费力,很难定位问题 1.3.有的问题很难复现,可能只在客户的环 ...

  6. 为什么要学习C++软件调试技术?掌握调试技术都有哪些好处?

    目录 1.为什么要学习C++软件调试技术? 1.1.IDE调试手段虽必不可少,但还不够

  7. 局域网SDN技术硬核内幕 二 云网CP的日常恩爱——硬件VXLAN转发平面

    局域网SDN技术硬核内幕 二 云网CP的日常恩爱--硬件VXLAN转发平面 在大家的祝福之下,云和网络经历了红娘撮合(EVPN信令平面).领证(层次化端口绑定),终于要过上幸福的小日子了--也就是业务 ...

  8. SDN 技术指南(一):架构概览

    摘要 Background:为什么需要 SDN SDN的主要解决方案 SDN的整体应用架构 SDN与网络安全 OpenFlow工作原理 OpenFlow在SDN架构中的角色 Background    ...

  9. 《C语言接口与实现:创建可重用软件的技术》一2.6 扩展阅读

    本节书摘来自异步社区<C语言接口与实现:创建可重用软件的技术>一书中的第2章,第2.6节,作者 傅道坤,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.6 扩展 ...

最新文章

  1. redux 和 react-redux 部分源码阅读
  2. 2014\Province_C_C++_B\3 李白打酒
  3. 努比亚连续按下android版本,虚惊一场!努比亚Z17的Android 9.0真的不远了
  4. vim配置之spacevim
  5. powerpc和arm_为什么我喜欢ARM和PowerPC
  6. 遇到 ORACLE 错误 1658
  7. Win32汇编——多线程
  8. DVWA——SQL盲注(全等级)
  9. mathtype注册表
  10. 三维激光扫描后处理软件_三维激光扫描——钢结构形变检测的利器
  11. css 文本移除及省略号位置
  12. h5 个推厂商消息 离线消息推送
  13. 【NLP】自然语言处理481个公开数据集和基准任务整理分享
  14. 对于安装破解版BurpSuite无法用java打开注册机的问题
  15. 基因改造食物安全测试的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. RCU前传:从同步到RCU的引入
  17. c语言bzero函数头文件,嵌入q式c语言-文件操用.doc
  18. 移花接木大法:新型“白利用”华晨远控木马分析
  19. 前端 流星特效_前端工程师流星
  20. 数据库恢复---恢复策略

热门文章

  1. 每个程序猿应该阅读的10本经典书籍
  2. python登陆界面代码_Python-PyQt5-第一个小项目--登录框--login
  3. python用来初始化对象属性的是_猪行天下之Python基础——8.1 类与对象
  4. 抖音矩阵系统,抖音矩阵系统源码。抖音SEO源码。
  5. JS禁止浏览器打开控制台或查看源代码
  6. MacbookPro 2019 安装tensorflow GPU加速版
  7. Docker-- 提高下载速度的方法
  8. 牛客练习赛33 - ABCD
  9. mac添加hosts记录步骤
  10. 北京高校大学期末试题试卷题库