2018-01-04 本文转载自华为support文章 原文
1.简介
1.1 定义
RFC7348定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)。VXLAN采用MAC in UDP(User Da/ zzztagram Protocol)封装方式,是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术。
1.2 目的
服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为了实现业务的灵活变更,虚拟机VM(Virtual Machine)需要能够在网络中不受限迁移,这给传统的“二层+三层”数据中心网络带来了新的挑战。
为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生,其能够很好地解决如下问题:
针对虚拟机规模受设备表项规格限制
服务器虚拟化后,VM的数量比原有的物理机发生了数量级的增长,而接入侧二层设备的MAC地址表规格较小,无法满足快速增长的VM数量。
VXLAN将管理员规划的同一区域内的VM发出的原始报文封装成新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,这样报文对网络中的其他设备只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。
针对网络隔离能力限制
VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足。
租户是一套完整的可用于数据中心网络部署的逻辑资源的集合,逻辑资源包括VLAN、IP地址池等网络资源和物理服务器、虚拟机等计算资源。租户有各自的租户管理员进行网络业务的编排和部署。
VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,有效地解决了云计算中海量租户隔离的问题。
虚拟机迁移范围受限
虚拟机迁移是指将虚拟机从一个物理机迁移到另一个物理机。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址、MAC地址等参数保持不变,这就要求虚拟机迁移必须发生在一个二层网络中。而传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内。
VXLAN将VM发出的原始报文进行封装后通过VXLAN隧道进行传输,隧道两端的VM不需感知传输网络的物理架构。这样,对于具有同一网段IP地址的VM而言,即使其物理位置不在同一个二层网络中,但从逻辑上看,相当于处于同一个二层域。即VXLAN技术在三层网络之上,构建出了一个虚拟的大二层网络,只要虚拟机路由可达,就可以将其规划到同一个大二层网络中。这就解决了虚拟机迁移范围受限问题。
1.3 受益
随着数据中心在物理网络基础设施上实施服务器虚拟化的快速发展,作为NVO3技术之一的VXLAN:
VXLAN特性在本质上属于一种VPN技术,能够在任意路由可达的网络上叠加二层虚拟网络,通过VXLAN网关实现VXLAN网络内部的互通,同时,也可以实现与传统的非VXLAN网络的互通。
VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,无需关注虚拟机的MAC地址。且路由网络无网络结构限制,具备大规模扩展能力。通过路由网络,虚拟机迁移不受网络架构限制。
2 原理描述
2.1 vxlan网络架构
VXLAN是NVO3中的一种网络虚拟化技术,通过将原主机发出的数据包封装在UDP中,并使用物理网络的IP、MAC作为外层头进行封装,然后在IP网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标主机。
通过VXLAN,虚拟网络可接入大量租户,且租户可以规划自己的虚拟网络,不需要考虑物理网络IP地址和广播域的限制,降低了网络管理的难度,同时满足数据中心大二层虚拟迁移和多租户的需求。
类似于传统的VLAN网络,VXLAN网络也有VXLAN网络内互访和VXLAN网络间互访。
2.1.1 vxlan网络内互访
通过VXLAN技术可以实现在已有三层网络上构建虚拟二层网络,实现VM之间的二层互通。VXLAN网络内互访如下图所示。
VXLAN网络内互访中涉及的概念如下:
网络标识VNI(VXLAN Network Identifier)
类似于传统网络中的VLAN ID,用于区分VXLAN段,不同VXLAN段的租户不能直接进行二层通信。一个租户可以有一个或多个VNI,VNI由24比特组成,支持多达16M的租户。
广播域BD(Bridge Domain)
类似传统网络中采用VLAN划分广播域方法,在VXLAN网络中通过BD划分广播域。
在VXLAN网络中,将VNI以1:1方式映射到广播域BD,一个BD就表示着一个广播域,同一个BD内的VM就可以进行二层互通。
VXLAN隧道端点VTEP(VXLAN Tunnel Endpoints)
VTEP可以对VXLAN报文进行封装和解封装。
VXLAN报文中源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。一对VTEP地址就对应着一条VXLAN隧道。在源端封装报文后通过隧道向目的端VTEP发送封装报文,目的端VTEP对接收到的封装报文进行解封装。
虚拟接入点VAP(Virtual Access Point)
VXLAN业务接入点,可以基于VLAN或报文流封装类型(相关介绍参考2.2.3.1 报文识别)接入业务:
- 基于VLAN接入业务:在VTEP上建立VLAN与BD的一对一或多对一的映射。这样,当VTEP收到业务侧报文后,根据VLAN与BD的映射关系,实现报文在BD内进行转发。
- 基于报文流封装类型接入业务:在VTEP连接下行业务的物理接口上创建二层子接口,并配置不同的流封装类型,使得不同的接口接入不同的数据报文。同时,将二层子接口与BD进行一一映射。这样业务侧报文到达VTEP后,即会进入指定的二层子接口。即根据二层子接口与BD的映射关系,实现报文在BD内进行转发。
网络虚拟边缘NVE(Network Virtualization Edge)
NVE是实现网络虚拟化功能的网络实体。报文经过NVE封装转换后,NVE间就可基于三层基础网络建立二层虚拟化网络,图中的交换机设备即为NVE。
二层网关
类似传统网络的二层接入设备,在VXLAN网络中通过二层网关解决租户接入VXLAN虚拟网络,也可用于同一VXLAN虚拟网络的子网通信。
2.1.2 vxlan网络间互访
不同BD之间的VM不能直接进行二层通信,需要通过VXLAN三层网关实现VM的三层通信。VXLAN网络间互访网络架构如下图所示。
VXLAN网络间互访中涉及的概念如下:
三层网关
类似传统网络中不同VLAN的用户间不能直接进行二层互访,不同VNI之间的VXLAN及VXLAN和非VXLAN之间也不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,引入了VXLAN三层网关的概念。
三层网关用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。
VBDIF接口
类似于传统网络中采用VLANIF解决不同广播域互通的方法,在VXLAN中引入了VBDIF的概念。
VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口。通过VBDIF接口配置IP地址可实现不同网段的VXLAN间,及VXLAN和非VXLAN的通信,也可实现二层网络接入三层网络。
2.1.3 与vlan对比
上面介绍VXLAN相关概念时与传统网络中的VLAN进行了对比,下面总结VXLAN与VLAN的差别。
对比项 | VLAN网络 | VXLAN网络 |
---|---|---|
概念 | 虚拟局域网。 | 虚拟扩展局域网。 |
网络存在形式 | 将一个物理的LAN在逻辑上划分成多个广播域,并且将网络范围限制在一个较小的地域范围内。 | 在已有的任意路由可达的网络上叠加的二层虚拟网络,不受地域范围限制,具备大规模扩展能力。 |
可支持虚拟局域网范围 | VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足。 | VXLAN作为新型的网络隔离技术,在RFC 7348定义中有24比特,支持多达16M(约1600万)租户隔离,有效地解决了云计算中海量租户隔离的问题。 |
网络划分方式 | 通过VLAN ID划分广播域,同一个广播域之间的主机能进行二层互通。 | 通过BD划分广播域,同一个BD内的VM可以进行二层互通。 |
封装方式 | 在报文中添加VLAN Tag。 | 原始报文在封装过程中先被添加一个VXLAN帧头,再被封装在UDP报头中,最后使用承载网络的IP、MAC地址作为外层头进行封装。 |
网络间互通方式 | VLAN间互访通过VLANIF接口实现,VLANIF接口是一种三层的逻辑接口,可以实现VLAN间的三层互通。 | VXLAN间互访以及VXLAN和非VXLAN之间的通信通过VBDIF接口实现。 VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口。 |
给用户带来的受益 | 限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。 | 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。 位置无关性:业务可在任意位置灵活部署,缓解了服务器虚拟化后相关的网络扩展问题。 网络部署灵活性:在传统网络架构上叠加新的网络,部署方便,同时避免了大二层的广播风暴,可扩展性极强。 适合云业务:支持千万级别租户隔离,支持云业务的大规模部署。 技术优势:采用MAC in UDP封装方式,无需关注VM的MAC地址,降低了大二层网络对MAC地址规格的需求。 |
2.2 报文封装格式
原始报文在封装过程中先被添加一个VXLAN帧头,再被封装在UDP报头中,并使用承载网络的IP、MAC地址作为外层头进行封装。
字段 | 描述 |
---|---|
VXLAN header(VXLAN头封装) | VXLAN Flags: 标记位,8比特,取值为00001000。 VNI: VXLAN网络标识,用于区分VXLAN段,由24比特组成,支持多达16M的租户。一个租户可以有一个或多个VNI,不同VNI的租户之间不能直接进行二层相互通信。 Reserved: 保留未用,分别由24比特和8比特组成,设置为0。 |
Outer UDP header(外层UDP头封装) | DestPort: 目的UDP端口号,设置为4789。 Source Port: 源UDP端口号,根据内层以太报文头通过哈希算法计算后的值。 |
Outer IP header(外层IP头封装) | IP SA: 源IP地址,VXLAN隧道源端VTEP的IP地址。 IP DA: 目的IP地址,VXLAN隧道目的端VTEP的IP地址。 |
Outer Ethernet header(外层Ethernet头封装) | MAC DA: 目的MAC地址,为到达目的VTEP的路径上,下一跳设备的MAC地址。 MAC SA: 源MAC地址,发送报文的源端VTEP的MAC地址。 802.1Q Tag: 可选字段,该字段为报文中携带的VLAN Tag。 Ethernet Type: 以太报文类型,IP协议报文中该字段取值为0x0800。 |
2.3 VXLAN运行机制
在设备上部署VXLAN网络时,需要分别对下行接入业务选择部署以及上行VXLAN隧道建立部署,两者部署完成后,报文就能在VXLAN网络中进行转发。因此,VXLAN运行机制可以概括为:报文识别、隧道建立以及报文转发。
2.3.1 报文识别
在VXLAN网络中,将VNI以1:1方式映射到广播域BD。当报文到达VTEP后,VTEP只要能够识别出报文所属的BD,就能够选择正确的VXLAN隧道进行转发。VTEP有两种方式识别报文所属的VXLAN。
基于VLAN识别报文所属的VXLAN
基于网络规划,在VTEP上建立VLAN与BD的一对一或多对一的映射。这样,当VTEP收到业务侧报文后,根据VLAN与BD以及BD与VNI的对应关系即能够选择相应的VXLAN隧道进行转发。
如下图所示,VLAN 10与VLAN 20同属于BD 10,VTEP上存在BD 10与VLAN 10和VLAN 20的对应关系,同时BD 10对应的VXLAN的VNI为1000。这样当VTEP接收到PC_1或PC_2的报文时,就能够选择正确的VXLAN隧道进行转发。
基于报文流封装类型识别报文所属的VXLAN
报文的流封装类型可概括地分为携带指定VLAN Tag与不携带VLAN Tag两种。基于此,在VTEP连接下行业务的物理接口上创建二层子接口,并配置二层子接口对报文的不同处理方式,同时将二层子接口与BD进行一一映射。这样业务侧报文到达VTEP后,即会进入指定的二层子接口。VTEP即能够根据二层子接口与BD的映射关系,以及BD与VNI的映射关系,选择正确的VXLAN隧道进行报文转发。
如下表所示,不同流封装类型的二层子接口对报文的处理方式分为四种。
流封装类型 | 允许进入VXLAN隧道的报文类型 | 对VXLAN报文进行封装处理 | 对VXLAN报文进行解封装处理 |
---|---|---|---|
dot1q | 只允许携带指定VLAN Tag的报文进入VXLAN隧道。 | 进行VXLAN封装时,会剥离原始报文的VLAN Tag。 | 进行VXLAN解封装后,会根据子接口上dot1q终结配置的vid为报文添加VLAN Tag,再转发。 |
untag | 只允许不携带VLAN Tag的报文进入VXLAN隧道。 | 进行VXLAN封装时,不对原始报文做处理,即不添加任何VLAN Tag。 | 进行VXLAN解封装后,不对报文做处理,包括VLAN Tag的添加、替换或剥离。 |
default | 允许所有报文进入VXLAN隧道,不论报文是否携带VLAN Tag。 | 进行VXLAN封装时,不对原始报文做处理,包括添加、替换或剥离。 | 进行VXLAN解封装后,不对报文做处理,包括VLAN Tag的添加、替换或剥离。 |
qinq | 只允许带有指定的两层VLAN Tag的报文进入VXLAN隧道。 | 进行VXLAN封装时,会剥离原始报文的所有VLAN Tag。 |
进行VXLAN解封装后:
S5720HI: 根据子接口上QinQ终结配置的ce-vid和pe-vid为报文添加两层VLAN Tag,再转发。
其他形态: 若报文不带VLAN Tag,则先根据子接口上QinQ终结配置的ce-vid和pe-vid为报文添加两层VLAN Tag,再转发;若报文带VLAN Tag,则先剥掉外层VLAN Tag再根据子接口上QinQ终结配置的ce-vid和pe-vid为报文添加两层VLAN Tag,再转发。
如下图所示,VTEP基于物理接口GE0/0/1有两个子接口,不同的流封装类型与不同的BD进行绑定。PC_1与PC_2分别属于VLAN 10和VLAN 30,二层交换机上行连接VTEP的接口上配置的接口类型是Trunk,允许通过的VLAN为10和30,PVID为VLAN 30。当PC_1发出的报文经过该接口时,由于接口的缺省VID与报文的VID不同,直接透传该报文到VTEP;当PC_2发出的报文经过该接口时,由于报文的VID与接口的缺省VID相同,剥离VID=30的Tag。因此,PC_1与PC_2发出的报文到达VTEP的GE0/0/1接口时,一个是携带VLAN 10的,一个是不携带VLAN Tag的。为了区分两种报文,就必须要在GE0/0/1上分别创建dot1q和untag类型的二层子接口:
- 创建二层子接口GE0/0/1.1流封装类型为dot1q,允许携带指定VLAN Tag为10的报文进入VXLAN隧道。
- 创建二层子接口GE0/0/1.2流封装类型为untag,允许不携带VLAN Tag的报文进入VXLAN隧道。
当PC_1或PC_2的报文到达VTEP时,根据报文的Tag情况选择进入不同的二层子接口,之后,VTEP根据子接口与BD,以及BD与VNI的映射关系,即能够选择正确的VXLAN隧道进行报文转发。
2.3.2 隧道建立
VXLAN隧道由一对VTEPIP地址确定。静态VXLAN隧道的创建需要通过手工配置源端和目的端的VNI与VTEP的IP地址,只要VXLAN隧道两端VTEP IP是路由可达的,VXLAN隧道就可以建立成功。
如下图所示,Switch1上部署了Host2和Host3,Switch2上部署了Host1。为了实现各主机之间互相通信,需要建立VXLAN隧道。
VXLAN隧道建立情况分以下两种:
- 由于Host1与Host2有着相同的业务需求,则将其规划为同一网段,需要在Switch1与Switch2上配置相同的VNI,属于同一VNI的主机处于同一个逻辑二层网络,彼此之间可以直接通过VXLAN隧道实现二层互联。为了实现Host1与Host2进行通信,需要在Switch1和Switch2上手动配置VNI和VTEP IP地址,只要Switch1和Switch2上两端VTEP IP是路由可达的,就可以建立到对端的VXLAN隧道。
- 由于Host1与Host3业务需求不同,则将其规划为不同网段,需要在Switch1与Switch2上配置不同的VNI,属于不同VNI的主机之间不能直接进行VXLAN二层互联,需要经过VXLAN三层网关。为了实现Host1与Host3进行通信,需要分别在Switch1和Switch3以及Switch2和Switch3之间静态配置VNI和VTEP地址,只要Switch1和Switch3上两端VTEP IP是路由可达的,就可以建立到对端的VXLAN隧道;同样的,只要Switch2和Switch3上两端VTEP IP是路由可达的,就可以建立到对端的VXLAN隧道。
2.3.3 报文转发
VXLAN将二层网络报文封装为VXLAN格式的报文,可以跨传统的三层网络进行传输,使得用户能够在三层网络之上构建逻辑的大二层网络。
MAC地址学习
在VXLAN网络中,为了实现用户的互通,支持MAC地址动态学习。下图详细介绍同子网主机互通时MAC地址学习过程。由于是首次进行通信,PC_1上没有PC_2的MAC地址,所以会发送ARP广播报文请求PC_2的MAC地址。
ARP请求报文的转发流程如下:
- PC_1发送源MAC为MAC_1、目的MAC为全F、源IP为IP_1、目的IP为IP_2的ARP广播报文,请求PC_2的MAC地址。
- Switch1收到来自PC_1发出的ARP请求后,根据报文接入端口的配置判断报文需要进入VXLAN隧道。由于接入端口的配置与BD是1:1的映射关系,因此就确定了报文所属BD,同时,也就确定了报文所属的VNI。然后,VTEP1学习MAC_1、VNI和报文入接口的对应关系,并记录在本地MAC表中。之后,VTEP1根据对应的BD获取对应VNI的隧道列表,对报文进行复制并分别进行封装。封装的外层源IP地址为源端VTEP1的IP地址,外层目的IP地址为目的端VTEP2和VTEP3的IP地址;外层源MAC地址为源端VTEP1的MAC地址,而外层目的MAC地址为去往目IP的网络中下一跳设备的MAC地址。封装后的报文,根据外层MAC和IP信息,在网络中进行传输,直至到达对端VTEP2/VTEP3。
- Switch2/Switch3上VTEP2和VTEP3收到VXLAN报文后对报文进行解封装,得到PC_1发送的原始报文。同时,VTEP2和VTEP3学习PC_1的MAC地址、VNI和远端VTEP的IP地址的对应关系,并记录在本地MAC表中。之后,VTEP2和VTEP3根据接口上的配置对报文进行相应的处理并在对应的二层域内广播。
- PC_2和PC_3接收到ARP请求后,判断报文中的目的IP地址是否为本机的IP地址。如果目的IP不是本机IP,则将报文丢弃;如果目的IP是本机IP,则对ARP请求做出应答。
如上图所示,ARP应答报文的转发流程如下:
- 由于PC_2学习到PC_1的MAC地址,所以ARP应答报文为单播报文。报文源MAC为MAC_2,目的MAC为MAC_1,源IP为IP_2、目的IP为IP_1。
- VTEP2收到ARP应答报文后,识别报文所属VNI。同时,VTEP2学习MAC_2、VNI和报文入接口的对应关系,并记录在本地MAC表中。之后,VTEP2对报文进行封装。封装的外层源IP地址为源端VTEP2的IP地址,外层目的IP地址为目的端VTEP1的IP地址;外层源MAC地址为源端VTEP2的MAC地址,而外层目的MAC地址为去往目IP的网络中下一跳设备的MAC地址。封装后的报文,根据外层MAC和IP信息,在网络中进行传输,直至到达对端VTEP1。
- 报文到达VTEP1后,VTEP1对报文进行解封装,得到PC_2发送的原始报文。同时,VTEP1学习PC_2的MAC地址、VNI和远端VTEP2的IP地址的对应关系,并记录在本地MAC表中。之后,VTEP1将解封装后的报文发送给PC_1。PC_1和PC_2均已学习到了对方的MAC地址,之后,PC_1和PC_2将采用单播方式进行通信。
同子网报文转发
根据报文中包含的目的MAC地址类型,报文转发流程分为已知单播报文转发和BUM(Broadcast&Unknown-unicast&Multicast)报文转发两部分。
已知单播报文转发流程
已知单播报文转发流程如图下所示。
- Switch1收到来自PC_1的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域,并在该二层广播域内查找出接口和封装信息。
- Switch1上VTEP1根据查找到的封装信息对数据报文进行VXLAN封装,然后根据查找到的出接口进行报文转发。
- Switch2上VTEP2收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。然后依据VNI获取对应的二层广播域,进行VXLAN解封装,获取内层的二层报文。
- Switch2根据内层二层报文的目的MAC,从本地MAC表找到对应的出接口和封装信息,为报文添加VLAN Tag,转发给对应的主机PC_2。
BUM报文转发流程
当BUM报文进入VXLAN隧道,源端VTEP依据获取的隧道列表对报文进行复制,并分别进行封装。BUM报文出VXLAN隧道,目的端VTEP对报文解封装。BUM报文的转发流程如图下所示。
说明:
隧道列表:在VXLAN网络中,同一个VNI可以配置多个目的端VTEP的IP地址,这些目的端VTEP的IP地址可以看作隧道列表。接口收到BUM报文,源端VTEP将收到的BUM报文根据隧道列表进行复制并分别进行封装,最后发送给属于同一个VNI的所有VTEP- Switch1收到来自PC_1发出的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域。
- Switch1上VTEP1根据对应的二层广播域获取对应VNI的隧道列表,依据获取的隧道列表进行报文复制,并进行VXLAN封装。然后将封装后的报文从出接口转发出去。
- Switch2/Switch3上VTEP2/VTEP3收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。然后依据VNI获取对应的二层广播域,进行VXLAN解封装,获取内层二层报文。
- Switch2/Switch3检查内层二层报文的目的MAC,发现是BUM MAC,在对应的二层广播域内的非VXLAN隧道侧进行广播处理,即:Switch2/Switch3分别从本地MAC表中找到非VXLAN隧道侧的所有出接口和封装信息,为报文添加VLAN Tag,转发给对应的PC_2/PC_3。
跨子网报文转发
VXLAN为站点内的用户提供三层业务时,需要在网络中部署VXLAN三层网关,以便站点内的用户通过三层网关与外界网络或其他VXLAN网络内的用户进行三层通信。跨子网报文转发的流程如下图所示。
由于是首次进行通信,且PC_1和PC_2处于不同的网段,PC_1需要先发送ARP广播报文请求网关VBDIF10的MAC,获得网关的MAC后,PC_1先将数据报文发送给网关;之后网关也将发送ARP广播报文请求PC_2的MAC,获得PC_2的MAC后,网关再将数据报文发送给PC_2。以上MAC地址学习流程与MAC地址学习的流程一致。
- Switch1收到来自PC_1的报文,根据报文中接入的端口和VLAN信息获取对应的二层广播域,在对应的二层广播域内查找出接口和封装信息。
- Switch1上VTEP1根据查找到的出接口和封装信息进行VXLAN封装,向Switch3转发报文。
- Switch3收到VXLAN报文后进行解封装,发现内层报文中的目的MAC是三层网关接口VBDIF10的MAC地址MAC_3,判断需要进行三层转发。
- Switch3剥除内层报文的以太封装,解析目的IP。根据目的IP查找路由表,找到目的IP的下一跳地址,再根据下一跳地址查找ARP表项,获取目的MAC、VXLAN隧道出接口及VNI等信息。
- Switch3重新封装VXLAN报文,向Switch2转发。其中内层报文以太头中的源MAC是三层网关接口VBDIF20的MAC地址MAC_4。
- Switch2上VTEP2收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。依据VNI获取对应的二层广播域,然后进行VXLAN解封装,获取内层二层报文,并在对应的二层广播域内查找出接口和封装信息。
- Switch2根据查找到的出接口和封装信息,为报文添加VLAN Tag,转发给对应的PC_2。
2.4 VXLAN QoS
VXLAN QoS用来实现原始报文携带的QoS优先级、设备内部优先级(又称为本地优先 级,是设备内部区分报文服务等级的优先级)与封装后报文优先级之间的转换,从而 可以依据原始报文提供有差别的QoS服务。
上图,VXLAN QoS实现的原始报文携带的QoS优先级、设备内部优先级与封装后报文优先级之间的转换过程如下。
- 原始报文由二层子接口进入Switch1设备,原始报文按照主接口上绑定的DiffServ模板进行映射,将原始报文的802.1p优先级映射为设备内部优先级(PHB行为和报文颜色),以此入队列。
2.报文进入隧道,对报文进行封装,封装报文外层的802.1p优先级和DSCP优先级由原始报文内部优先级按照DiffServ域的缺省模板进行映射。报文按照映射后的优先级在隧道中进行传输。 - 报文出隧道时,根据隧道接口上配置的信任类型802.1p或DSCP(以太网接口处于三层模式时只能信任DSCP),按照DiffServ域的缺省模板进行映射,映射为设备内部优先级,进入队列进行传输。
- 最后,由设备内部优先级按照主接口上绑定的DiffServ域模板进行映射,映射到出接口报文的802.1p优先级,报文按照映射后的优先级进行传输。
对于接入侧设备为S6720S-EI或S6720EI时,原始报文的DSCP值出方向不支持映射,入方向根据配置进行正常映射,其他映射规则如下表。
VXLAN网络接入侧接入方式 | 映射规则 |
---|---|
基于VLAN接入VXLAN网络 | 入方向:根据报文的802.1p以及该接口上配置的DiffServ域进行映射。 出方向:根据接口上配置的DiffServ域修改报文的802.1p。 |
基于流封装类型接入VXLAN网络且封装类型为default | 入方向:若报文不携带VLAN TAG,则根据报文所属主端口上通过port priority priority-value命令配置的优先级值以及该接口上配置的DiffServ域进行映射;若报文携带VLAN TAG,则根据报文的802.1p以及接口上配置的DiffServ域进行映射。 出方向:不修改报文的802.1p。 |
基于流封装类型接入VXLAN网络且封装类型为untag | 入方向:根据报文所属主端口上通过port priority priority-value命令配置的优先级值以及接口上配置的DiffServ域进行映射。 出方向:不修改报文的802.1p。 |
基于流封装类型接入VXLAN网络且封装类型为dot1q | 入方向:根据报文的802.1p以及该接口上配置的DiffServ域进行映射。 出方向:根据接口上配置的DiffServ域修改报文的802.1p。 |
基于流封装类型接入VXLAN网络且封装类型为qinq | 入方向:根据报文外层的802.1p以及接口上配置的DiffServ域进行映射。 出方向:根据接口上配置的DiffServ域修改报文外层的802.1p。 |
3 应用场景
3.1 通过VXLAN在园区上构建虚拟数据中心网络
某企业已经建成比较成熟的园区网络,但是没有专用的数据中心网络,所有的服务器分布在不同的部门,并且不具备集中放置的条件,不同地域之间的服务器依靠园区网络互联。通过VXLAN技术,在园区网络之上构建虚拟的数据中心网络,实现资源整合和业务灵活部署。为了方便管理与维护,将具有同一业务需求的VM规划为同一网段,不同业务需求的VM规划为不同网段。例如:研发部门的VM之间需要互通,属于同网段互通;研发部和市场部的VM之间需要互通,属于不同网段互通。
VXLAN提供数据中心网络之间的二层通信。如上图所示,研发部门的VM之间进行互通时,Switch1与Switch2作为VXLAN二层网关,二者之间建立VXLAN隧道,实现同网段终端用户互通。
VXLAN提供数据中心网络之间的三层通信。例如:研发部与市场部进行互通时,Switch3作为VXLAN三层网关,分别与Switch1和Switch2建立VXLAN隧道,通过VXLAN三层网关实现不同网段终端用户互通。
在Switch上静态配置VXLAN隧道后,VXLAN网络中MAC地址表项、ARP表项等信息流表均可动态学习得到。所有表项建立好后,通过VXLAN隧道,实现同网段与不同网段终端用户互通。
3.2 数据中心网络与园区网络互访
如下图所示,企业的研发部通过VM部署,市场部通过传统网络部署,在日常工作中,数据中心网络与园区网络有互访的需求。
上图所示,数据中心网络和传统网络的边缘设备中Switch2与Switch1作为VXLAN二层网关,Switch3作为VXLAN三层网关,Switch3分别与Switch1和Switch2建立VXLAN隧道,通过VXLAN隧道进行VXLAN报文传输。
市场部向研发部VM1发送报文的流程如下:
- Switch1收到传统网络的报文后,将该报文封装成VXLAN报文,发送给Switch3。
- Switch3收到VXLAN报文后进行解封装,剥除内层报文的以太封装,解析目的IP,根据目的IP查找路由表,找到目的IP的下一跳地址,再根据下一跳地址查找ARP表项,确认目的MAC、VXLAN隧道出接口及VNI等信息。
- 查找到VXLAN隧道出接口及VNI信息后,Switch3重新封装VXLAN报文,发送给Switch2。
- 根据报文中目的MAC,Switch2查找到出端口信息后,将报文发送给对应的VM。
3.3 通过VXLAN实现虚拟机平滑迁移
为了实现业务的灵活变更,虚拟机动态迁移已经成为了数据中心网络中的一个常态性业务。虚拟机动态迁移是指在保证虚拟机正常运行的同时,将虚拟机从一个物理服务器移动到另一个物理服务器的过程,即平滑迁移。该过程对于最终用户来说是无感知的,管理员在不影响用户正常使用的情况下可以灵活调配服务器资源或者对物理服务器进行维护和升级。
虚拟机动态迁移的关键是要保证在迁移时,虚拟机上的业务不会中断,这就要求虚拟机的IP地址、MAC地址等参数保持不变,所以虚拟机的迁移只能在同一个二层域内进行,而不能跨二层域迁移。如下图所示,某企业在数据中心中有两个Server,其中研发部和市场部都在Server1上,财务部在Server2上。由于Server1上显示计算空间不足,而Server2未充分利用,网络管理员需要将研发部迁移到Server2上,并且不影响业务。
为了实现将研发部迁移到Server2,可以采用VXLAN技术,在不感知当前物理网络的情况下,能够在任意路由可达的网络上叠加二层虚拟网络。通过将研发部VM发出的原始报文进行封装后通过VXLAN隧道进行传输,隧道两端的VM不需感知传输网络的物理架构。这样,对于具有同一网段IP地址的VM而言,即使其物理位置不在同一个二层网络中,但从逻辑上来看,相当于处于同一个二层域。
研发部迁移流程如下:
- 研发部从Server1迁移到Server2。
- 研发部对应的VM发送免费ARP报文或RARP报文告知Switch2和其他设备。
- Switch1学习到VM的免费ARP报文或RARP报文后,删除老的MAC地址表和ARP表,更新为迁移后的VM对应的MAC地址表和ARP表。
研发部从Server1迁移到Server2后,VM会发送免费ARP或RARP报文,所有网关设备上保存的原VM对应的MAC地址表和ARP表都将会被删除,更新为迁移后的VM对应的MAC地址表和ARP表。
4 配置注意事项
特性依赖和限制
在交换机上部署VXLAN功能时,需要注意:
- 在配置VXLAN二层子接口的封装类型为qinq或dot1q时,设备在VCMP管理域中的角色不能为Client,可以通过命令vcmp role { server | silent | transparent }配置设备在VCMP管理域中为其他角色,或者通过命令vcmp disable在接口下去使能VCMP功能。
- VXLAN隧道不支持叠加MPLS LSP隧道。VTEP(VXLAN Tunnel Endpoints)节点收到对端发送来的VXLAN报文不能有MPLS封装,否则无法进行解封装。
- VXLAN隧道不支持叠加GRE隧道。VTEP节点收到对端发送来的VXLAN报文不能有GRE封装,否则无法进行解封装。
- 设备从VXLAN隧道的对端收到VXLAN报文,如果设备创建了VXLAN报文包含的VNI(VXLAN Network Identifier),但是没有绑定VNI到本设备的VXLAN隧道时,设备依然可以对收到的VXLAN报文进行解封装和转发。但此时VTEP接入的业务只能实现单方向通,业务不能正常运转。
- VXLAN接入侧接口配置接口的QinQ报文外层VLAN Tag的TPID值时,对进入VXLAN网络转发的流量不生效。
- 若VXLAN网络接入侧为VXLAN二层子接口,且配置的封装类型为default时,只能同配置封装类型为default的二层子接口互通。
- MTU(Maximum Transmission Unit)称为最大传输单元,MTU的大小决定了发送端一次能够发送报文的最大字节数。报文进入VXLAN隧道会增加50个字节的长度,交换机不支持在报文进入VXLAN隧道时对报文分片,若报文超过接口的MTU值时,报文也可以正常转发。
- 报文进入VXLAN隧道会增加50个字节的长度,因此VXLAN报文在隧道转发过程中可能超过转发路径中设备设定的MTU值,报文会被转发路径中的设备进行分片处理。S6720EI和S6720S-EI不支持对分片的VXLAN报文进行重组和解封装,若VXLAN隧道侧设备为S6720EI和S6720S-EI时,建议调小数据源端发出报文的大小,确保报文在网络中不会被分片,或者调大VXLAN报文转发路径上转发设备的MTU值,使得VXLAN报文在转发过程中不会被分片。
- 对于S6720EI和S6720S-EI,如果接入VXLAN的接口同时还作为组播流入接口,会导致相应组播数据无法正常转发。
- 对于S6720EI和S6720S-EI,不支持目的UDP端口号为4789的数据报文进入VXLAN隧道。
对于S6720EI和S6720S-EI,若多个VXLAN隧道公用一个隧道侧接口,并且隧道侧接口为VLANIF接口时,这些隧道必须使用同一个VLANIF接口来进行报文转发,否则会引起转发异常。 - 设备在VXLAN隧道建立下发隧道表时存在因表项hash冲突而下发失败的情况,当下发失败时会触发告警ADPVXLAN_1.3.6.1.4.1.2011.5.25.227.2.1.42 hwVxlanTnlCfgFailed,此时建议用户调整VNI ID的配置,重新配置VXLAN隧道。
5 配置VXLAN
5.1 配置VXLAN接入业务部署方式
前置任务
在配置用户通过VXLAN隧道互通之前,需配置网络路由可达。
配置流程
通过VXLAN在园区上构建虚拟数据中心网络实现二层互通与三层互通的配置流程分别如下图所示。
通过VXLAN在园区上构建虚拟数据中心网络(二层互通)的配置流程图
通过VXLAN在园区上构建虚拟数据中心网络(三层互通)的配置流程图
5.1 配置VXLAN接入业务部署方式
背景信息
在设备上部署VXLAN网络时,需要对下行接入业务进行选择部署。
针对接入业务侧的部署,有两种方式:
- 基于VLAN方式:将一个或多个VLAN与BD进行关联,实现将指定VLAN内的用户加入BD。该方式控制粒度较粗,但配置简单,适合在现网上直接进行部署。
- 基于报文流封装类型:根据报文携带VLAN Tag的情况,将不同流封装类型的报文送到不同的二层子接口,并将二层子接口与BD进行绑定,以实现将指定用户加入到BD。该方式控制粒度较细且较为灵活,但配置复杂,适合在新建网上进行部署。
操作步骤
- 执行命令
system-view
,进入系统视图。 - (可选)执行命令
set vxlan resource super-mode
,配置VXLAN的大规格模式。缺省情况下,设备支持配置的BD域规格为4096。配置为大规格模式后支持配置的BD域规格为16000。说明:
- 配置VXLAN的大规格模式后需要保存配置并重启设备才能生效。
- 当配置为VXLAN的大规格模式时,可能导致部分业务转发性能下降。如:IP组播业务、VPLS业务、VLAN Mapping业务、VLAN Stacking业务、以及子接口三层转发业务。
- 执行命令
bridge-domain *bd-id*
,创建广播域BD,并进入BD视图。 缺省情况下,没有创建广播域BD。 - (可选)执行命令
description *description*
,配置BD的描述信息。 缺省情况下,未配置BD的描述信息。 执行命令
quit
,退出BD视图,返回到系统视图。配置业务接入点接入业务:
- 执行命令
vlan *vlan-id*
,创建VLAN并进入VLAN视图。 - 执行命令
quit
,退出VLAN视图,返回到系统视图。 - 执行命令
bridge-domain *bd-id*
,进入已经创建的BD视图。 - 执行命令
l2 binding vlan *vlan-id*
,将指定VLAN与BD相关联,实现数据报文在BD内进行转发。缺省情况下,VLAN与BD无关联。说明:
- 绑定到BD的VLAN必须已经创建。
- 一个VLAN只能绑定一个BD,但是一个BD可以绑定多个VLAN。
- 将全局VLAN与BD相关联后,需要将设备上相关接口加入该VLAN。
- 若VLAN被指定为Voice VLAN后,该VLAN将不能与BD进行关联。
- 执行命令
基于报文流封装类型:
- 执行命令
interface *interface-type interface-number*
,进入需要创建二层子接口的主接口视图。 - 执行命令
port link-type {trunk | hybrid}
,配置接口的链路类型为trunk或者hybrid
。 - 执行命令
quit
,返回系统视图。 - 执行命令
interface *interface-type interface-number.subnum* mode l2
,创建二层子接口,并进入二层子接口视图。 - 执行命令
encapsulation {dot1q vid *pe-vid* | default | untag | qinq vid *vlan-vid* ce-vid *ce-vid*}
,配置二层子接口允许通过的流封装类型,实现不同的接口接入不同的数据报文。缺省情况下,二层子接口没有配置允许通过的流封装类型。 - 执行命令
bridge-domain *bd-id*
,将指定二层子接口与BD相关联,实现数据报文在BD内进行转发。缺省情况下,二层子接口与BD无关联。说明:
配置二层子接口允许通过的流封装类型时,需要注意以下几点:- 二层子接口封装的
dot1q
的VLAN与qinq
的外层VLAN,不能与对应主接口允许通过的VLAN相同,也不能与全局VLAN相同。 - 在同一个主接口下,
dot1q
的VLAN与qinq
的外层VLAN互斥。 - 二层子接口下配置流封装类型为
default
时,必须确保对应的主接口没有加入任何VLAN,包括VLAN 1。 - 二层子接口下配置流封装类型为
default
前,主接口下有且仅有一个子接口。 - 二层子接口下配置流封装类型为
default
后,该主接口下不能再创建其他子接口。 - 二层子接口下配置流封装类型为
untag
时,该主接口下不能在其他子接口下配置untag
。
- 二层子接口封装的
- 执行命令
公子青注: 本文因使用markdown编辑,关键字部分如 *vlan-id* 代表斜体格式,即 用户自定义参数部分(非命令字)。
5.2 配置VXLAN隧道
背景信息
在设备上部署VXLAN网络时,需要对上行VXLAN隧道建立部署。
VXLAN隧道是通过隧道两端的VTEP的IP地址建立的,所以需要在隧道两端的设备上分别配置源端VTEP与目的端VTEP的IP地址。
如下图所示,以Switch1为例,详细介绍VXLAN隧道所需配置。
- VXLAN隧道源端VTEP的IP地址:VXLAN报文中源IP地址,即Switch1的GE1/0/1的IP地址。
- VXLAN隧道目的端VTEP的IP地址:VXLAN报文中目的IP地址,即Switch2的GE1/0/1的IP地址。
操作步骤
- 执行命令
system-view
,进入系统视图。 - 执行命令
bridge-domain *bd-id*
,进入BD视图。 - 执行命令
vxlan vni *vni-id*
,配置BD所对应的VXLAN的VNI。 缺省情况下,没有配置BD所对应的VXLAN的VNI。 - 执行命令
quit
,退出BD视图,返回到系统视图。 - 执行命令
interface nve *nve-number*
,创建NVE接口,并进入NVE接口视图。 - 执行命令
source *ip-address*
,配置VXLAN隧道源端VTEP的IP地址。 缺省情况下,VXLAN隧道源端VTEP没有配置IP地址。 - 执行命令
vni *vni-id* head-end peer-list *ip-address &<1-10>*
,配置指定VNI的VXLAN隧道目的端VTEP的IP地址。 缺省情况下,未指定VNI的VXLAN隧道目的端VTEP的IP地址。 - 执行命令
quit
,退出NVE接口视图,返回到系统视图。说明:
- 即使源端VTEP对应一个目的端VTEP,也需要执行命令
vni head-end peer-list
指定对应的VTEP地址。 - 执行命令
ping
,检查隧道两端设备路由是否可达。当隧道两端设备路由可达时,隧道能建立成功并可以正常转发报文。若隧道两端仅存在到对方的路由,且路由不可达时,隧道仍然能UP,但是不能完成报文转发。 - 若隧道侧通过静态路由转发,建议同时配置静态路由和BFD的联动,这样当链路出现故障时可以及时删除路由。避免存在不可达路由但隧道仍然UP,导致的VXLAN报文丢包。
- 即使源端VTEP对应一个目的端VTEP,也需要执行命令
5.3 配置VXLAN三层网关
背景信息
VBDIF接口在VXLAN三层网关上配置,用于跨网段报文的转发,因此同网段通信时不需要配置。
VXLAN为站点内的用户提供三层业务时,需要在网络中部署VXLAN三层网关,以便站点内的用户通过VXLAN三层网关与外界网络或其他VXLAN网络内的用户进行三层通信。
如下图所示,基于BD可创建三层逻辑接口VBDIF接口,每个BD对应一个VBDIF接口,在为VBDIF接口配置IP地址后,该接口即可作为本BD内租户的网关,对需要进行通信的报文进行基于IP地址的三层转发。
为了实现不同网段的终端用户互通,终端用户的缺省网关地址必须是对应VXLAN三层网关上的VBDIF接口的IP地址。
操作步骤
- 执行命令
system-view
,进入系统视图。 - 执行命令
interface vbdif *bd-id*
,创建VBDIF接口,并进入VBDIF接口视图。说明:
- VBDIF接口的编号必须对应一个已经存在的ID的BD。
- 对于S6720EI和S6720S-EI,设备通过命令assign resource-mode配置资源模式为96k-arp模式时,不支持对VXLAN报文进行三层转发。
- 执行命令
ip address *ip-address* { mask | mask-length } [ sub ]
,配置VBDIF接口的IP地址,实现三层互通。缺省情况下,在VBDIF接口上没有配置IP地址。 - 执行命令
quit
,退出VBDIF接口视图,返回到系统视图。
后续处理
在配置VXLAN三层网关时,对于S6720EI和S6720S-EI配置VXLAN环回接口后,设备才能对接收的VXLAN报文解封装后进行三层转发,因此对于S6720EI和S6720S-EI作为VXLAN三层网关设备时,需要配置Eth-Trunk接口作为VXLAN的环回接口。配置步骤如下:
- 执行命令
interface eth-trunk *trunk-id*
,进入Eth-Trunk接口视图。 - 执行命令
service type vxlan-tunnel
,配置Eth-trunk接口为VXLAN环回接口。缺省情况下,设备上Eth-Trunk接口未配置为VXLAN的环回接口。 - 执行命令
trunkport *interface-type interface-number*
,将物理接口加入Eth-Trunk接口。说明:
- 配置Eth-Trunk接口为VXLAN环回接口后,Eth-Trunk接口将自动去使能STP,也不支持在此接口下配置STP相关命令。取消Eth-Trunk接口为VXLAN环回接口后,该Eth-Trunk接口将自动使能STP功能。
- 交换机上只能配置一个Eth-Trunk接口作为VXLAN环回接口,所有VDBIF接口的VXLAN报文均通过该环回接口进行封装和解封装。
- 当Eth-Trunk接口下存在成员端口时,该Eth-Trunk接口不能作为VXLAN环回接口。
若需要配置Eth-Trunk接口为环回接口时,该Eth-Trunk接口允许的配置有description
、enable snmp trap updown
、jumboframe enable
、qos phb marking enable、set flow-stat interval
、shutdown
、traffic-policy
(接口视图)和trust
,若存在除此之外的配置时,该Eth-Trunk接口不能配置为环回接口。 - 配置Eth-Trunk接口为环回接口后,该Eth-Trunk接口仅支持如下配置,
authentication open ucl-policy enable
、description
、enable snmp trap updown
、jumboframe enable
、mixed-rate link enable、qos phb marking enable
、set flow-stat interval
、shutdown
、statistic enable
(接口视图)、traffic-policy
(接口视图)、vcmp disable和trust
。 - 若要通过命令
undo service type vxlan-tunnel
取消Eth-Trunk接口作为VXLAN环回接口时,需先删除该Eth-Trunk接口下的所有成员接口。
5.4 (可选)配置BD内的流量抑制
背景信息
为了限制进入BD的广播、组播或未知单播报文的速率,防止广播风暴,可以在该BD内配置对应报文类型的流量抑制功能。
操作步骤
- 执行命令
system-view
,进入系统视图。 - 执行命令
bridge-domain *bd-id*
,创建广播域BD,并进入BD视图。 - 配置BD内的流量抑制。请根据实际需要,选择如下配置:
- 执行命令
broadcast-suppression cir *cir-value* [ cbs *cbs-value* ]
,开启BD内广播流量抑制功能。
缺省情况下,BD内广播流量抑制功能处于关闭状态。 - 执行命令
multicast-suppression cir *cir-value* [ cbs *cbs-value* ]
,开启BD内组播流量抑制功能。
缺省情况下,BD内组播流量抑制功能处于关闭状态。 - 执行命令
unknown-unicast-suppression cir *cir-value* [ cbs *cbs-value* ]
,开启BD内未知单播流量抑制功能。缺省情况下,BD内未知单播流量抑制功能处于关闭状态。
- 执行命令
5.5 (可选)配置静态MAC地址表项
背景信息
设备通过源MAC地址学习并建立MAC地址表时,无法区分合法用户和非法用户的报文,为网络安全带来了隐患。如果非法用户将攻击报文的源MAC地址伪装成合法用户的MAC地址,并从设备的其他接口进入,设备就会学习到错误的MAC地址表项,于是就会将本应转发给合法用户的报文转发给非法用户。用户可以手工在VXLAN接入侧和隧道侧的MAC地址表中加入特定的MAC地址表项,将用户设备与接口绑定,从而防止仿冒身份的非法用户骗取数据。另外,手动配置静态MAC地址表项,可以有效指导报文进行单播转发,节省带宽。
操作步骤
配置VXLAN接入侧的静态MAC地址表项。
- 执行命令
system-view
,进入系统视图。 - 执行命令
mac-address static *mac-address interface-type interface-number.subnum* bridge-domain *bd-id* { default | untag | vid *vlan-id1* [ cevid vlan-id2 ] }
,配置基于二层子接口接入VXLAN网络的接入侧设备的静态MAC地址表项。或者执行命令mac-address static *mac-address interface-type interface-number* bridge-domain *bd-id* vid *vlan-id3*
,配置基于VLAN接入VXLAN网络的接入侧设备的静态MAC地址表项。说明:
配置VXLAN接入侧设备的静态MAC地址表项时,需提前完成接入侧设备接入VXLAN网络的配置,并且配置的相应参数应同接入VXLAN网络的配置相一致。
- 执行命令
配置VXLAN隧道侧的静态MAC地址表项。
- 执行命令
system-view
,进入系统视图。 - 执行命令
mac-address static *mac-address* bridge-domain *bd-id* source-*ip-address* peer *ip-address* vni *vni-id*
,配置VXLAN网络隧道侧设备的静态MAC地址表项。说明:
配置VXLAN隧道侧设备的静态MAC地址表项时,需提前完成VXLAN隧道的创建,并且配置的相应参数应同VXLAN隧道的配置相一致。
- 执行命令
5.6 (可选)配置静态ARP表项
背景信息
静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。所以在VXLAN三层网关上配置静态ARP表项可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。
操作步骤
基于接口配置VXLAN静态ARP表项。
- 执行命令
system-view
,进入系统视图。 - 执行命令
arp static *ip-address mac-address* bridge-domain *bd-id* [ vid *vlan-id1* [ cevid *vlan-id2* ] ] interface *interface-type interface-number.subnum*
,基于接口配置VXLAN二层子接口接入点的静态ARP表项,或者通过执行命令arp static *ip-address mac-address* bridge-domain *bd-id* [ vid *vlan-id3* ] interface *interface-type interface-number*
,基于接口配置VXLAN的VLAN接入点的静态ARP表项。说明:
- 配置静态ARP表项时,如果此静态ARP表项已经存在,则不能重复配置。
- 配置的ip-address必须和ARP表项的出接口的地址在同一个网段。
- 配置参数
vid vlan-id
和cevid vlan-id
时,需同接口封装类型的配置参数保持一致。 - 在S6720EI和S6720S-EI上基于接口配置VXLAN静态ARP表项时,需要配置该ARP表项中MAC地址对应的静态MAC地址表项,否则当不存在该MAC地址表项时,到该MAC地址的用户流量将被广播。
- 执行命令
基于隧道配置VXLAN静态ARP表项。
- 执行命令
system-view
,进入系统视图。 - 执行命令
arp static *ip-address mac-address* vni *vni-id* source-ip *ip-address* peer-ip *ip-address*
,基于隧道配置VXLAN静态ARP表项。说明:
- 配置静态ARP表项时,如果此静态ARP表项已经存在,则不能重复配置。
- 配置的ip-address必须和ARP表项的出接口的地址在同一个网段。
- 配置基于隧道配置VXLAN静态ARP表项时,需提前完成相应的VXLAN隧道的创建。
- 执行命令
5.7 检查配置结果
背景信息
完成VXLAN业务接入点和VXLAN隧道配置后,执行以下命令可以查看配置信息。
操作步骤
- 执行命令
display bridge-domain [ *bd-id* [ brief | verbose ] ]
,查看BD的配置信息。 - 执行命令
display vxlan tunnel [ *tunnel-id* ] [ verbose ]
,查看VXLAN隧道的信息。 - 执行命令
display vxlan vni [ *vni-id* [ verbose ] ]
,查看VNI的VXLAN的配置信息。 - 执行命令
display vxlan peer [ vni *vni-id* ]
,查看VNI的目的端VTEP的IP地址。
6 维护VXLAN
通过查看VXLAN报文统计信息,可以实时监控VXLAN网络的运行状况。当统计信息较多时,可以将这些统计信息清除。
6.1 统计VXLAN报文统计信息
背景信息
当需要检查网络状况或处理网络故障时,可以在设备上开启BD和VXLAN隧道的报文统计功能,统计并查看VXLAN报文的统计信息,根据获取的数据统计信息进行故障诊断。
操作步骤
开启BD内报文统计功能
- 执行命令
system-view
,进入系统视图。 - 执行命令
bridge-domain *bd-id*
,创建广播域BD,并进入BD视图。 - 执行命令
statistics enable
,开启BD内报文统计功能。缺省情况下,BD内报文统计功能处于关闭状态。
- 执行命令
开启VXLAN隧道报文统计功能
- 执行命令
system-view
,进入系统视图。 - 执行命令
interface nve *nve-number*
,创建NVE接口,并进入NVE接口视图。 - 执行命令
vxlan statistics peer *peer-ip-address* [ vni *vni-id* ] enable
,开启VXLAN隧道报文统计功能。缺省情况下,VXLAN隧道报文统计功能处于关闭状态。
- 执行命令
后续处理
- 执行命令
display bridge-domain *bd-id* statistics
,查看BD内报文的统计信息。 - 执行命令
display vxlan statistics source *source-ip-address* peer *peer-ip-address* [ vni *vni-id* ]
,查看VXLAN隧道报文的统计信息。
6.2 清除VXLAN报文统计信息
在确认需要清除统计信息后,请执行以下命令。
操作步骤
- 在用户视图下执行
reset bridge-domain *bd-id* statistics
,清除指定BD内流量统计信息。 - 在用户视图下执行
reset vxlan statistics source *source-ip-address* peer *peer-ip-address* [ vni *vni-id* ]
,清除VXLAN隧道报文统计信息。
7 配置举例
7.1 通过VXLAN在园区上构建虚拟数据中心网络(二层互通)示例
组网需求
企业已经建成比较成熟的园区网络,但是没有专用的数据中心网络,所有的服务器分布在不同的部门,并且不具备集中放置的条件。现在用户希望在已有园区网络上构建一个虚拟的数据中心网络,需求如下:
- 将散落在不同部门的服务器构建成一个虚拟网络,实现资源整合和业务灵活部署。
- 各服务器上部署着大量的VM,相同业务的VM之间需要实现二层互通。
- 各VM之间由于业务需求需要在服务器之间进行平滑迁移,且保证业务不中断。
如下图所示,企业在不同的数据中心都拥有自己的VM,Server1与Server2上的VM1都属于VLAN 10,现需要通过VXLAN隧道实现相同业务的VM之间的二层互通。
数据准备
设备 | VXLAN隧道 | BD | VNI | Source IP | Peer IP |
---|---|---|---|---|---|
Switch1 | Switch1—>Switch2 | 10 | 2010 | 10.1.1.2 | 10.2.2.2 |
Switch2 | Switch2—>Switch1 | 10 | 2010 | 10.2.2.2 | 10.1.1.2 |
配置思路
采用如下思路配置同网段用户通过VXLAN隧道互通:
- 分别在Switch1、Switch2、Switch3上配置路由协议,保证网络三层互通。
- 分别在Switch1、Switch2上配置VXLAN接入业务部署方式。
- 分别在Switch1、Switch2上配置VXLAN隧道。
说明:
园区网络的三层互通是构建虚拟数据中心网络的基础条件,现网中,如果园区网络已经实现三层网络的互通,那么该举例中的步骤1可以省略。
操作步骤
配置路由协议
配置Switch1各接口IP地址。Switch2和Switch3的配置与Switch1类似,这里不再赘述。配置OSPF时,注意需要发布设备上的32位Loopback接口地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<HUAWEI> system-view
[HUAWEI] sysname Switch1
[Switch1] interface loopback 1
[Switch1-LoopBack1] ip address 10.1.1.2 32
[Switch1-LoopBack1] quit
[Switch1] interface gigabitethernet 0/0/1
[Switch1-GigabitEthernet0/0/1] undo portswitch
[Switch1-GigabitEthernet0/0/1] ip address 192.168.2.1 24
[Switch1-GigabitEthernet0/0/1] quit
[Switch1] ospf
[Switch1-ospf-1] area 0
[Switch1-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.0
[Switch1-ospf-1-area-0.0.0.0] network 192.168.2.0 0.0.0.255
[Switch1-ospf-1-area-0.0.0.0] quit
[Switch1-ospf-1] quitOSPF成功配置后,Switch之间可通过OSPF协议发现对方的Loopback接口的IP地址,并能互相ping通。以Switch1 ping Switch2的显示为例。
1
2
3
4
5
6
7
8
9
10
11
12[Switch1] ping 10.2.2.2
PING 10.2.2.2: 56 data bytes, press CTRL_C to break
Reply from 10.2.2.2: bytes=56 Sequence=1 ttl=255 time=240 ms
Reply from 10.2.2.2: bytes=56 Sequence=2 ttl=255 time=5 ms
Reply from 10.2.2.2: bytes=56 Sequence=3 ttl=255 time=5 ms
Reply from 10.2.2.2: bytes=56 Sequence=4 ttl=255 time=14 ms
Reply from 10.2.2.2: bytes=56 Sequence=5 ttl=255 time=5 ms
--- 10.2.2.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 5/53/240 ms
分别在Switch1、Switch2上配置业务接入点
配置Switch1。
1
2
3
4
5
6
7
8
9[Switch1] bridge-domain 10
[Switch1-bd10] quit
[Switch1] interface gigabitethernet 0/0/2
[Switch1-GigabitEthernet0/0/2] port link-type trunk
[Switch1-GigabitEthernet0/0/2] quit
[Switch1] interface gigabitethernet 0/0/2.1 mode l2
[Switch1-GigabitEthernet0/0/2.1] encapsulation dot1q vid 10
[Switch1-GigabitEthernet0/0/2.1] bridge-domain 10
[Switch1-GigabitEthernet0/0/2.1] quit配置Switch2。
1
2
3
4
5
6
7
8
9[Switch2] bridge-domain 10
[Switch2-bd10] quit
[Switch2] interface gigabitethernet 0/0/2
[Switch2-GigabitEthernet0/0/2] port link-type trunk
[Switch2-GigabitEthernet0/0/2] quit
[Switch2] interface gigabitethernet 0/0/2.1 mode l2
[Switch2-GigabitEthernet0/0/2.1] encapsulation dot1q vid 10
[Switch2-GigabitEthernet0/0/2.1] bridge-domain 10
[Switch2-GigabitEthernet0/0/2.1] quit
分别在Switch1、Switch2上配置VXLAN隧道
配置Switch1。
1
2
3
4
5
6
7[Switch1] bridge-domain 10
[Switch1-bd10] vxlan vni 2010
[Switch1-bd10] quit
[Switch1] interface nve 1
[Switch1-Nve1] source 10.1.1.2
[Switch1-Nve1] vni 2010 head-end peer-list 10.2.2.2
[Switch1-Nve1] quit配置Switch2。
1
2
3
4
5
6
7[Switch2] bridge-domain 10
[Switch2-bd10] vxlan vni 2010
[Switch2-bd10] quit
[Switch2] interface nve 1
[Switch2-Nve1] source 10.2.2.2
[Switch2-Nve1] vni 2010 head-end peer-list 10.1.1.2
[Switch2-Nve1] quit
验证配置结果
上述配置成功后,在Switch1、Switch2上执行display vxlan vni命令可查看到VNI的状态是Up;执行display vxlan tunnel命令可查看到VXLAN隧道的信息。以Switch1显示为例。
1
2
3
4
5
6
7
8
9
10
11
12[Switch1] display vxlan vni
VNI BD-ID State
-----------------------------------------
2010 10 up
-----------------------------------------
Number of vxlan vni bound to BD is : 1
[Switch1] display vxlan tunnel
Tunnel ID Source Destination State Type
----------------------------------------------------------------------------
4026531841 10.1.1.2 10.2.2.2 up static
----------------------------------------------------------------------------
Number of vxlan tunnel : 1配置完成后,同网段用户通过VXLAN隧道可以互通。以服务器1上的VM1 ping服务器2上的VM1的显示为例。
1
2
3
4
5
6
7
8
9
10
11
12C:\Users\VM1>ping 192.168.10.2
Pinging 192.168.10.2 with 32 bytes of data:
Reply from 192.168.10.2: bytes=32 time=1ms TTL=126
Reply from 192.168.10.2: bytes=32 time=1ms TTL=126
Reply from 192.168.10.2: bytes=32 time=1ms TTL=126
Reply from 192.168.10.2: bytes=32 time=1ms TTL=126
Ping statistics for 192.168.10.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
配置文件
公子青注
原文此处有误,在此省略该部分。
7.2 通过VXLAN在园区上构建虚拟数据中心网络(三层互通)示例
组网需求
企业已经建成比较成熟的园区网络,但是没有专用的数据中心网络,所有的服务器分布在不同的部门,并且不具备集中放置的条件。现在用户希望在已有园区网络上构建一个虚拟的数据中心网络,需求如下:
- 将散落在不同部门的服务器构建成一个虚拟网络,实现资源整合和业务灵活部署。
- 各服务器上部署着大量的VM,不同业务的VM之间需要实现三层互通。
如下图所示,企业在不同的数据中心都拥有自己的VM,Server1上的VM1属于VLAN 10,Server2上的VM1属于VLAN 20,现需要通过VXLAN隧道实现不同业务的VM之间的三层互通。
说明:
本举例中交换机以S5720HI为例
数据准备
设备 | VXLAN隧道 | BD | VNI | Source IP | Peer IP |
---|---|---|---|---|---|
Switch1 | Switch1—>Switch3 | 10 | 2010 | 10.1.1.2 | 10.3.3.2 |
Switch2 | Switch2—>Switch3 | 20 | 2020 | 10.2.2.2 | 10.3.3.2 |
Switch3 | Switch3—>Switch1 | 10 | 2010 | 10.3.3.2 | 10.1.1.2 |
Switch3 | Switch3—>Switch2 | 20 | 2020 | 10.3.3.2 | 10.2.2.2 |
配置思路
采用如下思路配置不同网段用户通过VXLAN网关互通:
- 分别在Switch1、Switch2、Switch3上配置路由协议,保证网络三层互通。
- 分别在Switch1、Switch2上配置VXLAN接入业务部署方式。
- 分别在Switch1、Switch2、Switch3上配置VXLAN隧道。
- 在Switch3上配置VXLAN三层网关。
说明:
园区网络的三层互通是构建虚拟数据中心网络的基础条件,现网中,如果园区网络已经实现三层网络的互通,那么该举例中的步骤1可以省略。
操作步骤
配置路由协议
配置Switch1各接口IP地址。Switch2和Switch3的配置与Switch1类似,这里不再赘述。配置OSPF时,注意需要发布设备上的32位Loopback接口地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<HUAWEI> system-view
[HUAWEI] sysname Switch1
[Switch1] interface loopback 1
[Switch1-LoopBack1] ip address 10.1.1.2 32
[Switch1-LoopBack1] quit
[Switch1] interface gigabitethernet 0/0/1
[Switch1-GigabitEthernet0/0/1] undo portswitch
[Switch1-GigabitEthernet0/0/1] ip address 192.168.2.1 24
[Switch1-GigabitEthernet0/0/1] quit
[Switch1] ospf
[Switch1-ospf-1] area 0
[Switch1-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.0
[Switch1-ospf-1-area-0.0.0.0] network 192.168.2.0 0.0.0.255
[Switch1-ospf-1-area-0.0.0.0] quit
[Switch1-ospf-1] quitOSPF成功配置后,Switch之间可通过OSPF协议发现对方的Loopback接口的IP地址,并能互相ping通。以Switch1 ping Switch2的显示为例。
1
2
3
4
5
6
7
8
9
10
11
12[Switch1] ping 10.2.2.2
PING 10.2.2.2: 56 data bytes, press CTRL_C to break
Reply from 10.2.2.2: bytes=56 Sequence=1 ttl=255 time=240 ms
Reply from 10.2.2.2: bytes=56 Sequence=2 ttl=255 time=5 ms
Reply from 10.2.2.2: bytes=56 Sequence=3 ttl=255 time=5 ms
Reply from 10.2.2.2: bytes=56 Sequence=4 ttl=255 time=14 ms
Reply from 10.2.2.2: bytes=56 Sequence=5 ttl=255 time=5 ms
--- 10.2.2.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 5/53/240 ms
分别在Switch1、Switch2上配置业务接入点
配置Switch1。
1
2
3
4
5
6
7
8
9[Switch1] bridge-domain 10
[Switch1-bd10] quit
[Switch1] interface gigabitethernet 0/0/2
[Switch1-GigabitEthernet0/0/2] port link-type trunk
[Switch1-GigabitEthernet0/0/2] quit
[Switch1] interface gigabitethernet 0/0/2.1 mode l2
[Switch1-GigabitEthernet0/0/2.1] encapsulation dot1q vid 10
[Switch1-GigabitEthernet0/0/2.1] bridge-domain 10
[Switch1-GigabitEthernet0/0/2.1] quit配置Switch2。
1
2
3
4
5
6
7
8
9[Switch2] bridge-domain 20
[Switch2-bd20] quit
[Switch2] interface gigabitethernet 0/0/2
[Switch2-GigabitEthernet0/0/2] port link-type trunk
[Switch2-GigabitEthernet0/0/2] quit
[Switch2] interface gigabitethernet 0/0/2.1 mode l2
[Switch2-GigabitEthernet0/0/2.1] encapsulation dot1q vid 20
[Switch2-GigabitEthernet0/0/2.1] bridge-domain 20
[Switch2-GigabitEthernet0/0/2.1] quit
分别在Switch1、Switch2、Switch3上配置VXLAN隧道
配置Switch1。
1
2
3
4
5
6
7[Switch1] bridge-domain 10
[Switch1-bd10] vxlan vni 2010
[Switch1-bd10] quit
[Switch1] interface nve 1
[Switch1-Nve1] source 10.1.1.2
[Switch1-Nve1] vni 2010 head-end peer-list 10.3.3.2
[Switch1-Nve1] quit配置Switch2。
1
2
3
4
5
6
7[Switch2] bridge-domain 20
[Switch2-bd20] vxlan vni 2020
[Switch2-bd20] quit
[Switch2] interface nve 1
[Switch2-Nve1] source 10.2.2.2
[Switch2-Nve1] vni 2020 head-end peer-list 10.3.3.2
[Switch2-Nve1] quit配置Switch3。
1
2
3
4
5
6
7
8
9
10
11
12
13
14[Switch3] bridge-domain 10
[Switch3-bd10] vxlan vni 2010
[Switch3-bd10] quit
[Switch3] interface nve 1
[Switch3-Nve1] source 10.3.3.2
[Switch3-Nve1] vni 2010 head-end peer-list 10.1.1.2
[Switch3-Nve1] quit
[Switch3] bridge-domain 20
[Switch3-bd20] vxlan vni 2020
[Switch3-bd20] quit
[Switch3] interface nve 1
[Switch3-Nve1] source 10.3.3.2
[Switch3-Nve1] vni 2020 head-end peer-list 10.2.2.2
[Switch3-Nve1] quit
在Switch3上配置VXLAN三层网关
1
2
3
4
5
6[Switch3] interface vbdif 10
[Switch3-Vbdif10] ip address 192.168.10.10 24
[Switch3-Vbdif10] quit
[Switch3] interface vbdif 20
[Switch3-Vbdif20] ip address 192.168.20.10 24
[Switch3-Vbdif20] quit验证配置结果
上述配置成功后,在Switch1、Switch2上执行命令display vxlan vni可查看到VNI的状态是Up;执行命令display vxlan tunnel可查看到VXLAN隧道的信息。以Switch3显示为例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14[Switch3] display vxlan vni
VNI BD-ID State
-----------------------------------------
2010 10 up
2020 20 up
-----------------------------------------
Number of vxlan vni bound to BD is : 2
[Switch3] display vxlan tunnel
Tunnel ID Source Destination State Type
----------------------------------------------------------------------------
4026531842 10.3.3.2 10.1.1.2 up static
4026531841 10.3.3.2 10.2.2.2 up static
----------------------------------------------------------------------------
Number of vxlan tunnel : 2配置完成后,不同网段用户通过VXLAN网关可以互通。以服务器1上的VM1 ping服务器2上的VM1的显示为例。
1
2
3
4
5
6
7
8
9
10C:\Users\VM1>ping 192.168.20.1
Pinging 192.168.20.1 with 32 bytes of data:
Reply from 192.168.20.1: bytes=32 time=1ms TTL=126
Reply from 192.168.20.1: bytes=32 time=1ms TTL=126
Reply from 192.168.20.1: bytes=32 time=1ms TTL=126
Reply from 192.168.20.1: bytes=32 time=1ms TTL=126
Ping statistics for 192.168.20.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
配置文件
Switch1的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
sysname Switch1
bridge-domain 10
vxlan vni 2010
interface GigabitEthernet0/0/1
undo portswitch
ip address 192.168.2.1 255.255.255.0
interface GigabitEthernet0/0/2
port link-type trunk
interface GigabitEthernet0/0/2.1 mode l2
encapsulation dot1q vid 10
bridge-domain 10
interface LoopBack1
ip address 10.1.1.2 255.255.255.255
interface Nve1
source 10.1.1.2
vni 2010 head-end peer-list 10.3.3.2
ospf 1
area 0.0.0.0
network 10.1.1.2 0.0.0.0
network 192.168.2.0 0.0.0.255
returnSwitch2的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
sysname Switch2
bridge-domain 20
vxlan vni 2020
interface GigabitEthernet0/0/1
undo portswitch
ip address 192.168.3.1 255.255.255.0
interface GigabitEthernet0/0/2
port link-type trunk
interface GigabitEthernet0/0/2.1 mode l2
encapsulation dot1q vid 20
bridge-domain 20
interface LoopBack1
ip address 10.2.2.2 255.255.255.255
interface Nve1
source 10.2.2.2
vni 2020 head-end peer-list 10.3.3.2
ospf 1
area 0.0.0.0
network 10.2.2.2 0.0.0.0
network 192.168.3.0 0.0.0.255
returnSwitch3的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
sysname Switch3
bridge-domain 10
vxlan vni 2010
bridge-domain 20
vxlan vni 2020
interface Vbdif10
ip address 192.168.10.10 255.255.255.0
interface Vbdif20
ip address 192.168.20.10 255.255.255.0
interface GigabitEthernet0/0/1
undo portswitch
ip address 192.168.2.2 255.255.255.0
interface GigabitEthernet0/0/2
undo portswitch
ip address 192.168.3.2 255.255.255.0
interface LoopBack1
ip address 10.3.3.2 255.255.255.255
interface Nve1
source 10.3.3.2
vni 2010 head-end peer-list 10.1.1.2
vni 2020 head-end peer-list 10.2.2.2
ospf 1
area 0.0.0.0
network 10.3.3.2 0.0.0.0
network 192.168.2.0 0.0.0.255
network 192.168.3.0 0.0.0.255
return
8 参考协议和标准
本特性的参考资料清单如下:
文档 | 描述 | 协议顺从性 |
---|---|---|
RFC 7348 | Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks | 部分顺从: 当前只支持通过头端复制方式完成BUM报文的广播,不支持组播复制方式。 |
9 附录
9.1 服务器虚拟化
服务器虚拟化是将一台物理服务器虚拟成多台逻辑服务器,即VM(Virtual Machine)。如下图所示,一台物理服务器虚拟为多台逻辑服务器VM。
VM
虚拟机,每个VM拥有自己的操作系统和应用软件的同时也具有独立的MAC地址和IP地址,并且每个VM都可以独立运行。vSwitch
物理服务器的虚拟交换机,提供虚拟机的二层通信、隔离、QoS的能力。
服务器虚拟化的优点:
- 通过服务器虚拟化可以有效地提高服务器的利用率。
- 按需提供服务和资源。
- 降低能源消耗。
- 降低客户的运维成本。
9.2 大二层网络
为了实现业务的灵活变更,虚拟机动态迁移已经成为了一个常态性的业务。虚拟机动态迁移是指在保证虚拟机正常运行的同时,将虚拟机从一个物理服务器移动到另一个物理服务器的过程,该过程对于最终用户来说是无感知的,使得管理员在不影响用户正常使用的情况下灵活调配服务器资源或者对物理服务器进行维修和升级。虚拟机动态迁移的关键是要保证在迁移时,虚拟机上的业务不会中断,这就要求虚拟机的IP地址、MAC地址等参数保持不变,所以虚拟机的迁移只能在同一个二层域内进行,而不能跨二层域迁移,如下图所示。
传统数据中心网络架构中二层网络部分为了提高可靠性,采用冗余设备和冗余链路,在虚拟机迁移过程中会不可避免地产生物理环路。
为了避免物理环路过程中产生的广播风暴,需要采用STP等破环协议进行破环,阻塞冗余链路。由于STP性能的限制,采用STP协议进行破环的二层网络通常不超过50个网络节点,导致虚拟机动态迁移只能在一个较小的局部范围内进行,应用受到极大限制。
为了实现虚拟机的大范围甚至跨地域的动态迁移,就要求将虚拟机动态迁移可能涉及的服务器都纳入同一个二层网络,形成一个更大范围的二层网络,这样才能实现虚拟机的大范围无障碍的迁移,这种二层网络称为大二层网络。
常见的实现大二层网络技术有:
- 网络设备虚拟化技术。
- TRILL技术。
- VXLAN技术。
- EVN技术。
然而,通过网络设备虚拟化技术、TRILL、EVN技术构建物理上的大二层网络,可以将虚拟机迁移的范围扩大。但是,构建物理上的大二层,难免需要对原来的网络做较大的改动,并且大二层网络的范围依然会受到种种条件的限制,然而VXLAN技术能够很好地解决上述问题。
如下图所示,在大二层网络中虚拟机动态迁移可以实现大范围无障碍的迁移。
公子青注:
至此本文断断续续写了半个月(其实是抄啦)终于结束,完了。感谢阁下拖拽到文末。 虽然本文内容是转载,但是基本手工迁移,并尽量保持原格式。