SDN&VXLAN理论部分

发布时间 2023-03-22 21:14:24作者: 张贺贺呀

SDN

传统网络

image-20230321205654729

在传统网络当中,管理员通过管理平面的一些协议,不管是http、ssh、telnet连接到控制平面当中做一些配置,比如说配置OSPF,然后OSPF进程会生成路由表,形成FIB表用于指导数据转发,这就是控制层面,有了这些表项之后,流量过来之后设备才会如何如何转发,而转发这一层就是上图当中的平面。我们可以从上向下来看待这三层比较好理解,最顶层是管理平面,中间是控制平面,最下面是数据平面。

传统网络设备控制平面和数据平面是在一起的,也可以说转发层面和控制层面是在一起的,网络设备要提供方便用户控制设备的命令或界面,这是控制层面,用户在控制层面操作之后生成转发平面的数据用来指导数据转发,传统的网络设备这两个层面都是在一起的,也被称做是紧耦合,而SDN是致力于将两个层面给分开,称做为解耦合,或转控分离。

慢慢就会遇到一些问题,网络领域是一个奇怪的领域,没有王者出来完全统一全局,各干各的,设备种类多、型号多、品牌多,这会导致一些问题:

  1. 品牌型号多多,操作方法不一样,导致运维太困难
  2. 运维太困难又导致对人员的要求高
  3. 对人员的要求高又导致业务部署太慢

还有一个问题是传统网络很难搞的,那就是网络拥塞问题,传统网络当中并没有一个“智慧大脑”来统筹管理。各种协议都是“傻大个”,不会灵活变通,灵活变通要靠工程师来参与,比如说双链路场景当中,要么负载,要么主备,假如说我们采用主备,A链路带宽大一点,B链路带宽小一点,根据路由协议他选择A链路,可是最近A链路由于运营商问题一直波动,用户体验特别不好,但是路由协议并不会智能的将流量切换到B链路,除非A链路彻底挂了才会切换到B链路,它只会根据内部的算法进行路由转发,而内部算法是根据开销来计算的,计算出来的结果就是A链路,因为一般算法是很难将拥塞、可靠性也计算上,isis、ospf、bgp全都不行。

运营商非常希望有技术能解决传统路由协议这种“傻大个”的机制,因为如果它的宽带体验不好,老是出现波动,用户就不愿意再使用其业务了,运营商非常希望当一条链路不可靠时,用户的流量能切换到其它的链路上,别再傻傻的在原来那条不可靠的链路上传输了。运营商用BGP比较多,传统的BGP是不智能的,是“傻大个”,但BGP有一种变种叫BGP-LS,LS指链路状态,其实就是带链路状态的BGP,目的就是为了让BGP拥有像链路状态路由协议那样的全局视角,收集拓扑信息,能比较好的进行智慧路径转发。

为了更好的解决传输路由协议这种傻大个的问题,不仅仅有BGP-LS,还有了MPLS TE技术(流量工程),也是MPLS的一种应用(我们前面学到的是MPLS另一种应用VPN),TE即流量工程,流量工程的本身也是让网络拥有全局视角,能比较智慧的调度流量来解决网络拥塞的问题。

解决方案思路

传统网络是软硬紧耦合,我们当前提追求是软硬解耦,可以简单理解为追求一个统一性,不管是个厂商的设备,哪种型号都最好统一使用一种操作方法,比如说NETCONF。

SDN

SDN不是一个协议,而是一种方法论,2006年才正式诞生,是非常新的。

https://upload.wikimedia.org/wikipedia/commons/e/e6/SDN-architecture-overview-transparent.png

image-20230321205712302

软件定义网络 (SDN) 技术是一种网络管理方法,它支持动态、编程高效的网络配置,以提高网络性能和监控,使其更像云计算而不是传统的网络管理。 SDN旨在解决传统网络的静态架构。 SDN 试图通过将网络数据包(数据平面)的转发过程与路由过程(控制平面)分离,将网络智能集中在一个网络组件中。 控制平面由一个或多个控制器组成,它们被认为是 SDN 网络的大脑,其中包含了整个智能。

总结一下:

  • 开放接口,方便编程控制
  • 集中控制,有控制器来控制
  • 转控分离

然而,在安全性、可扩展性和弹性方面,集中化有其自身的缺点,而这是 SDN 的主要问题。

自 OpenFlow 协议于 2011 年出现以来,SDN 通常与 OpenFlow 协议(用于与网络平面元素进行远程通信,以确定网络数据包跨网络交换机的路径)相关联。但是,自 2012 年以来,专有系统也使用了该术语。 其中包括 Cisco Systems 的开放网络环境和 Nicira 的网络虚拟化平台。 SD-WAN 将类似的技术应用于广域网 (WAN)。

image-20230321205722493

解释一下上图,现在比较新的且高端的设备都是即支持被控制器管控,控制器直接下发流表,设备不需要设备,照做就可以了;同时这些设备也支持netconf协议,我们人类或控制器也可以基于这种方式去控制设备,但这种方式不如openflow来的更底层,更直接,Netconf还需要设备进一步的计算才能生成流表,所以说openflow才是真正转控分离协议,而netconf只能说是伪的。

OpenFlow

image-20230321205751111

image-20230321205803238

OpenFlow is a communications protocol that gives access to the forwarding plane of a network switch or router over the network.

  • OpenFlow 是一种通信协议,SDN控制器与网络设备之间的通信协议,可以通过网络访问网络交换机或路由器的转发平面。
  • OpenFlow 允许通过添加、修改和删除数据包匹配规则和操作来远程管理第 3 层交换机的数据包转发表。 这样,路由决策可以由控制器定期或临时做出,并转化为具有可配置生命周期的规则和操作
  • OpenFlow 协议位于传输控制协议 (TCP) 之上,并规定使用传输层安全 (TLS)。 控制器应在 TCP 端口 6653 上侦听要建立连接的交换机。 OpenFlow 协议的早期版本非正式地使用端口 6633。一些网络控制平面实现使用该协议来管理网络转发元素。 OpenFlow 主要用于安全通道上的交换机和控制器之间。

南向和北向

image-20230321205815338

上北下南

  • NBI:north bound interface 北向接口
  • SBI:south bound interface 南向接口

是以SDN控制器为中心,SDN用openflow协议来控制网络设备,SDN面对网络设备的的方向,可以看成是下层方向就是南向;控制SDN控制器的协议就是netconf,这是我们人类用来编程用的,主要用来控制SDN当中的控制器,可以看做是控制器的上层,从控制器向上这个方面就是北向。

注意哈:

  • 南向openflow、OVSDB、其实也可以用netconf、resetconf
  • 北向可以使用netconf,也可以resetful

OVSDB一种管理open vSwitch的openflow配置协议,vmware里面有一种交换机就是 vSwitch

还要注意一点,华为的虚拟交换机不能使用open vSwitch,因为华为的交换机不是开源的交换机,也不是标准虚拟机,而是分布式虚拟交换机。

华为SDN方案

image-20230321205825975

两者都是细腰结构,SDN的腰在控制器上;

image-20230321205836598

  • 看上图,网络控制层就是SDN的控制器,华为的叫agile controller,vmware公司叫vcenter。
  • 看上图的业务呈现层就是类似阿里云的云计算平台,用户在上面选择资源,业务呈现层将具体的请求发送给网络控制层,然后网络控制层再控制设备进行真正的资源分发,开源的平台就是openstack,华为自己的是叫fusionsphere openstack,其实是openstack的二次开发。

虚拟化

NFV

image-20230321205845466

基本概念:

  • Network functions virtualization 网络功能虚拟化;
  • 网络功能虚拟化 (NFV)是一种网络架构概念,它利用 IT 虚拟化技术将整个类别的网络节点功能虚拟化为构建块,这些构建块可以连接或链接在一起,以创建和提供通信服务。
  • NFV 依赖于传统的服务器虚拟化技术,例如企业 IT 中使用的技术。 虚拟化网络功能或 VNF 在一个或多个运行不同软件和进程的虚拟机或容器中实现,在商用现成 (COTS) 大容量服务器、交换机和存储设备甚至云计算基础设施之上, 而不是为每个网络功能定制硬件设备,从而避免供应商锁定。 例如,可以部署虚拟会话边界控制器来保护网络,而无需获得和安装物理网络保护单元的典型成本和复杂性。 NFV 的其他示例包括虚拟化负载平衡器、防火墙、入侵检测设备和 WAN 加速器等。
  • 网络功能软件与定制化硬件平台解耦,实现灵活的网络架构,实现敏捷的网络管理、快速的新业务上线。

SDN和NFV的区别:

  • SDN主要就是用来控制设备,而NFV说白了还是网络设备,只不过通过NFV的最终目的就是产生一个网络设备,只不过是虚拟的。
  • SDN既然是用来控制设备的,一般是位于网络设备密集区域,比如说是局域网、企业网、园区网,方便运维。NFV的主要应用场景是运营商,不想再买各种各样的厂商的设备了,希望统一都用虚拟的,方便管理,注意,这里说的主要应用场景,你如果非要在企业里面实现NFV,也是可以的。
  • SDN和NFV是可以整合的,SDN既然可以控制普通的网络设备,那控制NFV生成的虚拟网络设备也不在话下。

超融合

超融合包括了NFV

NFV仅仅是虚拟化了网络功能,那其它功能呢?计算、存储、安全都可以进行虚拟化,把计算、网络、存储、安全这些东西全都虚拟化之后放到一个平台之上,这种机制就叫超融合。注意,是一个平台,不是一台设备,一台设备没有冗余那太危险了,一般超融合设备都是多节点部署的,主打的就是一个all in one。

超融合是一种新兴的IT基础设施架构,它将计算、存储、网络和虚拟化等多个组件集成到一个单一的系统中。超融合的目标是提供更简单、更灵活、更可靠的数据中心架构,并降低部署和管理的成本和复杂性。

超融合的核心技术点主要包括以下几个方面:

  1. 软件定义存储(SDS):超融合采用SDS来提供存储服务,实现虚拟化存储资源的管理和分配。SDS将物理存储硬件抽象化成一个统一的存储池,并提供数据复制、快照、压缩、去重等高级功能。
  2. 软件定义网络(SDN):超融合采用SDN来提供网络服务,实现虚拟网络资源的管理和分配。SDN将网络控制和数据面分离,通过集中控制器来实现网络配置和管理,并提供流量监控、负载均衡等高级功能。
  3. 虚拟化技术:超融合采用虚拟化技术来实现资源的隔离和虚拟化,以及实现虚拟机的部署、迁移和管理。
  4. 集成管理平台:超融合采用集成管理平台来统一管理计算、存储、网络和虚拟化等多个组件。管理平台可以提供基于Web的用户界面、API接口、命令行工具等多种方式,方便用户对超融合系统进行配置、监控、故障排除和升级等操作。

超融合的概念主要定义为一个一体化的IT基础设施架构,它将计算、存储、网络和虚拟化等多个组件集成到一个单一的系统中。超融合通过采用软件定义存储、软件定义网络、虚拟化技术和集成管理平台等技术手段,实现了IT资源的集成、统一管理和高效利用,从而提高了数据中心的灵活性、可靠性和效率。

蜂鸟云一体机_经济型超融合一体机_中小企业超低门槛上云

image-20230321205858972

image-20230321205911909

VXLAN

如果需要做实验用ENSP的CE交换机

传统Fabric网络架构

传统的网络架构就是FABRIC架构,如下所示:

image-20230321205925238

在云计算时代不好用了,为什么?比如说你在西安有分支机构,要做虚拟机迁移到济南,结果移动过来之后不能用,因为网段不一样,网关都不一样,所以虚拟机上承载的业务肯定不能用,当有当西安的网段和济南的网络一样时,双方虚拟机相互迁移时业务才不会中断,这种使得双方一模一样的网络结构叫大二层技术,VXLAN就是大二层技术。

新型Overlay网络结构

overlay就是叠加网络的含义,这个含义很有理解呀,比如说GRE 它是在传统网络的基础上搞的,叠了一层,所以GRE就是是overlay网络,vxlan其实是也在传统网络上叠加的,所以vxlan也是overlay。

像常见的BGP、MPLS、GRE都是overlay网络

VXLAN

想要虚拟机大范围甚至跨地域实现动态迁移,就要求相关服务都纳入同一个二层网络,形成一个更大范围的二层网络,即大二层结构。

image-20230321205935781

  • BROADCOM就是博科,存储交换机里面的老大;
  • VXLAN虽然是网络技术,但是起源和发展并不主要是网络厂商推动的,因为vxlan产生的主要原因是虚拟化迁移的问题,所以是虚拟化厂商牵头的,比如vmware,当然里面也少不了思科。
  • 看一下上面的数据包,非常像是VPN技术,在外有报头的基础上再叠加vxlan的报头
  • NVE:网络虚拟化边缘结点,实现网络虚拟化的网络实体,报文经过NVE封装后,NVE间就可以基于三层基础网络建立二层虚拟化网络。

image-20230321205946755

  • 注意:你看vxlan的报文实际是放在UDP里面的
  • MAC IN UDP的意思将整个数据帧(二层)封装成新的报文里面,新的报文是由UDP支持的。

image-20230321205956590

image-20230321210006230

  • 上图中的VNI其实就相当于vxlan当中的vlan-id做标识用的,代表不同的租户,24比特,解决了VLAN数量不足的问题。
  • VTEP:vxlan的隧道端点,VXLAN隧道的起点和终点,对VXLAN进行封装和解封装,封装在EVE中,即可以是网络设备,也可以是服务器,它是VXLAN当中的绝对主角。VXLAN报文的源地址为源VTEP的IP地址,目标IP地址为目的端VTEP地址,一对VTEP地址就对应着一条VXLAN隧道。

image-20230321210016128

如上图所示,不同区域里面的服务器使用网段要使用同一个VNI,如果不是一个VNI那就需要三层网关。

image-20230321210031886