pfSense 多广域网桥、NAT、负载平衡和 CARP

网络工程 纳特 故障转移 感知 pfsense-2
2021-07-25 21:11:22

语境

我目前有:

  • 1 pfSense 2.0.2 路由器(在 Firebox X-Peak X5000 上)
  • 2 广域网
  • 1个局域网
  • 3台服务器

我的界面

  • WAN1 68.XX.XXX.98 到 69.XX.XXX.102
  • WAN2 65.XXX.XXX.58 到 66.XXX.XXX.62
  • 局域网 192.168.1.XXX
  • 非军事区

我的路由器配置如下:

  • 使用基于此文档的网关组进行负载平衡
  • 网络地址转换
  • LAN 服务器的规则
  • WAN2 和 DMZ 之间的桥接(在一台 DMZ 服务器上具有外部 IP) - 但无法通过外部 IP 地址在该服务器和 LAN 上的其他服务器之间进行通信。通过自定义路由配置,我已经能够处理从 LAN 到 DMZ 上服务器的请求,但我不喜欢这样做。

我的服务器使用本地 IP 地址192.168.1.XXX,所以我的电脑也是如此。

期待

我想做两件事:

1 桥接两个广域网,在 NAT 后面有一个 DMZ 和 LAN

我希望能够将外部 IP 地址归因于服务器,以及将来自两个 WAN 的 IP 混合到同一服务器的可能性。我还希望能够与 LAN 示例中的服务器进行通信:

192.168.1.100 <--> http://68.XX.XXX.99

还能够从服务器通信到另一个服务器示例:

65.XXX.XXX.59 <--> http://68.XX.XXX.99
  • 我需要为 NAT 后 LAN 上的计算机专用一个外部 IP 地址吗?
  • 我能保持负载平衡为 NAT 工作吗?

注意:我想避免一对一的 NAT,在服务器上使用本地 IP 地址会使虚拟主机配置复杂化,所以我更喜欢使用外部地址。

2 路由器硬件冗余(CARP)

我还有一个相同的 Firebox X-Peak X5000,想把它作为备份,如果第一个失败,第二个可以在不(或几乎)失去网络的情况下接管(即,从外部到服务器的请求必须工作,也从局域网和服务器到互联网)。

我已阅读此文档,但我不知道它是否适用于我的配置(网桥 + NAT + 负载平衡)

2个回答

这可以通过使用一对一(或静态)NAT 很好地解决。您的接口将设置为与当前相同,唯一的区别是您不会桥接 WAN/DMZ 接口。

唯一不能完成的事情是允许您从 LAN 地址空间到外部地址空间说话。我认为问题可能是 DNS 请求正在返回外部地址?如果是这种情况,那么您可以更改 BIND 配置以包含两个不同的视图 - 内部视图和外部视图 - 以根据 DNS 请求的来源提供不同的返回。

我相信唯一的其他解决方案 - 获得您在这里要求的一切 - 是让两个 ISP 为您分配另一个地址块,您将在 DMZ 接口上使用这些地址。

至于硬件故障位,只要您的接口连接在与第一个防火墙相同的 L2 区域,这应该可以正常工作。听起来它是主动/被动的,所以这应该没问题。

对于多WAN桥接+NAT+负载均衡,可以如下设置:

1 创建DMZ接口

  • IPv4 配置类型:无

2 创建桥梁

  • 接口
  • 分配
  • 桥梁
  • 添加
  • 选择 WAN1、WAN2 和 DMZ

3 防火墙规则

取消阻止必要的端口并允许它们在适当的 WAN 中:

  • 来源 : *
  • 港口 : *
  • 目的地 : 外部 IP 地址

通过该配置,DMZ 上的服务器现在可以使用公共 IP 地址。到目前为止唯一的缺点是我无法从 LAN 访问 DMZ 上的主机。