pfSense book之多WAN

多WAN 连接

章节目录:

  • 多WAN术语和概念
  • 策略路由,负载均衡和故障转移策略
  • 多WAN注意事项
  • 多WAN要求概述
  • 负载平衡和故障切换网关组
  • 接口和DNS配置
  • 多WAN和NAT
  • 策略路由配置
  • 验证功能
  • 故障排查
  • 一站式多WAN
  • IPv6的多WAN
  • 多链路的PPPoE(MLPPP)

pfSense的多WAN功能允许防火墙利用多个Internet连接来实现更可靠的连接和更大的吞吐量。 在进行多WAN配置之前,防火墙必须至少正确配置两个接口(LAN和WAN)。 pfSense能够处理多个WAN线路,但建议不要超过12个。

所有WAN类型的接口在GUI中被相同地对待。 使用主WAN可以完成的任何操作也可以通过附加的OPT WAN接口完成。 主WAN和其他广域网之间没有明显的差异。

本章首先介绍实施多WAN解决方案时要考虑的问题,然后介绍使用pfSense进行多WAN配置。

选择Internet连接

如果有多个Internet连接,建议选择不同的电信运营商,以满足多线冗余的要求。一个运营商的多WAN没有任何意义,如果一根光缆被挖断,则所有的连接都会中断。

多WAN术语和概念

本节介绍pfSense部署多WAN功能的术语和概念。

WAN接口类型

WAN接口是可以直接或间接访问互联网的接口。 pfsense会将有网关的任何接口都视为WAN。 如果没有网关,则该接口被视为本地接口。 不要在本地接口上设置任何网关。 动态IP地址接口(如DHCP和PPPoE)自动接收动态网关,会始终被视为WAN。

接口配置上网关的存在可以通过多种方式改变接口上的防火墙行为。 例如,具有网关组的接口在它的防火墙规则上响应,它们会被用作自动和混合出站NAT的退出接口,并且它们也被流量整形向导视为WAN。

注意:本地和其他接口可能会在System > Routing下有定义的网关,只要该接口不在接口配置下选择网关就不会有什么影响,例如“Interfaces > LAN。

策略路由

策略路由是指多于目标IP地址的流量通过不同网关的方法,与大多数操作系统和路由器中的路由表一样。 这是通过使用某种策略,通常是防火墙规则或访问控制列表来实现的。 在pfSense中,编辑或添加防火墙规则时通过使用不同的网关来使用策略路由。 网关包含在System > Routing下防火墙上定义的所有网关,和任何网关组。

策略路由提供了将流量引导到适当的WAN接口或其他网关的强大手段,它允许防火墙规则匹配的任何内容, 如通过特定的主机,子网,协议等来引导流量。

注意:请记住,包括策略路由规则在内的所有防火墙规则都按照自上向下的顺序处理,第一个匹配的规则将优先执行。

网关组

网关组是定义一组选定的网关,用来实现故障切换或负载平衡功能。 在System > RoutingGateway Groups选项卡上进行配置。

多WAN故障切换

多WAN故障切换是指仅使用一个WAN的连接,如果首选连接失败,则切换到另一个WAN。 这可以用于两条或多条线路的故障切换。

负载均衡

pfSense中的负载平衡允许流量以循环方式分布在多个WAN连接上。 这是在每个连接的基础上完成的。 如果作为负载平衡组的某个网关发生故障,则改接口将被标记为关闭,并从所有组中删除,直至恢复。

监视IP:配置故障转移或负载平衡时,每个网关与监视IP(Monitor IP)相关联。 在一般的配置中,pfSense将ping此IP地址,如果停止响应,则改接口标记为关闭。 网关组中的选项可以选择不同的故障触发器,如丢包、高延迟、分组丢包或高延迟的组合、或者掉线。

如何认定网关故障?

认定网关故障比“监视IP发生故障,接口被标记为关闭”要复杂一点。实际的故障标准取决于在创建网关组和网关上的各个设置时选择的选项。

高级设置中会确定每个网关的设置,这些设置可以确定对网关掉线和恢复的认定。 分组丢失,延迟,掉线时间,甚至网关的探测间隔和阈值都可以单独配置。

状态刷新/强制切换

当网关发生故障时,pfSense可以选择刷新所有状态以强制客户端重新连接,在这样做时,客户端将使用可用的网关,而不是已关闭的网关。 目前这个功能只能单向工作,这意味着它可以将连接从故障网关移出,但如果原始网关重新联机,则无法强制他们返回。

这是一个可选的行为,默认情况下启用。

默认网关切换

通过防火墙的流量将使用默认网关,除非静态路由沿着不同的路径发送数据包。 如果默认网关掉线或关闭,则防火墙上的守护程序将无法进行出站连接。 当启用默认网关切换时,如果默认网关出现故障,则防火墙的默认网关将切换到下一个可用网关,然后在该WAN恢复连接时再自动切换回来。

策略路由,负载平衡和故障转移策略

本节提供有关常见的多WAN设置目标以配置方法。

带宽聚合

多WAN的主要需求之一是带宽聚合。 通过负载平衡,pfSense可以实现这一目标。 但是有一点值得注意:如果防火墙有两个5Mbps的WAN线路,那么在单个客户端连接中,它不能获得10 Mbps的吞吐量。 每个单独的连接只能绑定一个特定的WAN。 除了MLPPP以外的任何多WAN解决方案都是这样。 两个不同的互联网连接的带宽不能聚合到一个大的“管道”,而不受ISP的干扰。 通过负载平衡,由于单个连接以循环方式进行平衡,所以仅在涉及多个连接时才能使用两个5 Mbps线路实现10 Mbps的吞吐量。 利用多个连接的应用程序(如讯雷)将能实现两个或多个连接的组合吞吐能力。

注意:多链路PPPoE(MLPPP)是唯一可以实现捆绑中所有线路的全集合带宽的WAN类型,但需要ISP的特殊支持。在具有访问互联网的众多内部机器的网络中,通过平衡所有WAN接口的许多内部连接,负载平衡将达到接近聚合吞吐量的速率。

优先服务的分离

在某些情况下,会有两个不同连接质量的线路。在这种情况下,不同的网络服务可以通过优先级的设定在两个Internet连接之间进行分离。高优先级服务可能包括VoIP,以及流向特定网络的流量,如外包应用程序提供商,或关键应用程序使用的特定协议等。低优先级流量通常包括与高优先级流量列表不匹配的任何允许流量。策略路由规则可以设置为将高优先级流量引导到高质量的Internet连接,而较低优先级的业务通过较低质量的Internet连接。

在企业应用中,可以优先保证如办公OA网络使用高质量的Internet连接。

仅故障切换

当一部分Internet连接出现故障时,使用故障切换是最佳做法。 部分pfSense用户具有低带宽限制的辅助备份Internet连接,例如3G调制解调器,在主连接失败时可以使用该连接,可以将该连接配置为故障切换网关组,以实现这个目标。

故障切换的另一个用法是确保某个协议或目的地始终只使用一个WAN,除非它失效。

负载平衡的权重

可以通过在网关上设置适当的“weight”(权重)来实现不平均的负载平衡。  权重值可以从1到30。

不平均的负载平衡
WAN_GW weight WAN2_GW weight WAN load WAN2 load
3 2 60% 40%
2 1 67% 33%
3 1 75% 25%
4 1 80% 20%
5 1 83% 17%
5 1 83% 17%
30 1 97% 3%

这里要注意的是,这个配置只考虑平衡连接数,不考虑接口吞吐量。  也意味着如果使用单个高吞吐量连接将接口带宽使用到上限,其他连接仍会被引导到这个接口。

多WAN注意事项

本节包含pfSense中特定于多WAN的注意事项。

多个WAN共享一个网关IP

由于pf处理多WAN连接的方式,pfSense将每个WAN网关视为唯一IP地址,流量只能使用线路的网关IP地址进行定向。

如果你的多WAN为同一ISP提供,并且在一个网段共用一个网关,要使用多WAN,必须在其中一条线路增加路由设备。如果可能的话,请联系ISP,并让它们重新配置WAN线路,让多WAN位于不同的子网,以使用不同的网关。

PPP型WAN(如PPPoE)能够在多个接口上使用相同的网关,但是每个网关条目必须配置使用不同的监视IP。

多个PPPoE WAN

当存在来自同一ISP的多个PPPoE线路并且ISP支持多链路PPPoE(MLPPP)时,可以将线路绑定到单个聚合链路中。 这个绑定链路在一个广域网中将所有线路的总带宽合并在一起。

本地服务和多WAN

本地服务和多WAN的注意事项,因为从防火墙本身发起的任何流量都不会受到内部接口规则配置的策略路由的影响。 来自防火墙本身的流量始终遵循系统的路由表。 因此,在使用其他WAN接口的情况下,需要使用静态路由,否则只能使用具有默认网关的WAN接口。

在Internet上发送的流量发往任何WAN接口的情况下,pfSense会在所有WAN类型接口规则中自动使用pf的reply-to指令,以确保应答流量被路由回正确的WAN接口。

DNS 解析

DNS解析器的默认设置要求默认网关切换才能正常使用多WAN。这里可以进行一些修改,使DNS解析器适应多WAN,包括启用转发模式。

DNS 转发

DNS转发器使用的DNS服务器如果使用OPT WAN接口,则必须定义网关。

动态DNS

可以在接口的网关组设置DynDNS条目。 这将在故障转移模式的WAN之间移动DynDNS条目,允许公共主机名在发生故障时从一个WAN转移到另一个WAN。

IPsec

IPsec与多WAN完全兼容。 自动添加指向特定WAN网关的远程隧道对等体地址的静态路由,以确保防火墙在启动连接时将流量发送到正确的路径。 对于移动连接,客户端始终启动连接,并且状态表正确应答路由连接。也可以使用网关组作为故障转移接口来设置IPsec隧道。

OpenVPN

像IPsec一样,它可以使用任何WAN或网关组。

CARP  和多WAN

CARP具有多WAN功能,只要所有WAN接口使用静态IP地址,并且每个WAN至少有三个公共IP地址可用。

IPv6和多WAN

IPv6能够以多WAN模式下执行,但通常需要在一个或多个WAN上进行网络前缀转换(NPT)。

多WAN设置摘要

以下简要总结了完成多WAN设置的要求:

1、在 System > Routing 的 Groups选项卡下创建网关组

2、配置多WAN的DNS解析器或转发器,在System > General Setup为每个WAN网关设置至少一个唯一的DNS服务器

3、在LAN防火墙规则上使用网关组

  • 使用网关组进行负载平衡和故障切换

  • 网关组是设置负载平衡或故障转移配置所必需的。 组本身不会有任何行为,但是当稍后使用该组时,例如在策略路由防火墙规则中,它将定义使用该组的项目将如何运行。
  • 同一网关可以包含在多个组中,以便可以同时配置多个不同的场景。 例如,一些线路可以负载平衡,其他线路可以使用故障切换,并且可以通过使用不同的网关组在两个配置中使用相同的WAN。
  • 两个WAN防火墙的一个非常常见的示例设置包括三个组:
  • 1、负载平衡  – WAN1和 WAN2位于同一层级
  • 2、PreferWAN1 – WAN1网关位于层级1,  WAN2网关位于层级2
  • 3、PreferWAN2 – WAN1网关位于层级2 , WAN2网关位于层级1
  • 配置网关组进行负载平衡或故障切换

  • 创建负载平衡或故障切换网关组:
  • 导航到System > RoutingGroups选项卡
  • 单击  添加创建一个新的网关组
  • 根据需要填写页面上的选项:
  • Group Name: 网关组的名称。 名称的长度必须小于32个字符,并且只能包含字母a-z,数字0-9和下划线。 这是防火墙规则中的网关项中用于引用该网关组的名称。
    Tier: 选择组内网关的优先级。 内部网关组,网关安排在层级中。 层级编号为1到5,首先使用低层级。层级为1的网关总是比层级为2的网关优先使用,依此类推。
    Virtual IP: (可选)指定用于接口的虚拟IP地址(如果存在)。 此选项用于Open***等功能,允许选择特定的虚拟地址,而不是仅在特定网关在组中处于活动状态时才直接使用接口地址。 在大多数情况下,这是默认的接口地址。
    Trigger Level: 决定何时将网关标记为关闭。

    Member Down:只有当网关完全关闭时,才将网关标记为关闭,超过为网关配置的较高阈值之一或两者。 当网关完全无响应时,这可能会遇到最严重的故障,但可能会错过更多微妙的问题,使线路在网关达到该级别之前可以使其无法使用。Packet Loss:当丢包超过较低的警报阈值时,将网关标记为关闭。High Latency:当延迟超过较低的警报阈值时,将网关标记为关闭。Packet Loss or High Latency:将网关标记为两种类型的警报。

    Description:

    描述此网关组目的的文字。

  • 单击SAVE 
  • 负载平衡

  • 同一层上的任何两个网关都是负载平衡的。 例如,如果网关A,网关B和网关C都是层级1,则它们之间的连接将被平衡。 负载平衡的网关将自动在彼此之间进行故障切换。 当某个网关发生故障时,它将从组中删除,如果A,B或C中的任何一个出现故障,防火墙将在剩余的在线网关之间进行负载平衡。
  • 负载权重

  • 如果两个WAN需要以加权方式进行平衡,因为它们之间的带宽不同,可以通过调整网关上的权重参数来适应不同程度的负载平衡。
  • 故障转移

  • 较低层次的网关是首选的,如果它们关闭,则使用较高编号层的网关。 例如,如果网关A处于层级1,网关B处于层级2,网关C处于层级3,则首先使用网关A。 如果网关A关闭,则将使用网关B。如果网关A和网关B都关闭,则将使用网关C。
  • 复杂/组合场景

  • 通过扩展以上关于负载平衡和故障转移的概念,可以应用更复杂的情况,如结合了负载平衡和故障转移这两个功能的应用。 例如,如果网关A处于层级1,网关B和网关C处于层级2,则网关D在层级3上,则会出现以下情况:网关A本身是首选的。 如果网关A关闭,则流量将在网关B和网关C之间进行负载平衡。如果网关B或网关C关闭,则仍将使用该层中剩余的在线网关。 如果网关A,网关B和网关C全部关闭,流量将故障切换到网关D。
  • 可以使用上述的任何其他组合,只要它可以排列在5层的限度内。
  • 负载平衡问题

  • 某些网站存储会话信息,包括客户端IP地址,如果使用不同的公网IP地址先后进行连接,则该网站将可能无法正常访问,如银行和其他安全网站。解决方法是创建一个故障转移组,并将到达这些站点的流量定向到故障转移组而不是负载平衡组。或者为所有HTTPS流量执行故障切换或指定网关。
  • 接口和DNS配置

  • 配置多WAN的前两个项目是接口和DNS。
  • 接口配置

  • 安装主WAN,如安装向导中所述。 然后对于其他WAN接口,执行以下任务:
  • 如果接口不存在,请分配接口
  • 访问每个附加WAN(例如Interfaces > OPT1)的“Interfaces”菜单项
  • 启用接口
  • 输入合适的名称,如WAN2
  • 根据Internet连接类型选择所需类型的IP地址配置
  • 输入广域网的其他信息,如IP地址、子网掩码,并添加网关。
  • DNS服务器配置

  • 如果DNS转发器正在使用,或者DNS转发器在转发模式下使用,pfSense必须配置来自每个WAN连接的DNS服务器,以确保它始终能够解析DNS。 如果内部网络使用防火墙进行DNS解析,这一点尤为重要。
  • 如果仅使用单个WAN的DNS服务器,则由于DNS将不再起作用,所以WAN连接中断将会导致完全的Internet中断,而不考虑策略路由配置。
  • DNS解析器配置

  • DNS解析器可以与多WAN协同工作,但具体配置取决于所需的行为和设置。
  • 如果必须使用DNSSEC,并且配置的DNS服务器不支持DNSSEC,则无法启用转发模式。 这仍然可以使用多WAN,但需要默认网关切换。
  • 如果DNSSEC不是此防火墙的要求,或配置的DNS服务器支持DNSSEC,则可以执行以下步骤:
  • System > General Setup,下,为每个WAN至少设置一个DNS服务器
  • Services > DNS Resolver下启用转发模式
  • 如果配置的上游DNS服务器不支持DNSSEC,请取消选中启用DNSSEC支持
  • DNS服务器和静态路由

  • 在转发模式下使用DNS转发器或DNS解析器时,pfSense使用其路由表到达配置的DNS服务器。 这意味着没有配置任何静态路由,它只会使用主WAN连接到达DNS服务器。 必须为防火墙上定义的每个DNS服务器选择网关,以便pfSense将使用正确的WAN接口来访问该DNS服务器。 来自动态网关的DNS服务器将自动路由到正确的路径。
  • 配置DNS服务器网关:
  • 导航到  System > General Setup
  • 为每个WAN设置至少一个唯一的DNS服务器(最多四个)
  • 对于每个DNS服务器,选择一个网关,以便使用特定的WAN接口
  • 注意:不能输入相同的DNS服务器,每个条目必须是唯一的。

  • 选择DNS服务器的网关需要注意的事项:一是大多数ISP禁止来自网络外的主机的递归查询,因此当访问特定ISP的DNS服务器时,防火墙必须使用正确的WAN接口。其次,如果主WAN出现故障,并且防火墙没有为其他DNS服务器选择网关,则防火墙将失去防火墙本身的所有DNS解析能力。在这种情况下,访问DNS会失效,因为默认网关不能到达时,所有DNS服务器将无法访问。如果pfSense用作本地网络的DNS服务器,则会导致DNS完全失效。
  • 当使用禁用转发模式的DNS解析器时,未绑定守护进程直接与根DNS服务器和其他权威DNS服务器通信,这使得使用这种静态路由和网关分配是不可能的。在这种情况下,需要选中“默认网关切换”,以使未绑定守护进程能够维护出站连接。
  • 扩展到多个的WAN接口

  • 在pfsense的应用实例中,有无数的用户部署6-12个的互联网连接,因为在有些国家,获得十个256 Kb的Internet连接比一个2.5 Mb的Internet连接要便宜得多。客户使用pfSense将大量内部机器分流平衡到10个以上的不同连接。 有关这种部署的更多信息,请参阅本章后面的一站式多WAN功能。
  • 多WAN 和 NAT

  • 由pfSense生成的默认NAT规则将离开WAN类型接口的任何流量转换为该接口IP地址。 在默认的两个接口LAN和WAN配置中,pfSense的NAT将LAN接口的所有流量从WAN接口传送到WAN IP地址。 添加更多WAN类型的接口可以将NAT扩展到NAT,该流量离开该接口IP地址的WAN类型接口。 除非启用手动出站NAT,否则这一切都将自动处理。
  • 策略路由防火墙规则将流量定向到所使用的WAN接口,“出站”和“1:1”NAT规则指定在离开该WAN时如何引导流量。
  • 多WAN和手动出站NAT

  • 如果手动出站NAT必须与多WAN一起使用,请确保为所有WAN类型接口配置NAT规则。
  • 多WAN和端口转发

  • 每个端口正向应用于单个WAN接口。 给定端口可以通过使用多个端口转发条目在多个WAN接口上打开,每个WAN接口一个。
  • 最简单的方法是:
  • 像往常一样在第一个WAN连接上向前添加一个端口
  • 在该条目的右侧单击 ,根据所选择的端口向前添加另一个端口
  • 将接口更改为所需的WAN
  • 单击 Save
  • 在WAN类型接口规则中使用的pf中的reply-to关键字可以确保当流量通过特定WAN接口进入时,返回流量将以其进入防火墙的方式返回。 因此,无论任何可能存在的故障转移配置,端口转发都可以随时在所有WAN接口上主动使用。 这对于邮件服务器特别有用,因为辅助WAN上的地址可以用作备份MX,即使在主线路关闭时,站点也可以接收邮件。
  • 多WAN和1:1 NAT

  • 1:1 NAT条目专用于单个WAN接口,并且像出站NAT一样,仅控制流量在离开接口时会发生什么。 内部系统可以配置在每个WAN接口上的1:1 NAT条目,或一个或多个WAN接口上的1:1条目,并在其他WAN接口上使用默认出站NAT。 当配置1:1条目时,它们将总是覆盖该特定接口的任何其他出站NAT配置。
  • 如果本地设备必须始终在特定WAN上使用1:1 NAT条目,则必须强制该设备的流量使用该特定WAN网关。

策略路由配置

根据上述步骤,pfsense的多WAN已配置完成,但如果应用,还需要配置防火墙策略路由,才能实现故障切换或负载平衡功能。

注意:如果启用了默认网关切换,故障切换仍然可以在没有策略路由的情况下运行。

配置防火墙策略路由规则

在防火墙规则上设置网关将导致与规则匹配的流量使用所选网关或网关组,并遵循网关组的行为。

为策略路由配置防火墙的最简单方法是编辑LAN的现有默认传递规则,然后在其中选择网关组。 使用该规则,与LAN上的默认通过规则匹配的任何流量将使用所选的网关或网关组。

  • 导航到Firewall > RulesLAN 选项卡
  • 在具有默认传递规则的行上单击
  • Extra Options(额外选项)单击  Display Advanced (显示高级设置)
  • Gateway 下拉列表中选择所需的网关或网关组
  • 单击 Save
  • 单击Apply Changes(应用更改)

以上就是多WAN使用的基本配置,如果需要更多的功能,则需要进行更复杂的配置。

旁路策略路由

如果有其他本地接口, VPN,MPLS接口或必须遵循系统路由表的流量,则该流量必须配置为绕过策略路由。 通过制定规则来匹配相关流量,然后将该规则放置在配置了网关的任何规则之上,这很简单,因为要匹配的第一个规则是使用的规则。

这可以通过为涵盖所有专用网络的任何RFC1918流量建立别名,然后在规则中使用别名来推广。 别名包含192.168.0.0/16,172.16.0.0/12和10.0.0.0/8。

在旁路策略路由示例规则中,本地和VPN流量绕过策略路由,HTTPS流量优先使用WAN2,所有其他流量均负载均衡:

旁路策略路由示例规则

混合故障切换和负载平衡

如图“旁路策略路由示例规则”所示,可以通过在接口上仔细排序规则,同时使用故障切换和负载平衡。 规则从上到下处理,第一个优先执行。 通过在列表顶部附近放置更多的具体规则,以及底部的一般“匹配所有”样式规则,使用不同网关或组的规则可以使用任意数量的不同组合。

强制网关使用

在某些情况下,流量只能使用一个网关,从不负载平衡或故障切换。 在此示例中,设备必须通过特定WAN退出,并在WAN失败时丢失所有连接。

首先,将网关设置为将来自该设备的流量与特定WAN网关相匹配的防火墙规则。 如果该网关关闭,则该规则将如同网关未设置一样起作用,因此需要进一步进行几步。

在匹配流量的规则正下方添加规则,但设置为拒绝或阻止。 该规则不能设置网关。

接下来,配置防火墙以忽略关闭的网关的规则(网关监控):

  • 导航到System > Advanced  > Miscellaneous 选项卡
  • 选中“ Do not create rules when gateway is down(网关关闭时不要创建规则)”
  • 单击 Save

启用该选项后,将完全省略第一条规则,直到下一个匹配规则。 这样,当第一条规则被自动省略时,流量将被阻止规则停止。

验证功能

一旦配置了多WAN,那么最好的做法是测试其功能,以验证它是否按预期运行。 以下部分将介绍如何测试多WAN配置的每个部分。

测试故障切换

在配置之后立即以受控的方式测试多WAN是该过程的关键步骤。 不要等到互联网连接自动失败进行第一次测试时才会发生错误,只有在遇到困难和压力的时候才能发现问题。

首先,导航到Status > Gateways,并确保所有WAN网关在“状态”下以及“网关组”选项卡上显示为“联机”。 如果没有,请验证是否使用了正确的监视IP地址。

创建广域网故障

根据所使用的Internet连接的类型,有多种方法来模拟WAN故障。对于任何类型,首先从防火墙拔下目标WAN接口网线。

对于电缆和DSL连接,请关闭调制解调器/ CPE电源,并在单独的测试中,从调制解调器拔下同轴电缆或电话线。对于光纤,无线和其他与pfSense之外的路由器的连接类型,请尝试从路由器拔下Internet连接,并关闭路由器本身。

验证接口状态

拨出WAN接口网线或关闭路由器电源后,刷新Status > Gateways 检查当前状态。 由于网关监控守护程序会注意到丢包,丢包超过配置的警报阈值,就会标记为脱机。

验证负载平衡功能

本节介绍如何验证负载平衡配置的功能。

验证HTTP负载平衡

验证HTTP负载平衡的最简单方法是访问显示客户端用于访问站点的公共IP地址网站。如:www.ip138.com/

浏览器有保持打开服务器连接和缓存结果的习惯,所以最好的基于浏览器的测试是加载多个站点,或者在加载站点的时关闭浏览器窗口。在每个连接期间,如果负载平衡正常工作,则应显示不同的IP地址。如果网络中存在其他流量,则每个页面的加载IP地址可能不会改变。重复测试多次,IP地址应该至少改变几次。

如果IP地址永远不会更改,请尝试几个不同的站点,并确保浏览器确实再次请求页面,而不是从其缓存读取类容。手动删除缓存,关闭并重新打开浏览器,并尝试使用多个Web浏览器是进一步排除负载平衡配置故障。

另外,curl是一个更好的测试工具,它可以确保缓存和持久连接对结果没有影响。

用traceroute测试负载均衡

traceroute实用程序(或Windows中的tracert)显示了到达给定目标的网络路径。 通过负载平衡,从防火墙后面的客户端系统运行跟踪路由应显示每次尝试采用的路径不同。 由于跟踪路由功能的方式,在停止跟踪路由之后等待至少一分钟,然后再开始另一个测试,以便状态过期,或者每次尝试不同的目的地。

使用流量图

Status > Traffic Graph和系统面板小部件下的实时流量图可用于显示WAN接口上的实时吞吐量。 当使用Status > Traffic Graph时,每个浏览器窗口只能显示一个图形,但可以在浏览器中打开其他窗口或选项卡,以同时查看所有WAN接口。 系统面板的流量图窗口小部件允许在单个页面上同时显示多个接口的流量图。 如果负载平衡正常工作,所有WAN接口上都会有流量显示。

Status > Monitoring下的RRD流量图对于WAN利用率的长期和历史评估很有用。

注意

带宽使用可能不会完全平均分配,因为多WAN连接是简单的循环而不考虑带宽使用。

故障排除

本节介绍多WAN最常见的一些问题,以及如何解决这些问题。

验证防火墙规则配置

配置多WAN时最常见的错误是防火墙规则不正确。 一定要记住,第一个匹配规则优先,任何其他规则将被忽略。 如果策略路由规则低于列表中的默认LAN规则,则不会匹配该规则,因为它将首先匹配默认的LAN规则。

如果规则排序和配置显示正确,有助于启用对规则的登录,确保适当的策略路由规则正在传递流量。

策略路由不适用于网络流量或所有流量

当使用可以透明捕获HTTP流量的代理软件(例如squid)时,它会覆盖为该端口上的客户端流量定义的任何策略路由。 因此,无论防火墙规则中设置了哪个网关,HTTP(TCP端口80)的流量仍然会通过squid并遵循防火墙的默认路由。

故障切换不工作

如果互联网连接失败时出现问题,通常是因为监视IP地址仍在应答,所以防火墙认为连接仍然可用。 检查Status > Gateways 进行验证。 调制解调器上的IP地址可以用作监视IP地址,即使互联网连接断开,它仍然可以访问。

负载平衡不起作用

检查网关组是否正确配置为负载平衡,同一层上至少有两个网关。

  • 检查LAN防火墙规则是否匹配正确的负载均衡网关组。
  • 检查组中的所有网关在 Status > Gateways下是否显示为“联机”。 标记为“离线”的连接将不会被使用。
  • 检查测试方法。 不要使用Web浏览器进行测试,请使用Curl进行测试,如验证负载平衡中所述。
  • 检查流量是否正在使用代理服务器,或以其他方式从防火墙本身的守护进程启动。

网关离线不正确标记

如果网关列为离线,但广域网实际上正常,可以从以下几方面进行排队:

首先,测试监视IP地址是否响应来自LAN上的客户端设备的ping,并再次从Diagnostics > Ping进行测试。

如果监视IP地址丢弃没有有效载荷的ICMP回显请求报文,手动ping可以起作用,但网关监视可能不一定有效果。请将有效载荷设置为1或更高的值。

如果网关或监视IP地址不响应ICMP回显请求,请输入不同的监视IP地址进行测试。

如果监视IP地址被配置为不与WAN同子网的DNS服务器,则静态路由可能会导致冲突,并且对网关的回应请求可能未遵循预期路径。解决办法:在网关上设置不冲突的监视IP地址。

如果WAN上有一个出站NAT规则,那么它可能会导致防火墙上的流量出现问题,包括监视流量,因为这也将来自防火墙本身的NAT流量。如果源地址更改为CARP VIP,一定会出问题。解决办法:修复出站NAT。

如果其他一切都失败了,线路可能真的掉线,但测试方法似乎显示出来。验证接口和网关设置并重新运行测试,并尝试使用traceroute以确保流量正在离开使用预期的路径。

Ping IP地址正常,但Web浏览失败

在这种情况下,最可能的原因是DNS。 如果防火墙DNS设置与“接口”和“DNS配置”中的DNS设置不匹配,那么当广域网关闭时,客户端可能无法解析DNS。 解决办法:查看设置并修复发现的任何问题。

一站式多WAN

Cisco和其他厂商将VLAN路由器称为“路由器”,因为它可以是只有一个物理网络连接的功能正常的路由器。 pfSense可以以这种方式配置,使用VLAN和可进行802.1q中继的托管交换机。 大多数运行超过5个WAN的部署使用这种方法来减少防火墙所需的物理接口数量。 在这种部署中,WAN接口都驻留在防火墙上的一个物理接口上,LAN网络位于其他物理接口上。 图上的多WAN广域网说明了这种类型的部署。

一站式多WAN

IPv6的多WAN

如果防火墙连接到具有静态地址的多个ISP或隧道,则可以使用IPv6多WAN。

其他

网关组的工作方式与IPv4的一样,但地址族不能在组内混合。 组必须只包含IPv4网关,或只包含IPv6网关。

在本节中,“第二WAN”是指具有IPv6连接的第二个或其他接口。 它可以是具有本机连接的实际接口,或者使用隧道代理时的隧道接口。

注意事项

在大多数情况下,NAT不会随IPv6一起使用,因为一切都是通过路由的。 这对于连接性以及能够承担提供商独立(PI)地址空间和BGP对等体的企业而言非常好,但对于小型企业和家庭用户来说,这并不适用。

网络前缀转换(NPt)允许一个子网用于通过其本机WAN具有完全连接性的LAN,但也可以在附加WAN上转换连接,因此它似乎起源于此。 虽然通过备用路径,LAN子网不是真正的连接,如果主要广域网关闭,那么它比没有连接更好。

警告:这不适用于子网不是静态的动态IPv6类型,例如DHCP6-PD。

要求

要设置IPv6的多WAN,防火墙必须具有:

与两个或多个WAN上的静态地址的IPv6连接

System > Routing将网关添加到两个IPv6 WAN,并确认两者的连接。

从提供商处获取/路径路由/ 64

LAN使用静态路由/ 64

设置

IPv6多WAN的设置非常接近IPv4的设置。 主要区别在于它使用NPt而不是NAT。

首先,在System > RoutingGateway Groups选 项卡上,为IPv6网关添加网关组,并根据需要设置层级。 这与IPv4相同。

导航到System > General 为每个IPv6 WAN设置一个IPv6 DNS服务器,也与IPv4相同。

Firewall > NAT NPT选项卡添加一个NPt条目,并使用以下设置:

Interface: 第二个WAN(或使用中间商的隧道)
Internal IPv6 Prefix:
 LAN IPv6 子网
Destination IPv6 Prefix:
第二个WAN路由IPv6子网

注意:这不是广域网接口本身的/ 64,它是/ 64由上游路由到该WAN上的防火墙。

这样做是类似于IPv4的1:1 NAT,但对于整个子网。 当流量离开第二个WAN时,如果它来自LAN子网,它将被转换为另一个子网中的等效IP地址。

例如,如果防火墙在局域网上有 2001:xxx:yyy::/64,而在第二个WAN上有2001:aaa:bbb::/64,如果流量超出第二个WAN,则2001:xxx:yyy::5将显示为2001:aaa:bbb::5。

与IPv4一样,网关组必须使用LAN防火墙规则。 编辑IPv6流量的LAN规则,并设置它们使用网关组,确保没有网关设置的直接连接的子网/ ***的规则,使其不被策略路由。

替代方案

一些用户喜欢使用 fc00::/7 空间的“私有”IPv6子网配置LAN,并为两个WAN设置NPt。

多链路PPPoE(MLPPP)

多链路PPPoE(MLPPP)是一种独特的WAN选项,可以将来自同一ISP的多个PPPoE线路绑定在一起构成一个较大的虚拟线路。 这意味着防火墙可以获得捆绑中所有线路的真实总体带宽。 例如,如果一个防火墙在捆绑中有三条5Mbit / s的DSL线路,那么它可能会从单个连接中获得15Mbit / s的速度。

要求

MLPPP的最大障碍是ISP必须在连接到防火墙的线路上支持它。 很少有ISP愿意支持MLPPP,如果有,那么值得利用。

设置

MLPPP的设置非常简单:

导航到Interfaces > AssignPPPs 选项卡

  • 在 PPPoE WAN上单击 编辑条目
  • 按住Ctrl键单击选择属于同一个MLPPP的其他物理接口
  • 单击 Save

然后pfSense将尝试使用MLPPP绑定线路。

注意事项

使用MLPPP的一个缺点是故障排除要困难得多。 统计数据和状态不适用于各条线路。 要确定状态,请阅读PPP日志,因为还没有一种单独查询线路的方法。 在某些情况下,线路是否关闭是很明显的,因为调制解调器可能会出现明显的问题(不同步)或最大可达到的带宽减少。