环境:公司网络在总部有一个带有 Total Security Suite 的 Firebox M 系列设备。每个分支机构都有一个较小的 T 系列 Firebox,没有订阅服务。因此,来自分支机构的所有流量都通过总部的 M 系列设备进行路由。一些分支机构 Firebox 具有静态 IP,一些通过 DHCP 获得。
有时隧道可能会出现一些问题(例如,如果 HQ 网络出现故障)。因此,分支机构 Firebox 需要能够放弃0.0.0.0/0
通过隧道的路由并独立工作一段时间,因为 BO Internet 连接对业务至关重要。这适用于 BO 虚拟接口,但不适用于0.0.0.0/0
BO GW & Tunnel。
简化(只有一个 External 和 Trusted if)相关配置,一个带有 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
- DNS 服务器:
- VPN 接口 (
bvpn1
):BovpnVif.HQ [IKEv1]- 路线到
0.0.0.0/0
- VPN 设置:[x] 当 BOVPN vif 的隧道关闭时删除 VPN 路由。
- 路线到
- 接口(路由模式)
当隧道关闭时,一切都按预期工作。Firebox-BO20 可以用作其eth1
网络的 DNS 解析器。10.9.20.0/24
和 Firebox 本身都可以访问 Internet 。
问题:当隧道开通并添加0.0.0.0/0
路由时bvpn1
,客户端eth1
可以通过VPN和总部的所有资源(包括DNS服务器)访问Internet。
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 服务器无法从 ISP1 访问
192.0.2.10
。192.0.2.20
- 网络上的设备
10.9.20.0/24
可以通过bvpn1
. - Firebox 不
10.9.20.1
通过隧道使用其内部 IP,但203.0.113.33
. - 防火墙规则
Any From Firebox-00
是硬编码的,不会显示在策略管理器中。否则很容易强迫它eth0
与<policy-routing>
.
有防火墙策略允许两个设备上的所有必要流量;因此,问题仅限于路由。
对于ISP2 的 DNS 服务器,您需要将静态路由添加到 Firebox-BO20。
192.0.2.10
,网关203.0.113.1
指标0
。192.0.2.20
,网关203.0.113.1
指标0
。将设置保存到 Firebox 后,连接隧道的路由表如下所示:
另一种选择是使用可在两个 ISP 上运行的公共 DNS 服务器(如 Cloudflare 的
1.1.1.1
/1.0.0.1
或 Google 的8.8.8.8
/ )。8.8.4.4
这样您就不需要在 Firebox-BO20 上添加路由,但是下面的解决方案对于这两种方法都是强制性的。对于连接隧道时Firebox-BO20 的 Internet 连接,事情有点复杂,因为 Firebox 在通过隧道发送数据包时使用其外部 IP。如果您有与登录匹配的规则,例如 HTTPS 代理,您将从日志中看到这一点,例如:
这
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 会为专用网络添加动态 NAT
192.168.0.0/16
,172.16.0.0/12
并且10.0.0.0/8
. 由于外部 IP203.0.113.33
不在这些网络中,您需要将 (Network > NAT...) Dynamic NAT 从 BovpnVif.BO20 添加到 Any-External。幸运的是,这可以使用 BOVPN 虚拟接口的现有内置别名来完成。