网络基础知识
- 一、什么是二层互通与三层互通?
- 1.1 二层网络互通
- 1.2 三层网络互通
- 二、什么是Overlay网络?
- 2.1 Underlay网络
- 2.2 Overlay网络
- 2.3 Underlay网络 vs Overlay网络
- 三、什么是SNMP?
- 3.1 SNMP概念
- 3.2 为什么需要SNMP?
- 3.3 SNMP的基本组件
- 3.3.1 NMS(Network Management System,网络管理系统)
- 3.3.2 Agent(代理进程)
- 3.3.3 Managed Object(被管对象)
- 3.3.4 MIB(管理信息库)
- 3.4 SNMP端口
- 3.5 SNMP Traps
- 3.5.1 Trap操作工作原理
- 3.5.2 Inform操作工作原理
- 3.6 SNMP的应用
- 四、什么是VXLAN?
- 4.1 VXLAN简介
- 4.2 VXLAN报文封装格式
- 4.3 VXLAN网络架构
- 4.3.1 VXLAN网络内互访
- 4.3.2 VXLAN网络间互访(集中式网关)
- 4.3.3 VXLAN网络间互访(分布式网关)
- 4.4 VXLAN与VLAN对比
- 4.5 VXLAN隧道建立方式
- 五、什么是多租户?
一、什么是二层互通与三层互通?
1.1 二层网络互通
- 交换机根据MAC地址表进行数据包的转发,有则转发,无则泛洪,即将数据包广播发送到所有端口,如果目的终端收到给出回应,那么交换机就可以将该MAC地址添加到地址表中,这是交换机对MAC地址进行建立的过程。但这样频繁的对未知的MAC目标的数据包进行广播,在大规模的网络架构中形成的网络风暴是非常庞大的,这也很大程度上限制了二层网络规模的扩大,因此二层网络的组网能力非常有限,所以一般只是用来搭建小局域网。
- 二层网络基本上是一个安全域,也就是说在同一个二层网络内,终端的安全性从网络上来讲基本上是一样的,除非有其他特殊的安全措施;
1.2 三层网络互通
- 三层网络需要通过IP路由实现跨网段的通讯,可以跨多个冲突域。三层网络则可以划分出相对独立的多个安全域。
二、什么是Overlay网络?
- Overlay网络和Underlay网络是一组相对概念,Overlay网络是建立在Underlay网络上的逻辑网络。而为什么需要建立Overlay网络,就要从底层的Underlay网络的概念以及局限讲起。
2.1 Underlay网络
- Underlay网络正如其名,是Overlay网络的底层物理基础。如下图所示,Underlay网络可以是由多个类型设备互联而成的物理网络,负责网络之间的数据包传输。
- 典型的Underlay网络:
在Underlay网络中,互联的设备可以是各类型交换机、路由器、负载均衡设备、防火墙等,但网络的各个设备之间必须通过路由协议来确保之间IP的连通性。 - Underlay网络可以是二层也可以是三层网络。其中二层网络通常应用于以太网,通过VLAN进行划分。三层网络的典型应用就是互联网,其在同一个自治域使用OSPF、IS-IS等协议进行路由控制,在各个自治域之间则采用BGP等协议进行路由传递与互联。随着技术的进步,也出现了使用MPLS这种介于二三层的WAN技术搭建的Underlay网络。
- 然而传统的网络设备对数据包的转发都基于硬件,其构建而成的Underlay网络也产生了如下的问题:
1)由于硬件根据目的IP地址进行数据包的转发,所以传输的路径依赖十分严重。
2)新增或变更业务需要对现有底层网络连接进行修改,重新配置耗时严重。
3)互联网不能保证私密通信的安全要求。
4)网络切片和网络分段实现复杂,无法做到网络资源的按需分配。
5)多路径转发繁琐,无法融合多个底层网络来实现负载均衡。
2.2 Overlay网络
- 为了摆脱Underlay网络的种种限制,现在多采用网络虚拟化技术在Underlay网络之上创建虚拟的Overlay网络。
- Overlay网络拓扑:在Overlay网络中,设备之间可以通过逻辑链路,按照需求完成互联形成Overlay拓扑。
- 相互连接的Overlay设备之间建立隧道,数据包准备传输出去时,设备为数据包添加新的IP头部和隧道头部,并且被屏蔽掉内层的IP头部,数据包根据新的IP头部进行转发。当数据包传递到另一个设备后,外部的IP报头和隧道头将被丢弃,得到原始的数据包,在这个过程中Overlay网络并不感知Underlay网络。
- Overlay网络有着各种网络协议和标准,包括VXLAN、NVGRE、SST、GRE、NVO3、EVPN等。
- 随着SDN技术的引入,加入了控制器的Overlay网络,有着如下的优点:
1)流量传输不依赖特定线路。Overlay网络使用隧道技术,可以灵活选择不同的底层链路,使用多种方式保证流量的稳定传输。
2)Overlay网络可以按照需求建立不同的虚拟拓扑组网,无需对底层网络作出修改。
3)通过加密手段可以解决保护私密流量在互联网上的通信。
4)支持网络切片与网络分段。将不同的业务分割开来,可以实现网络资源的最优分配。
5)支持多路径转发。在Overlay网络中,流量从源传输到目的可通过多条路径,从而实现负载分担,最大化利用线路的带宽。
2.3 Underlay网络 vs Overlay网络
对比项 | Underlay网络 | Overlay网络 |
---|---|---|
数据传输 | 通过网络设备例如路由器、交换机进行传输 | 沿着节点间的虚拟链路进行传输 |
包封装和开销 | 发生在网络的二层和三层 | 需要跨源和目的封装数据包,产生额外的开销 |
报文控制 | 面向硬件 | 面向软件 |
部署时间 | 上线新服务涉及大量配置,耗时多 | 只需更改虚拟网络中的拓扑结构,可快速部署 |
多路径转发 | 因为可扩展性低,所以需要使用多路径转发,而这会产生更多的开销和网络复杂度 | 支持虚拟网络内的多路径转发 |
扩展性 | 底层网络一旦搭建好,新增设备较为困难,可扩展性差 | 扩展性强,例如VLAN最多可支持4096个标识符,而VXLAN则提供多达1600万个标识符 |
协议 | 以太网交换、VLAN、路由协议(OSPF、IS-IS、BGP等) | VXLAN、NVGRE、SST、GRE、NVO3、EVPN |
多租户管理 | 需要使用基于NAT或者VRF的隔离,这在大型网络中是个巨大的挑战 | 能够管理多个租户之间的重叠IP地址 |
三、什么是SNMP?
3.1 SNMP概念
- SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
- SNMP采用轮询机制,提供最基本的功能集,适合小型、快速、低价格的环境使用,而且SNMP以用户数据报协议(UDP)报文为承载,因而受到绝大多数设备的支持,同时保证管理信息在任意两点传送,便于管理员在网络上的任何节点检索信息,进行故障排查。
3.2 为什么需要SNMP?
- 随着网络技术的飞速发展,在网络不断普及的同时也给网络管理带来了一些问题:
1)网络设备数量成几何级数增加,使得网络管理员对设备的管理变得越来越困难;同时,网络作为一个复杂的分布式系统,其覆盖地域不断扩大,也使得对这些设备进行实时监控和故障排查变得极为困难。
2)网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相同,这使得网络管理变得愈发复杂。 - 在这种背景下,SNMP应运而生,SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
- 通过“利用网络管理网络”的方式:网络管理员可以利用SNMP平台在网络上的任意节点完成信息查询、信息修改和故障排查等工作,工作效率得以提高。屏蔽了设备间的物理差异,SNMP仅提供最基本的功能集,使得管理任务与被管理设备的物理特性、网络类型相互独立,因而可以实现对不同设备的统一管理,管理成本低。设计简单、运行代价低,SNMP采用“尽可能简单”的设计思想,其在设备上添加的软件/硬件、报文的种类和报文的格式都力求简单,因而运行SNMP给设备造成的影响和代价都被最小化。
3.3 SNMP的基本组件
- SNMP基本组件包括网络管理系统NMS(Network Management System)、代理进程(Agent)、被管对象(Managed Object)和管理信息库MIB(Management Information Base)。如图所示他们共同构成SNMP的管理模型,在SNMP的体系结构中都起着至关重要的作用。
3.3.1 NMS(Network Management System,网络管理系统)
- NMS在网络中扮演管理者角色,是一个采用SNMP协议对网络设备进行管理/监视的系统,运行在NMS服务器上。
1)NMS可以向设备上的Agent发出请求,查询或修改一个或多个具体的参数值。
2)NMS可以接收设备上的Agent主动发送的Trap信息,以获知被管理设备当前的状态。
3.3.2 Agent(代理进程)
- Agent是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。
1)Agent接收到NMS的请求信息后,通过MIB表完成相应指令后,并把操作结果响应给NMS。
2)当设备发生故障或者其它事件时,设备会通过Agent主动发送信息给NMS,向NMS报告设备当前的状态变化。
3.3.3 Managed Object(被管对象)
- Managed Object指被管理对象。每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件,也可以是在硬件、软件(如路由选择协议)上配置的参数集合。
3.3.4 MIB(管理信息库)
- MIB是一个数据库,指明了被管理设备所维护的变量,是能够被Agent查询和设置的信息。MIB在数据库中定义了被管理设备的一系列属性:对象的名称、对象的状态、对象的访问权限和对象的数据类型等。通过MIB,可以完成以下功能:
1)Agent通过查询MIB,可以获知设备当前的状态信息。
2)Agent通过修改MIB,可以设置设备的状态参数。
3.4 SNMP端口
- SNMP端口是SNMP通信端点,SNMP消息传输通过UDP进行,通常使用UDP端口号161/162。有时也使用传输层安全性(TLS)或数据报传输层安全性(DTLS)协议,端口使用情况如下所示:
过程 | 协议 | 端口号 |
---|---|---|
代理进程Agent接收请求信息 | UDP协议 | 161 |
NMS与代理进程Agent之间的通信 | UDP协议 | 161 |
NMS接收通知信息 | UDP协议 | 162 |
代理进程Agent生成通知信息 | - | 任何可用的端口 |
接收请求信息 | TLS/DTLS | 10161 |
接收通知信息 | TLS/DTLS | 10162 |
3.5 SNMP Traps
- SNMP Traps是指SNMP Agent主动将设备产生的告警或事件上报给NMS,以便网络管理员及时了解设备当前运行的状态。
- SNMP Agent上报SNMP Traps有两种方式:Trap和Inform。Trap和Inform的区别在于,SNMP Agent通过Inform向NMS发送告警或事件后,NMS需要回复InformResponse进行确认。
3.5.1 Trap操作工作原理
- Trap不属于NMS对被管理设备的基本操作,它是被管理设备的自发行为。当被管理设备达到告警的触发条件时,会通过SNMP Agent向NMS发送Trap消息,告知设备侧出现的异常情况,便于网络管理人员及时处理。例如被管理设备热启动后,SNMP Agent会向NMS发送warmStart的Trap。
- 这种Trap信息是受限制的。只有在设备端的模块达到模块预定义的告警触发条件时,SNMP Agent才会向管理进程报告。这种方法的好处是仅在严重事件发生时才发送Trap信息,减少报文交互产生的流量。
3.5.2 Inform操作工作原理
- Inform操作也是被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS进行接收确认。如果被管理设备没有收到确认信息则:
1)将告警或事件暂时保存在Inform缓存中。
2)重复发送该告警或事件,直到NMS确认收到该告警或者发送次数达到最大重传次数。
3)被管设备上会生成相应的告警或事件日志。
3.6 SNMP的应用
- 网管可以通过SNMP协议管理设备,如下图所示,管理员要对整个网络的设备进行配置和管理,这些设备分布较为分散,管理员到现场进行设备配置是不现实的。当这些网络设备来自不同的厂商,而每个厂商都提供一套独立的管理接口(比如使用不同的命令行),将使得批量配置网络设备的工作量巨大。因此,在这种情况下,如果采用传统的人工方式,将会带来成本高、效率低的弊端,此时网络管理员可以利用SNMP远程管理和配置其下属设备,并对这些设备进行实时监控。
- 在组网中配置SNMP协议,首先需要在管理端配置SNMP管理程序NMS,同时在被管理设备端配置SNMP的Agent。
- 通过SNMP协议:
1)NMS可以通过Agent在任何时候及时地获得设备的状态信息,实现远端控制被管理设备。
2)Agent可以及时地向NMS报告设备的当前状态信息
四、什么是VXLAN?
4.1 VXLAN简介
- VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)采用MAC in UDP封装方式,是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术。MAC in UDP封装思维是将原始数据报文当做用户数据包,VTEP当做大二层接入,那么VTEP会依次进行传输层封装,网络层封装,以太网头部封装,如果直接进行IP封装则跳过了传输层的封装过程,会在传输的过程中遇到一些困难。
4.2 VXLAN报文封装格式
- 报文封装格式如下图所示,原始报文在封装过程中先被添加一个VXLAN帧头,再被封装在UDP报头中,并使用承载网络的IP、MAC地址作为外层头进行封装。
- 举例说明:下图中Host-A和Host-B位于VNI10的VXLAN,通过VTEP-1和VTEP-2之间建的VXLAN隧道通信。数据传输过程如下:
1)Host-A向Host-B发送数据时,Host-B的MAC和P作为数据包的目标MAC和IP,Host-A的MAC作为数据包的源MAC和IP,然后通过VTEP-1将数据发送出去;
2)VTEP-1从自己维护的映射表中找到MAC-B对应的VTEP-2,然后执行VXLAN封装,加上VXLAN头,UDP头以及外层IP和MAC头。此时的外层IP头为目标地址为VTEP-2的IP,源地址为VTEP-1的IP。同时由于下一跳是Router-1,所以外层MAC头中目标地址为Router-1的MAC;
3)数据包从VTEP-1发送出去后,外部网络的路由器会依据外层IP头进行包路由,最后到达与VTEP-2连接的路由器Router-2;
4)Router-2将数据包发送给VTEP-2。VTEP-2负责解封数据包,依次去掉外层MAC头,外层IP头,UPD头和VXLAN头;
5)VTEP-2依据目标MAC地址将数据包发送给Host-B。 - 上面的流程我们看到VTEP是VXLAN的最核心组件,负责数据的封装和解封。隧道也是建立在VTEP之间的,VTEP负责数据的传送。
4.3 VXLAN网络架构
- VXLAN通过将原主机发出的数据包封装在UDP中,并使用物理网络的IP、MAC作为外层头进行封装,然后在IP网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标主机。
- 类似于传统的VLAN网络,VXLAN网络也有VXLAN网络内互访和VXLAN网络间互访。
4.3.1 VXLAN网络内互访
- 通过VXLAN技术可以实现在已有三层网络上构建虚拟二层网络,实现主机之间的二层互通。同一BD之间主机能直接进行二层通信。VXLAN网络内互访如下图所示:
- 网络虚拟边缘NVE(Network Virtualization Edge)
NVE是实现网络虚拟化功能的网络实体。报文经过NVE封装转换后,NVE间就可基于三层基础网络建立二层虚拟化网络。 - VXLAN隧道端点VTEP(VXLAN Tunnel Endpoints)
VXLAN报文中源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。一对VTEP地址就对应着一条VXLAN隧道。在源端封装报文后通过隧道向目的端VTEP发送封装报文,目的端VTEP对接收到的封装报文进行解封装。 - 虚拟接入点VAP(Virtual Access Point)
VXLAN业务接入点,可以基于VLAN或报文流封装类型接入业务:
1)基于VLAN接入业务:在VTEP上建立VLAN与BD的一对一或多对一的映射。这样,当VTEP收到业务侧报文后,根据VLAN与BD的映射关系,实现报文在BD内进行转发。
2)基于报文流封装类型接入业务:在VTEP连接下行业务的物理接口上创建二层子接口,并配置不同的流封装类型,使得不同的接口接入不同的数据报文。同时,将二层子接口与BD进行一一映射。这样业务侧报文到达VTEP后,即会进入指定的二层子接口。即根据二层子接口与BD的映射关系,实现报文在BD内进行转发。 - 网络标识VNI(VXLAN Network Identifier)
类似于传统网络中的VLAN ID,用于区分VXLAN段,不同VXLAN段的租户不能直接进行二层通信。VNI由24比特组成,支持多达1600万的租户。
广播域BD(Bridge Domain)
类似传统网络中采用VLAN划分广播域方法,在VXLAN网络中通过BD划分广播域。在VXLAN网络中,将VNI以1:1方式映射到广播域BD,一个BD就表示着一个广播域,同一个BD内的主机就可以进行二层互通。
4.3.2 VXLAN网络间互访(集中式网关)
- 不同BD之间的主机不能直接进行二层通信,需要通过VXLAN三层网关实现主机间的三层通信。
- 集中式网关是指将三层网关集中部署在一台设备上,如下图所示,所有跨子网的流量都经过三层网关进行转发,实现流量的集中管理。
- 三层网关
类似传统网络中不同VLAN的用户间不能直接进行二层互访,不同VNI之间的VXLAN及VXLAN和非VXLAN之间也不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,引入了VXLAN三层网关的概念。三层网关用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。 - VBDIF接口
类似于传统网络中采用VLANIF解决不同广播域互通的方法,在VXLAN中引入了VBDIF的概念。VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口。通过VBDIF接口配置IP地址可实现不同网段的VXLAN间,及VXLAN和非VXLAN的通信,也可实现二层网络接入三层网络。
4.3.3 VXLAN网络间互访(分布式网关)
- 分布式网关是指将VXLAN二层网关和三层网关部署在同一台设备上,如下图所示,VTEP设备既作为VXLAN网络中的二层网关设备,与主机对接,用于解决终端租户接入VXLAN虚拟网络的问题。同时也作为VXLAN网络中的三层网关设备,实现跨子网的终端租户通信,以及外部网络的访问。仅BGP EVPN方式部署VXLAN网络时支持分布式网关。
- VXLAN分布式网关具有如下特点:
1)同一个VTEP节点既可以做VXLAN二层网关,也可以做VXLAN三层网关,部署灵活。
2)VTEP节点只需要学习自身连接服务器的ARP表项,而不必像集中式三层网关一样,需要学习所有服务器的ARP表项,解决了集中式三层网关带来的ARP表项瓶颈问题,网络规模扩展能力强。
4.4 VXLAN与VLAN对比
对比项 | VLAN网络 | VXLAN网络 |
---|---|---|
概念 | 虚拟局域网 | 虚拟扩展局域网 |
网络存在形式 | 将一个物理的LAN在逻辑上划分成多个广播域,并且将网络范围限制在一个较小的地域范围内 | 在已有的任意路由可达的网络上叠加的二层虚拟网络,不受地域范围限制,具备大规模扩展能力 |
可支持虚拟局域网范围 | 在标准定义中只有12比特,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足 | 在RFC 7348定义中有24比特,支持多达16M(约1600万)租户隔离,有效地解决了云计算中海量租户隔离的问题 |
网络划分方式 | 通过VLAN ID划分广播域,同一个广播域之间的主机能进行二层互通 | 通过BD划分广播域,同一个BD内的主机可以进行二层互通 |
封装方式 | 在报文中添加VLAN Tag | 原始报文在封装过程中先被添加一个VXLAN帧头,再被封装在UDP报头中,最后使用承载网络的IP、MAC地址作为外层头进行封装 |
网络间互通方式 | VLAN间互访通过VLANIF接口实现,VLANIF接口是一种三层的逻辑接口,可以实现VLAN间的三层互通 | VXLAN间互访以及VXLAN和非VXLAN之间的通信通过VBDIF接口实现。VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口 |
受益 | 限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信 | 位置无关性:业务可在任意位置灵活部署,缓解了服务器虚拟化后相关的网络扩展问题。网络部署灵活性:在传统网络架构上叠加新的网络,部署方便,同时避免了大二层的广播风暴,可扩展性极强。适合云业务:支持千万级别租户隔离,支持云业务的大规模部署。技术优势:采用MAC in UDP封装方式,无需关注主机的MAC地址,降低了大二层网络对MAC地址规格的需求 |
4.5 VXLAN隧道建立方式
- VXLAN隧道由一对VTEP IP地址确定,报文在VTEP设备进行封装之后在VXLAN隧道中依靠路由进行传输。在进行VXLAN隧道的配置之后,只要VXLAN隧道的两端VTEP IP是三层路由可达的,VXLAN隧道就可以建立成功。
- 根据VXLAN隧道的创建方式将VXLAN隧道分为以下两种:
1)静态隧道:通过用户手工配置本端和远端的VNI、VTEP IP地址和头端复制列表来完成。静态配置隧道的方式仅支持VXLAN集中式网关场景。
2)动态隧道:通过BGP EVPN方式动态建立VXLAN隧道。在两端VTEP之间建立BGP EVPN对等体,然后对等体之间利用BGP EVPN路由来互相传递VNI和VTEP IP地址信息,从而实现动态建立的VXLAN隧道。通过BGP EVPN动态建立隧道的方式既支持VXLAN集中式网关场景,同时也支持VXLAN分布式网关场景。
五、什么是多租户?
- 租户一般是指求组Saas解决方案的企业用户,一个租户一般对应了企业多个用户。
- 多租户技术或称多重租赁技术,简称SaaS,是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业用户)共用相同的系统或程序组件、数据库等,共享硬件资源,并且可确保各用户间数据的隔离性。在这种场景下,每个用户都感觉自己独占资源,现在很多Saas提供方已经为用户提供了高度定制的功能。