1. 程式人生 > >NGFW中數據包轉發流程

NGFW中數據包轉發流程

刪除 分類 轉發 ip地址 流量 本質 賬號登錄 沒有 都在

狀態檢測防火墻報文處理流程

技術分享圖片

  1. 查詢會話前的處理過程:基礎處理
  2. 查詢會話中的處理過程:轉發處理,關鍵是會話建立
  3. 查詢會話後的處理過程:安全業務處理及報文發送

了解轉發流程之前,先給報文分個類


  1. 協議報文:使防火墻正常運行於網絡中,或用於雙機熱備等功能的協議報文,如OSPF,HRP,ICMP等報文
  2. 穿過防火墻的業務報文:用戶經過防火墻訪問Internet的報文,我們通常習慣稱為業務報文,可能是二層或三層報文。尤其TCP,UDP最為常見。(二層和三層報文,轉發流程沒有本質區別,主要差異在於查路由階段,二層報文根據MAC地址轉發,三層報文根據路由表轉發)

做分類是因為防火墻對於這兩類報文處理流程有所不同。


  • 對於協議報文,防火墻處理比較特殊,並不適用於通用原則。以OSPF為例,當網絡類型為Broadcast時,其DD報文為單播報文,需要經過防火墻的安全策略檢查。而當網絡類型為P2P時,其DD報文為組播報文,則不需要經過防火墻的安全策略檢查,直接被轉發。對於每個協議。防火墻處理並不完全相同。

  • 對於業務報文。如TCP首包,UDP等報文都需要建立會話。判斷該報文要創建會話後,接下來馬上查詢會話表中是否已創建該報文的會話。
  • ---對於不能匹配會話表中任一表項的報文,防火墻判斷該報文為某一流量的首包,進入首包處理流程
    ---對於匹配了會話表中某一表項的報文,防火墻判斷該報文為某一流量的後續包,進入後續包處理流程

查詢會話表前的基本處理
主要目的是解析出報文的幀頭部和IP報文頭部。根據頭部當中的信息進行一些基礎的安全檢測
收到一個數據包:
首先監測是否有配置MAC地址過濾
為什麽是先MAC地址過濾再解析幀頭部?.
MAC地址過濾的時候只是掃描出MAC地址,根據MAC地址來進行MAC地址過濾。後面的解析幀頭部能完整的解析整個幀頭部。(自我補充:如果兩者位置調換,只會徒增設備的性能消耗,費力不討好)
根據接收報文的接口是二層接口還是三層接口有兩種處理方式:
對於三層接口接收的報文,NGFW需要根據報文中的目的地址來標明路由表,以決定這個報文的出接口。所以此類報文會在解析和剝離頭部信息後,進入後續的處理。(剝離幀頭部解析IP報文,是為了確定目的IP,以用做後續路由表查詢)

對於二層接口接收的報文,NGFW需要先判斷這個幀是否需要跨VLAN轉發,對於同一VLAN內的報文,NGFW需要根據報文中的目的MAC地址查詢MAC地址轉發表,以決定這個報文的出接口。對於需要跨VLAN轉發的報文,NGFW需要獲取其VLAN ID,找到對應的子接口或者VLAN-IF接口。子接口和VLAN-IF接口是虛擬的三層接口。所以此時報文就會按照類似三層接口接收一樣處理,NGFW根據報文中的目的地址來查找路由表,以決定這個報文的出接口。
這兩類報文在提取到所需的信息後,剝離頭部,進入後續的處理
在這個階段中主要進行的特性有:

特性 說明
MAC地址過濾 根據報文幀頭部的源MAC和目的MAC對報文進行過濾
VLAN VLAN是用戶控制以太幀在局域網泛洪的一種技術
IP/MAC地址綁定 為了防止IP地址欺騙和ARP類的***,管理員可以配置IP和MAC的對應關系,此特性可以根據報文中攜帶的Ip和MAC信息判斷報文是否合法並過濾
入接口帶寬閾值 管理員可以在接口上配置接受報文的帶寬閾值,如果當前流量帶寬已經超過了閾值,入接口就會將超出的 報文丟棄
單包***防範 在獲取報文的頭部信息後,NGFW就可以根據管理員開啟的單包***防範類型對報文的合法性和安全性進行檢測,判斷報文 是否屬於***報文並進行過濾


查詢會話表,根據查詢結果對報文做不同的安全機制檢測和處理。
此階段是NGFW的核心處理環節,主要的安全功能都在這個階段實現。NGFW根據該報文是否存在匹配的會話表項?
不存在匹配的會話表項(一些特殊的報文是不創建會話直接轉發的,例如除了ping的echo和replay的icmp包)
此時報文被認為是一條流量的首包,進入首包處理流程。


無會話
進行狀態檢測機制檢測,判斷該報文是否屬於正常的可以建立會話的首包。
(這個狀態檢測是檢查,該步驟是看防火墻是否開啟了狀態檢測,NGFW默認是開啟的,當來回路徑不一致的流量要通過NGFW時,需要關閉狀態檢測機制)


首包處理流程

  1. 匹配黑名單,若報文源地址命中黑名單,則此報文被丟棄
  2. 查詢Server-map表,若命中,記錄Server-map表中的信息(不做處理,但在3中路由查詢使用的是Server-map表中記錄的轉換後的地址)
  3. 查看數據包有沒有對應的服務器映射(即目的NAT)數據包要先將訪問的目的地址轉換後才能進一步查路由表,所以這也就解釋了為什麽服務映射階段在查找路由表階段前面
  4. 對數據包做在線用戶列表檢查
    用戶在線時會生成在線用戶列表,如不發送流量不會產生會話,當流量過來時會刷新在線用戶列表的超時時間,並繼續後續的包轉發流程生成會話表。
    (1)用戶訪問網絡資源前,首先需要經過NGFW的認證,目的是識別這個用戶當前在使用哪個IP地址。
    (2)對於通過認證的用戶,NGFW還會檢查用戶的屬性(用戶狀態、賬號過期時間、IP/MAC地址綁定、是否允許多人同時使用該賬號登錄),只有認證和用戶屬性檢查都通過的用-=戶,該用戶才能上線,稱為在線用戶。
    (3)NGFW上的在線用戶列表記錄了用戶和該用戶當前所使用的地址的對應關系,對用戶實施策略,也就是對該用戶對應的IP地址實施策略。用戶上線後,如果在線用戶超時時間內(缺省30分鐘)沒有發起業務流量,則該用戶對應的在線用戶監控表項將被刪除。當該用戶下次再發起業務訪問時,需要重新進行認證。
  5. 根據(2)的記錄結果,查詢報文命中哪條路由,優先查詢策略路由。未命中策略路由,查詢路由表,決定下一跳和出接口
  6. 查詢是否命中安全策略。已知報文入接口源地址,從(3)判斷出接口,確定區域查找安全策略
  7. 查詢是否命中源NAT策略。若匹配到,則記錄NAT轉換後的源IP地址和端口信息
  8. 根據上述記錄結果,創建會話。


後續包處理流程

NGFW中數據包轉發流程