挣扎于 VLAN 间路由 + 多个 VPN + 多层交换机上的默认路由

网络工程 路由 转变 私有vlan l3vpn
2022-02-20 03:54:38

我有一个相当简单的设置,使用运行 OPNSense 的 PCEngines 防火墙和 EdgeCore ECS4620-28P L3 交换机。EdgeCore 正在执行 VLAN 间路由,效果很好,但我无法同时在所有 VLAN 上访问 Internet。

我想要以下内容:

  • 交换机上有 5 个独立的 VLAN
  • 某些 VLAN 之间的 VLAN 间路由,例如 30(桌面工作站)-> 50(rdp 机器)
  • 每个 VLAN 的 Internet 访问都运行了一个单独的 VPN。
  • 如果我不能为每个 VPN 设置一个 VLAN,那么即使只是将所有 VLAN 都从一个 VPN 中取出也是很棒的。

网络:

在此处输入图像描述


有:

  • 5 个 VLAN:10-50
  • 每个 VLAN 都在 OPNSense 防火墙中定义,我使用 NAT 将每个 VLAN 路由到单独的 VPN
  • OPNSense 防火墙中的每个 VLAN 都有该 VLAN 的接口地址,例如 10.0.20.1、10.0.10.1 等...
  • 在 EdgeCore 上还定义了每个 VLAN(带有端口标记),每个 VLAN 都有一个接口
  • 每台 PC 的默认路由是该 VLAN 的 EdgeCore VLAN 接口,例如 10.0.20.200、10.0.10.200 等...

如果我将 PC 上的默认路由设置为 OPNSense VLAN 接口,例如 10.0.10.1,它会路由到 Internet,但不会在 VLAN 之间路由(因为 L3 交换机接口位于 10.0.10.200 上)。但是,如果我将默认路由设置为 10.0.10.200,那么我可以访问其他 VLAN 上的 PC,但不能访问 Internet(除非我为一个 VLAN 设置了默认路由,如下所示)

我很确定我错了,但现在我希望路径是:

  • PC#n (10.0.xx/24) -> EdgeCore VLAN 接口 (10.0.x.200) -> OPNSense VLAN 接口 (10.0.x.1) -> 互联网

但这似乎是错误的,因为同一个 VLAN 基本上有两个接口......


这是我在 OPNSense 中的 NAT 设置:

在此处输入图像描述


这是问题所在,当定义以下静态路由时,我可以从 EdgeCore 内部的 10.0.20.200 -> 10.0.20.1 -> 8.8.8.8 跟踪路由:

在此处输入图像描述

与任何其他 VLAN 一样,只要它的下一个希望(即 10.0.x.1)以这种方式定义。现在我知道这是默认路由,所以我知道每个 VLAN 不能有一个默认路由,至少不能像上面定义的那样。

这篇文章询问关于每个 VLAN 的默认路由的相同问题,建议的修复是基于策略的路由或 VRF-lite。EdgeCore 在手册中没有提到 VRF,我能看到的唯一基于策略的路由是参考 BGP。

我需要设置BGP吗?或者这里的答案是防火墙需要一条返回我的客户端的路由?

还有这篇文章指出需要一个额外的 VLAN 来处理交换机和路由器之间的路由,但是我似乎也无法做到这一点。


以下是在将 EdgeCore 配置为默认路由且未在 EdgeCore 中设置默认路由时来自其中一个客户端的 ping 响应:

IP:10.0.10.40/24 默认:10.0.10.200(EdgeCore VLAN 接口)

在此处输入图像描述

注意:它会像那样挂起,实际上没有“无法到达目的地”的响应或任何东西。

以下是在 .20 子网中配置并在 EdgeCore (0.0.0.0 -> 10.0.20.1) 中设置默认路由时来自其中一个客户端的 ping:

在此处输入图像描述

这些DUP数据包是看似双 VLAN 接口不正确的另一个迹象。

1个回答

基本上,您需要决定您的客户端应该使用哪个设备作为默认网关:OPNsense - 然后 VLAN 间路由也采用这种方式 - 或 L3 交换机,后者又使用 OPNsense 作为默认网关。

如果您使用 OPNsense 进行 VLAN 间路由,您需要设置允许连接的防火墙规则。请注意,OPNsense 默认是有状态的,这意味着跨它的连接会消耗内部资源。

使用 L3 交换机作为客户端默认网关具有(可能)更高速度的内部路由的优势,但您需要 ACL 来允许需要的流量并拒绝不需要的流量。ACL 通常是无状态的,并且需要对两个方向进行定义。与 OPNsense 相比,无状态还意味着交换机不关心有多少连接在其上运行。

此外,L3 交换机将所有流量发送到同一网关,无论源 VLAN 是什么 - 确保您在定义防火墙规则时牢记这一点。还要确保 OPNsense 接受来自不同 VLAN 的直接连接子网的流量,这可能不是默认设置。或者 - 并且推荐 - 您可以从 OPNsense-switch 链路中删除中继并使用具有单个 VLAN 的访问端口(并从防火墙接口中删除 VLAN)。

为了从不同的接口路由,根据IP 地址/子网,您需要设置基于策略的路由(PBR)。