from:http://netsecurity.51cto.com/art/200910/159948.htm
網絡安全平台廠商往往需要用到一項比較特殊的技術,那就是Bypass,那么到底什么是Bypass呢,Bypass設備又是如何來實現的?下面我就對Bypass技術做一下簡單的介紹和說明。
網絡安全平台廠商往往需要用到一項比較特殊的技術,那就是Bypass,那么到底什么是Bypass呢,Bypass設備又是如何來實現的?下面我就對Bypass技術做一下簡單的介紹和說明。
一、 什么是Bypass。
大家知道,網絡安全設備一般都是應用在兩個或更多的網絡之間,比如內網和外網之間,網絡安全設備內的應用程序會對通過他的網絡封包來進行分析,以判斷是否有威脅存在,處理完后再按照一定的路由規則將封包轉發出去,而如果這台網絡安全設備出現了故障,比如斷電或死機后,那連接這台設備上所以網段也就彼此失去聯系了,這個時候如果要求各個網絡彼此還需要處於連通狀態,那么就必須Bypass出面了。
Bypas顧名思義,就是旁路功能,也就是說可以通過特定的觸發狀態(斷電或死機)讓兩個網絡不通過網絡安全設備的系統,而直接物理上導通。所以有了 Bypass后,當網絡安全設備故障以后,還可以讓連接在這台設備上的網絡相互導通,當然這個時候這台網絡設備也就不會再對網絡中的封包做處理了。
下面一個圖示說明了Bypass的方式。左邊是正常狀態下,兩個網絡的封包都經過應用軟件處理后再傳播。右邊是設備處於Bypass后,設備的應用程序已經不再對網絡封包處理了。
二、 Bypass分類即應用方式:
Bypass一般按照控制方式或者稱為觸發方式來分,可以分為以下幾個方式
1、 通過電源觸發。這種方式下,一般是在設備沒有通電的情況下,Bypass功能打開,如果設備一旦通電后,Bypass立即調整為關閉狀態。
2、 由GPIO來控制。在進入OS后,可以通過GPIO來對特定的端口操作,從而實現對Bypass開關的控制。
3、 由Watchdog來控制。這種情況實際是對方式2的一種延伸應用,可以通過Watchdog來控制GPIO Bypass程序的啟用與關閉,從而實現對Bypass狀態的控制。使用這種方式后,平台如果死機就可以由Watchdog來打開Bypass。
在實際的應用中,這3種狀態往往是同時存在的,尤其是1和2兩種方式。
下圖是研華FWA-3140系列的Bypass狀態說明,大家可以參考一下。
在實際的應用中,這3種狀態往往是同時存在的,尤其是1和2兩種方式。一般的應用方法為:在斷電的情況下,設備處於Bypass打開狀態,然后設備上電后,由於BIOS可以對Bypass作操作,所以在BIOS接管設備后,Bypass仍然處於打開狀態,然后OS啟動,當OS啟動后,一般會執行GPIO 的Bypass程序,將Bypass關閉,這樣可以應用程序就可以發揮作用了。
也就是說在整個啟動過程中,幾乎不會造成網絡的斷開。只有在設備剛剛上電到 BIOS接管這短短的2-3秒鍾的時間會使網絡斷開。關於更具體的應用,大家可以參考一下下面這篇文章,這篇文章是以研華FWA-3140為例,做的一個應用,地址為:http://www.panabit.com/document/panabit_bypass.html
三、 Bypass實現的原理分析
上面簡單說明了一下Bypass的控制方式,下面針對Bypass工作原理作一下簡要的說明,主要從硬件和軟件兩個層面來分析。以研華的FWA-3140系列產品為研究對象
1、 硬件層面。
在硬件層面上,要實現Bypass,主要使用的就是繼電器。這些繼電器主要連接兩個Bypass網口的各個網口信號線上,下圖以其中一根信號線來說明繼電器在其中的工作方式。
以電源觸發為例,當斷電的情況下,繼電器內的開關將會跳撥到1的狀態,即將LAN 1 的RJ45接口上的Rx直接和LAN2 的RJ45 Tx 導通,而當設備上電以后,開關就會導通到2上,這樣如果要使LAN1和LAN2 上的網絡間通訊,就需要通過這台設備上的應用程序來實現了。
2、 軟件層面。
之前在Bypass的分類中談到了GPIO和Watchdog兩種方式來控制、觸發Bypass,實際上這兩種方式都是對 GPIO作操作,然后由GPIO來控制硬件上的繼電器作相應的跳轉。具體一點,就是相應的GPIO如果被置成高電平,那么繼電器就相應的跳轉到位置1,相反如果GPIO杯置成了低電平,則繼電器就跳轉到位置2。以研華FWA-3140為例,下圖說明了FWA-3140的GPIO所控制的方式。
以上圖為例,如果對GPIO27 的Bit3 寫入“0”或“1”,就可以對LAN 1/2 所組成的Bypass進行開關的控制,同理如果操作對象為GPIO 28 ,則可以實現對LAN3/4 Bypass的控制。
在DOS下可以用如下的Debug程序來才測試Bypass的控制方法和狀態。
有了上面的實例,就可以完全實現由軟件來控制Bypass的狀態了。
另外對於Watchdog Bypass,實際上是在上面的GPIO控制的基礎上,增加Watchdog控制Bypass。首先系統激活Watchdog功能,傳統上,當 Watchdog生效后,系統會Reset ,但如果你使用了Watchdog Bypass功能,則在Watchdog生效后,系統不會Reset,而是將相對應的網口Bypass打開,使設備呈現為Bypass狀態。實際是這種 Bypass,也是通過GPIO來控制Bypass的,只不過這種情況下,向GPIO寫入低電平的工作由Watchdog來執行,不需要另外編程來寫 GPIO。
值得注意的事,如果你使用了Watchdog Bypass,則Watchdog將不能再實現讓系統Reset了。以研華FWA-3140為例,FWA-3140在主板上,會有一個3PIN的跳線,如果跳成1-2則Watchdog實現傳統的Reset動作,如果將跳線設定為2-3,那么就會選擇到Watchdog Bypass功能,這種情況下如果Watchdog生效后,系統就會打開Bypass功能。