DH3G游戏资讯网

云集技术学社|一文看懂软件 SDN 技术原理

发表于:2024-04-29 作者:创始人
编辑最后更新 2024年04月29日,11 月 25 日,深信服云计算架构师 Eason 在信服云《云集技术学社》系列直播课上进行了《软件 SDN 技术原理》的分享,继上周介绍了 SDN 技术发展与应用后,Eason 本周又详细介绍了 S

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、集中式防火墙、负载均衡)。

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

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

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

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

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

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

2022-05-06 14:43:29
0