01 前言及学习目的
前言:
随着网络技术的不断发展,我们的网络可能会不断地扩张,而且是毫无边际地扩张,并渐渐失去控制。
我们可能拥有分布在整个网络中的物理主机和虚拟机,并且希望它们进入同一网段这一需求。
那么扩展 VLAN 可能是一种解决方案,因为它可以帮助我们穿透物理网络的第 2 层。但存在的问题是——VLAN数量很快会使用完毕。
所以,最佳的解决方案是VxLAN。我们通过使用这项技术,可以在现有的第 3 层网络之上构建第 2 层网络,所有分布式主机都可以使用 VxLAN凝聚在一起。
学习目的:
本次分享,小星将带领大家学习VXLAN,包括VXLAN的含义、工作原理、使用地方、优势和部署方法等。
02 VxLAN的含义
VxLAN(虚拟可扩展局域网)是一种行业标准的重叠网络虚拟化技术。
它最初旨在解决与大规模网络部署(如 ISP 或云提供商)中的可扩展性相关的问题。顾名思义,VxLAN 虚拟地跨第 3 层网络基础设施扩展了第 2 层网段,VxLAN 将第 2 层以太网帧封装在包含 IP 地址的 VXLAN 数据包中。
VxLAN 段有24 位 VNID(VxLAN IDentification)字段标识,该字段可以扩展到 1600 万个段。
VxLAN 是由 VMware、Cisco 和 Arista Network 供应商合作创建的标准化规范,VxLAN 在RFC 7348 中被定义。
03 VxLAN 与 VLAN
VxLAN 与 VLAN非常相似,它也是封装了第 2 层帧和分段网络。
主要区别是VLAN使用二层帧上的tag进行封装,最多可以扩展到4000个VLAN。此外,VXLAN 将 MAC 封装在 UDP 中,并且能够扩展到 1600 万个 VxLAN 网段。
04 VxLAN 的主要优势
VxLAN 有以下优势:
- 可扩展性:可以跨越 IP 网络基础设施、跨越第 2 层网络。
- 可扩展性和灵活性:VxLAN 提高了网络或虚拟化数据中心的可扩展性,也使其结构更加灵活;VLAN 第 2 层标识符的数量从 4000 个急剧增加到 1600 万个。
- 分段和多租户:VxLAN 通过对网络进行分段来提供高级别的安全性,VxLAN 流量仅限于 VNI,因此是隔离的,这种分段也有助于多租户架构,其中必须共享单个基础架构。
- 第 2 层简化:简化网络并减少对第 2 层生成树、中继和 VLAN 延伸的需求。
- 允许 IP 迁移:VM 可以从子网中的主机迁移到另一个子网中的另一台主机,而且无需更改 IP 地址。
- 第 2 层和第 3 层连接:运行 VNI 的虚拟第 2 层建立在运行 IP 的第 3 层基础设施之上,VxLAN 交换机将第 2 层帧封装为第 3 层数据包。
- 它是一个软件定义网络 (SDN):VxLAN 将中央网络控制器(虚拟网络)与数据平面(物理网络)解耦,拥有集中控制器可简化网络管理、部署和监控。支持 VxLAN 覆盖的基于软件的虚拟网络交换机的一个示例是Open vSwitch。
- 硬件支持:虽然在软件中运行 VxLAN 更为常见,但一些平台通过 ASIC 在硬件中实现它,比如 Cisco 的Nexus 9000-EX平台交换机。
- 它是一个标准:VXLAN 是一个技术标准,当您实施它时,您不会被任何供应商限制。
05 VxLAN Overlay网络设计
VxLAN 是一种重叠封装技术,它创建了一个覆盖在现有物理网络基础架构之上的虚拟网络。它使用underlay IP网络,并在其上构建灵活的二层overlay逻辑网络。通过覆盖,任何第 2 层连接都可以跨越第 3 层网络。
使用覆盖网络有很多优点:
- 分割是其最突出的优点。
- 覆盖和底层网络是完全独立的。因此如果底层网络拓扑发生变化,覆盖网络不会受到影响(设计方面)。
- 无需添加、移除或更新网络设备,即可重新设计覆盖网络。
当然,影响底层性能或正常运行时间的物理问题也将反映在覆盖层上。例如,如果没有足够的设备来提供足够的带宽,覆盖也会受到影响。
06 Overlay VxLAN避免受到underlay变化影响的方法
使用交换结构,称为 Spine-and-Leaf。
07 叶脊(Underlay)+ VxLAN(Overlay)
在允许底层更改的同时保证 VxLAN 覆盖的性能、可扩展性、可靠性和灵活性的最佳方法是充分利用交换结构拓扑。交换结构拓扑的最佳示例是——Spine-and-Leaf,它通常用作底层网络。
Spine-and-Leaf 是一个独立的架构,它不是 VxLAN 独有的,但通常与 VxLAN 相关联。通常叶脊是 VxLAN 的底层,VxLAN 是覆盖。
Spine-and-Leaf 两层:
·Spine:Spine层交换机仅用于通过 Leaf 交换机传递流量,他们不知道 VxLAN。
·Leaf:交换机的叶层互连主干和端点,叶层交换机创建 VxLAN 隧道、封装并将 VLAN 映射到 VNI,执行 VxLAN 功能的叶子交换机称为 VTPE(VxLAN 隧道端点)
所有的叶子交换机都有一个链接到每个骨干的交换机,枝叶和交换机之间的每条链路都通过 IGP 路由协议(例如 BGP 或 OSPF)和通过 IP 地址进行路由。这种拓扑使每个目的地只有两跳的距离。
Leaf-and-switch 也可以使用 ECMP(等价多路径)在主干交换机或链路发生故障时恢复或平衡流量负载。
叶脊结构拓扑与 VxLAN 高度相关,因为随着覆盖网络的扩展,支持底层可以物理增长或者减小大小,且不会影响覆盖的设计。
在叶脊底层之上添加 VxLAN 可实现东西向流量模式的 IP 移动性、完全可扩展性和容错性。随着您的网络扩展,您的设计不需要改变。您只需要向底层添加更多交换机、IP 地址和链接即可。
08 VXLAN封装
到目前为止,我们知道 VxLAN 将第 2 层子网延伸到第 3 层网络限制,它在像 Spine-and-Leaf 这样的交换结构之上构建了一个逻辑覆盖网络。为了实现这一点,VxLAN 将第 2 层以太网帧封装在 VxLAN 数据包中,该数据包也封装在 IP UDP 标头中。下图显示了 VxLAN 数据包格式。
09 VxLAN 将以下字段添加到原始第 2 层帧
- 部 MAC 报头:这是包含下一跳传输信息的报头,它包括 VxLAN 端点的目标和源 MAC 地址、VLAN ID(16 位)和类型,外层 MAC 头的大小为 14 字节。
- P 标头:此标头允许跨 IP 网络传输,它包括 VxLAN 端点的目标和源 IP 地址,外层 IP 报头的大小为 20 字节。
- UDP 标头:此标头将数据包标识为 VxLAN,它包含 UDP 源端口、VxLAN 端口和 UDP 长度,UDP 报头的大小为 8 个字节。
- LAN 标头:此标头也称为 VxLAN 网络标识符 (VNI)。VNID 用于标识 VxLAN 网段,它类似于 MAC 报头上的 VLAN ID 标记(16 位),但大小为 24 位,最多允许 1600 万个不同的段。
010 VxLAN 隧道端点 (VTEP)
任何支持 VxLAN 的端点(如主机、交换机或路由器)都可以称为 VTPE(VxLAN 隧道端点)。顾名思义,VTEP 的工作是在彼此之间创建和终止隧道。换句话说,它们封装和解封装 VxLAN 流量。
011 VTEP 工作原理
VTEP 使用第 3 层 IP 地址连接到底层网络,VTPE 可能有一个或多个与之关联的 VNI。当具有相同 VNI 的第 2 层帧到达入口 VTEP 时,它会使用 VxLAN 和 UDP/IP 标头封装该帧。紧接着使用底层 IP 网络传输将其发送到出口 VTEP 以进行解封装。出口 VTEP删除 IP 和 UDP 标头并传送原始第 2 层帧。
VTEP 可以是虚拟或物理交换机端口,通常配置在叶交换机上。
VTEP 使用传统的底层 IP 路由和转发机制(例如 OSPF 和 EIGRP)进行通信。
012 VTEP+IP传输:Bud节点
在某些情况下,您可能需要一个设备来转发 IP 流量并执行 VxLAN 封装/解封装。
bud 节点是具有两个角色的交换设备,执行 VxLAN 相关任务的 VTEP 和转发 VxLAN 流量的 IP 传输设备。为了将流量传送到其他 VTEP,bud 节点应位于 VxLAN VNI 使用的同一组播组中。
下图显示了Bud节点的示例。假设主机 1 想要与主机 3 通信,VTEP-2 和 VTEP-3 属于用于 VXLAN VNI 的组播组。VTEP-2 从数据包中检查 VxLAN ID 并根据 IP 转发它,但是如果 Host-1 想和 host-2 通信,VTEP-2 也可以解封装 VxLAN 数据包。
需要注意的是,并非所有平台都可以成为Bud节点,同时运行两个角色需要强大的处理能力。在 ASIC 上运行 VxLAN 的平台(例如 Cisco Nexus 9000 系列)足以满足此类拓扑。
013 VTEP 冗余
VTEP 可能会失败,因此您需要考虑一种提供冗余和负载共享的方法。
尽管叶脊拓扑的设计已经是冗余,并且叶子不应该相互连接,但您仍然可以在它们之间引入对等互连以提供主机级冗余。
两个叶 VTEP 网关可以通过 peer-link 和 keep-alive 链接充当一个,您可以使用基于 Cisco 的功能来实现这一点,该功能称为 vPC(虚拟端口通道)。
vPC 是 Cisco Nexus 交换机上的第 2 层功能,允许您同时将主机连接到两台交换机,这对虚拟 vPC 交换机可以为连接的主机提供冗余,vPC 用作共享任播地址的逻辑 VTEP 设备。
014 部署 VxLAN
VxLAN 是一种基于标准的技术,因此它不受特定供应商的限制,可以由硬件或软件支持。
您可以通过 VxLAN 主机或 VxLAN 网关部署该技术,您可以将部署限制为一种方法或结合使用这两种方法。
015 基于主机的 VxLAN
VxLAN不需要部署在交换机上,也可以在任何主机上运行,只要它本身支持 VxLAN。
比如管理程序,它可以配置为在其所有虚拟机上运行 VxLAN,运行 VTEP 功能的 vSwitch,在来自虚拟机的流量传到物理交换机之前对其进行封装。
由于 VxLAN 封装发生在主机上,因此网络基础设施的其余部分只能看到 IP 流量,基于主机部署的优势在于可以简化整个物理网络,其他可能支持 VxLAN 的主机示例包括服务器、防火墙、负载平衡器等。
016 基于网关的 VxLAN
当主机不支持 VxLAN 时,最好的部署方式是直接在交换机或路由器上进行部署。
当交换机执行 VTEP 功能时,它被称为 VxLAN 网关,交换机可以执行 VxLAN 封装/解封装,还可以将 VLAN ID 转换为 VNI,VxLAN 网关创建通向目标 VTEP(主机或网关)的隧道,因此主机和 IP 基础设施不知道 VxLAN 的存在。
基于网关的部署的一个好处是某些平台(例如Cisco Nexus 9000-EX)能够在硬件上实施 VxLAN,直接从 ASIC 而不是从软件运行 VxLAN 可以显着提高性能。
017 混合部署
我们也可以将两者结合使用,混合部署是指将 VxLAN 与 VxLAN 网关后面的某些设备一起使用,并且还有一些主机运行本机 VxLAN。
018 联合摆放
下面来看一下 VxLAN 流量如何在简单的 VxLAN 网络中从主机流向主机的过程。
1.主机 A 想与网络另一端的主机 Z 通信,主机 A(不知道 VxLAN)创建一个常规的第 2 层帧并将其发送到交换机端口,接收接入交换机端口配置了特定的 VLAN。因此,交换机将 VLAN ID 分配给来自主机 A 的帧。
2.具有 VTEP 角色的交换机 A(VxLAN 网关)将(源)VLAN ID 与(目标)VxLAN ID 映射,VTEP 添加 VxLAN 头,并将第 2 层帧封装为第 3 层数据包,并跨第 3 层基础设施转发。
3.现在,中间的第 3 层基础设施只看到 IP 流量,不知道任何 VxLAN 信息。VxLAN 流量通过隧道传输。底层网络上的所有路由器只能看到一个 IP 标头,因此它们只是相应地转发它。
4.接收端(VxLAN 网关),也是 VTEP 的 Switch B 打开数据包,找到 VxLAN 信息,交换机 B 也了解 VxLAN 并知道 VxLAN ID 到 VLAN ID 的映射,因此它接收数据包,发现 VLAN ID,并使用目标 MAC 地址将其切换到相应的接入交换机端口。
5.主机 Z 也不知道 VxLAN,它接收主机 A 发送的常规第 2 层帧。
热门跟贴