衆所周知,TCP是有狀態的鏈接,狀態檢測的防火牆能根據該IP包所屬的鏈接是新的仍是舊的,決定該IP包是否符合防火牆的政策約定。所以,防火牆必須在內存中保留這一記錄,每個鏈接,就是一個會話。防火牆支持多少會話鏈接,取決於防火牆的內存多少,系統會自動使用全部內存,直至內存用光,系統崩潰爲止。所以,許多防火牆都會設定一個會話鏈接最大值,一旦系統記錄的會話達到這個數值,系統就再也不創建新的會話。同時,爲了保證防火牆的會話鏈接不會過多,防火牆提出的長鏈接和短鏈接的概念,針對不一樣的網絡應用協議調整會話鏈接保持的時間。安全
1、防火牆長鏈接和短鏈接的概念服務器
一、長鏈接的概念網絡
長鏈接功能用於設置特定數據流的超長保持時間,讓數據流的會話鏈接保持時間不受全局老化時間限制。其實這項特殊業務與目前業界的狀態防火牆的實現機制是存在矛盾的。session
爲保證內部網絡的安全,防火牆上的各會話缺省保持時間都相對較短,例如:缺省狀況下,TCP的保持時間爲1200s,UDP的保持時間爲120s。tcp
正常狀況下,當一個TCP會話的兩個連續報文到達防火牆的時間間隔大於該會話的保持時間時,爲保證網絡的安全性,防火牆將從會話表中刪除相應會話信息。後續報文到達防火牆後,防火牆根據自身的轉發機制,丟棄該報文,致使鏈接中斷。在實際應用中,用戶須要查詢服務器上的數據,這些查詢時間間隔遠大於TCP/UDP默認的會話保持時間。此時須要在防火牆上保持TCP鏈接一段相對較長的時間。當某會話的報文長時間沒有到達防火牆後再次到達時,仍然可以經過防火牆。這種技術就是長鏈接。ide
二、短鏈接的概念性能
某些應用頻繁發起鏈接,若是不縮短其會話保持時間,則會使防火牆的會話數爆漲,進而拖垮防火牆。保持太多的會話對防火牆沒有必要,相反,當系統資源過多地用在會話保持的話,會相應損害每秒生成會話的能力,這是一個一樣重要的性能指標。設定太高的會話數量,卻下降了每秒生成會話的能力,其結果,只能是保留一些永遠用不到的會話虛數而已。ui
所以,咱們能夠根據網絡應用環境的實際需求,縮短某些會話的保持時間,從而減小防火牆的工做負荷,提升網絡性能。spa
2、防火牆長鏈接和短鏈接的配置方法.net
下面咱們以華爲Eudemon防火牆爲例,介紹長鏈接和短鏈接的配置方法。
一、華爲Eudemon防火牆中,配置長鏈接功能,須要進行以下操做。
1)執行命令system-view,進入系統視圖。
2)執行命令acl 3000 ,建立高級ACL。
3)執行命令rule配置高級ACL規則,
例如:rule 0 permit ip source 192.168.1.12 0 destination 10.10.20.3 0
建議不要配置源地址或目的地址範圍過大的ACL規則,以防影響防火牆的性能。本例中配置的是從192.168.1.12主機到10.10.20.3主機的數據流。
4)執行命令quit,退回系統視圖。
5)執行命令firewall long-link aging-time ,配置長鏈接的老化時間。範圍爲1小時~480小時,缺省值爲168小時。
例如:firewall long-link aging-time 10
6)執行命令firewall interzone [ ***-instance ***-instance-name ] zone-name1 zone-name2,進入安全域間視圖。
例如:firewall interzone trust untrust
7)執行命令firewall long-link acl-number { inbound | outbound },配置長鏈接功能。
例如:firewall long-link 3000 inbound
二、華爲Eudemon防火牆中,修改會話鏈接保存的時間,須要進行以下操做。
當防火牆缺省的會話鏈接保持的時間不能知足現有網絡的需求時,能夠進行以下操做,從新設置。
1)執行命令system-view,進入系統視圖。
2)執行命令firewall session aging-time { dns\ftp\smtp\h323\udp\tcp....} interval,配置會話表老化時間。
能夠根據以上各類協議調整會話鏈接保持的時間,時間取值範圍爲1秒~65535秒。
3)此外Eudemon防火牆還能夠經過firewall session aging-time accelerate enable命令開啓會話表項加速老化功能,用於避免在防火牆表項老化時間設置過長的狀況下致使防火牆表項佔滿。