EVI技术基本原理

EVI技术基本原理(一)

一、 EVI概述

上一期我们讨论了数据中心跨站点二层互联需求的由来,以及涉及的几种主流技术。下面将重点介绍H3C公司推出的跨站点二层互联技术——EVI( Ethernet Virtualization Interconnect,以太网虚拟化互联)。

通过EVI技术连接到IP核心网的数据中心站点,就像是直接连接到一个二层交换机上,站点间能够实现二层互通。传统的二层网络中,相同VLAN下的站点能够互通,EVI也是以VLAN为单位控制站点间的互通和隔离。如图1所示,site1、site2和site5这三个站点的VLAN10之间能够互通,而所有站点的VLAN20之间能够互通。对于单个站点site1来说,就像是通过两个虚拟公网接口连接到两个不同的、物理隔离的二层交换机上一样。其中一个二层交换机负责使VLAN10互通,另一个交换机负责使VLAN20互通。这两个虚拟的二层交换机可以看做是EVI的两个不同的实例。EVI实例与VLAN相关联,相同EVI实例所关联的VLAN能够实现跨站点二层互通。

图1:EVI多实例

要实现穿越IP核心网的二层网络互通,要考虑两个问题:一个是控制层面的问题,即站点间通信时依靠什么来寻址,又是如何建立指导转发的地址表项的;另一个是数据层面的问题,即二层数据通过何种封装方式来穿越IP核心网。

二、 EVI的术语及基本概念

EVI的网络模型如图2所示,在了解EVI的工作原理之前,我们先来了解一下EVI涉及的几个基本概念。

图中三个数据中心站点内部都有VLAN100~200,这些需要实现跨站点二层互通的VLAN称之为扩展VLAN。

每个站点内都有一台执行EVI功能的设备,它是三层网络和二层网络的边界,所以称之为边缘设备(Edge Device,ED)。

在这些需要互通的站点的边缘设备上都存在一个全网统一的编号——Network ID。Network ID与扩展VLAN相关联,它们的组合称之为一个EVI实例。只有配置了相同EVI实例的边缘设备才能实现扩展VLAN在站点间二层互通。

从单个站点边缘设备的角度来看,EVI隧道是一个点到多点的隧道。好比从北京出发,通过XXX高速公路,可以到达多个城市,这条专用的高速公路就是EVI隧道。而连接北京与某个具体城市之间的,点对点的双向通道则叫做EVI连接(EVI Link)。EVI连接承载于EVI隧道之上。也可以将EVI连接想象为连接两个站点的一条逻辑的虚拟链路,站点间二层互访时,去往IP核心网的出接口就是这条EVI虚拟连接的一个逻辑接口,这个逻辑接口对原始数据完成特定的封装后再由其对应的物理接口将报文发送出去。

图2:EVI网络模型和基本术语

三、 EVI的控制层面

传统的二层通信依靠MAC地址表寻址,EVI网络也不例外。站点内的MAC地址学习和普通的MAC地址学习机制保持一致即可,剩下的问题就是站点间如何互相学习对方站点内的MAC地址。主机首次通信之前要相互交互ARP报文,与此同时,传统的二层设备便可以依靠ARP的广播请求和单播响应学习主机的MAC地址,形成MAC地址表指导转发。跨站点的主机通信也少不了ARP报文的交互,那么能否直接利用ARP报文来学习MAC地址呢。答案是肯定的,至于ARP报文如何封装穿越IP核心网则是数据层面需要考虑的问题。

实际上,MPLS VPLS技术就是使用上述方式实现寻址的。但在数据中心跨站点通信时,这么做存在一定的弊端。由于仍然沿用了数据层面驱动MAC地址学习的机制,则不能对ARP广播和未知单播在IP核心网的泛洪加以控制,否则必然影响MAC地址的学习效率。而EVI的设计原则之一,便是尽量避免广播(ARP请求)和未知单播在IP核心网的泛洪。这样一来,就需要考虑使用独立的控制层面来完成针对远端站点内的MAC地址学习。

EVI使用扩展后的L2 IS-IS(中间系统到中间系统的域内路由信息交换协议),也称之为EVI IS-IS作为控制层面协议来实现站点间的MAC地址交换和表项同步。同步完成之后,站点边缘设备上所形成的MAC地址表如图3所示,目的MAC为远端站点主机的MAC地址表项中,出接口为EVI连接的逻辑接口。

图3:边缘设备完成同步后的MAC地址表

EVI IS-IS和标准的IS-IS在整体协议框架上没有太大的区别,取消了标准IS-IS中Level的概念,并对标准协议报文做了部分扩展以便携带主机的MAC地址和其他控制信息。选择IS-IS作为控制层面协议的主要原因有以下几点:

(1)IS-IS在邻居建立、LSDB同步等处理流程方面完全符合EVI对于站点间二层寻址的需求。站点的边缘设备之间也需要建立邻居关系,继而互相交换站点内的MAC地址并保持同步。

(2)IS-IS可以直接承载于数据链路层之上,在IP核心网上传输时封装开销小。

(3)IS-IS的PDU可变长部分采用CLV(Code/Length/Value,或者叫TLV)结构,具备良好的可扩展性。

四、 EVI的数据层面

为了实现站点间穿越IP核心网的二层网络互通,必须使用一种通用的隧道封装技术。此外,由于EVI IS-IS为经过扩展后的私有协议,公网设备可能并不能识别和处理,所以控制层面的报文交互也必须使用隧道封装。隧道的端点即为站点内的边缘设备。EVI的控制层面报文和用户的业务数据在IP核心网传输时,均采用GRE(Generic Routing Encapsulation,通用路由封装)封装。这是一种“MAC in IP”的封装方式,以业务数据为例,如图4所示,在IP核心网上传输的数据包中,GRE头的内层为原始以太帧,外层IP头则指示隧道的两个端点的IP地址。数据在隧道的一个端点完成封装,发往IP核心网。只要两个站点之间IP可达,沿途的公网设备便可根据GRE封装的外层IP头,将数据包一路转发至目的站点,最后由目的站点的边缘设备解封装后再完成站点内的二层转发。

图4:EVI数据封装

图5:EVI IS-IS封装

五、 小结

通过本期内容,读者们应该能够结合相关术语的解释掌握EVI技术的基本概念,了解EVI独特的控制层面设计以及数据层面的封装方式。关于EVI的协议实现细节以及具体工作原理等内容,我们将在下一期内容中共同讨论和学习。

EVI技术基本原理(二)

一、 EVI的控制层面

EVI的控制层面主要包括两个阶段:第一阶段是EVI邻居关系和EVI Link的建立,第二阶段是EVI邻居之间(EVI Link的两个端点之间)相互建立EVI IS-IS的邻居关系,并通过EVI IS-IS互相学习对方站点内的MAC地址,维护MAC地址表的同步。

1. 建立EVI邻居关系

EVI使用ENDP(EVI Neighbor Discovery Protocol,EVI邻居发现协议)自动发现EVI邻居,以及建立和维护邻居之间的EVI Link。ENDP定义了两个角色:ENDS(EVI邻居发现服务器)和ENDC(EVI邻居发现客户端)。ENDS用于维护同一个EVI网络实例中所有的邻居信息,ENDS自身同时也是ENDC;ENDC与ENDS交互,协助其完成邻居信息收集,最终与所有邻居建立EVI Link。

作为ENDC的ED设备,需要通过配置指定ENDS的地址,而ENDS只需通过配置使能自身为ENDS,无需配置ENDC的信息。当新增一个站点的ED设备时,仅需将其作为ENDC,指定网络中现有ENDS的地址。网络中其他原有设备无需改动配置就能发现这台新增的ED设备,即所谓邻居自动发现。

ENDP使用UDP以及固定的源/目的端口,ENDS监听端口53333,ENDC监听端口53334。ENDP的工作流程如图1所示。

(1)首先,所有ENDC都向ENDS发起注册请求,消息中携带自身的IP地址等信息。这样,ENDS便能获取到所有ENDC的信息。

(2)ENDS向每个ENDC回应注册应答消息,消息中携带所有ENDC的信息。

(3)ENDC收到应答后,与其他ED设备之间建立EVI Link。此后,ED设备互相发送Keepalive消息,保持EVI Link接口状态为UP。

图1:ENDP工作示意图

为了防止ENDS单点故障,可以为每个ENDC指定两个ENDS,这两个ENDS同时有效。出于安全考虑,还可以配置ENDP认证功能来防止恶意的节点注册。同一个EVI实例中,ENDS与ENDC必须同时使能认证并配置相同的认证密码。

2. EVI IS-IS

EVI使用独立的控制层面协议EVI IS-IS来完成站点间MAC地址的相互学习和同步。EVI IS-IS和IS-IS(未注明EVI IS-IS时均指普通IS-IS协议)一样,直接封装在数据链路层之上。其PDU也是由报文头和变长字段两部分组成。其中报文头又分为通用报文头和专用报文头。可变长字段包含多个CLV结构,每个CLV携带不同类型的信息。EVI IS-IS的许多基本功能实现正是依赖于相关的扩展CLV,这也是EVI IS-IS与普通IS-IS协议最大的区别之处。

图2:EVI IS-IS PDU

EVI IS-IS也包含四类协议报文,它们使用相同的通用报文头。由于没有了Level的概念,EVI IS-IS的通用报头中的PDU类型字段只有四个取值,每种协议报文类型对应一种PDU类型。四类协议报文的作用如下:

(1)IIH(IS-to-IS Hello PDUs,或称为Hello):用于边缘设备之间建立和维护邻居关系,对应PDU类型为L1 LAN IIH。

(2)LSP(Link State PDUs,链路状态PDUs):使用MAC可达CLV携带本地站点内的MAC地址,点对点地将MAC地址信息发送给对端邻居,对应PDU类型为L1 LSP。

(3)CSNP(Complete Sequence Number PDUs,全序列号报文):记录所有LSP的摘要,接收方通过对比本地的链路状态数据库以达到MAC地址的同步,对应PDU类型为L1 CSNP。

(4)PSNP(Partial Sequence Number PDUs,部分序列号报文):包含部分LSP的摘要,用于请求本地缺失的LSP,对应PDU类型为L1 PSNP。

EVI IS-IS在IP核心网传播时采用GRE封装,如图3所示。其中GRE头扩展为两个部分,第一部分的结构与标准GRE头一致,协议类型字段填充为0x6557,标识这是一个EVI IS-IS协议报文;第二部分是EVI头,包含本端ED设备上的EVI协议相关信息。EVI头中的Network-ID字段填充为EVI实例的编号,只有配置相同实例编号的ED设备之间才能够成功建立EVI IS-IS邻居关系,继而互相学习对方站点内的MAC地址。外层以太头中封装的源/目的MAC地址为EVL Link两端ED设备的三层接口MAC地址;承载EVI IS-IS的内层以太头中封装的源MAC地址为设备的桥MAC地址,目的MAC地址为协议专用的私有MAC地址。

图3:EVI IS-IS协议报文在IP核心网的封装

3. 建立EVI IS-IS邻居关系和DED选举

EVI邻居建立之后,ED将EVI邻居的IP地址作为GRE隧道的目的地址,使用GRE封装EVI IS-IS协议报文发往对端ED。ED设备之间通过交互IIH报文建立和维持邻居关系。邻居建立过程如图4所示,包括三次握手:

(1)当ED设备配置了EVI隧道接口之后,EVI IS-IS自动使能。在EVI Link建立后,通过隧道封装发送EVI IS-IS协议报文。ED1首先发送IIH报文,报文的“EVI ISIS Neighbor”CLV中不携带任何邻居信息。ED2收到IIH后,创建邻居ED1,状态为Init。

(2)ED2向ED1回应IIH报文,其中携带ED1的MAC地址。ED1收到后,创建邻居ED2。由于在报文中看到了自己的MAC地址,表明ED2已收到自己发出的IIH报文,于是双向关系确认,并将邻居状态置为UP。

(3)ED1向ED2回应IIH报文,其中携带ED2的MAC地址。ED2收到后双向关系确认,并将邻居状态置为UP。此后,双方周期性互相发送IIH,维持EVI IS-IS邻居关系。

图4:EVI IS-IS邻居建立过程

在广播网络中,IS-IS需要在所有IS设备中选举一个作为DIS(Designated IS,指定中间系统)。在拓扑收敛的情况下,其他非DIS设备仅跟DIS进行路由信息的交换,由DIS将所有LSP的摘要周期性泛洪给广播网络中的其他设备,其他设备则对比本地的LSDB,根据对比结果请求缺失的链路状态,与DIS之间保持LSDB同步。DIS同时负责创建一个伪节点(Pseudo Nodes),并为其生成伪节点专用的LSP,用于描述该网络上存在的路由器。伪节点是一个虚拟节点,对于该广播网之外的IS设备来说,伪节点能够代表这个广播网中所有的IS设备。外部设备计算到达该广播网络的拓扑时,只需要计算到达伪节点(即DIS)的路径,从而达到简化拓扑,优化SPF资源消耗的目的。

IS-IS在点到点网络中并不选举DIS,继而也不产生伪节点。EVI Link虽然是点对点的连接,但EVI IS-IS出于对支持站点内ED双归属接入IP核心网的考虑,仍然保留了IS-IS在广播网络中的处理机制。当双归属组网时,需要在站点内选举DED(Designated ED,相当于IS-IS中的DIS)。由DED充当调度者的角色,使得不同的ED负责不同的扩展VLAN通信,在提供冗余的同时实现负载分担。除此之外,每一条EVI Link的两个端点ED之间,也均会两两选举出站点间DED并产生伪节点,按照IS-IS的工作机制,由DED将所有LSP的摘要周期性泛洪给对端站点的ED。站点间DED的职能与IS-IS的DIS的职能基本一致。

DED的选举原则如下:

(1)ED之间建立双向邻居关系之后,便开始选举DED。使用IIH报文作为选票,比较专用报文头中的优先级字段,优先级大的当选。优先级为0的ED也可以参加选举。

(2)如果优先级相同,则MAC地址大的当选。

(3)DED支持抢占,当网络中接入了更高优先级的ED时,它将成为新的DED。

(4)ED之间持续交互IIH报文,用于维持邻居状态。DED发送IIH报文的时间间隔是普通ED发送间隔的三分之一,使得其他ED能够快速检测到DED失效,并选举新的DED。

4. MAC地址学习和保持同步

EVI IS-IS邻居建立之后,ED设备之间便开始LSDB的同步。同步LSDB的过程即是ED设备互相学习对端站点内的MAC地址并保持同步的过程,和IS-IS的LSDB同步过程基本一致,如图5所示。

图5:EVI IS-IS LSDB同步

(1)EVI IS-IS邻居建立之初,按照在广播网络中的工作机制,为了加快LSDB的同步,邻居双方互相发送LSP报文。一个LSP报文使用MAC可达CLV携带了本地站点内的所有MAC地址信息,当LSP报文大小超过MTU时,ED将对报文分片。LSP报文专用报头中的LSP ID字段唯一地标识了一个LSP。LSP ID由System ID(由ED的桥MAC转换而成)、伪节点ID(用于标识该LSP是否由伪节点产生)和分片号三部分组成。

(2)在LSDB同步状态下,由DED周期性发送CSNP报文,其中包含所有LSP的LSP ID和序列号等摘要信息。

(3)ED收到CSNP报文后将对比本地的LSDB,如果发现自身的LSDB中缺少LSP,则向DED发送PSNP报文请求缺失的LSP,然后由DED回应LSP报文并携带相应的LSP。假如发现CSNP报文中携带的LSP缺失(DED可能因为某种原因没有正确接收到所有的LSP),则立即向DED发送LSP报文并携带相应的缺失的LSP,直至收到的CSNP报文中携带的LSP与本地LSDB达到同步。

(4)如果站点本地的MAC地址表发生变化(新增或删除),将立即发送LSP报文通知对端ED更新LSDB。

5. MAC地址迁移和删除

当服务器发生跨站点迁移时,例如虚拟机的VMotion操作,需要ED设备能够快速感知变化,及时更新自己的MAC地址表。

图6:服务器迁移

以图6所示的服务器迁移场景为例,MAC地址表的更新过程如下:

(1)站点A内有一台虚拟机服务器的MAC地址为A,执行VMotion操作后从站点A迁移到了站点B。

(2)VMotion结束后,站点B的ED将在本地学习到MAC地址A,而此前MAC地址A的出接口指示为EVI-Link 0,说明服务器发生了迁移。

(3)ED B更新自己的MAC地址表,同时向EVI IS-IS邻居ED A和ED C发送LSP报文,其中MAC可达CLV中特定标志位置0,标识该MAC发生了迁移。

(4)ED A和ED C收到LSP报文后分别更新本地的LSDB,同时刷新MAC地址表。

ED在本地站点内的MAC地址删除分为立即删除和老化删除两种。立即删除包括命令行删除、运行生成树协议时收到拓扑变化消息、接口状态Down等情况;老化删除的原因可能是服务器被移除(非迁移)或长时间没有通信等。当ED删除站点内MAC地址的同时,会立即向对端邻居发送LSP报文通知其删除该MAC地址表项。ED除了收到LSP报文,指示其删除MAC地址之外,当发生EVI邻居超时(即ENDP Keepalive超时)、EVI-Link对应的物理接口Down、EVI IS-IS邻居超时(即IIH报文超时)、LSP生存时间超期等情况,也会删除与对端邻居相关的MAC地址表项。

二、 EVI的数据层面

数据报文在IP核心网传播时采用GRE封装,如图7所示。其中GRE头的协议类型字段填充为0x6558,标识这是一个数据报文。经过封装,原始数据在核心网传播时最多会增加42字节。EVI不提供路径MTU发现功能,且禁止数据报文分片,部署前需提前确保核心网的MTU大于封装后的最大报文长度。

图7:数据报文在IP核心网的封装

2. 单播流量转发

以图8为例,假定控制层面的工作已全部完成,单播流量转发流程如下:

(1)ED A从站点1内部接收到单播数据后,在MAC地址表中查询报文的目的MAC B,得到出接口为EVI Link 0。

(2)ED A执行EVI封装,外层IP头的源/目的IP为EVI Link的两个端点(即ED设备)的IP地址,然后从EVI Link对应的物理接口将报文发送至IP核心网。

(3)IP核心网中的设备按照外层IP头中指示的目的IP,将报文一路转发至站点2的ED B。

(4)ED B解封装后在MAC地址表中查询报文的目的MAC B,根据查询结果从GE1/0/1接口将报文发送给站点内部的目的主机。

(5)站点2返回的单播报文采用同样的流程发送至站点1。

图8:单播数据转发

2. 组播流量转发

EVI对组播转发的支持,是为组播接收者和接收者一侧的DR(指定路由器)之间提供跨站点的二层网络,即主要解决的是IGMP报文跨站点传播的问题。

像普通二层交换机转发组播数据一样,ED也需要在扩展VLAN上运行IGMP Snooping协议。EVI能够支持组播转发的关键在于,当收到DR发送的IGMP查询报文或组播接收者发送的组成员报告报文时,ED能够像对待普通以太网接口一样,在EVI-Link接口下学习路由器端口(R-port)和成员端口(H-port),以形成二层组播转发表。ED设备将IGMP报文进行EVI封装后,通过EVI隧道单播发送到属于相同EVI实例的远端ED,远端ED接收后,在本地站点内的该扩展VLAN内进行泛洪。

图9:组播数据转发

以图9为例,组播转发表项的建立和组播数据转发的流程如下:

(1)DR发送组播组查询报文。

(2)ED A由于在扩展VLAN运行了IGMP Snooping,侦听到组播组查询报文后,学习组播组信息,设置路由器端口为GE1/0/1。

(3)ED A将组播组查询报文执行EVI封装,然后发往处于同一个EVI实例的其他远端ED。

(4)ED B接收后对报文解封装,学习组播组信息,设置路由器端口为EVI Link 0。

(5)ED B将组播组查询报文在扩展VLAN 100内泛洪,最终送达接收者。

(6)组播接收者收到组播组查询报文后,回应成员关系报告报文。

(7)ED B由于在扩展VLAN运行了IGMP Snooping协议,侦听到成员关系报告报文后,设置成员端口为GE1/0/1。

(8)ED B对成员关系报告报文执行封装,从路由器端口EVI Link 0发送出去。

(9)ED A接收后对报文解封装,设置成员端口为EVI Link 0,再从路由器端口发送至DR。DR了解到组播成员的存在后生成自身的组播转发表项。至此,二层组播转发表项建立完毕。

(10)组播源发送组播数据至DR(DR与组播源之间的三层组播转发表项的建立这里不做赘述),DR将组播数据发送给ED A。

(11)ED A将组播数据从成员接口EVI Link 0发送出去(如果存在多个成员接口,则DR做组播数据复制后从多个EVI Link接口发送出去)。

(12)ED B接收后对报文解封装,从成员接口GE1/0/1发送给组播接收者。

3. 广播和未知单播处理

ED对广播、未知单播及未知组播的处理原则如下:

(1)ED设备在VLAN内所有接口以及EVI-Link接口泛洪广播帧。

(2)ED设备仅向站点内部的VLAN内泛洪未知单播和未知组播,不会通过EVI-Link泛洪到其他站点。

三、 EVI协议优化

1. ARP泛洪抑制

为了减少目的MAC地址为广播MAC的报文泛洪到核心网,ED侦听从EVI Link接口接收到的ARP请求或应答报文,并在本地建立ARP缓存。当后续站点内部服务器发送ARP请求时,如果请求的ARP在缓存中存在,则ED设备将直接进行代答。这样将大大减少ARP广播泛洪到核心网的次数。

如图10所示,典型的工作流程如下:

图10:ARP泛洪抑制

(1)站点1的主机A首次与站点2的主机B通信,主机A发送ARP广播请求主机B的ARP。ED A将广播请求执行EVI封装并泛洪至核心网。

(2)ED B接收到ARP广播请求后在站点内泛洪,最终抵达主机B,同时建立主机A的ARP缓存。

(3)主机B回应ARP应答,ED A接收后将此应答发送给主机A,同时建立主机B的ARP缓存。

(4)站点1的主机C首次与站点2的主机B通信,主机C发送ARP广播请求主机B的ARP。ED A根据ARP缓存直接进行代答,向主机C回复主机B的ARP,从而避免了ARP广播泛洪到核心网。

2. 选择性泛洪

缺省情况下,ED设备仅向站点内部的VLAN内泛洪未知单播和未知组播,不会通过EVI-Link泛洪到其他站点。对于某些特定的业务,以特定的目的MAC地址来标识其业务流量,该MAC地址永远不会作为数据帧的源MAC地址,不能通过EVI IS-IS在ED之间进行通告。为了保证这类通信,可以通过配置指定目的MAC为特定MAC的数据报文泛洪到IP核心网,即选择性泛洪。例如将IGMP普遍组查询报文的目的组播MAC地址配置为选择性泛洪MAC。

3. EVI IS-IS虚拟系统

一个LSP报文中携带了本地所有的MAC地址信息。如果LSP报文的长度超过1400字节,则需要分片发送。这些LSP分片构成一个LSP分片集,每个LSP分片集最多有256个分片,所能携带的最大MAC地址数为55×210。当本地MAC地址数超过55×210时,可以创建EVI IS-IS虚拟系统来扩展LSP的分片数量,以增加系统所能发布的MAC地址数量。

四、 小结

通过本期内容,读者们应该能够掌握EVI在控制层面和数据层面的具体工作原理。关于EVI的常见组网、可靠性部署以及典型配置,我们将在下一期内容中共同讨论和学习。


EVI技术基本原理(三)

一、 组网概述

将每个数据中心站点看成一个独立的单元,EVI采用水平分割原则避免站点间环路。ED从EVI隧道收到的以太帧,解封装之后只会向站点内部转发,不会再转发到核心网。这样一来,EVI组网的第一个基本要求是:需要二层互通的所有站点之间必须全连接,即站点的ED之间必须全连接。

EVI可以归类为一种隧道技术(或者叫Overlay技术)。在实际应用中,通常为单一企业用户所使用,不提供典型的多租户服务。

EVI ENDP和EVI IS-IS协议均基于每个EVI实例建立邻居关系。ED收到EVI IS-IS LSP报文后,将检查其中携带的EVI实例编号(即network-id),只有当本地也存在相同的实例,才会将远端站点内的MAC地址学习在EVI隧道(EVI实例)关联的MAC地址表项中。来自远端的MAC地址和EVI实例存在对应关系,但ED并不会将EVI实例编号作为多租户的标识。EVI实例编号虽然全局有效,但其对于控制层面的主要意义仅在于判断是否能够建立EVI/EVI IS-IS邻居,以及是否学习对端站点内的MAC地址。对于来自站点内部的单播报文,ED并不会像某些二层VPN技术一样,以端口和VLAN的组合来判断报文属于哪个VPN,继而在封装数据报文时携带对应的标识,指导数据接收方转发至相同的VPN。ED仅根据报文所属的扩展VLAN匹配对应的实例和EVI隧道,再根据隧道关联的EVI MAC地址表查找目的MAC表项,最后对数据报文执行标准的GRE封装发送到核心网。数据报文的GRE头中不携带EVI实例编号或其他类似的VPN标识。接收方ED完成单纯的解封装工作后,按照普通的二层转发原则向站点内转发。

值得一提的是,EVI要求不同的实例所关联的扩展VLAN不能重叠。所以不同实例之间的隔离,其实质就是VLAN的隔离。

在部署一个EVI网络之前,很重要的一项工作就是确定哪些站点的哪些业务可能存在跨站点迁移或跨站点二层通信的需求,继而确定在每个站点的ED上,应该如何配置EVI实例极其关联的扩展VLAN。除了不同实例所关联的扩展VLAN不能重叠之外,扩展VLAN的配置还必须满足最精确的要求。如图1所示,以ED A为例,正确而规范的配置是使能两个EVI实例,一个只与VLAN10~20关联,另一个只与VLAN21~30关联。对于来自站点内部的广播报文,ED根据报文所属的扩展VLAN匹配对应的实例,并向该实例中所有的EVI IS-IS邻居泛洪。如果ED A仅配置一个实例,同时关联VLAN10~30,这样虽然单播报文转发时没有问题,但会导致ED A收到来自VLAN10~20的广播报文时,通过核心网泛洪到不存在VLAN10~20的ED C。

图1:EVI多实例与扩展VLAN配置

二、 典型组网

EVI组网较为灵活,无论何种组网,规划ED在网络中的位置时,需要把握两个要点:

(1)ED要能够在扩展VLAN学习到相关主机的MAC地址。

(2)ED要具备通往IP核心网的三层接口。

考虑到服务器对外提供服务的问题,组网可以分为“多站点独立网关”和“多站点共用网关”两类。多站点独立网关组网时,又分为“ED和网关分离”和“ED和网关为同一设备”两种情况。

1. 多站点独立网关

多站点独立网关即指位于同一个二层网络的主机,在每个站点内部都存在独立的网关设备。这样做的好处是当服务器需要对站点外客户端提供服务时,直接由本地站点的网关设备进行三层转发,不会产生跨IP核心网的二层流量。

这种情况下,当发生跨站点的VMotion时,为了保证业务的连续性,不可能要求管理员手工修改服务器的网关地址,那么这就要求多个站点内的网关的IP地址和MAC地址要相同。通常的做法是,在不同的网关设备上为每个扩展VLAN使用完全相同的VRRP配置(包括虚IP和VRID),则扩展VLAN的网关IP地址和MAC地址均为相同的VRRP虚IP和虚MAC。

此外,VRRP不能形成主备模式,否则正常情况下服务器发送给网关的流量仍然可能跨越IP核心网发送给远端站点内的VRRP主设备。ED将VRRP的协议组播MAC地址视为未知组播,不会向IP核心网泛洪。所以在缺省情况下,网关设备之间无法跨站点交互VRRP协议报文,每台网关设备都认为自己是主设备(缺省即能形成多主)。同时,还需要在ED上配置基于扩展VLAN的过滤策略,禁止向核心网泛洪网关发送的免费ARP报文和ARP请求,以免广播报文泛洪到对端站点后,网关检测到VRRP虚地址的ARP冲突。

多站点独立网关,ED和网关分离的典型组网如图2所示。服务器的网关位于站点内的核心设备,ED旁挂于核心设备上。ED与网关设备之间的连接要允许扩展VLAN通过(如图中黄线所示),以保证ED能够学习到服务器的MAC地址。同时ED与网关设备之间启用三层互联,ED将此连接作为通往IP核心网的出口(如图中红线所示)。

图2:多站点独立网关(ED和网关分离)

图3:多站点独立网关(ED和网关为同一设备)

2. 多站点共用网关

多站点共用网关即指位于同一个二层网络的主机,其网关位于某个站点内的唯一设备上。如图4所示,站点2内的服务器的网关位于站点1内。典型应用场景为机房搬迁过程中的过渡期,原站点的部分服务器搬迁到新站点后,不希望修改IP地址和网关地址即能对外提供服务。待所有服务器搬迁完毕后,再将原站点内的网关转移到新站点。

图4:多站点共用网关

另外一种多站点共用网关(网关和ED分离)的形式是多台网关设备跨越核心网建立VRRP的主备关系。此时需要在ED设备上将VRRP的协议组播MAC地址配置为选择性泛洪地址。

三、 多站点选路

在跨站点VMotion的应用场景中,由于服务器始终位于同一个二层网络,其IP地址和网关地址不变。不做任何特殊处理的情况下,这些服务器将以相同的地址为站点外的客户端提供服务。此时对于核心网的设备来说,针对服务器所在网段的路由,只能配置为等价路由(指向多个站点)或主备路由(主用路由指向某一个站点,备用路由指向其他站点)。而无论怎样配置路由,都可能存在客户端访问服务器的流量在站点间绕行的问题。如图5所示,服务器原来位于站点1,核心网的设备通往服务器所在网段的主用路由指向站点1,备用路由指向站点2。服务器从站点1迁移到站点2之后,客户端访问服务器的流量将先发送至站点1的ED,再由站点1的ED发往站点2。服务器发往客户端的流量则直接由站点2的本地网关发送出去。

图5:客户端多站点选路

配合使用服务器负载均衡(Server Load Balance,SLB)设备和全局负载均衡(Global Server Load Balance,GSLB)技术能够提供较完善的多站点选路方案。该方案的基本原理如图6所示。

SLB设备能够对后端的一组服务器进行源地址转换,将真实IP地址转换为对外提供服务的虚IP。同时还将持续探测真实服务器,并根据特定的算法将客户端访问服务器的流量负载分担到不同的真实服务器上。在不同的站点部署不同的SLB设备,就能够将VMotion前后相同的服务器真实IP对外映射为不同的虚IP。这样对于核心网的设备来说,访问服务器的路由就是唯一的,不必配置为等价或主备路由。

剩下的问题就是要让客户端知道服务器当前位于哪个站点,应该向哪个虚IP发起访问。客户端与服务器之间的通信,绝大多数都是BS(Browser-Server)架构的。GSLB的实质就是为客户端提供DNS解析服务。当不同的客户端请求解析相同的域名时,它根据特定的算法,向这些客户端回应不同的服务器IP,使客户端访问服务器的流量实现负载分担。当发生服务器VMotion后,虚拟机管理软件应该及时通知GSLB设备,使后者能够将相关域名的解析结果更新为服务器所在的当前站点(VMotion的目的站点)对外提供的虚IP(由当前站点的SLB设备映射)。

图6:更为完善的多站点选路方案

四、 可靠性

为增加可靠性,避免ED设备单点故障,建议将ED配置为两台设备组成的IRF堆叠,与其他设备互联时使用跨设备的链路聚合提供冗余。

五、 典型配置

ED设备上关于EVI的关键配置如图7所示,包括:

(1)在连接核心网的物理接口(EVI Link对应的物理接口)下使能EVI。

(2)使能隧道并配置隧道模式为EVI。

(3)指定EVI隧道的源,隧道的目的即为该实例中所有EVI邻居的地址,无需手工指定。

(4)配置EVI实例编号以及该实例关联的扩展VLAN。

(5)指定ED的角色是ENDP的客户端还是服务器,如果是客户端还需要同时指定其服务器的地址。

(6)建议使能ARP泛洪抑制。为避免对端站点内的MAC地址老化后,本端ED在收到通知并已删除相关MAC地址表项的情况下,仍然代答来自本地站点内的相关ARP请求。建议将MAC地址老化时间修改为大于ARP代答表项的缓存时间,与ARP泛洪抑制配合使用。

图7:典型配置

六、 小结

通过本期内容,读者们应该能够掌握EVI的典型应用场景和典型组网模型,在规划部署EVI网络时,实施合理而规范的配置。不同产品(包括不同版本)的EVI协议实现或部分功能特性可能存在差别。更多产品实现的细节,可以参考具体产品具体版本的官方操作手册和命令手册。


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值