将 BovpnVif 路由添加到 0.0.0.0/0 后,WatchGuard Firebox 自身的互联网连接失败

将 BovpnVif 路由添加到 0.0.0.0/0 后,WatchGuard Firebox 自身的互联网连接失败

环境:公司网络在总部拥有一台配备 Total Security Suite 的 Firebox M 系列设备。每个分支机构都拥有一台较小的 T 系列 Firebox,不提供订阅服务。因此,来自分支机构的所有流量都通过总部的 M 系列设备路由。一些分支机构的 Firebox 拥有静态 IP,一些则通过 DHCP 获取 IP。

隧道偶尔可能会出现一些问题(例如,如果总部网络出现故障)。因此,分支机构的 Firebox 需要能够放弃0.0.0.0/0通过隧道的路由并独立工作一段时间,因为 BO 互联网连接对业务至关重要。这适用于 BO 虚拟接口,但不适用于0.0.0.0/0BO GW 和隧道。

简化(仅一个外部和受信任的)相关配置,具有 DHCP 的分支机构。

  • Firebox-HQ ( 10.9.0.1) - M670 [Fireware OS v12.2.1.B572649]
    • 接口(路由模式)
      • eth0:ISP1 [外部] - 198.51.100.123/24(静态)
      • eth1:受信任 [受信任] -10.9.0.1/24
    • VPN 接口(bvpn20):BovpnVif.BO20 [IKEv1]
      • 路线至10.9.20.0/24
  • Firebox-BO20 ( 10.9.20.1) - T55 [Fireware OS v12.2.1.B572649]
    • 接口(路由模式)
      • DNS 服务器:192.0.2.10& 192.0.2.20(ISP2 的 DNS 服务器)
      • eth0:ISP2 [外部]- 203.0.113.33/24(DHCP)
      • eth1:受信任 [受信任] -10.9.20.1/24
    • VPN 接口(bvpn1):BovpnVif.HQ [IKEv1]
      • 路线至0.0.0.0/0
      • VPN 设置:[x] 当 BOVPN vif 的隧道关闭时删除 VPN 路由。

当隧道关闭时,一切都按预期运行。Firebox-BO20 可以充当其eth1网络的 DNS 解析器。Firebox10.9.20.0/24本身和 Firebox 都可以访问互联网。

问题:当隧道建立并且添加了0.0.0.0/0路由后bvpn1,客户端eth1就可以通过 VPN 访问 Internet 以及总部的所有资源(包括 DNS 服务器)。

IPv4 Routes
------------
Destination     Gateway         Genmask         Flags   Metric    Interface   
0.0.0.0         0.0.0.0         0.0.0.0         U       1         bvpn1       
0.0.0.0         203.0.113.1     0.0.0.0         UG      5         eth0        
10.9.20.0       0.0.0.0         255.255.255.0   U       0         eth1        
203.0.113.0     0.0.0.0         255.255.255.0   U       0         eth0        
127.0.0.0       0.0.0.0         255.0.0.0       U       0         lo           

然而,Firebox 停止作为 DNS 解析器工作并失去其自身的 Internet 连接。这是因为 Firebox 自己的连接也开始使用该路由。

  • ISP2 的 DNS 服务器192.0.2.10无法192.0.2.20从 ISP1 访问。
  • 网络上的设备10.9.20.0/24可以通过 访问互联网bvpn1
  • Firebox 不10.9.20.1通过隧道使用其内部 IP,但是203.0.113.33
  • 防火墙规则Any From Firebox-00是硬编码的,不会显示在策略管理器中。否则,很容易强制eth0使用<policy-routing>

防火墙策略允许两台设备上所有必要的流量;因此问题仅限于路由。

答案1

为了ISP2 的 DNS 服务器您需要向 Firebox-BO20 添加静态路由。

  • 从 Fireware Polixy Manager > 网络 > 路由...
    • 添加...静态路由,主机 IPv4,到192.0.2.10,网关203.0.113.1度量0
    • 添加...静态路由,主机 IPv4,到192.0.2.20,网关203.0.113.1度量0

将设置保存到 Firebox 后,连接隧道的路由表如下所示:

IPv4 Routes
------------
Destination     Gateway         Genmask         Flags   Metric    Interface   
0.0.0.0         0.0.0.0         0.0.0.0         U       1         bvpn1       
0.0.0.0         203.0.113.1     0.0.0.0         UG      5         eth0        
10.9.20.0       0.0.0.0         255.255.255.0   U       0         eth1        
192.0.2.10      203.0.113.1     255.255.255.255 UGH     0         eth0        
192.0.2.20      203.0.113.1     255.255.255.255 UGH     0         eth0        
203.0.113.0     0.0.0.0         255.255.255.0   U       0         eth0        
127.0.0.0       0.0.0.0         255.0.0.0       U       0         lo          

另一种选择是使用在两个 ISP 上都有效的公共 DNS 服务器(如 Cloudflare 的1.1.1.1/1.0.0.1或 Google 的8.8.8.8/ 8.8.4.4)。这样,您就不需要在 Firebox-BO20 上添加路由,但以下解决方案对于这两种方法都是必需的


为了Firebox-BO20 的互联网连接当隧道连接时,事情会变得稍微复杂一些,因为 Firebox 在通过隧道发送数据包时使用其外部 IP。如果您有与登录相匹配的规则(如 HTTPS 代理),您将从日志中看到这一点,例如:

Allow 203.0.113.33 23.99.53.216 https/tcp 46452 443 BovpnVif.BO20-bvpn20 ISP1 
    HTTPS Request   (HTTPS-proxy-00) HTTPS-Client.Standard proc_id="https-proxy" 
    ... sni="services.watchguard.com" cn="services.watchguard.com" 

0.0.0.0/0这在 Firebox-BO20 上有一条路由,但在 Firebox-HQ 隧道上没有路由bvpn20

  • 您需要编辑 BOVPN 虚拟接口 BovpnVif.BO20 和添加到 Firebox-BO20 外部 IP 的路由。如果 IP 是静态的,那将是一个203.0.113.33/32

    在这种情况下,如果 Firebox-BO20 的外部接口使用 DHCP,您需要一个覆盖所有可能获取的 IP 的路由,例如整个 DHCP 池203.0.113.0/24。当然,这意味着 Firebox-HQ 也会将此路由用于该范围内的其他地址。这可能会在某些用例中造成问题 - 如果是这样,您需要获取静态 IP。

  • 默认情况下,Firebox 会为私有网络192.168.0.0/16172.16.0.0/12和增加动态 NAT 10.0.0.0/8。由于外部 IP203.0.113.33不在这些网络内,因此您需要添加(网络 > NAT...)从 BovpnVif.BO20 到任意外部的动态 NAT。幸运的是,可以使用 BOVPN 虚拟接口的现有内置别名来实现这一点。

相关内容