网络是由各种网络设备组成,在传统IT中,网络设备几乎都是物理设备,是可以真实看到的,大部分的流量是可控的,比如两个交换机上的主机需要通信,必须使用网线或者光纤将两个交换机连起来。
到了云计算中,除了传统的物理网络设备外,还有很多网络设备是虚拟化的,运行在服务器内部,打通虚拟网络设备的不再是真实的网线,有可能是转发表里的一条条目,所以管理员面对的是前所未有的挑战。
总的来说,云计算中数据的转发过程,虽然同物理网络上有些差异, 但是在总体上还是 大致相同。
虚拟机之间的通信我们可以分为两个部分
1. 物理网络
2. 虚拟网络
物理网络部分和传统物理网络一致。我们主要需要注意的是虚拟网络部分。
如上图从上往下介绍:最下面是物理服务器;物理服务器会连接到二层交换机上,这里的二层交换机作为接入交换机来使用;再往上是三层交换机,三层交换机可以作为汇聚交换机或是核心交换机来使用;最上层是路由器,我们通过路由器来与外界通信,是整个云数据中心的出口。
在架构图中我们可以看到物理服务器内部运行的虚拟机连接到真实的物理设备上的连接方法有好几种:
1. 虚拟机网卡直接连接物理服务器
2. 虚拟机网卡连接到虚拟交换机上,再通过虚拟交换机进行数据的转发
具体的解释在下文的虚拟化中的虚拟网络中讲到。
相对于传统IT,在云计算和虚拟化中,数据中心的流量分为两种:
1. 南北向流量
2. 东西向流量
看上文架构图:上北下南,左西又东。便很好理解为什么叫南北、东西流量。
判断某流量是南北向还是东西向,需要一定的参照物。
分类 | 解释 | 以路由器为参照物 |
---|---|---|
南北向流量 | 数据中心与外部通信的流量 | 经过路由器的流量为南北向流量 |
东西向流量 | 数据中心内部的流量 | 不经过路由器的流量为东西向流量 |
以物理路由器为例,如上图,该路由器被部署在IDC机房的边界处,向上连接外网(可以是互联网,也可以是企业自己定义的外部网络),向下连接IDC机房的业务网络(如邮件系统、办公系统等),当外网访问IDC机房业务时,该流量为南北向流量;如果IDC机房内运行了员工的个人虚拟机,该虚拟机访问业务时,不需要经过路由器,同样是访问业务的流量,但该流量为东西向流量。
随着云计算的发展,导致东西向流量越来越多。原本的三层网络架构(核心层、汇聚层、接入层)无法满足和适应云计算的部署,所以云计算架构发展成了大二层架构可以更好的满足东西向了流量较大的要求。
网络的概念,后期会增加网络学习的文章,这里只是简单介绍。
概念:
广播会在广播域中扩散,在广播域中的所有主机都会接收到消息,若发现接收方是自己则接收,并回应(单播),若不是自己则丢弃。
举例:
火车站广播找人,听到是自己就去服务台,不是自己就不管。
什么情况用到广播:
概念:
单播是指网络设备进行一对一的通信。如果一台设备进行消息的发送,另外一台只负责接收,叫做半双工,如果两台设备同时在进行发送和接收,叫做全双工。
举例:
两个人说悄悄话,其他人听不见。
网络上绝大部分的数据都是以单播的形式进行传输的,比如我们在发送邮件、查看网页以及玩网络游戏时,都需要先与邮件服务器、网站web服务器和游戏服务器建立联系。
但是广播是进行单播之前的重要条件。很多时候需要用到广播。所以我们既要保留广播,又要想办法解决广播带来的诸多问题。
解决方法:
路由器
路由器可以有效的隔绝广播域;路由器的一个接口就是一个广播域。也是一个局域网。
VLAN(虚拟局域网)
通过配置,在逻辑上划分VLAN,在未经配置允许,不同的VLAN之间的主机不能通信。
用路由器隔绝广播域的方法,成本高。路由器接口有限,广播域多的话就需要非常多的路由器,而路由器非常昂贵。
早些年,手机还没有普及的时候,我们大多使用固定电话通讯,如果是长途电话需要在拨号前加区号,有时还需要查黄页或其它材料去找对应的区号,区号的作用是进行号码路由,让通话能够到达对应的区市,而用来查询区号的黄页就相当于是路由表。如果把广播域之间的通信看做为打长途电话的话,那么拨电话的人通过黄页找到对方的电话号码的方式就叫路由。
如果广播域较多,那么路由表里的条目也会很多,每次通信时都需要进行路由的查找,会给保存路由表的设备带来负担,也会影响网络通信的效率,这时就会用到默认网关。
默认网关的作用和默认路由是一样的,还是拿打电话举例,以前我们有个114查号台,如果不知道对方的电话号码,可以打114进行查号获取对方的电话号码,默认网关的作用与114类似,但也有不同的地方,114会返回给查号者一个电话号码,然后由查号者再次拨打电话,而默认网关收到通信请求时,如果自己的路由表中存在目的地址的网段,则会替通讯的发起者进行路由的转发,如果自己的路由表中没有目的地址,它会给发起者返回一个目的地址不可达的消息。
默认网关是路由的一种特殊形式,它是路由转发时的最后选择,如果没有其它的路由条目进行转发,则使用默认网关进行转发。
VLAN是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。同一个VLAN内的主机间可以直接通信,而不同VLAN内的主机间不能直接通信,从而将广播报文限制在一个VLAN内。
使用VLAN,可以带来以下好处:
好处 | 解释 |
---|---|
限制广播域 | 广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。 |
增强局域网的安全性 | 不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能与其它VLAN内的用户直接通信。 |
提高了网络的健壮性 | 故障被限制在一个VLAN内,本VLAN内的故障不会影响其它VLAN的正常工作。 |
灵活构建虚拟工作组 | 用VLAN可以将不同的用户划分到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。 |
在虚拟化中,承载业务的都是虚拟机,而虚拟机运行在物理服务器内部,如何使虚拟机接入到网络中,首先要解决的是将物理服务器连接到网络中,在这个过程中,我们需要用到的设备有路由器、三层交换机、二层交换机以及服务器自身的网卡。
路由的作用
一般都放在云数据中心的出门的地方。向上连接互联网,向下连接数据中心的虚拟机。
一般会按照流量的用途给流量分类,然后用VLAN隔离。:业务流量、存储流量、管理流量
但是这几个流量难免要一起通信: 如某些用户又要管理又要用业务流量
这时候就要用到三层交换机,通过VLAN间路由的方法,让不同VLAN之间的特定数据可以通信。
所有流量在接入核心交换机前,一般先要接入二层交换机。按照接入流量的类型,接入交换机可以分为管理交换机、存储交换机和业务交换机。如果是超大流量的数据中心,在设计网络结构时,建议使用不同的物理交换机来承载不同流量,也就是说,每种流量都使用单独的交换机。如果是一般流量的数据中心,可以使用同一个物理交换机并利用VLAN对不同流量进行逻辑隔离。
物理服务器通过自身的物理网卡连接到网络中,所有虚拟机的流量都是通过各种类型的网口进入整个网络。
物理上还是一条链路,逻辑上分成多条链路
关于物理网卡,有一个很关键的知识点——端口(链路)聚合。端口聚合通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,实现增加链路带宽的目的,同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效提高链路的可靠性。
什么时候用到网卡绑定(链路聚合)
随着网络规模的不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,一般是通过更换高速率的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。
链路聚合技术可以在不进行硬件升级的情况下,通过将多个物理接口捆绑为一个逻辑接口,来达到增加链路带宽的目的。并且在增大带宽的同时,链路聚合采用备份链路机制,可以有效提高设备间链路的可靠性。
链路聚合技术主要有以下三个优势:
增加带宽
链路聚合接口的最大带宽可以达到各成员接口的带宽之和。
提高可靠性
当某条活动链路出现故障时,流量可以切换到其它可用的成员链路上,从而提高聚合链路的可靠性。
负载分担
当一条链路负担较重时,会将业务数据分到其他链路上。
虚拟机如何借助物理机实现网络通信。
平时我们使用的虚拟化大多是这个架构,在个人或者小型的虚拟化中,虚拟机会以桥接或者NAT的方式与物理网卡绑定,而在企业级的大规模场景下,虚拟机都是通过虚拟交换机连接到物理网络的。
桥接和NAT都是将虚拟机的网卡和物理机的网卡直接连接起来。都是用网桥技术
网桥技术
网桥就是把一台机器上的若干个网络接口“连接”起来,其中一个网口收到报文时会复制给其它网口,这样网口之间就能够正常通信了。
如果仅使用网桥,虚拟机与外部通讯时有两种方式——桥接和NAT。
简单地说:如果是桥接,网桥就相当于是一个交换机,虚拟网卡连接的是交换机的一个端口;如果是NAT,网桥就相当于是一个路由器,虚拟网卡连接的是路由器的一个端口。
虚拟网卡和网桥使用广播通信,使用相同的IP地址配置。
虚拟网卡和网桥的IP地址不是同一网段,系统会自动生成一个网段地址,虚拟网卡与其它网络包括网桥通讯时使用三层路由转发,并且在网桥上进行地址转换。
NAT:
地址转换技术
桥接和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等等。
优势:
Security(安全)
可以进行VLAN的隔离、流量过滤
Monitoring(可监控)
方便管理和监控。监控网络状态、数据流量。加快数据包的转发效率
QoS(质量服务)
可以为每台虚拟机配置不同的速度和带宽、流量整形、流量
Automated Control(自动化)
支持OpenFlow协议,内含OpenFlow控制器、Ovsdb-server等自动控制协议、组件。
虚拟交换机分两种类型,一种是普通虚拟交换机,一种是分布式虚拟交换机。
区别:
普通虚拟交换机只运行在一台单独的物理主机上,所有与网络相关的配置只适用于此物理服务器上的虚拟机;
分布式虚拟交换机分布在不同的物理主机上,通过虚拟化管理工具,可以对分布式虚拟交换机进行统一地配置。
分布式虚拟交换机优点:
扩展:
VMware虚拟机化解决方案支持普通和分布式虚拟交换机。
华为虚拟化解决方案只支持分布式虚拟交换机。
虚拟机
虚拟机网卡
端口组
虚拟交换机
上行链路
物理网卡
物理交换机
端口组
每个虚拟机的网卡,连接到虚拟交换机上的端口,是一个虚拟端口。具有相同属性的端口就形成一个端口组。
为什么要设定端口组这个概念:
为了方便管理员管理,管理员不需要单独对端口进行配置。如果端口属性一样,只需要对端口组进行配置。
端口组是网络属性相同的一组端口的集合。管理员可以通过配置端口组属性(带宽QoS、二层安全属性、VLAN等)来简化对虚拟机端口属性的设置。设置端口组属性,不影响虚拟机正常工作。
上行链路
虚拟交换机连接物理网卡的那个端口
是华为Fusion Compute中虚拟网络和物理网络的分界线
每一个虚拟交换机在CNA主机上都有一条上行链路,如果CNA上有多个虚拟交换机就有多个上行链路。
上行链路可以对应的是一个单独的网口,也可以对应的是多个网口绑定后的一条链路。
虚拟交换机本质是一台二层交换机,端口组里有一个很重要的参数叫VLAN ID,如果两个虚拟机不在同一端口组,就代表它们不在同一VLAN,所以无法通过广播找到对方。一般情况下,属于不同VLAN的虚拟机,我们会给它配不同网段的IP地址,所以,如果它们之间需要通信就需要使用三层设备,比如三层交换机或路由器,而在华为虚拟化产品FusionCompute架构中,三层功能只能由物理的三层设备提供,因此,这两台虚拟机的访问流量需要从主机内部传出到物理的接入交换机,转发到三层设备经过路由后再进入到主机内部,才能完成通信。
属于同一端口组,则虚拟机属于同一广播域,而虚拟交换机支持广播。所以,如果是同主机相同端口组的虚拟机之间互相通信,可以直接通过虚拟交换机完成,通信的流量不需要传出到物理网络中。
虽然虚拟机属于同一端口组,可以通过广播找到彼此,但是不同的物理服务器需要使用物理交换机才能接入到网络中(除非两个物理服务器直接互连,属于特殊情况,暂不考虑)。因此,如果虚拟机使用相同端口组,但是运行在不同物理服务器时,流量需要通过物理服务器的网口传出到物理交换机上,然后才能完成通信。与不同物理服务器不同端口组不一样,此时两台虚拟机之间可以不经过三层设备即可正常通信。
用户根据虚拟机的安全需求创建安全组,每个安全组可以设定一组访问规则。当虚拟机加入安全组后,即受到该访问规则组的保护。用户通过在创建虚拟机时选择要加入的安全组来对虚拟机进行安全隔离和访问控制。安全组是一个逻辑上的分组,这个分组是由同一个地域内具有相同安全保护需求并相互信任的虚拟机组成。位于同一个安全组的所有虚拟机网卡都将使用该安全组规则进行网络通信。每块虚拟机网卡只能加入一个安全组中。
安全组的作用与防火墙类似,在功能上可以参考防火墙,都是使用iptables的包过滤来实现安全控制的。
举例:
疫情期间,出去。首先火车站温度检查,不发烧,通过。到杭州,出示绿码,有绿码通过。到小区,有复工文件,通过。
两种设置方式