4、VXLAN BGP EVPN基础解析

VXLAN BGP EVPN基础解析

1. 数据中心网络面临的挑战

随着云计算的发展,虚拟化技术得到了广泛应用。在传统网络中,数据流量主要是客户端和服务器之间的南北向流量,而虚拟化使得数据中心内的东西向流量大幅增加。东西向流量指的是数据中心内服务器和应用程序之间的数据通信,例如Web服务器通过应用服务器访问数据库,或者用户访问社交网站时,数据中心后端服务器之间的快速交互。

通常,设备组通过虚拟局域网(VLAN)隔离到广播域中。基于IEEE 802.1Q标准的VLAN由12位标签表示,这限制了VLAN的最大数量为4096个,在多租户云部署时代,4K个VLAN远远不够。因为单个租户可能需要多个网络ID(VLAN)来支持不同的应用层,虚拟网络的饱和成为一个显著问题。

同时,虚拟化使得广播域内的终端主机数量急剧增加,传统的48端口接入层交换机连接的服务器数量从48台增加到了20 - 30倍,甚至更多。这导致了交换机的MAC表爆炸问题,增加了数据平面的负担,同时也增加了控制平面的开销,因为交换机需要为这些工作负载提供诸如DHCP、ARP、ND、IGMP等第一跳协议的服务。

此外,传统的IEEE 802.1D生成树协议(STP)及其改进版本(RSTP、MST)虽然可以在二层广播域中建立无环环境,但存在收敛时间长、转发路径非最优、不支持多路径或等价多路径(ECMP)等缺点,无法满足大规模数据中心环境的需求。

2. 网络虚拟化覆盖层的出现

为了解决上述问题,网络虚拟化覆盖层应运而生。覆盖层提供了一层间接性,允许抽象现有网络技术并扩展经典网络功能。其概念在网络领域已经存在了一段时间,早期的MPLS和GRE封装技术在20世纪90年代开始流行,随后IPsec、6in4、L2TPv3等隧道技术也逐渐崭露头角,但它们通常用于广域网边缘设备。

覆盖层的工作原理是在源边缘设备将原始数据包或帧封装上外部头,然后发送到目标边缘设备。中间网络设备根据外部头转发数据包,而不知道原始有效负载。在目标边缘设备,覆盖层头被剥离,数据包根据内部有效负载进行转发。

网络虚拟化覆盖层具有以下特点:
- 位置和身份概念 :身份用于识别终端主机,如IP地址、MAC地址等;位置识别负责为该终端主机封装和解封装隧道流量的隧道边缘设备。覆盖层的外部头引用源和目标位置,内部头引用源和目标终端主机身份。
- 覆盖层服务类型 :覆盖层服务通常分为二层(桥接)或三层(路由)服务,许多现代覆盖层同时提供二层和三层服务。根据外部头是二层帧还是三层数据包,覆盖层可分为帧封装和数据包封装。例如,TRILL、Cisco FabricPath和SPB采用帧封装,而LISP、VXLAN和NvGRE采用数据包封装。

覆盖层需要一个底层传输网络(underlay)来在物理网络上传输数据。底层网络通常由互连边缘设备的传输设备组成,边缘设备作为底层网络的边界设备,连接终端主机和非覆盖层设备。在VXLAN术语中,边缘设备上负责封装和解封装VXLAN头的功能称为VXLAN隧道端点(VTEP)。

3. VXLAN简介

VXLAN(虚拟可扩展局域网)是为了解决VLAN的可扩展性限制而开发的。它将网络ID的数量从4096扩展到了1600万个,并提供了基于MAC-over-IP/UDP的覆盖层,扩展了现有的VLAN命名空间,从而指数级地增加了广播域的数量。因此,VXLAN是一种二层在三层之上的覆盖层。

VXLAN的主要特点包括:
- 跨三层连接 :VXLAN可以在三层网络上连接两个或多个网络,同时允许这些不同网络上的工作负载或服务器继续共享相同的二层广播域。而VLAN仅在以太网数据链路层(二层)运行。
- 支持ECMP :二层以太网网络使用STP来防止环路,这会导致VLAN流量只有一条活动路径。而VXLAN通过使用三层网络,可以通过ECMP利用VTEP之间的所有可能路径,大大提高了网络的利用率。
- 易于调试和维护 :VXLAN使用IP核心作为底层网络,利用现有的网络专业知识,使得数据中心的调试和维护更加容易。

VXLAN头包含原始二层以太网帧的信息,如内部MAC源地址、内部MAC目标地址、原始以太网有效负载和帧校验序列。原始二层以太网帧的802.1Q头被移除并映射到一个VNI来完成VXLAN头。VXLAN头之前是外部UDP头、外部IP头和外部以太网头,外部UDP头的目标端口号设置为4789,UDP源端口号根据内部数据包/帧的内容生成。

在具有ECMP的三层网络中,通常根据源IP地址、目标IP地址、四层协议、源四层端口和目标四层端口这5元组来选择等价路径进行负载均衡。对于VXLAN,在同一对源和目标VTEP后面的工作负载之间的所有流量,除了UDP源端口外,外部头的其他字段都是相同的。由于UDP源端口根据内部数据包/帧的内容而变化,它为不同终端主机流在相同源和目标VTEP对之间选择不同路径提供了必要的熵。

4. VXLAN的Flood and Learn(F&L)机制

下面通过一个示例来说明VXLAN的F&L机制。假设有两个主机A(IP 192.168.1.101)和主机B(IP 192.168.1.102),分别位于VTEP V1(10.200.200.1)和VTEP V3(10.200.200.3)下面,它们属于同一个VXLAN段,VNI为30001,关联的网络子网为192.168.1.0/24,关联的多播组为239.1.1.2。

当主机A想要与主机B通信时,它会首先使用地址解析协议(ARP)来解析主机B的IP - MAC绑定。主机A发送一个ARP请求,目标MAC地址为FFFF.FFFF.FFFF,源MAC地址为00:00:30:00:11:01。VTEP V1接收到这个ARP请求后,根据[VNI = 30001, DMAC = FFFF.FFFF.FFFF]进行二层查找,确定这是一个多目的地帧,需要发送给VNI 30001的所有成员。因此,它将这个数据包封装上VXLAN头,VNI为30001,源IP为10.200.200.1,目标IP为239.1.1.2。

封装后的VXLAN数据包被发送到IP核心,通过多播树转发到所有感兴趣的接收者,包括V3。V3接收到数据包后,由于它本地配置了[VNI = 30001, Group = 239.1.1.2],会对数据包进行解封装。通过二层学习,V3学习到[VNI = 30001, MAC = 00:00:30:00:11:01 -> 10.200.200.1]的条目。然后,V3根据[VNI = 30001, DMAC = FFFF.FFFF.FFFF]进行二层查找,由于这是一个广播数据包,它会将其本地转发给V3下面属于VNI 30001的所有主机,包括主机B。

主机B接收到ARP请求后,发送一个ARP响应,目标MAC地址为00:00:30:00:11:01,源MAC地址为00:00:30:00:11:02。V3接收到这个数据包后,进行本地学习和目标查找,结果命中二层表,然后将数据包进行VXLAN封装并发送给V1。

封装后的数据包通过常规三层路由传递给V1。V1也进行二层学习,然后根据[VNI, DMAC]进行目标查找,将主机B的ARP响应数据包传递给主机A。通过这种方式,两个VTEP上的主机MAC信息得到了正确填充,主机A和主机B知道了彼此的MAC - IP绑定。后续主机A和主机B之间的流量将通过VXLAN在V1和V3之间进行单播传输。

F&L机制通过在VTEP之间泛洪多目的地流量来学习位于VTEP后面的主机MAC地址,以便后续流量可以进行单播传输。在VXLAN VNI内的通信遵循常规的二层转发语义,与VLAN类似,但VXLAN VNI域跨越了基于IP的三层网络。

多个VNIs可以共享同一个多播组,因为为1600万个潜在的VNI选项提供唯一的1:1映射需要大量的软件和硬件资源,在实际部署中不切实际。在大多数实际部署中,最多支持512或1024个多播组。这意味着VTEP可能会接收到未在本地配置的VNI的VXLAN封装多目的地流量,但由于每个VXLAN网络段都有唯一的VNI,并且查找键始终是[VNI, DMAC],因此网络级别的隔离仍然得以维持。

处理VXLAN环境中多目的地流量的另一种替代方法是使用入口复制(IR)或头端复制。在IR模式下,每个VTEP必须知道给定VNI中的其他VTEP成员。源VTEP为每个多目的地帧生成n个副本,每个副本都发往相应VNI中的其他VTEP。这会给VTEP带来额外的负担,但好处是无需在IP底层网络中运行多播。

5. VXLAN的应用场景

VXLAN既可以作为主机覆盖层,也可以作为网络覆盖层使用。随着软件定义网络(SDN)的兴起,VXLAN作为主机覆盖层得到了广泛应用,物理服务器托管软件VTEP,为虚拟化工作负载之间的流量进行VXLAN封装和解封装。为了在不支持VXLAN的传统工作负载之间建立通信,二层VXLAN网关应运而生,它可以在传统基于VLAN的域和虚拟化基于VXLAN的域之间进行转换。网络设备供应商也开始在其硬件交换机中支持VXLAN,为将VXLAN用作网络覆盖层提供了选择。

6. 总结

网络虚拟化覆盖层是解决数据中心网络扩展性、灵活性和隔离性问题的有效方案。VXLAN作为一种重要的网络虚拟化覆盖层技术,通过扩展网络ID数量、支持跨三层通信、利用ECMP提高网络利用率等特点,满足了现代数据中心的需求。F&L机制和入口复制等方法为处理多目的地流量提供了不同的解决方案。在实际应用中,根据具体的网络环境和需求,可以选择将VXLAN作为主机覆盖层、网络覆盖层或混合覆盖层使用。

以下是一些关键信息的表格总结:
| 项目 | 详情 |
| ---- | ---- |
| VLAN限制 | 最大数量4096个,无法满足多租户云部署需求 |
| 覆盖层特点 | 位置和身份概念、不同服务类型(帧封装和数据包封装) |
| VXLAN优势 | 扩展网络ID到1600万个、跨三层通信、支持ECMP、易于调试维护 |
| F&L机制 | 通过泛洪多目的地流量学习主机MAC地址,后续流量单播传输 |
| 多目的地流量处理 | IP多播、入口复制(IR) |
| VXLAN应用场景 | 主机覆盖层、网络覆盖层、混合覆盖层 |

下面是VXLAN F&L机制的mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([主机A发送ARP请求]):::startend --> B(VTEP V1接收ARP请求):::process
    B --> C{判断是否为多目的地帧}:::decision
    C -- 是 --> D(VTEP V1封装VXLAN头并发送):::process
    D --> E(数据包通过多播树转发):::process
    E --> F(VTEP V3接收并解封装):::process
    F --> G(VTEP V3进行二层学习):::process
    G --> H(VTEP V3转发ARP请求给主机B):::process
    H --> I([主机B发送ARP响应]):::startend
    I --> J(VTEP V3接收ARP响应):::process
    J --> K(VTEP V3进行本地学习和查找):::process
    K --> L(VTEP V3封装VXLAN头并发送给V1):::process
    L --> M(VTEP V1接收并解封装):::process
    M --> N(VTEP V1进行二层学习和查找):::process
    N --> O([主机A接收ARP响应]):::startend

通过以上内容,我们对网络虚拟化覆盖层和VXLAN技术有了更深入的了解,希望能为您在实际网络部署和优化中提供帮助。

VXLAN BGP EVPN基础解析

7. 基于BGP EVPN的VXLAN控制平面的演进

随着数据中心环境的发展,传统的网络技术在应对日益增长的东西向流量、大规模虚拟主机以及多租户需求等方面显得力不从心。VXLAN虽然解决了VLAN数量有限和跨三层通信等问题,但在一些方面仍需要进一步优化,于是基于BGP EVPN(Border Gateway Protocol - Ethernet Virtual Private Network)的VXLAN控制平面应运而生。

传统的VXLAN F&L机制在处理大规模网络时存在一些弊端。例如,在多租户环境中,F&L机制可能会导致大量的广播流量,影响网络性能。而且,F&L机制依赖于IP多播,在某些网络环境中,多播的部署和管理较为复杂。

BGP EVPN为VXLAN提供了一种更高效的控制平面解决方案。它通过BGP协议在VTEP之间交换EVPN路由信息,从而实现了更精细的网络控制和管理。BGP EVPN可以将主机的位置和身份信息准确地传递给各个VTEP,避免了不必要的广播流量,提高了网络的效率和可扩展性。

8. BGP EVPN的基本路由类型消息

BGP EVPN使用多种基本路由类型消息来实现网络虚拟化覆盖层的功能,以下是一些常见的路由类型消息及其作用:
| 路由类型 | 作用 |
| ---- | ---- |
| Type - 2(MAC/IP Advertisement Route) | 用于通告主机的MAC和IP地址信息,使得VTEP可以建立主机的位置 - 身份映射关系。 |
| Type - 3(Inclusive Multicast Ethernet Tag Route) | 用于通告VXLAN多播组信息,帮助VTEP加入相应的多播组。 |
| Type - 4(Ethernet Auto - Discovery Route) | 用于发现和通告VTEP的存在,使得各个VTEP可以互相识别。 |

这些路由类型消息的交互过程如下:
- 当一个新的主机接入网络时,其所在的VTEP会生成Type - 2路由消息,并通过BGP协议将该消息发送给其他VTEP。其他VTEP接收到该消息后,会更新自己的位置 - 身份映射数据库,从而知道该主机的位置。
- 对于多播流量,VTEP会使用Type - 3路由消息来通告VXLAN多播组信息。其他VTEP根据这些信息加入相应的多播组,以便接收和转发多播流量。
- Type - 4路由消息则用于VTEP之间的自动发现。当一个新的VTEP加入网络时,它会发送Type - 4路由消息,其他VTEP接收到该消息后,会将其加入到自己的VTEP列表中。

9. BGP EVPN与F&L机制的对比

BGP EVPN和F&L机制是VXLAN中处理主机信息和流量的两种不同方式,它们各有优缺点,具体对比如下:
| 对比项 | BGP EVPN | F&L机制 |
| ---- | ---- | ---- |
| 流量控制 | 通过路由信息交换,精确控制流量,减少广播流量 | 依赖广播和学习,可能产生大量广播流量 |
| 扩展性 | 适用于大规模网络,可扩展性强 | 大规模网络中性能可能下降 |
| 管理复杂度 | 需要配置和管理BGP协议,管理相对复杂 | 相对简单,基于多播实现 |
| 多租户支持 | 可以实现更精细的多租户隔离和控制 | 多租户环境中隔离效果有限 |

在实际应用中,需要根据网络的规模、复杂度和具体需求来选择合适的方式。对于大规模、多租户的网络环境,BGP EVPN通常是更好的选择;而对于小规模、简单的网络,F&L机制可能更加适用。

10. VXLAN BGP EVPN的部署步骤

如果要部署VXLAN BGP EVPN网络,可以按照以下步骤进行:
1. 网络规划
- 确定VXLAN的VNI范围,为不同的租户或业务分配不同的VNI。
- 规划IP地址,包括VTEP的IP地址和主机的IP地址。
- 选择合适的BGP AS号,用于BGP协议的运行。
2. VTEP配置
- 在各个VTEP设备上配置基本的网络参数,如IP地址、子网掩码等。
- 启用VXLAN功能,并配置VTEP的相关参数,如VNI映射、多播组等。
- 配置BGP协议,包括BGP邻居关系、路由策略等。
3. 路由信息交换
- 确保各个VTEP之间的BGP邻居关系正常建立。
- 验证BGP EVPN路由信息的交换是否正常,包括Type - 2、Type - 3和Type - 4路由消息。
4. 测试和验证
- 进行主机之间的连通性测试,确保VXLAN网络可以正常通信。
- 检查流量的转发情况,验证BGP EVPN是否按照预期工作。

11. 总结与展望

网络虚拟化覆盖层技术在现代数据中心中扮演着至关重要的角色,VXLAN和BGP EVPN的结合为数据中心网络带来了更高的扩展性、灵活性和可管理性。通过扩展网络ID数量、支持跨三层通信、利用BGP EVPN进行精细的流量控制等特点,满足了多租户、大规模网络的需求。

未来,随着云计算、物联网等技术的不断发展,数据中心网络的规模和复杂度将进一步增加。VXLAN BGP EVPN技术也将不断演进和完善,例如,可能会支持更高效的路由协议、更精细的多租户隔离机制等。同时,与其他网络技术的融合也将成为趋势,如软件定义网络(SDN)、网络功能虚拟化(NFV)等,以提供更智能、更灵活的网络解决方案。

以下是VXLAN BGP EVPN部署流程的mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A([开始]):::startend --> B(网络规划):::process
    B --> C(VTEP配置):::process
    C --> D(路由信息交换):::process
    D --> E(测试和验证):::process
    E --> F([结束]):::startend

希望通过本文的介绍,您对VXLAN BGP EVPN的基础知识有了更深入的理解,能够在实际的网络部署和管理中更好地应用这些技术。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值