关于 VXLAN 接口
VXLAN 提供与 VLAN 相同的以太网第 2 层网络服务,但其可扩展性和灵活性更为出色。与 VLAN 相比,VXLAN 提供以下优势:
-
可在整个数据中心中灵活部署多租户网段。
-
更高的可扩展性可提供更多的第 2 层网段,最多可达 1600 万个 VXLAN 网段。
本节介绍 VXLAN 如何工作。有关详细信息,请参阅 RFC 7348。
VXLAN 封装
VXLAN 是在第 3 层网络上的第 2 层重叠方案。使用 MAC Address-in-User 数据报协议 (MAC-in-UDP) 的封装方式。原始第 2 层帧已添加 VXLAN 报头,然后放入 UDP-IP 数据包中。
VXLAN 隧道端点
VXLAN 隧道终端 (VTEP) 设备执行 VXLAN 封装和解封。每个 VTEP 有两种接口类型:一个或多个虚拟接口称为 VXLAN 网络标识符 (VNI) 接口,您可以向其应用安全策略;以及称为 VTEP 源接口的常规接口,用于为 VTEP 之间的 VNI 接口建立隧道。VTEP 源接口连接到传输 IP 网络,进行 VTEP 至 VTEP 通信。
下图显示第 3 层网络范围内用作 VTEP 的两个 ASA 和虚拟服务器 2,扩展了站点之间的 VNI 1、2 和 3 网络。ASA 可用作 VXLAN 与非 VXLAN 网络之间的网桥或网关。
VTEP 之间的底层 IP 网络与 VXLAN 重叠无关。封装的数据包根据外部 IP 地址报头路由,该报头具有初始 VTEP(用作源 IP 地址)和终止 VTEP(作为目标 IP 地址)。当远程 VTEP 未知时,目标 IP 地址可以是组播组。默认情况下,目标端口是 UDP 端口 4789(用户可配置)。
VTEP 源接口
VTEP 源接口是一个计划要与所有 VNI 接口相关联的常规 ASA 接口(物理、冗余、EtherChannel 接口,甚至 VLAN 接口)。每个 ASA/安全情景可以配置一个 VTEP 源接口。
尽管并未将 VTEP 源接口限制为全部用于传输 VXLAN 流量,但是可以实现该用途。如果需要,可以使用该接口传输常规流量,并将一个安全策略应用于传输此类流量的该接口。但是,对于 VXLAN 流量,必须对 VNI 接口应用所有安全策略。VTEP 接口仅作为物理端口。
在透明防火墙模式下,VTEP 源接口不是 BVI 的一部分,并且类似于对待管理接口的方式,不为该源接口配置 IP 地址。
VNI 接口
VNI 接口类似于 VLAN 接口:它们是虚拟接口,通过使用标记,实现网络流量在给定物理接口上的分离。将安全策略直接应用于每个 VNI 接口。
所有 VNI 接口都与同一 VTEP 接口相关联。
VXLAN 数据包处理
进出 VTEP 源接口的流量取决于 VXLAN 处理,特别是封装或解封。
封装处理包括以下任务:
-
VTEP 源接口通过 VXLAN 报头封装内部 MAC 帧。
-
UDP 校验和字段设置为零。
-
外部帧源 IP 设置为 VTEP 接口 IP。
-
外部帧目标 IP 通过远程 VTEP IP 查找确定。
解封;ASA 仅在以下条件下解封 VXLAN 数据包:
-
VXLAN 数据包是目标端口设置为 4789(用户可配置该值)的 UDP 数据包。
-
入口接口是 VTEP 源接口。
-
入口接口 IP 地址与目标 IP 地址相同。
-
VXLAN 数据包格式符合标准。
对等体 VTEP
ASA 向对等体 VTEP 后的设备发送数据包时,ASA 需要两条重要信息:
-
远程设备的目标 MAC 地址
-
对等体 VTEP 的目标 IP 地址
ASA 可以通过两种方式找到这些信息:
-
单个对等体 VTEP IP 地址可以在 ASA 上静态配置。
无法手动定义多个对等体。
然后,ASA 将向 VTEP 发送一条 VXLAN 封装的 ARP 广播,以了解结束节点 MAC 地址。
-
可以在每个 VNI 接口(或者总的来说,在 VTEP 上)配置组播组。
ASA 将通过 VTEP 源接口在 IP 组播数据包内发送一个 VXLAN 封装的 ARP 广播数据包。对此 ARP 请求的响应使 ASA 可以获悉远程 VTEP IP 地址以及远程结束节点的目标 MAC 地址。
ASA 维护目标 MAC 地址到 VNI 接口的远程 VTEP IP 地址的映射。
VXLAN 使用案例
本部分介绍在 ASA 上实施 VXLAN 的使用案例。
VXLAN 网桥或网关概述
每个 ASA VTEP 均可用作终端节点(例如 Vm、服务器和 Pc)与 VXLAN 重叠网络之间的网桥或网关。对于使用 VXLAN 封装通过 VTEP 源接口收到的传入帧,ASA 会基于内部以太网帧的目标 MAC 地址去除 VXLAN 报头,并将其转发到连接至非 VXLAN 网络的物理接口。
ASA 总会处理 VXLAN 数据包,而不只是在两个其他 VTEP 之间原封不动地转发 VXLAN 数据包。
VXLAN 网桥
在使用网桥组(透明防火墙模式或可选的路由模式)时,ASA 可以用作 VXLAN 网段与本地网段之间的 VXLAN 网桥(远程),其中二者均位于同一网络中。在这种情况下,网桥组的一个成员是常规接口,而另一个成员是 VNI 接口。
VXLAN 网关(路由模式)
ASA 可以用作 VXLAN 和非 VXLAN 域之间的路由器,用于连接不同网络上的设备。
VXLAN 域之间的路由器
通过 VXLAN 延伸的第 2 层域,VM 可以在 ASA 不与其位于同一机架上时,甚至是在 ASA 远离第 3 层网络时,作为其网关指向该 ASA。
请参阅有关此场景的以下注释:
-
对于从 VM3 到 VM1 的数据包,目标 MAC 地址为 ASA MAC 地址,因为 ASA 是默认网关。
-
虚拟服务器 2 上的 VTEP 源接口接收来自 VM3 的数据包,然后使用 VNI 3 的 VXLAN 标签封装数据包,并将数据包发送到 ASA。
-
当 ASA 接收数据包时,会解封数据包以获得内部帧。
-
ASA 使用内部帧进行路由查找,然后发现目标位于 VNI 2 上。如果尚不存在适用于 VM1 的映射,则 ASA 会在 VNI 2 的组播组 IP 上发送一个封装的 ARP 广播。
注
ASA 必须使用动态 VTEP 对等体发现,因为它在此案例中包括多个 VTEP 对等体。
-
ASA 使用 VNI 2 的 VXLAN 标签再次封装数据包,然后将数据包发送至虚拟服务器 1。封装之前,ASA 会将内部帧目标 MAC 地址更改为 VM1 的 MAC 地址(ASA 要想了解 VM1 MAC 地址,可能需要组播封装的 ARP)。
-
当虚拟服务器 1 接收 VXLAN 数据包时,该虚拟服务器会解封数据包并向 VM1 提供内部帧。