如何将所有 VLAN 流量封装在 VXLAN 内

网络工程 VLAN 树干 虚拟局域网
2021-07-24 16:37:37

据我了解 VXLAN,它看起来应该能够封装和正确路由带有 VLAN 标记的流量。

然而,在调查如何在网络设备上实际配置 VXLAN 时,看起来像 Cisco、Arista 和 Juniper 等供应商是这样做的:

  • 将物理以太网端口设置为 VLAN 访问端口,例如 VLAN 100
  • 配置 VLAN->VNI 映射,将 VLAN 100 映射到您想要的任何 VNI

比如看https://eos.arista.com/vxlan-without-controller-for-network-virtualization-with-arista-physical-vteps/最后的配置

但是,我想指定所有进入物理端口的流量,无论 VLAN 标签如何应该放在特定的 VNI 上,在任何时候都不要修改 VLAN 标签。

我是否误解了该示例中的配置,或者是否有其他方法可以配置 VXLAN?我对 Arista 特别感兴趣,所以如果任何具有 Arista 专业知识的人都可以插话,我将不胜感激。

2个回答

我认为你混淆了几个概念。查看您链接的文档的最后一个配置部分:

7.2) 没有 CVX 的 VXLAN

VTEP 上的配置:

!
vlan 100
vlan 200
!
interface Ethernet 1
  switchport access vlan 100
!
interface Ethernet 2
  switchport mode trunk
  switchport trunk allowed vlan 100,200
!
interface loopback 1
 ip address 1.1.1.1/32
!
interface Vxlan 1
  vxlan source-interface loopback 1
  vxlan vlan 100 vni 10100
  vxlan vlan 200 vni 10200
  vxlan vlan 100 flood vtep 2.2.2.2 4.4.4.4
  vxlan vlan 200 flood vtep 2.2.2.2 3.3.3.3 4.4.4.4
!

请注意,VXLAN 接口Vxlan 1具有多个 VNI,就像中继具有多个带标签的 VLAN 一样。基本上,VXLAN 上的 VNI 就像中继上的 VLAN。您不应期望访问接口允许来自标记 VLAN 的任何帧,也不应期望中继接口允许 VLAN 配置为允许的范围之外的其他 VLAN。VNI 不应有除其相应 VLAN 之外的任何流量,VXLAN 接口也不应允许未为其配置的 VLAN 的流量。

您真的,真的不希望带有任何VLAN 标记的进入访问接口Ethernet 1这可能会导致诸如 VLAN 跳跃之类的安全问题。人们希望进入访问接口的带有 VLAN 标记的帧会因为格式错误而被丢弃。

此外,在 interface 上Ethernet 2switchport trunk allowed vlan 100,200指示除标记为 VLAN 100 或 VLAN 200 的帧之外的所有传入帧都将被丢弃,并且除了两个允许的 VLAN 中的帧之外,不发送任何帧。使用其他 VLAN 编号标记的帧将被丢弃。

该接口Vxlan 1将发送和接收 VLAN 100 和 200 的流量,就像中继接口一样 Ethernet 2

.1q 标签不会跨 L3 边界发送,映射是在封装和解封装时完成的。这允许 vlan 转换或其他用例,其中您未将每个 vtep 的 vlan 编号与公共 VNI 匹配。与之前的评论者所指出的类似,对于每个 vtep,vlan 到 vni 的映射是 1 到 1。

根据 RFC 7348 6.1。内部 VLAN 标记处理

VTEP 和 VXLAN 网关中的内部 VLAN 标记处理应符合以下要求:

除非另有配置,否则应丢弃带有内部 VLAN 标记的解封装 VXLAN 帧。在封装方面,除非另有配置,否则 VTEP 不应在隧道数据包上包含内部 VLAN 标记。当带有 VLAN 标记的数据包是 VXLAN 隧道的候选时,除非另有配置,否则封装的 VTEP 应该剥离 VLAN 标记。

在 EVPN 方法中,有一些方法可以执行与您要求的行为类似的 vlan 捆绑服务,但在您选择的有关 EVPN l2vpn 服务的任何平台上,还有另一组术语要学习和实施。

也许有更好的方法可以使用不同的封装来做您正在寻找的事情?