vxlan

这是 RS 路上一个比较晦涩难懂的技术。VXLAN 全名叫“虚拟扩展局域网”,与 VLAN 有着说不清的关系。两者都是奔着解决大型二层网络的问题出生的,但是 VLAN 在数据中心这种对二层网络规模日渐庞大的网络环境中逐渐显得软弱无力。于是 VXLAN 横空出世并解决了诸多痛点,本文奔着简单明了的描述来走进 VXLAN。

网络环境的需求

随着数据中心规模的壮大,普通的二层网络已经无法满足需求。数据中心的发展带来以下新的需求:

1. 大型二层网络中 MAC 地址表项存在数量瓶颈问题,网络设备的 MAC 表装不下那么多的 MAC 地址表项;提到大型二层网络就会让人想到数据中心的网络,这其中除了大规模的物理设备之外,每个物理设备还会运行着数量不小的虚拟机,这些虚拟机也拥有自己的 MAC 地址。这样一来无形之中就将 MAC 地址的数量“堆”到了一种极致。

2. VLAN 只有 4096个。二层网络隔离能力有限,无法再满足大型二层网络的隔离需求;在上文描述的大型二层网络环境中,仅靠 4096 个 VLAN 已经无法

3. 虚拟机迁移范围受限,无法跨越三层网络进行迁移。如果虚拟机迁移改变了 IP地址就会造成业务中断,所以虚拟机迁移必须在二层网络中进行。例如虚拟机无法在不改变 IP、不中断业务的前提下从华南的机房迁入华北的机房。

VXLAN 解决方案

VXLAN 解决以上问题的方式:

  1. VXLAN 使用 MAC in UDP 的方式封装报文进行隧道传输通讯,这样可以构建出一个基于三层的大型二层网络;这个意思就是将原有的报文在外层重新封装二层以太网头部、三层IP头部、传输层 UDP头部,然后这个封装后的报文就可以在三层隧道网络中被转发,出隧道后会剥离之前封装的二层、三层、传输层头部,这样的话就可以将不同位置的二层网络连接起来。由于报文使用物理机的 MAC地址进行封装通讯,所以网络设备也不必学习到所有虚拟机的 MAC地址。这一方式解决了虚拟机迁移、MAC地址表项瓶颈的问题;
  2. VXLAN 使用 24 位的 VNI 来实现隔离二层网络(类似 VLAN的 VLAN ID),VNI 高达 16 兆的数量可以满足大型二层网络的隔离需求(作为对比,VLAN ID 只有 12 位);

总结

VXLAN 利用 MAC in UDP 的封装方式来跨网段建立一个大型二层网络,同时用 24 位的 VNI 来满足大型二层网络的隔离需求。

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内的主机就可以进行二层互通。
  • VXLAN隧道端点VTEP(VXLAN Tunnel Endpoints)
    VTEP可以对VXLAN报文进行封装和解封装。
    VXLAN报文中源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。一对VTEP地址就对应着一条VXLAN隧道。在源端封装报文后通过隧道向目的端VTEP发送封装报文,目的端VTEP对接收到的封装报文进行解封装。
  • 虚拟接入点VAP(Virtual Access Point)
    VXLAN业务接入点,可以基于VLAN或报文流封装类型(相关介绍参考VXLAN接入方式)接入业务:
    • 基于VLAN接入业务:在VTEP上建立VLAN与BD的一对一或多对一的映射。这样,当VTEP收到业务侧报文后,根据VLAN与BD的映射关系,实现报文在BD内进行转发。
    • 基于报文流封装类型接入业务:在VTEP连接下行业务的物理接口上创建二层子接口,并配置不同的流封装类型,使得不同的接口接入不同的数据报文。同时,将二层子接口与BD进行一一映射。这样业务侧报文到达VTEP后,即会进入指定的二层子接口。即根据二层子接口与BD的映射关系,实现报文在BD内进行转发。
  • 网络虚拟边缘NVE(Network Virtualization Edge)
    NVE是实现网络虚拟化功能的网络实体。报文经过NVE封装转换后,NVE间就可基于三层基础网络建立二层虚拟化网络。
  • 网关
    二层网关:用于解决租户接入VXLAN虚拟网络的问题,也可用于同一VXLAN虚拟网络的子网通信。
    三层网关:用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。

VXLAN 网络架构

在开始描述 VXLAN 网络架构之前,需要先梳理清楚 VXLAN 技术所期望达到的一个效果。

首先 VXLAN 技术是为了构建一个大型的二层网络,然后基于这个大型的二层网络还需要继承 VLAN 隔离广播域的功能,同时要实现 VNI 内通信及 VNI 间通讯。这三个效果是 VXLAN 优先需要满足的,下面将从这三个方面来讲解 VXLAN 大致是怎样实现的。

构建大型二层网络

以前构建大型二层网络的问题在于 MAC表项瓶颈、VLAN隔离广播域能力有限等等问题,VXLAN 的优势在于能将多个二层网络连接到一起,即使这些二层网络被三层网络隔离。VXLAN 会以三层网络作为底层承载网来使多个二层网络互通。

可以理解为 VXLAN 使用隧道网络让多个二层网络实现通信,实现方式为 MAC in UDP。就是在原有报文的基础上,再次封装二层、三层、传输层头部,然后封装一个 VXLAN 头部。于是乎这个报文就可以靠着再次封装的 MAC 地址、IP地址、UDP传输来实现在三层网络隧道中穿梭,这个报文在网络设备的眼里就像是借着三层网络可达性来实现不同二层网络的互通。如图-1 所示

建立VXLAN隧道的基础网络称为Underlay网络,VXLAN隧道所承载的业务网络称为Overlay网络。VXLAN 所借助的三层网络隧道就是 Underlay网络,VXLAN 实现的二层通信网络为Overlay网络。

图-1

隔离广播域及 VXLAN 内通信

VXLAN 不单单是为了构建大型网络,同时也要隔离大型二层网络的广播域。当一个二层网络的规模足够大的时候,那么广播域将成为一个问题。

VXLAN 的 VNI 与 VLAN 的 VLAN ID 相似,不同 VNI 的二层网络无法直接互通。VXLAN 可以通过 24 位的 VNI 来标识不同的二层网络;在VXLAN网络中通过BD划分广播域。,将VNI以1:1方式映射到广播域BD,一个BD就表示着一个广播域,同一个BD内的主机就可以进行二层互通。如图-2所示:

图-2

VNI 间访问

VXLAN 在宏观的角度来看逻辑的话还是跟 VLAN 很像的,在 VLAN 中想要实现 VLAN 之间互访就需要 VLANif 接口转发。VXLAN 也是一样的,VXLAN 需要一个 VBDIF 接口转发 VNI 之间的数据,VBDIF 是基于BD创建的三层逻辑接口。。不同 BD 是无法直接访问的,要通过三层网关来转发不同 BD 的数据。而三层网关的部署又分为集中式网关和分布式网关,具体示意如图-3、图-4:

集中式网关由单独的设备来部署三层网关,好处是流量集中管理,部署和管理比较简单。坏处是流量路径不是最优,VNI 之间的访问都要经过集中三层网关来转发;集中三层网关的设备上会有所有的 MAC 地址表项,这会对设备造成不小的负担。

图-3 集中式网关

分布式网关由二层网关设备进行部署。优点就是弥补了集中式网关的缺点,同时网络规模扩展能力强。该部署方式仅 BGP EVPN 支持,这个本文不作细致的讨论。

图-4 分布式网关

总结

VXLAN 通过 MAC in UDP 的方式构建大型二层网络,同时以 VNI、BD 来隔离不同的二层网络,用二层网关、三层网络来实现 VNI 内、VNI 间通信。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值