多WAN场景通常用于故障转移或负载平衡,但OPNsense也可以进行组合。
WAN故障转移
如果主ISP的连接丢失(或高延迟),WAN故障转移会自动在多个WAN连接之间切换。只要连接不好,所有流量都将被路由到下一个可用的ISP / WAN连接,并且当连接完全恢复时,路由交换将切换回主ISP。
多个WAN之间负载平衡
负载平衡可用于在两个(或更多)ISP之间分配负载。这增强了总可用带宽和/或降低了每个ISP的负载。
原理很简单:每个WAN连接(网关)都获得一部分流量。流量可以平均分配或加权。
负载平衡和故障转移的结合
在这种情况下,还可以将负载平衡与故障转移结合使用,您将有2个或更多WAN连接用于负载平衡的目的,1个或多个用于故障转移。OPNsense提供5层(故障转移组),每层可以容纳多个ISP / WAN网关。
设置多WAN
一、配置故障转移
要设置故障转移,必须执行以下步骤:
将监控IP添加到网关
添加网关组
为每个网关配置DNS
使用基于策略的路由来利用我们的网关组
为防火墙本身的DNS流量添加防火墙规则
配置示例
我们的示例使用了两个先前配置的WAN网关,这两个网关都可以单独运行。作为DNS和监控IP,我们将利用谷歌的DNS服务8.8.8.8和8.8.4.4,你可以使用自己的设置。
我们定义了WAN和WAN2,其中WAN将成为我们的主要(默认)网关。
第1步 - 添加监控IP
如果您已经设置了监控IP并且两个网关都显示为在线,则可以跳过此步骤。
要添加监控IP,请转到System->Gateways->All 并单击右侧的第一个铅笔符号来编辑第一个网关。
确保配置了以下内容:
禁用网关监控 | 不选 | 确保启用监控 |
监控IP | 8.8.8.8 | 我们使用Google的DNS |
标记网关为关闭 | 不选 |
然后单击第二个铅笔符号来编辑第二个网关。
确保配置以下内容:
禁用网关监控 | 不选 | 确保启用监控 |
监控IP | 8.8.4.4 | 我们使用谷歌的第二个DNS |
标记网关为关闭 | 不选 |
第2步 - 添加网关组
转到System->Gateways->Group(系统->网关->组),然后按右上角的+ Add Group(添加组)。
这里使用以下设置:
组名 | WANGWGROUP | 输入网关组的名称 |
网关优先级 | WANGW / Tier 1 | 选择第一个网关和第1层级 |
.. | WAN2GW / Tier 2 | 选择第二个网关和第2层级 |
触发级别 | 丢包 | 选择要使用的触发条件 |
描述 | 故障转移组 | 输入一个描述说明 |
提示
触发条件解释
成员掉线
当网关100%丢包时触发。
丢包
丢包高于定义的阈值时触发。
高延迟
当网关的延迟高于其定义的阈值时触发。
丢包或高延迟
触发上述任一条件。
第3步 - 网关配置
转到System->Settings->General(系统 - >设置 - >常规),确保每个网关都有自己的DNS,如下所示:
DNS服务器
8.8.8.8 | WANGW |
8.8.4.4 | WAN2GW |
第4步 - 设置基于策略的路由
转到Firewall->Rules(防火墙 - >规则)
在本例子中,我们将更新默认的LAN传递规则。单击此规则旁边的铅笔(默认允许LAN到任何规则)。
将Gateway(网关)更改为我们前面设置的网关组WANGWGROUP。
保存并应用更改
注意:此规则将使用网关组来处理来自LAN网络的所有流量。这也意味着用于防火墙本身的流量将在此方向上路由。这就是为什么来自防火墙本身的DNS流量需要进行第5步的设置。
步骤5 - 为DNS流量添加允许规则
在默认LAN允许规则上方添加规则(注意规则顺序),以确保进出端口53(DNS)上的防火墙的流量不会路由到我们刚刚定义的网关组。
在LAN防火墙规则列表页面,点击右上角的+添加图标。
输入以下详细信息:
操作 | 放行 | 允许此流量通过 |
接口 | LAN | |
TCP / IP版本 | IPv4的 | 对于我们的示例,我们使用IPv4 |
协议 | TCP / UDP | 选择正确的协议 |
源 | 任意 | |
目标 | 单个主机或网络 | |
192.168.1.1/32 | ||
目标端口范围 | DNS - DNS | 仅DNS |
类别 | DNS | |
描述 | 本地路由DNS | 输入一个描述说明 |
网关 | 默认 | 选择默认值 |
高级选项
对于每个网关,您可以使用几个高级选项来更改默认行为/阈值。可以在System-> Gateways-> All下更改这些选项 ,点击要更新的网关旁边的铅笔图标。
丢包探测延迟
计算丢失后的延迟(以探测样本的数量计算)。
平均丢包探测数量
应使用多少探测来计算平均丢包率。
平均延迟回复数量
应该使用多少回复来计算控制“延迟”警报的平均延迟?
下移值
警报触发前探测失败的秒数。
探测间隔
间隔多少秒发送ICMP探测。 默认值为1。
丢包阈值
数据包丢失的低和高阈值,以%为单位。
延迟阈值
延迟的低阈值和高阈值(以毫秒为单位)。
二、配置负载平衡
要设置负载平衡,请遵循与故障转移相同的配置过程,但在步骤2中,为两个网关选择相同的层级。
这将改变从故障转移到两个网关之间的平衡行为。
Sticky Connection(粘性连接)
有些网站不喜欢在同一会话中更改请求IP,这可能会导致意外行为(例如银行网站)。要解决此问题,您可以使用Sticky Connections选项,这将确保来自同一用户的同一网站的每个后续请求都通过同一网关发送。
要设置此选项,可以在Firewall->Settings->Advanced(防火墙 - >设置 - >高级)下选中粘性连接选项。
不平衡(权重)
如果您具有非对称的多 WAN线路,其中一个IPS比另一个有更高的带宽,那么您可以在每个网关上设置权重以更改负载平衡。例如,如果你有一条10Mbps线路和一条20Mbps线路,那么将第一条线路的权重设置为1,将第二条线路的权重设置为2,这样,第二个网关将获得两倍于第一个网关的流量。
要设置权重,请转到System->Gateways->All(系统 - >网关 - >全部),然后点击要设置的网关旁边的铅笔图标。在高级部分下面定义权重。