使用虛擬化技術可以提高資源的有效使用率,降低硬件成本,管理起來也更加便捷。防火墻的虛擬化是將一臺物理防火墻,虛擬出來多臺虛擬防火墻,并將其分配給不同的用戶使用。虛擬防火墻的優點在于對設備性能和資源的合理利用,配置和策略相對是獨立的,彼此之間不會互相影響。
對于虛擬防火墻來說,必須擁有獨立的管理員賬戶和配置界面,以及自己獨立的軟件資源,例如會話表數、策略數、用戶數等,防止其爭搶公共資源。
例如,以華為防火墻為例,其新一代的防火墻和老版的防火墻之間虛擬化技術差別很大,上一代防火墻是完全依賴于VPN實例實現的,一個VPN實例就是一個虛擬防火墻,其中包含了路由、策略、系統管理和基本工具等子系統的克隆。
新一代的防火墻不再完全依賴于VPN實例,而改為使用Virtual-System技術來實現防火墻的虛擬化。但該防火墻并未徹底放棄VPNInstance技術,當創建每個虛擬防火墻時,都會創建一個同名的VPN-Instance,對于上層的業務虛擬化來說,則可以擺脫VPN-Instance。對于華為防火墻來說,默認設備自帶虛擬防火墻功能,但是不同型號的防火墻自帶虛擬防火墻的數量不等,用戶可以根據需要購買License來增加其數量。
虛擬防火墻存在根系統和根系統管理員的概念,對于前者來說,是默認存在的一個特殊的虛擬系統,在沒有配置其他虛擬系統時,根系統就是防火墻自身。例如,當遠程登錄到華為某款防火墻上,執行“dis f s t v”命令,在返回信息中會 顯 示“SSL VPN:public-->public”之類的信息,這就代表了根防火墻。對于后者來說,除了可以配置根系統的業務外,還可創建虛擬系統,并為其分配資源和創建虛擬系統管理員。虛擬系統管理員主要負責配置虛擬系統的業務。
虛擬防火墻要想正常運轉,必須占用一定的資源。虛擬系統對資源的占用方式包括手工分配限額,自動分配限額和共享搶占資源。第一種是手工配置資源數量(例如會話、用戶、帶寬和策略等);第二種是在虛擬系統創建時就固定分配給虛擬系統(例如安全區域、虛擬網關等);第三種允許所有的虛擬系統和根系統一起搶占資源共用整機資源(例如地址和地址組、NAT地址池等)。
虛擬防火墻流量轉發的關鍵點在于報文在入接口是會被打上標記,該標記即為接口所屬虛擬系統ID,每一個虛擬防火墻都有不同的ID。之后通過虛擬系統ID來查找對應的FIB表、策略以及規則等配置信息來正確的處理報文。當然,在虛擬防火墻之間是可以轉發數據的,主要用于不同虛擬系統所管轄的網絡間相互通訊的場景,通過虛擬接口技術實現數據包跨虛擬系統的轉發。當創建虛擬防火墻時,根系統自動為其創建一個虛擬接口,虛擬接口不配置IP也可以生效,但是必須加入到安全區域。虛擬系統和根系統之間也可以通過虛擬接口通訊,虛擬系統間訪問通過根系統進行中轉,各個虛擬系統的虛擬接口和根系統的虛擬接口之間默認通過一條虛擬鏈路進行連接。
當開啟了虛擬防火墻功能后,就會在根系統中創建名為“Virtualif0”的虛擬接口,其他的虛擬防火墻要互相通訊,必須經過該虛擬接口。當新增加一個虛擬防火墻,就會增加一個從“Virtualif1”開始的對應的虛擬接口。虛擬防火墻不支持動態路由協議,只能使用靜態路由。例如當虛擬防火墻1接收到流量后,相關報文會在入接口打上對應標記,之后通過預設的靜態路徑,將其從虛接口“Virtualif1”發送到“Virtualif0”虛擬接口。當根系統接收到該數據流量后,當判斷“Virtualif0”虛擬接口處于trust區域,目標網段所在的物理端口處于Untrust區域的話,就會將該流量發送出去。
對應的,當處理返回的流量時,也需要在根防火墻中添加靜態路由,從虛接口“Virtualif0”發送到“Virtualif1”虛擬接口。當數據流量到達虛擬防火墻1后,會查找之前的會話,根據路由表將數據包從直連網段發出去。流量從虛擬防火墻1進入,想訪問虛擬防火墻2連接的網段時,會先按照上述方法到達“Virtualif0”虛擬接口。當根防火墻接收到這些數據包后,會根據預設的路由信息,將其從虛接口“Virtualif0”發送到“Virtualif2”虛擬接口。當然,在上述流量傳輸過程中,不僅要涉及到路由還需要使用到策略控制,例如允許Trust區域訪問Untrust區域,允許Untrust區域訪問DMZ區域等。當配置虛擬防火墻時,可以根據需要劃分對應的防火墻接口。
對于二層網絡來說,可以根據VLAN進行端口的劃分。對于三層網絡來說,是基于物理接口進行劃分的。當不同虛擬防火墻連接的網段需要進行NAT映射時,不能直接指定域間關系來實現,必須將虛擬防火墻當作獨立的設備進行NAT策略配置。因為對于不同的虛擬防火墻來說,其私網地址段是允許重疊的。當兩者進行通訊時,自然不能使用各自的原始IP進行訪問。這就需要為兩者的虛擬接口配置不同的IP,并據此進行源NAT以及NAT Server的配置操作,就可以順利進行訪問了。
但并不是所有的對象都支持虛擬化,例如證書就不支持虛擬化,包括內置的證書,在虛擬系統下智能查看和引用,無法導入、刪除和申請證書等,此外,動態路由、計費方案配置、DHCP服務器和中繼、IPSec、L2TP、DVPN、MPLS也不支持虛擬化。其他的例如地址、服務、應用等都能支持虛擬化,虛擬系統與根系統在規格上存在差異,但配置上完全相同。每個虛擬系統都有自己的用戶組織結構,不同虛擬系統下的用戶和組可以更名。當新建虛擬防火墻時,可以為它分配一個名為“default”的認證域,用戶可以創建其他的認證域,可創建的認證域的數量為共享搶占。此外,DHCP客戶端、IP-link、雙機熱備、SSL VPN、重定向認證、服務器模版、認證方案以及授權方案都支持虛擬化。
虛擬化防火墻的管理實例
下面以具體的實例來說明其配置方法。這里使用華為USG 6550防火墻,以管理員身份登錄到該防火墻,執行“dis ip inter br”命令,查看接口詳細信息。執行“inter g0/0/0”、“ip add 192.168.10.9.24”、“quit”命令,為g0/0/0接口設置IP。執行“vsys enable”命令開啟虛擬防火墻功能。再次運行“dis ip inter br”命令,可以發現新增了名為“Virtualif0”的虛擬接口,其屬于根防火墻所有。執行“resource-class zyl”命令,在其中可定義資源類信息。
例如執行“resourcei tem-limitpolicy reserved-number 500”命令,將策略值設置為500。執行“resource-item-limit session reserved-number 1000”命令,將會話連接數設置為1000。執行“resourceitem-limit user reservenumber 1000”命令,將用戶數設置為1000。當然,可以根據需要靈活的配置資源類信息。執行“vsys name virwall1”命令。新建名為“virwall1”的虛擬防火墻。執行“quit”命令,退出該虛擬防火墻,執行“switch vsys virwall1”命令,可以進入該防火墻。
執 行“assign inter g1/0/1”,“assign inter g1/0/2” 命 令,將 接 口g1/0/1和g1/0/1分配給該虛擬防火墻。執行“assign resource-class zyl”命令,將預設的資源類信息賦予該虛擬防火墻。執行“dis this”或“dis cu”命令,來查看本虛擬防火墻配置信息。 執 行“firewal zone untrust”,“add interface g1/0/1”,“quit”命令,將其加入到Untrust區域。執行“dis ip inter br”命令,查看其端口信息。執行“inter g1/0/1”命令,進入該接口,執行“ip add 172.16.1.10 24”命令,為其設置 IP為172.16.1.10/24。 執 行“service-manage pin per”命令,允許遠程訪問該接口。
在接口g1/0/1上連接了一臺路由器R1,其對應端口的 IP為 172.16.1.11,在該路由器上執行“ip routestatic 192.168.1.0 24 172.16.1.10”命令,添加一條靜態路由。在防火墻上執行“dis ip rou”命令,查看路由信息。執行“dis cu”命令,查看根墻配置信息。當想從連接在接口g0/0/0上的主機訪問R1時,在根墻上必須有去往指定網段的路由,執行“ip routestatic 172.16.1.0 24 vpn-instance virwall1”命令,添加一條靜態路由,可以去往虛擬防火墻virwall1。執行“firewall zone untrust”、“add inter Virtualif 0”、“quit” 命令,將Virtualif 0添加到Untrust區域。
之后需要設置控制策 略, 執 行“securitypolicy”、“rule name o u t”、“s o u r c e-z o n e trust”、“destinationzone untrust”、“sourceadd 192.168.1.0 24”、“service icmp”、“action permit”、“quit”命令,允許執行上述訪問操作。執行“switch vsys virwall1”命令,在該虛擬防火墻下執行“dis zone”命令,查看區域配置信息。執行“firewall zone trust”、“add inter Virtualif 1”、“quit”命令,將Virtualif 1虛擬接口添加到Trust區域。每個虛擬防火墻需要配置各自的控制策略,執行“security-policy”、“rule name poly”、“source-zone trust”、“destination-zone untrust”、“source-add 192.168.1.0 24”、“service icmp”、“action permit”、“quit”命 令。 執 行“ip route-static 192.168.1.0 24 public”命令,添加一條靜態路由信息。
這樣,從連接在接口g0/0/0上的主機(其 IP為192.168.1.12)上執行“ping 192.168.100.23”命令,可以訪問根防火墻。在防火墻上執行“d f t v”命令,可以查看會話信息。在根墻上執行“disp resource-usage”命令,可以查看所有虛擬防火墻的資源使用信息。執行“vsys name vwall2”命令。新建名為“vwall2”的虛擬防火墻。執行“assign inter g1/0/3” 命 令,將接口g1/0/3分配給該虛擬防火墻。按照上述方法為其配置資源類型,執行“inter g1/0/3”、“ip add 192.168.2.3 24”、“quit”命令,為該端口設置IP。執行“firewall zone trust”、“add inter g1/0/3”、“quit”命令,將該接口添加到Untrust區域。執行“firewall zone untrust”、“add inter Virtualif 2”、“quit”命令,將該虛擬防火墻的Virtualif 2接口添加到Untrust區域。
當虛擬防火墻vwall2想訪問虛擬防火墻virwall1時,需 要 執 行“ip routestatic 172.16.1.0 24 public”命令,為其添加一條路由指向根防火墻。執行“security-policy”、“rule name out”、“source-zone trust”、“destinationzone untrust”、“action permit”、“quit”命令,允許執行上述訪問操作。在根墻界面中執行“ip routestatic 192.168.2.0 24 vpn-instance vwall2”命令,添加一條靜態路由,指向虛擬防火墻vwall2,可以讓數據包順利返回。這樣就可以在虛擬防火墻vwall2上對虛擬防火墻virwall1進行訪問了。
當然,也可以在圖形界面下對虛擬防火墻進行管理,例如在圖形界面右側的“虛擬系統”列表中選擇“vwall2”項,點擊頂部工具欄中的“系統”項,在左側選擇“管理員”項,在右側點擊“添加”按鈕,在新建管理員窗口中輸入其名確定按鈕保存配置信息。之后在防火墻登錄界面中輸入該賬戶和密碼,就可以直接登錄到該虛擬防火墻管理界面了。