《重识云原生系列》专题索引:

  1. 第一章——不谋全局不足以谋一域
  2. 第二章计算第1节——计算虚拟化技术总述
  3. 第二章计算第2节——主流虚拟化技术之VMare ESXi
  4. 第二章计算第3节——主流虚拟化技术之Xen
  5. 第二章计算第4节——主流虚拟化技术之KVM
  6. 第二章计算第5节——商用云主机方案
  7. 第二章计算第6节——裸金属方案
  8. 第三章云存储第1节——分布式云存储总述
  9. 第三章云存储第2节——SPDK方案综述
  10. 第三章云存储第3节——Ceph统一存储方案
  11. 第三章云存储第4节——OpenStack Swift 对象存储方案
  12. 第三章云存储第5节——商用分布式云存储方案
  13. 第四章云网络第一节——云网络技术发展简述
  14. 第四章云网络4.2节——相关基础知识准备
  15. 第四章云网络4.3节——重要网络协议
  16. 第四章云网络4.3.1节——路由技术简述
  17. 第四章云网络4.3.2节——VLAN技术
  18. 第四章云网络4.3.3节——RIP协议
  19. 第四章云网络4.3.4节——OSPF协议
  20. 第四章云网络4.3.5节——EIGRP协议
  21. 第四章云网络4.3.6节——IS-IS协议
  22. 第四章云网络4.3.7节——BGP协议
  23. 第四章云网络4.3.7.2节——BGP协议概述
  24. 第四章云网络4.3.7.3节——BGP协议实现原理
  25. 第四章云网络4.3.7.4节——高级特性
  26. 第四章云网络4.3.7.5节——实操
  27. 第四章云网络4.3.7.6节——MP-BGP协议
  28. 第四章云网络4.3.8节——策略路由
  29. 第四章云网络4.3.9节——Graceful Restart(平滑重启)技术
  30. 第四章云网络4.3.10节——VXLAN技术
  31. 第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
  32. 第四章云网络4.3.10.3节——VXLAN隧道机制
  33. 第四章云网络4.3.10.4节——VXLAN报文转发过程
  34. 第四章云网络4.3.10.5节——VXlan组网架构
  35. 第四章云网络4.3.10.6节——VXLAN应用部署方案
  36. 第四章云网络4.4节——Spine-Leaf网络架构
  37. 第四章云网络4.5节——大二层网络
  38. 第四章云网络4.6节——Underlay 和 Overlay概念
  39. 第四章云网络4.7.1节——网络虚拟化与卸载加速技术的演进简述
  40. 第四章云网络4.7.2节——virtio网络半虚拟化简介
  41. 第四章云网络4.7.3节——Vhost-net方案
  42. 第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
  43. 第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
  44. 第四章云网络4.7.6节——virtio-blk存储虚拟化方案
  45. 第四章云网络4.7.8节——SR-IOV方案
  46. 第四章云网络4.7.9节——NFV
  47. 第四章云网络4.8.1节——SDN总述
  48. 第四章云网络4.8.2.1节——OpenFlow概述
  49. 第四章云网络4.8.2.2节——OpenFlow协议详解
  50. 第四章云网络4.8.2.3节——OpenFlow运行机制
  51. 第四章云网络4.8.3.1节——Open vSwitch简介
  52. 第四章云网络4.8.3.2节——Open vSwitch工作原理详解
  53. 第四章云网络4.8.4节——OpenStack与SDN的集成
  54. 第四章云网络4.8.5节——OpenDayLight
  55. 第四章云网络4.8.6节——Dragonflow
  56.  第四章云网络4.9.1节——网络卸载加速技术综述

  57. 第四章云网络4.9.2节——传统网络卸载技术

  58. 第四章云网络4.9.3.1节——DPDK技术综述

  59. 第四章云网络4.9.3.2节——DPDK原理详解

  60. 第四章云网络4.9.4.1节——智能网卡SmartNIC方案综述

  61. 第四章云网络4.9.4.2节——智能网卡实现

 1 云网络预备知识

1.1 传统企业IT架构

1.2 虚拟化中的网络架构

        虚拟机之间的通信我们可以分为两个部分:

  1. 物理网络
  2. 虚拟网络

        物理网络部分和传统物理网络一致。我们主要需要注意的是虚拟网络部分。

1.2.1 云网络架构介绍

        如上图从上往下介绍:最下面是物理服务器;物理服务器会连接到二层交换机上,这里的二层交换机作为接入交换机来使用;再往上是三层交换机,三层交换机可以作为汇聚交换机或是核心交换机来使用;最上层是路由器,我们通过路由器来与外界通信,是整个云数据中心的出口。

        在架构图中我们可以看到物理服务器内部运行的虚拟机连接到真实的物理设备上的连接方法有好几种:

  1. 虚拟机网卡直接连接物理服务器;
  2. 虚拟机网卡连接到虚拟交换机上,再通过虚拟交换机进行数据的转发;

        具体的解释在下文的虚拟化中的虚拟网络中讲到。

1.3 虚拟化中的网络流量

        相对于传统IT,在云计算和虚拟化中,数据中心的流量分为两种:

  1. 南北向流量
  2. 东西向流量

        看上文架构图:上北下南,左西又东。便很好理解为什么叫南北、东西流量。判断某流量是南北向还是东西向,需要一定的参照物。

1.3.1 举例

       以物理路由器为例,如上图,该路由器被部署在IDC机房的边界处,向上连接外网(可以是互联网,也可以是企业自己定义的外部网络),向下连接IDC机房的业务网络(如邮件系统、办公系统等),当外网访问IDC机房业务时,该流量为南北向流量;如果IDC机房内运行了员工的个人虚拟机,该虚拟机访问业务时,不需要经过路由器,同样是访问业务的流量,但该流量为东西向流量。

1.4 根据流量变化产生的架构变化

        随着云计算的发展,导致东西向流量越来越多。原本的三层网络架构(核心层、汇聚层、接入层)无法满足和适应云计算的部署,所以云计算架构发展成了大二层架构可以更好的满足东西向了流量较大的要求。

2 网络基本概念

2.1 广播和单播

2.1.1 一些预备概念

  1. 冲突域:共享式网络中出现。通信模式:半双工
  2. 广播域:在一个广播域中,主机发出广播消息,在这个域中的所有主机都能够接收到。
  3. 局域网:在局域网中,主机通信不需要经过网关或者路由器。在同一网段中。

2.1.2 广播

概念:

        广播会在广播域中扩散,在广播域中的所有主机都会接收到消息,若发现接收方是自己则接收,并回应(单播),若不是自己则丢弃。

举例:

        火车站广播找人,听到是自己就去服务台,不是自己就不管。

        什么情况用到广播:

  • 第一次通信(ARP Request报文)
  • DHCP(搜寻DHCP服务器)

2.1.3 单播

        单播是指网络设备进行一对一的通信。如果一台设备进行消息的发送,另外一台只负责接收,叫做半双工,如果两台设备同时在进行发送和接收,叫做全双工。

        网络上绝大部分的数据都是以单播的形式进行传输的,比如我们在发送邮件、查看网页以及玩网络游戏时,都需要先与邮件服务器、网站web服务器和游戏服务器建立联系。

2.1.4 广播造成的问题

  • 占用带宽
  • 广播风暴
  • 安全问题:信息泄露、伪装冒充。

        但是广播是进行单播之前的重要条件。很多时候需要用到广播。所以我们既要保留广播,又要想办法解决广播带来的诸多问题。

解决方法:

  • 路由器
    • 路由器可以有效的隔绝广播域;路由器的一个接口就是一个广播域。也是一个局域网。
  • VLAN(虚拟局域网)
    • 通过配置,在逻辑上划分VLAN,在未经配置允许,不同的VLAN之间的主机不能通信。
    • 用路由器隔绝广播域的方法,成本高。路由器接口有限,广播域多的话就需要非常多的路由器,而路由器非常昂贵。

2.2 路由和网关

2.2.1 路由

        早些年,手机还没有普及的时候,我们大多使用固定电话通讯,如果是长途电话需要在拨号前加区号,有时还需要查黄页或其它材料去找对应的区号,区号的作用是进行号码路由,让通话能够到达对应的区市,而用来查询区号的黄页就相当于是路由表。如果把广播域之间的通信看做为打长途电话的话,那么拨电话的人通过黄页找到对方的电话号码的方式就叫路由。

2.2.2 默认网关

        如果广播域较多,那么路由表里的条目也会很多,每次通信时都需要进行路由的查找,会给保存路由表的设备带来负担,也会影响网络通信的效率,这时就会用到默认网关。

        默认网关的作用和默认路由是一样的,还是拿打电话举例,以前我们有个114查号台,如果不知道对方的电话号码,可以打114进行查号获取对方的电话号码,默认网关的作用与114类似,但也有不同的地方,114会返回给查号者一个电话号码,然后由查号者再次拨打电话,而默认网关收到通信请求时,如果自己的路由表中存在目的地址的网段,则会替通讯的发起者进行路由的转发,如果自己的路由表中没有目的地址,它会给发起者返回一个目的地址不可达的消息。

        默认网关是路由的一种特殊形式,它是路由转发时的最后选择,如果没有其它的路由条目进行转发,则使用默认网关进行转发。

2.2.3 VLAN

        VLAN是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。同一个VLAN内的主机间可以直接通信,而不同VLAN内的主机间不能直接通信,从而将广播报文限制在一个VLAN内。

        使用VLAN,可以带来以下好处:

 2.3 云网络中的物理网络介绍

        在虚拟化环境中,承载业务的都是虚拟机,而虚拟机运行在物理服务器内部,如何使虚拟机接入到网络中,首先要解决的是将物理服务器连接到网络中,在这个过程中,我们需要用到的设备有路由器、三层交换机、二层交换机以及服务器自身的网卡。

2.3.1 路由器的作用

        一般都放在云数据中心的出口的地方,向上连接互联网,向下连接数据中心的虚拟机。

2.3.2 三层交换机

        三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。因此三层交换机可以做核心交换机,也可做汇聚交换机,还可做接入交换机

        对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。

         一般会按照流量的用途给流量分类,然后用VLAN隔离,包括业务流量、存储流量、管理流量。

        但是这几个流量难免要一起通信: 如某些用户又要管理又要用业务流量,这时候就要用到三层交换机,通过VLAN间路由的方法,让不同VLAN之间的特定数据可以通信。

2.3.3 二层交换机

        所有流量在接入核心交换机前,一般先要接入二层交换机。按照接入流量的类型,接入交换机可以分为管理交换机、存储交换机和业务交换机。如果是超大流量的数据中心,在设计网络结构时,建议使用不同的物理交换机来承载不同流量,也就是说,每种流量都使用单独的交换机。如果是一般流量的数据中心,可以使用同一个物理交换机并利用VLAN对不同流量进行逻辑隔离。

2.3.4 网卡

  • 物理形态

        物理服务器通过自身的物理网卡连接到网络中,所有虚拟机的流量都是通过各种类型的网口进入整个网络。

  • 逻辑形态

        物理上还是一条链路,逻辑上分成多条链路。

        关于物理网卡,有一个很关键的知识点——端口(链路)聚合。端口聚合通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,实现增加链路带宽的目的,同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效提高链路的可靠性。

        什么时候用到网卡绑定(链路聚合)?

  • 数据非常重要,一条链路断了还能用另一条
  • 数量流量很大,一个网卡支撑不了,要两个网卡

2.3.5 链路聚合

        随着网络规模的不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,一般是通过更换高速率的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。

        链路聚合技术可以在不进行硬件升级的情况下,通过将多个物理接口捆绑为一个逻辑接口,来达到增加链路带宽的目的。并且在增大带宽的同时,链路聚合采用备份链路机制,可以有效提高设备间链路的可靠性。

        链路聚合技术主要有以下三个优势:

  1. 增加带宽,链路聚合接口的最大带宽可以达到各成员接口的带宽之和。
  2. 提高可靠性,当某条活动链路出现故障时,流量可以切换到其它可用的成员链路上,从而提高聚合链路的可靠性。
  3. 负载分担,当一条链路负担较重时,会将业务数据分到其他链路上。

2.4 云网络中的虚拟网络介绍

2.4.1 主流虚拟网络的架构

         无论是什么厂商,都要解决一个问题——虚拟机如何借助物理机实现网络通信。

        平时我们使用的虚拟化大多是这个架构,在个人或者小型的虚拟化中,虚拟机会以桥接或者NAT的方式与物理网卡绑定,而在企业级的大规模场景下,虚拟机都是通过虚拟交换机连接到物理网络的。

2.4.2 网桥技术

        桥接和NAT都是将虚拟机的网卡和物理机的网卡直接连接起来。都是用网桥技术。

        网桥就是把一台机器上的若干个网络接口“连接”起来,其中一个网口收到报文时会复制给其它网口,这样网口之间就能够正常通信了。

        如果仅使用网桥,虚拟机与外部通讯时有两种方式——桥接和NAT。

        简单地说:如果是桥接,网桥就相当于是一个交换机,虚拟网卡连接的是交换机的一个端口;如果是NAT,网桥就相当于是一个路由器,虚拟网卡连接的是路由器的一个端口。

2.4.2.1 桥接

        虚拟网卡和网桥使用广播通信,使用相同的IP地址配置。

2.4.2.2 NAT(地址转换技术)

        虚拟网卡和网桥的IP地址不是同一网段,系统会自动生成一个网段地址,虚拟网卡与其它网络包括网桥通讯时使用三层路由转发,并且在网桥上进行地址转换。

        NAT优势:

  1. 当物理网桥的网段地址不足时,使用一个新的网段来弥补这个缺陷;
  2. 隐藏源地址。由于虚拟机在访问外部网络时,地址在NAT网关处进行了转换,所以外部网络是无法直接看到要访问的内部虚拟机的IP的,在某种程度可以保护内部虚拟机的安全;
  3. 负载均衡。NAT有重定向的作用,多个相同应用的虚拟机主备部署后,可以通过NAT转换成同一个地址与外部通信,然后再通过负载均衡的软件,进行业务访问的负载均衡;

2.4.3 虚拟交换机

        桥接和NAT适用于个人及小规模场景,使用网桥无法查看虚拟网卡的状态,也无法监控经过虚拟网卡的流量,同时,桥接仅支持在GRE隧道,功能受限。另外,目前SDN(Software Define Network,即软件定义网络)非常普及,而网桥却不支持SDN,因此在大规模场景下,我们会使用虚拟交换机来实现虚拟机间的网络通信。

        虚拟交换机可以理解为升级版的网桥,可以弥补网桥的缺陷。

        目前,各个虚拟化厂家都有自己的虚拟交换机产品,如VMware的vSwitch、思科的Nexus 1000V、华为的DVS等。我们以开源的Open vSwitch为例来介绍虚拟交换机。

        Open vSwitch(以下简写为OVS)是一款开源的、高质量的、支持多层协议的虚拟交换机,使用开源Apache2.0许可协议,由Nicira Networks开发,主要实现代码为可移植的C代码。其目的是使大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag),Open vSwitch支持多种Linux虚拟化技术,比如Xen和KVM等等。

优势:

  1. Security(安全),可以进行VLAN的隔离、流量过滤;
  2. Monitoring(可监控),方便管理和监控。监控网络状态、数据流量。加快数据包的转发效率;
  3. QoS(质量服务),可以为每台虚拟机配置不同的速度和带宽、流量整形、流量
  4. Automated Control(自动化),支持OpenFlow协议,内含OpenFlow控制器、Ovsdb-server等自动控制协议、组件。

2.4.4 分布式虚拟交换机

        虚拟交换机分两种类型,一种是普通虚拟交换机,一种是分布式虚拟交换机。

区别:

  • 普通虚拟交换机只运行在一台单独的物理主机上,所有与网络相关的配置只适用于此物理服务器上的虚拟机;
  • 分布式虚拟交换机分布在不同的物理主机上,通过虚拟化管理工具,可以对分布式虚拟交换机进行统一地配置。

分布式虚拟交换机优点:

  1. 多台Host Machine共享一台虚拟交换机,只需要对分布式虚拟交换机配置做修改,其他所有Host Machine上的配置都会更新;
  2. 虚拟机能够进行热迁移的必要条件之一就是要有分布式虚拟交换机,热迁移,即虚拟机直接迁移到另一台服务器上。不需要关机;

扩展:

  • VMware虚拟机化解决方案支持普通和分布式虚拟交换机。
  • 华为虚拟化解决方案只支持分布式虚拟交换机。

2.5 区域(Region)、可用区(AZ)、私有网络(VPC)

        我们用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。

  • 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。
  • 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。

        AWS 提供三种地理性组件:

  • Regions:区域,即AWS提供云服务的一个区域,其目的是为了用户能就近接入,降低网络延迟。通常是一个城市的若干个AZ组成一个region。2016年,AWS 宣布在其全球region之间建设了100GbE 私有环网。
  • Availability Zones:一个 region 内至少两个通常三个可用区,其用途是为了搭建高可用架构。一个比较常见的看法是一个AZ是一个数据中心。其实这不尽然,有时候靠得非常近的几个数据中心也可以组成一个AZ。最多一个AZ有8个数据中心。部分AZ 超过30万台服务器。AZ拥有独立的包括电力和网络在内的基础设施等。AZ 之间利用低延迟光纤网络互联。
  • Edge Locations:指往往部署在大城市,以及主要人口汇聚区域的AWS 站点。它的主要作用是缓存数据,降低延迟。它们独立于region 和 AZ,数量比AZ多很多。它被多个AWS服务利用,比如AWS CloudFront 和 AWS Lambda@Edge。CloudFront 利用它来作为提供给用户分布在全球的接入点,通常称为Edge POP 点。

AWS 基础组件示意图         

        企业在搭建自身的私有云平台时,考虑到无法具备公有云服务商的IT能力,建设方案因尽量简单,在建设时,一些概念已经和公有云不一样,需注意区分。

2.5.1 私有云中的区域(Region)

        公有云一个region往往可以做到跨省、跨国这样的广泛区域,只要时延允许。而在私有云建设时,企业往往不具备这么好的网络条件或者专线成本过高,一个region往往是指放在一个机房,或者距离很短的几十公里的若干机房,不是一个广域的region。在政府中,由于政务外网、互联网区的隔离,一个机房内甚至会出现两个region(一个政务外网区、一个互联网区,中间网闸隔离)。所以在私有云建设时,region的地理概念被大大缩小,变成一个网络物理隔离域。

2.5.2 私有云中的可用区(AZ,Availability Zone)

        随着region概念的缩小,AZ的概念随之缩小,并且被“粗放”地使用。

        公有云中AZ一般是一个大资源池,内部通过pod进行不同规格(计算、存储性能不同)的资源池划分。在私有云建设中,放弃了pod的概念,一个AZ只设置一种规格的资源,简化了层次。企业本身的物理资源并不复杂,服务器、存储就那几种,单region下AZ的数量限制是够用的,所以就简化一层,方便部署和管理。AZ本质从一个故障域变成了存储的隔离域。不同AZ可以共享物理存储而使用不同的LUN。

2.5.3 私有网络(VPC)

        私有网络是针对公有云的基础网络(经典网络)来定义的一种概念。

        VPC(Virtual Private Cloud)是公有云上自定义的逻辑隔离网络空间,是一块可我们自定义的网络空间,与我们在数据中心运行的传统网络相似,托管在VPC内的是我们在私有云上的服务器资源,如云主机、负载均衡、云数据库等。我们可以自定义网段划分、IP地址和路由策略等,并通过安全组和网络ACL等实现多层安全防护。同时也可以通过VPN或专线连通VPC与我们的数据中心,灵活部署混合云。

        VPC主要是一个网络层面的功能,其目的是让我们可以在云平台上构建出一个隔离的、自己能够管理配置和策略的虚拟网络环境,从而进一步提升我们在AWS环境中的资源的安全性。我们可以在VPC环境中管理自己的子网结构,IP地址范围和分配方式,网络的路由策略等。由于我们可以掌握并隔离VPC中的资源,因此对我们而言这就像是一个自己私有的云计算环境。

参考链接

云计算中的网络基础知识_Skye_Zheng的博客-CSDN博客_云计算网络

三层交换机_百度百科

云计算中的网络知识点框架_知行的小兵的博客-CSDN博客_云计算知识框架

漫谈云计算网络(一):云计算网络技术介绍_钱曙光的博客-CSDN博客

云计算网络技术

vpc是什么 - Snowwen龙 - 博客园

VPC浅谈 - 知乎

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐