天天看點

防火牆的ISP選路與DNS透明代理

作者:阿豪的筆記

ISP選路

ISP選路功能也稱為營運商位址庫選路功能,當FW作為出口網關裝置連接配接多個ISP網絡時,通過ISP選路功能可以使通路特定ISP網絡的流量從相應出接口轉發,保證流量轉發使用最短路徑,提高轉發效率。

如下圖所示,FW擁有兩條屬于不同ISP網絡的出口鍊路。當内網使用者通路ISP2中的Server2時,如果FW上存在等價路由,則FW可以通過路徑1和路徑2兩條不同的路徑到達Server2。其中,路徑2顯然不是最優路徑,路徑1才是使用者所期望的路徑。

防火牆的ISP選路與DNS透明代理

配置ISP選路功能後,當内網使用者通路Server1或Server2時,FW會根據目的位址所在ISP網絡選擇相應的出接口,進而使通路流量通過最短路徑到達伺服器。

ISP選路的原理

ISP選路是基于ISP路由的選路方式,通過批量生成到營運商網絡的ISP路由實作通路特定ISP網絡的封包都從相應的出接口轉發。

ISP選路可以單獨使用,也可以結合其他智能選路功能一起使用,具體的

使用場景分類如表1所示:

表1 ISP選路場景分類

分類 使用場景
ISP選路場景 如果使用者希望通路特定ISP網絡的流量從相應出接口轉發,不會繞道其他ISP,可以配置ISP選路功能。
ISP選路+政策路由組合場景 如果使用者希望根據封包目的位址所屬ISP網絡選擇相應的出接口,并根據多出口政策路由進行智能的選路,實作鍊路資源的合理利用,可以使用該場景。
ISP選路+全局選路政策+DNS透明代理組合場景 當内網使用者通過域名通路Web伺服器時,可以使用該場景。通過配置DNS透明代理,可以使DNS請求封包根據選擇的出接口,修改DNS請求封包的目的位址(DNS伺服器位址)。通過配置ISP選路和全局選路政策,FW根據封包目的位址所屬ISP網絡選擇相應的出接口,并根據全局選路政策,實作鍊路資源的合理利用。

ISP選路功能可以配合健康檢查功能一起使用,保證流量不被轉發到故障鍊路上。當健康檢查的結果顯示鍊路故障時,對應的ISP路由表項将被删除,是以流量不會命中該條路由,也就避免被轉發到故障鍊路上。當鍊路狀态恢複正常時,對應的ISP路由表項将重新生成,流量即可按此路由進行轉發。

DNS透明代理

一般來講,企業内網使用者的用戶端都會配置一個相同的DNS伺服器位址,而DNS伺服器通常會将域名解析成自己所在ISP内的Web伺服器位址,這将導緻内網使用者的上網流量都集中在一個ISP的鍊路上轉發,最終可能會造成鍊路擁塞,影響使用者的上網體驗。同時,由于其他ISP的鍊路資源沒有被使用,也造成了資源的浪費。

為了解決上述問題,可以使用DNS透明代理功能。對于命中DNS透明代理政策的DNS請求封包,FW會根據DNS請求封包選擇的出接口,修改請求封包的目的位址(DNS伺服器位址),即将其修改為其他ISP内的DNS伺服器位址,DNS請求被轉發到不同的ISP,解析後的Web伺服器位址也就屬于不同的ISP,是以上網流量将通過不同的ISP鍊路轉發,充分利用了所有鍊路資源。

防火牆的ISP選路與DNS透明代理

DNS透明代理政策

管理者通過DNS透明代理政策來定義哪些DNS請求封包需要做DNS透明代理。DNS透明代理政策的具體規則如下:

  • 比對條件隻有DNS請求封包的源位址和目的位址,且均為可選,如果不選,預設為any,表示該DNS透明代理政策與任意DNS請求封包比對,并執行配置的動作。
  • 各個比對條件之間是“與”的關系,隻有封包的屬性與各個條件必須全部比對,才認為該封包比對這條規則。
  • 一個比對條件中如果可以配置多個值,多個值之間是“或”的關系,封包的屬性隻要比對任意一個值,就認為封包的屬性比對了這個條件。
  • FW存在多條DNS透明代理政策時,DNS請求封包将按照政策的配置順序依次進行比對。
  • 隻要比對到其中一條政策,就按照此政策的動作進行處理,不再繼續比對剩餘的其他政策。

此外,系統預設存在一條預設DNS透明代理政策default,default位于政策清單的最底部,優先級最低,所有比對條件均為any,動作為不代理。如果所有配置的政策都未比對,則将比對預設DNS透明代理政策。

DNS透明代理處理流程

當内網使用者通路某個域名時,DNS透明代理功能處理封包的流程如下圖所示。

防火牆的ISP選路與DNS透明代理

處理流程的詳細說明如下:

1.DNS請求封包命中DNS透明代理政策後,對于需要做DNS透明代理的封包,FW首先判斷待解析的域名是否為排除域名。

  1. 如果是排除域名,FW就不會做DNS透明代理;
  2. 如果不是排除域名,FW會為封包做一個DNS透明代理标記,此标記用于後續流程的判斷。
  3. 對于排除域名,如果需要更換DNS伺服器來解析該域名,則FW會将DNS請求封包的目的位址修改為指定DNS伺服器的位址。

2.DNS請求封包根據智能選路或者普通靜态/動态路由選路選擇出接口。

說明:

DNS請求封包使用以下幾種方法進行選路:

  • DNS透明代理自身配置的智能選路方式
  • 政策路由智能選路或全局選路政策
  • 普通靜态/動态路由選路

優先級關系為:DNS透明代理自身配置的智能選路方式> 政策路由智能選路 > 全局選路政策 > 普通靜态/動态路由選路。

3.當出接口上綁定了DNS伺服器,且封包有DNS透明代理标記時,FW才會做DNS透明代理。兩個條件中有一個不滿足時,FW都不會做DNS透明代理

說明:

FW在每個出接口上最多綁定2個DNS伺服器,一個為首選DNS伺服器,一個為備用DNS伺服器,它們都屬于該出接口直連的ISP網絡。

當FW決定DNS請求封包的出接口後,DNS透明代理功能優先使用首選DNS伺服器的位址替換DNS請求封包的目的位址,隻有當首選DNS伺服器的狀态為DOWN時,才使用備用DNS伺服器的位址進行替換。

通過在DNS透明代理中配置健康檢查,可以判斷出接口上綁定的DNS伺服器是否可用,如果首選DNS伺服器和備用DNS伺服器都不可用,則DNS透明代理不生效。

下面以下圖為例對DNS透明代理過程進行舉例說明。

防火牆的ISP選路與DNS透明代理
  1. 當DNS請求封包到達FW時,FW首先進行DNS透明代理政策的比對。
  2. 封包命中DNS透明代理政策後,FW根據路由查詢結果選擇一個出接口。
  3. FW使用出接口上綁定的DNS伺服器位址替換DNS請求封包的目的位址。
  4. DNS伺服器将解析後的Web伺服器位址返給使用者,此Web伺服器和DNS伺服器屬于同一個ISP網絡。
  5. 使用者根據傳回的位址通路Web伺服器。此時需要結合ISP選路(基于ISP路由的選路)功能,使使用者能夠通過Web伺服器所屬的ISP網絡進行通路,防止發生跨ISP網絡通路的情況。

配置舉例

如下圖所示,企業分别從ISP1和ISP2租用了一條鍊路,ISP1鍊路的帶寬為100M,ISP2鍊路的帶寬為50M。ISP1的DNS伺服器位址為8.8.8.8和8.8.8.9,ISP2的DNS伺服器位址為9.9.9.8和9.9.9.9。内網使用者用戶端的DNS伺服器位址均設定為10.2.0.70。

  • 企業希望10.3.0.0/24網段内網使用者的上網流量按照2:1的比例配置設定到ISP1和ISP2鍊路,保證各條鍊路得到充分利用且不會發生擁塞,提升内網使用者的上網體驗。
  • 内網使用者通路域名www.example.com時,不做DNS透明代理,但是要在指定的DNS伺服器(8.8.8.10)上解析該域名對應的Web伺服器位址。
  • 當一條ISP鍊路過載(門檻值為90%)時,可以使用另一條ISP鍊路進行流量轉發。
防火牆的ISP選路與DNS透明代理

配置思路

由于企業希望上網流量能夠根據帶寬比例(2:1)進行配置設定,是以智能選路的方式設定為根據鍊路帶寬負載分擔的全局選路政策。通過在FW上配置DNS透明代理功能,可以使内網使用者的DNS請求封包按照2:1的比例配置設定到ISP1與ISP2的DNS伺服器上。

為了保證上網流量不會繞道其他ISP,而是直接通過目的位址所在ISP網絡到達Web伺服器,需要配置ISP選路功能。

  1. 可選:配置健康檢查功能,分别為ISP1和ISP2鍊路配置健康檢查。
  2. 配置接口的IP位址、安全區域、網關位址、帶寬和過載保護門檻值,并在接口上應用健康檢查。
  3. 配置ISP選路功能。制作isp1.csv和isp2.csv兩個ISP位址檔案,并上傳到FW上。
  4. 配置DNS透明代理功能。在出接口上綁定DNS伺服器位址,配置DNS透明代理政策來指定做DNS透明代理的流量,并配置要排除的域名。
  5. 配置全局選路政策。配置智能選路方式為根據鍊路帶寬負載分擔,并指定FW和ISP1、ISP2網絡直連的出接口作為智能選路成員接口。
  6. 配置基本的安全政策,允許企業内網使用者通路外網資源。

操作步驟

1.配置ISP1和ISP2鍊路的健康檢查功能。

選擇“對象> 健康檢查”,在“健康檢查清單”區域單擊“建立”,完成下圖配置。

防火牆的ISP選路與DNS透明代理
防火牆的ISP選路與DNS透明代理

說明:

DNS透明代理功能和智能選路一起配合使用且需要同時啟用DNS透明代理的健康檢查和智能選路接口下的健康檢查時,智能選路接口下的健康檢查探測目的位址需要配置為接口綁定的DNS伺服器位址,探測協定配置為DNS,以確定兩處健康檢查結果一緻,接口鍊路在正常狀态下可以始終支援DNS代理,避免因為DNS請求失敗導緻業務通路失敗。

2.配置接口的IP位址和網關位址,以及接口所在鍊路的帶寬和過載保護門檻值,并應用對應的健康檢查。

選擇“網絡> 接口”,單擊待配置的接口所在行的,并做如下配置。

防火牆的ISP選路與DNS透明代理
防火牆的ISP選路與DNS透明代理
防火牆的ISP選路與DNS透明代理

3.配置DNS透明代理。

a. 選擇“網絡 > DNS > DNS”,單擊“DNS透明代理”頁簽,并做如下配置。

防火牆的ISP選路與DNS透明代理

接口綁定DNS伺服器時,啟用“健康檢查”。

防火牆的ISP選路與DNS透明代理
防火牆的ISP選路與DNS透明代理

b. 單擊“應用”。

c. 配置内網使用者通路域名www.example.com時,不做DNS透明代理,但是要在指定的DNS伺服器(8.8.8.10)上解析該域名對應的Web伺服器位址。

防火牆的ISP選路與DNS透明代理

d. 配置DNS透明代理政策。

防火牆的ISP選路與DNS透明代理

4.配置ISP選路。

a. 選擇“網絡 > 路由 > 智能選路”,單擊“營運商位址庫”頁簽,上傳ISP位址檔案到FW。

防火牆的ISP選路與DNS透明代理

b. 選擇“網絡 > 路由 > ISP路由”,單擊“建立”頁簽,配置ISP選路。

防火牆的ISP選路與DNS透明代理

5.配置全局選路政策,流量根據鍊路帶寬負載分擔。并将GigabitEthernet 0/0/1和GigabitEthernet 0/0/5加入出接口清單。

選擇“網絡> 路由 > 智能選路”,在“全局選路政策清單”區域,單擊“配置”。

防火牆的ISP選路與DNS透明代理

6.配置安全政策。

a. 選擇“政策 > 安全政策 > 安全政策”。

b. 單擊“建立安全政策”,按如下參數配置從trust到untrust方向的安全政策,允許業務封包通過。配置完成後單擊“确定”。

名稱 service
源安全區域 trust
目的安全區域 untrust
源位址/地區 10.3.0.0/24
動作 允許

繼續閱讀