Routing

將 BovpnVif 路由添加到 0.0.0.0/0 後,WatchGuard Firebox 自身的 Internet 連接失敗

  • November 26, 2018

**環境:**公司網路在總部有一個帶有 Total Security Suite 的 Firebox M 系列設備。每個分支機構都有一個較小的 T 系列 Firebox,沒有訂閱服務。因此,來自分支機構的所有流量都通過總部的 M 系列設備進行路由。一些分支機構 Firebox 具有靜態 IP,一些通過 DHCP 獲得。

有時隧道可能會出現一些問題(例如,如果 HQ 網路出現故障)。因此,分支機構 Firebox 需要能夠放棄0.0.0.0/0通過隧道的路由並獨立工作一段時間,因為 BO 網際網路連接對業務至關重要。這適用於 BO 虛擬介面,但不適用於0.0.0.0/0BO GW & Tunnel。

簡化(只有一個 External 和 Trusted if)相關配置,一個帶有 DHCP 的分支機構。

  • Firebox-HQ ( 10.9.0.1) - M670$$ Fireware OS v12.2.1.B572649 $$
    • 介面(路由模式)

      • eth0:ISP1$$ External $$- 198.51.100.123/24(靜態)
      • eth1: 值得信賴$$ Trusted $$-10.9.0.1/24
    • VPN介面(bvpn20):BovpnVif.BO20$$ IKEv1 $$

      • 路線到10.9.20.0/24
  • 火箱-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$$ External $$- 203.0.113.33/24(DHCP)
      • eth1: 值得信賴$$ Trusted $$-10.9.20.1/24
    • 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.10192.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。

  • 從 Fireware Polixy Manager > Network > Routes…

    • 添加…靜態路由,主機 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 的 Internet 連接,**事情有點複雜,因為 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 會為專用網路添加動態 NAT 192.168.0.0/16172.16.0.0/12並且10.0.0.0/8. 由於外部 IP203.0.113.33不在這些網路中,您需要將 (Network > NAT…) Dynamic NAT 從 BovpnVif.BO20 添加到 Any-External。幸運的是,這可以使用 BOVPN 虛擬介面的現有內置別名來完成。

引用自:https://serverfault.com/questions/941622