示例配置

访问通用服务和互联网连接

考虑一个场景,其中两个租户位于不同的 VRF 中 - 一个需要访问互联网,另一个需要访问诸如 DHCP 之类的通用服务。有一种传统的路由泄漏到 VRF 的方法可以利用。但是,由于其扩展性影响,可以使用下游 VNI (D-VNI) 模型来访问诸如 DHCP、DNS 等通用服务。

考虑以下网络拓扑

该拓扑显示了由 VRF RED、BLUE 和 PURPLE 代表的三个不同的租户,以及通过 EVPN 网络连接的相应主机。该网络还在单独的 VRF 中托管 DNS (DN1 和 DN2) 和存储 (ST1 和 ST2) 服务器,并且必须向这 3 个租户提供这些服务。服务叶交换机 (SL1 和 SL2) 仅配置了共享服务 VRF,而服务器叶交换机 (L11、L12、L21、L22、L31 和 L32) 仅配置了租户 VRF。

借助 D-VNI 支持,访问共享服务的工作方式如下

  1. 服务器叶交换机(L11 等)上的 VRF(RED、BLUE 和 PURPLE)配置为导入服务叶交换机(SL1 和 SL2)从其共享服务 VRF 导出路由时使用的 RT。例如,如果它们使用自动派生的 RT 导出,则服务器叶交换机配置为导入 RT *:20001 和 *:20002;“*”指的是 SL1 和 SL2 的 ASN(65201 和 65202)。您可以指定 ASN,而不是指定通配符。
  2. SL1 和 SL2 上的 VRF(DNS 和 STORAGE)配置为导入服务器叶交换机为租户 VRF 公告的 RT。例如,*:10001、*:10002 等。
  3. 当服务器叶交换机接收到 DNS 服务器或存储服务器的路由并将其安装到其 VRF 路由表中时,它们将被设置为使用 D-VNI;分别为 20001 和 20002。
  4. 服务叶交换机对于它们导入的路由也发生类似的行为。
  5. 当像 H11 (192.168.51.11) 这样的服务器尝试与 DNS 服务器 DN1 (200.11.3.1) 通信时,相应的叶交换机 (L11 或 L12) 使用 VNI 20001 封装数据包,并通过隧道传输到 SL1 (10.150.3.1) 或 SL2 (10.150.3.2)。基于接收到的 VNI (20001),SL1 和 SL2 知道在 VXLAN 解封装后在 DNS VRF 中路由数据包。从 DN1 到 H11 的反向流量由 SL1 或 SL2 使用 VNI 10001 封装,并通过隧道传输到 L11 或 L12,在 L11 或 L12 中,路由发生在 RED VRF 中。

以下代码段显示了多个通配符 RT 的导入。

nv set vrf RED router bgp autonomous-system 65001
nv set vrf RED router bgp address-family ipv4-unicast redistribute connected enable on
nv set vrf RED router bgp route-import from-evpn route-target *:20001 
nv set vrf RED router bgp route-import from-evpn route-target *:20002

不同 VRF 中租户之间的通信

考虑一个场景,其中两个租户位于不同的 VRF 中,它们需要相互访问并访问诸如 DHCP 之类的通用服务。可以利用路由泄漏,例如,可以将 VRF BLUE 导入到 VRF RED 内部。但是,更好的方法是通过使用 D-VNI 的 HUB 和 SPOKE 方法,如下所述。

考虑以下网络拓扑

由 VRF RED 代表的租户和由 VRF BLUE 代表的租户之间的通信预计将通过服务叶交换机 SL1 和 SL2 进行。这通过 D-VNI 工作,如下所示

  1. 在服务叶交换机 SL1 和 SL2 上配置了 VRF HUB01,并将其配置为导入服务器叶交换机在租户 VRF RED 和 BLUE 中始发的路由。例如,VRF HUB01 配置为导入 RT *:10001 和 *:10002。
  2. 此外,服务叶交换机配置为聚合它们导入到 VRF HUB01 中的 VRF RED 和 VRF BLUE 路由,然后使用导出 RT 65201:10002(或 65202:10002)为 VRF RED 路由始发聚合;同样,它们也使用 RT 65201:10001(或 65201:10001)为 VRF BLUE 路由始发聚合。
  3. 服务器叶交换机 L11、L12、L21 和 L22 使用其自动派生的 RT 进行路由导出和导入。这意味着它们通过服务叶交换机导入用于 VRF 间路由的聚合路由。
  4. 当 VRF RED 中的服务器(如 H11 (192.168.51.11))尝试与 VRF BLUE 中的服务器(如 H24 (192.168.62.24))通信时,相应的叶交换机(L11 或 L12)使用来自 SL1 或 SL2 的 192.168.62.0/24 的聚合路由进行路由;数据包使用 VNI 20001 封装,并通过隧道传输到 SL1 或 SL2。SL1 或 SL2 解封装数据包并在 VRF HUB01 中路由,VRF HUB01 现在使用来自 L21 和 L22 的 192.168.62.24/32 的主机路由;数据包使用 VNI 10002 封装,并通过 VXLAN 隧道传输回 L21 或 L22,数据包将在 L21 或 L22 的 BLUE VRF 中路由。请注意,即使通信发生在连接到同一服务器叶交换机的服务器 H11 和 H13 之间,也会发生类似的转发行为,因为这些主机位于不同的 VRF 中。

边界叶交换机上的 VRF 配置

不需要在边界叶交换机上配置所有租户 VRF,您可以在边界叶交换机上创建不同的 VRF(例如共享),并在租户 VRF 上导入共享的 RT。

互联网路由分发到 Fabric

您可以使用路由映射将任何路由分发到 EVPN Fabric,或者您可以在边界叶交换机上启用默认始发选项。

以下命令设置并向 IPv4 EVPN type-5 路由通告添加路由映射过滤器

nv set router policy prefix-list ext-routes-to-vrf1 rule 10 match 81.1.1.0/24
nv set router policy prefix-list ext-routes-to-vrf1 rule 10 action permit

nv set router policy prefix-list ext-routes-to-vrf2 rule 10 match 81.1.2.0/24
nv set router policy prefix-list ext-routes-to-vrf2 rule 10 action permit

nv set router policy prefix-list ext-routes-to-all-vrfs rule 10 match 120.0.0.1/32 
nv set router policy prefix-list ext-routes-to-all-vrfs rule 10 action permit

nv set router policy route-map IPV4-TO-EXT rule 10 action permit
nv set router policy route-map IPV4-TO-EXT rule 10 match type ipv4
nv set router policy route-map IPV4-TO-EXT rule 10 match ip-prefix-list IPV4-TO-EXT

nv set router policy route-map ext-routes-to-vrf rule 10 match type ipv4
nv set router policy route-map ext-routes-to-vrf rule 10 match ip-prefix-list ext-routes-to-vrf1
nv set router policy route-map ext-routes-to-vrf rule 10 set extcommunity rt 65050:104001
nv set router policy route-map ext-routes-to-vrf rule 10 action permit

nv set router policy route-map ext-routes-to-vrf rule 20 match type ipv4
nv set router policy route-map ext-routes-to-vrf rule 20 match type ipv4
nv set router policy route-map ext-routes-to-vrf rule 20 match ip-prefix-list ext-routes-to-vrf2
nv set router policy route-map ext-routes-to-vrf rule 20 set extcommunity rt 65050:104002
nv set router policy route-map ext-routes-to-vrf rule 20 action permit

nv set router policy route-map ext-routes-to-vrf rule 30 match type ipv4
nv set router policy route-map ext-routes-to-vrf rule 30 match ip-prefix-list ext-routes-to-all-vrfs
nv set router policy route-map ext-routes-to-vrf rule 30 set extcommunity rt 65050:104001 
nv set router policy route-map ext-routes-to-vrf rule 30 set extcommunity rt 65050:104002 
nv set router policy route-map ext-routes-to-vrf rule 30 set extcommunity rt 65050:104003
nv set router policy route-map ext-routes-to-vrf rule 30 action permit

nv set vrf shared router bgp router-id 144.1.1.2
nv set vrf shared router bgp autonomous-system 65201
nv set vrf shared router bgp neighbor 144.1.1.1 remote-as external
nv set vrf shared router bgp address-family ipv4-unicast redistribute connected enable on
nv set vrf shared router bgp address-family ipv4-unicast route-export to-evpn route-map ext-routes-to-vrf

要在 EVPN 中始发默认 type-5 路由

nv set vrf shared router bgp router-id 144.1.1.2
nv set vrf shared router bgp autonomous-system 65201
nv set vrf shared router bgp neighbor 144.1.1.1 remote-as external
nv set vrf shared router bgp address-family ipv4-unicast redistribute connected enable on
nv set vrf shared router bgp address-family ipv4-unicast route-export to-evpn default-route-origination on
nv set vrf shared router bgp address-family ipv6-unicast route-export to-evpn default-route-origination on