当前位置: 首页 > news >正文

云计算核心技术之云网络技术

一、云网络技术

 1.1、专有网络VPC服务

        专有/私有网络VPC(Virtual Private Cloud)是逻辑隔离的云上虚拟网络空间,通过网络隧道技术实现云端多租户/多网络隔离,为云服务器或云数据库等实例提如下网络相关的服务。VPC的逻辑架构如下图所示:

VPC的三个功能
专有网络VPC提供了三个功能【网络功能】【网络连接】【网络安全性】:
序号VPC的功能说明
1网络功能创建VPC其实是从三个私有的网段【192.168.0.0】【172.16.0.0】【10.0.0.0】中去选择合适的一个网段;然后根据这三个网段去创建子网,创建实例时会自动分配网卡和相关IP地址。
2网络连接同一个VPC内网是互联互通的,不同的VPC默认是隔离的,若要实现与VPC外部通信时可以设置路由表与对应的连接方案(如:通过公网IP、NET网关、负载均衡去连接互联网;通过专线或VPN去连接企业本地的IDC)通过VPC这种互联技术,可以实现跨账号、跨VPC的互联(如:我们经常使用的阿里云的云企业网、腾讯云的对等连接等)。
3网络的安全性即VPC提供了【网络安全组】【网络访问控制列表】来保证网络的安全,通过四元组(源IP、目标IP、协议、端口、入站出站、允许拒绝)的配置来限制云网络的访问环境。【安全组】可以保证实例的安全;【网络访问控制列表】可以保证子网的安全。
使用VPC技术的七种网络应用
有了这个VPC技术之后可以实现各种网络的应用,常见的网络技术有【路由表技术】【内部专线技术】【专线网关】【VPN网关】【NET网关】【负载均衡】【弹性IP】
序号使用VPC技术的应用说明
1路由表技术对应传统网络的【核心交换机】或【路由器】可以实现不同子网之间的内网互通,多路由表支持是为了满足传统网络(如:PDR、VRF等)路由隔离的需求,同时又可以规划出公私网的出口路由,这样可以避免公网的恶意主动攻击
2内部专线技术如我们组建多个机房数据中心,通常需要多条专线将其互联起来,采购复杂的BGP路由协议,完善链路故障切换等操作;公有云提供对等连接,可以快速的将VPC建立起内网连接(支持网络之间、网络内、也支持不同账号之间的对等连接)可以让我们在短短几分钟之内实现内部专线的建立,而且我们只需要看到逻辑层是一条对等的链路,底层为公有云的一个冗余链路,我们不需要关注复杂的路由协议,以及选路的一个策略,这样可以让网络运维变得更加简单和高效
3专线网关用于传统IDC、办公网对接的专线设备,用户可以自己去购买链路服务提供商的专线实现混合云互联,满足大量数据传输,低延迟的要求;也可以购买云链路服务商的专线通道,通常满足常规宽带的混合云互联网厂商接入,实现多点的POP点接入,以实现双链路、双POP点高可用接入等。
4VPN网关主要应用于与传统的IDC、办公网的Internet的VPN互联,可以快速完成混合云的组网,既节省了专线施工周期,也也节省了成本
5NET网关主要应用于VPC的内部服务器访问公网,隐藏自身IP,避免公网遭受恶意的黑客攻击,NET网关可以是云厂商提供的硬件设备,也可以是自己通过VM搭建的软件NET设备,但是就可靠性与吞吐量来说硬件设备是更胜一筹的。
6负载均衡通常在传统的IDC中我们使用F5、A10、Nginx等硬件或软件来提供对外公网服务,同时保证了内部服务器可以稳定的对外提供服务;传统的负载均衡器在通常情况下是需要二次开发,实现业务的自主优化,匹配负载均衡策略等;而公有云提供的LB是基于每个业务自身的LB,既支持四层负载均衡,也支持七层负载均衡,每个LB由业务自行优化和配置,这种方式降低了运维的成本以及复杂度
7弹性IP数据中心流入方向以负载均衡为主,流出方向以防火墙、NET实现,如果在机房内部多个业务共用一段出口IP,会导致与第三方互联互通的时候出现无法区分源IP,从而带来安全隐患。而弹性IP则可以为每个虚拟机提供固定的公网IP,让服务器出口不集中在某一个NET设备上,那么这样地址、宽带、安全都是可以实现自主的配置和通信(即:弹性IP对我们使用网络来说可以更加的灵活和高效)。

 1.2、专有网络VPC系统架构

        VPC的实现采用了SDN、 NFV,以及Overlay隧道技术,通过三个重要组件功能实现自动化的网络配置管理与调度转发功能。 VPC系统架构如下图所示:

 1.3、云物理网络架构

        传统网络架构分为三层【接入层】【汇聚层】【核心层】云网络采用更加扁平高效、易于收敛与扩展的二层架构——叶脊(spine-leaf)分布式网络架构
在云网络中, Spine SW为核心交换机; Leaf SW为接入层TOR交换机,与传统网络二层接入层SW不同的是Leaf SW具备处理三层处理功能。 Spine SW、 Leaf SW之间采用eBGP协议通信,构成一个Fabric网络。每台服务器两条链路上行到Leaf SW(两两堆叠),然后再多链路上行到Spine SW,由此保障高带宽、高可靠和无阻塞的网络。

 1.4、负载均衡

        负载均衡是对多台云服务器进行流量分发的负载均衡服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。实现架构如下图所示:

二、云网络的关键技术与容器云网络技术

 2.1、云网络关键技术

        云网络中使用了三种关键网络技术【SDN】【NFV】 以及【网络隧道】技术。 通过这些机制可以实现灵活高效的集中式网络控制与管理,通过普通硬件代替昂贵的专用硬件降低网络设备的成本,同时将网络边界从物理交换机延伸到部署服务器上虚拟化交换机,更好地满足云计算环境的网络要求

云网络关键技术
序号云网络关键技术说明
1软件定义网络SDN

SDN主要由网络用户和设备商发起的,相关标准组织有:ONF、ODL;SDN核心的控制面与转发而分离,通过集中式的控制器、自动化配置、管控、解决了传统网络中,因管控与转发绑定带来的各种管理与运维挑战。

        SDN架构的上层应用通过北向接口,调用控制面板SDN控制器,以使用相关的网络服务或配置策略;然后通过控制器南向接口,向转发面的物理或虚拟网络设备下发配置,最后网络设备基于下发的配置执行转发或处理动作,并向上去返回状态与操作结果。

2网络功能虚拟化NFV

NFV主要是由电信运营商发起的,标准的组织是:ETSI,最初的目的是为了降低网络采购与运营的成本。

        NFV比较适合计算密度型的网络服务(如:负载均衡、防火墙、VPN、LAN优化、深度包检测、DPI等);在云环境中使用NFV实现各种虚拟网关、负载均衡等功能,也可以通过SDN控制器进行集中控制与配置下发。

3Overlay网络隧道技术

网络虚拟化有两个层面:

        《1》在云环境中提供各种虚拟网络的功能(如:VPC、虚拟网卡、虚拟交换机、虚拟路由表等);

        《2》通过隧道技术在底层物理网络上实现多个虚拟网络的传输;常用的隧道协议有:VXLAN、GRE等,通过隧道ID实现VPC的逻辑隔离;阿里云就是采用VXLAN技术直接封装内部的二层报文,外层加UDP报头中24位的VIN字段记录VPC的ID,支持16兆的VPC;微软是采用NVGRE来封装二层报文;腾讯云是采用GRE来封装三层报文(其实是去掉了内层的MAC封装三层报文,32位的KEY字段来记录VPC ID)。

Overlay的网络隧道技术有两种实现方式:

《1》网络设备商倾向于在硬件交换机种完成隧道的封装;

《2》云服务商主要采用服务器上使用VSW完成隧道的封装,避免对硬件设备的依赖性。

 2.2、容器云网络技术

  2.2.1、Flannel网络

        Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。在默认的Docker配置中,每个节点上的Docker服务会分别负责所在节点容器的IP分配。这样导致的一个问题是,不同节点上容器可能获得相同的内外IP地址。并使这些容器之间能够之间通过IP地址相互找到,也就是相互ping通。

 2.2.2、Flannel网络的特点

Flannel网络的特点
序号说明
1使集群中的不同Node主机创建的Docker容器都具有全集群唯一的虚拟IP地址。
2建立一个覆盖网络(overlay network),通过这个覆盖网络,将数据包原封不动的传递到目标容器。
3创建一个新的虚拟网卡flannel0接收docker网桥的数据,通过维护路由表,对接收到的数据进行封包和转发(vxlan)
4etcd保证了所有node上flanned所看到的配置是一致的。

  2.2.3、Flannel网络的架构

        Flannel实质上是一种“覆盖网络(overlay network)”,也就是将TCP数据包装在另一种网络包里面进行路由转发和通信,目前已经支持udp、 vxlan、 host-gw、 aws-vpc、 gce和路由等数据转发方式,默认的节点间数据通信方式是UDP转发。要理解Flannel的原理,必须掌握Flannel的架构, 下图是Flannel架构图:

  2.2.4、Calico网络原理

        Calico 是一种容器之间互通的网络方案。在虚拟化平台中,比如 OpenStack、Docker 等都需要实现工作节点之间的互连,但同时也需要对容器做隔离控制,就像在互联网中的服务仅开放80端口、公有云的多租户一样,提供隔离和管控机制。
而在多数的虚拟化平台实现中,通常都使用二层隔离技术来实现容器的网络,这些二层的技术有一些弊端,比如需要依赖 VLAN、网桥和隧道等技术,其中 网桥带来了复杂性,VLAN 隔离和隧道会消耗更多的资源,并对物理环境有要求,随着网络规模的增大,整体会变得更加复杂。通过尝试把主机当作互联网中的路由器,同样使用 BGP 同步路由,并使用 iptables 来做安全访问策略,最终设计出了 Calico 方案

  2.2.5、Calico网络优势

        由于Calico是一种纯三层的实现,因此可以避免与二层方案相关的数据包封装的操作,中间没有任何的NAT,没有任何的overlay,所以它的转发效率可能是所有方案中最高的,因为它的包直接走原生TCP/IP的协议栈,它的隔离也因为这个栈而变得好做

Calico的网络优势
序号Calico网络优势说明
1更优的资源利用

二层网络的通讯是需要依赖广播消息机制,广播消息的开销与主机数量是呈指数增长的;二层网络还会使用VLAN隔离技术,天生有4096字节的限制,即使可以使用VXLAN去解决,但是VXLAN又带来了隧道开销的问题。

Calico使用的三层路由方法,这种方法完全抑制了二层的广播,因此减少了资源的开销;Calico不使用VLAN或VXLAN的技术,可以保证资源的利用率更高。

2可扩展性Calico使用与Internet类似的方法,Internet是比任何数据中心都大的网络,因此Calico同样的具有可扩展性,可以支持更大、更多的网络。
3简单且更容易调试因为没有隧道,这意味着工作节点之间的路径会更短,配置会更少,那么我们在主机上就可以更容易地进行调试等操作。
4更少的依赖Calico仅依赖三层路由可达,因此依赖非常少。
5可适配性Calico具有很少的依赖性,这使得它可以适配所有的虚拟机、容器、以及白盒或者混合环境下的使用场景。

  2.2.6、Calico网络模型

        Calico网络的大概思路【即不走Overlay网络,不引入另外的网络性能损耗,而是将转发全部用三层网络的路由转发来实现】。Calico的网络模型图如下:

Calico网络模型包含的组件及其含义说明
序号Calico网络模型组件说明
1Felix是路由配置组件,它运行在每一个主机的Agent进程,主要负责网络接口管理和监听,还有路由app管理,ACL规则管理和同步、状态上报等;这个路由配置组件会监听Etcd中心的存储,从Etcd中获取事件(如:用户在A机器上加了一个IP或创建了一个容器等操作,用户创建Pod后,这个路由配置组件负责将网卡、IP、MAC等信息都设置好,在内核的路由表里面写上一条【即:注明这个IP到这张网卡】;同样,若用户设置了隔离策略,路由配置组件会将隔离策略配置到ACL中,然后实现隔离)。
2Etcd它是一个键值对的存储,主要负责网络元数据的一致性,可以确保Calico的网络状态是准确的状态;当然在K8S中也会使用Etcd。
3BIRD

(BIRD Internet Routing Daemon)是核心组件,Calico中的BIRD特指BIRD Client和BIRD Route Reflector,负责主动读取Felix在本机上设置的路由信息,并通过BGP广播协议在数据中心中进行分发路由是BGP Client。

        Calico会为每个主机都部署BGP Client,BIRD是一个独立可持续发展的项目,实现了众多动态路由协议(如:BGP、OSPF、RIP等)在Calico的角色是监听主机上由路由配置组件Felix注入的路由信息,然后通过BGP协议、广播告诉每个主机节点,从而实现网络的互通

        BIRD是一个标准路由程序,会从内核里面获取哪些IP的路由发生了变化,然后通过标准的BGP路由协议扩散到整个其他的宿主机上,让外界都知道这个IP在这里。

        BGP Route是使用在大型的网络当中;在大型网络中若仅使用BGP Client形成全网互联的方案,就会导致规模受限,因为所有节点之间是两两互联,就需要2的n次方个连接;为了解决这个规模问题,可以采用BGP Route方案,使所有的BGP Client基于特定的R节点互联,并做路由的同步,从而可以极大减少连接数目。

三、云网络发展方向

3.1、DPDK 架构

        早期虚拟网络通过半虚拟化与vSW模块进行数据包处理,需要涉及内核操作,存在大量锁、队列和中断机制等,占用系统CPU进行调度与处理,导致系统开销较大,网络性能有限。所以, Intel等公司联合推出了数据平面开发工具集DPDK(Data Plane Development Kit),通过环境抽象层EAL(Environment Abstraction Layer) , UIO(Userspace IO)、和PMD(Poll Mode Driver)等机制大幅提高数据处理性能和吞吐量。

        PIVD(Port-base VLAN ID)这个轮询机制是从网卡接受到数据包后,通过DMA方式传输到应用分配的内存中,应用程序通过不断的轮询,感知到数据包后会直接进行处理,由此就避免了传统NIC收到数据包后通过中断CPU同时需要从内存拷贝数据包到用户态进行处理,所带来的系统开销和延时。目前DPDK已经开始应用于各种云网络环境中。


3.2、Smart NIC/SR-IOV

        网络负载处理从最初采用vSW在内核态处理,到采用DPDK跳过内核态直接在用户态处理,大幅提升了网络性能与吞吐量。但是随着网络带宽的不断发展和突破,现在即将进入100G、200G、400G的网络时代,DPDK的性能与扩展性方面同样面临着挑战,这个时候就需要采用智能网卡Smart NIC技术来解决,智能网卡采用了硬件辅助虚拟化技术(如Intel VT-d),将以往通过软件实现,需要CPU调度处理的网络负载,卸载到采用高性能、可编程的FPGA芯片的硬件网卡上处理;通过远程内存访问技术RDMA直接访问内存,无需CPU的介入。云网络环境中通过PCI网卡直通智能网卡,直接将智能网卡分配给VM使用,同时采用ISTAR、IOV将物理网卡端口PF映射为多个虚拟共用端口,提供给多个虚拟机共享使用。这种网卡对数据包的处理带来了巨大的突破;未来部分的存储虚拟化,计算机虚拟化的功能它也会卸载到智能网卡中,这个将推动SDN、NFV包括网卡虚拟化以及白盒设备的飞速发展,促进网络架构的变革。

http://www.dtcms.com/a/346738.html

相关文章:

  • Agentic AI 知识框架整理
  • 08.23总结
  • FFMPEG相关解密,打水印,合并,推流,
  • 基于Python对酷狗音乐排行榜数据分析可视化【源码+LW+部署】
  • 安卓开发实战:从零构建一个天气应用
  • 【Android】使用FragmentManager动态添加片段
  • C# 项目“交互式展厅管理客户端“针对的是“.NETFramework,Version=v4.8”,但此计算机上没有安装它。
  • week4-[字符数组]字符统计
  • STAR-CCM+|K-epsilon湍流模型溯源
  • c语言学习_数组使用_扫雷1
  • 【小沐学GIS】基于Godot绘制三维数字地球Earth(Godot)
  • HTTP的状态码有哪些,并用例子说明一下
  • 人工智能之数学基础:离散随机变量和连续随机变量
  • react中多个页面,数据相互依赖reducer解决方案
  • 变频器实习DAY35
  • 深入理解Java多线程:状态、安全、同步与通信
  • Day12 数据统计-Excel报表
  • 基于llama.cpp的量化版reranker模型调用示例
  • 目标跟踪 YOLO11 单目标跟踪
  • Uipath查找元素 查找子元素 获取属性活动组合使用示例
  • 【数据结构】线性表——链表
  • 基于springboot购物商城系统源码
  • 灵动AI:工业级商品图AI生成工具
  • 【剖析高并发秒杀】从流量削峰到数据一致性的架构演进与实践
  • GaussDB 数据库架构师修炼(十八) SQL引擎-解析器
  • 慢查询该怎么优化
  • 【文献阅读】Lossless data compression by large models
  • 【卷积神经网络详解与实例】2——卷积计算详解
  • Hive中的join优化
  • 解决散点图绘制算法单一导致的数据异常问题