單慶元 南 峰
(大連工業大學網絡信息中心 遼寧大連 116034)
(shanqy@dlpu.edu.cn)
云平臺得到廣泛使用之后帶來巨大益處的同時,云平臺的安全風險問題也不容忽視,尤其是云平臺內部虛擬服務器之間的訪問控制問題(東西向流量[1-5]的控制問題).為此,網絡安全廠商也針對性地給出了多種解決方案,主要分成3類:1)在虛擬機上安裝安全代理,該方法對虛擬機的操作系統有較強的依賴性.2)將安全系統部署到虛擬機上,在云平臺內進行引流處理[6].該方法的問題是在云平臺中虛擬機之間的大量數據來回流動會引發性能問題,盡管INTEL DPDK[7-8]技術可緩解該問題.3)基于Hypervisor的控制方式.另外上述的虛擬服務器的安全控制實現需要一定的資金,這對于費用不足的單位來說是個負擔.
實體服務器網絡中,網絡應用服務是由實體服務器提供,網絡數據交換功能是由實體交換機實現,如圖1所示,服務器的內網互訪和外網訪問的數據路徑都通過服務器接入交換機,所以在實體服務器網絡中,服務器接入交換機具有很重要的作用,可以用來實現服務器的訪問控制、流量監控等功能.

圖1 實體服務器網絡中數據交換路徑
虛擬化后的數據交換路徑如圖2所示.

圖2 虛擬化之后數據交換路徑
由圖1和圖2的對比發現,虛擬化之后,虛擬服務器之間的數據交換點由服務器接入交換機轉移至虛擬化系統中的虛擬交換機上,互訪流量不再經過服務器接入交換機,原先在服務器接入交換機上進行的服務器之間的數據隔離、監控功能都無法在服務器接入交換機上實現,只能在虛擬化系統中通過軟件的方式來完成,這可能會產生性能問題和額外的費用需求.
在利用虛擬化的便利性的同時,可以利用VLAN的隔離特性,將虛擬化當中重要的虛擬服務器網絡端口和實體交換機的網絡端口一一對應,該虛擬服務器的所有網絡流量只能從實體交換機的特定網絡端口流入、流出,那么實體交換機的特定端口就等同于虛擬服務器的網絡端口,這可稱之為虛擬服務網絡端口實體化,如圖3所示:

圖3 虛擬服務器網絡端口實體化示意圖
在虛擬化平臺中,使用VLAN(虛擬局域網)邏輯隔離功能,將虛擬服務器相互隔離開,使得這些虛擬服務器在虛擬化環境中無法相互通信.方法如下:將虛擬服務器A的網絡端口指定到VLANA中,虛擬服務器B的網絡端口指定到VLANB中,由于虛擬服務器A和虛擬服務器B的網絡端口不在同一個VLAN中,在虛擬交換機中它們處于隔離的狀態.實體主機和實體交換機使用VLAN TRUNK相連,虛擬服務器A和B的網絡訪問請求可由虛擬交換機通過TRUNK連接轉發至實體交換機,在實體交換機中,端口A設置為ACCESS訪問模式,指定VLAN為VLANA,虛擬服務器A的訪問請求會轉發至端口A,端口B同樣為ACCESS訪問模式,指定為VLANB,服務器B的訪問請求會轉發至端口B.這樣通過使用VLAN功能和1臺實體交換機就可將虛擬服務器A和B的網絡端口實體化到實體交換機的端口A和B上,使得服務器A和B在虛擬化環境中相互隔離,在實體交換機上對端口A和B的訪問控制就等同于對虛擬服務器A和B的網絡端口的控制.此時,虛擬服務器A和B依舊處于隔離狀態,如需外網訪問或者互相通信,需要將實體交換機端口A和端口B連接至服務器接入交換機上,由服務器接入交換機完成通信轉發.
如同將實體服務器的網絡端口連接到網絡中一樣,只需將虛擬服務器的實體化網絡端口連接到服務器接入交換機上即可.聯網之后,虛擬化環境中的虛擬服務器A和B的外網訪問路徑如圖4所示.以虛擬服務器A為例,說明外網訪問的數據路徑.虛擬服務器A的外網訪問請求經過虛擬交換機的轉發,通過實體主機和實體交換機之間的TRUNK連接轉發至實體交換機,由于實體交換機中,只有端口A和虛擬服務器A的網絡端口處于同一個VLAN中,所以訪問請求只能從實體交換機的端口A轉發至服務器接入交換機,最后經由網絡安全設備轉發至外網.該請求的響應,會沿原來相反的路徑返回給虛擬服務器A.

圖4 虛擬服務器網絡端口實體化后的外網訪問數據路徑圖
從圖4的虛擬服務器的外網訪問路徑來看,對于外網訪問(即虛擬服務器通信的另一方位于本虛擬化平臺之外),虛擬服務器端口實體化前后,整個虛擬化平臺的通信負載沒有發生變化.
在網絡端口實體化之后,由于虛擬服務器A的網絡訪問只能通過實體交換機的端口A進行,虛擬服務器B的網絡訪問只能通過實體交換機的端口B進行,那么虛擬服務器A和B的通信必須通過服務器接入交換機才能夠實現.虛擬服務器A和B互訪的路徑如下:首先虛擬服務器A訪問請求經由虛擬交換機的轉發,到達實體交換機,實體交換機將訪問請求通過端口A轉發至服務器接入交換機,經過服務器接入交換機的轉發,到達實體交換機的端口B,通過實體機交換機的轉發,訪問請求到達虛擬化平臺內部,由虛擬交換機轉發至虛擬服務器B,服務器B的響應數據包,會經過相反的路徑轉發至虛擬服務器A.在端口實體化之后,虛擬服務器A和B的通信路徑類似一個發夾,如圖5所示,因此稱之為發夾彎路由.通過與圖2相比較,在網絡端口實體化之后,虛擬服務器A和B的通信路徑變長,而且在此路徑上的設備需要轉發雙倍的通信數據量,加大了設備負擔.

圖5 發夾彎路由
為了解決發夾彎路由引起的性能問題,我們需要將服務器之間的通信根據通信數據量進行分類.第1類:服務器之間沒有任何通信,例如2臺沒有關聯的Web服務器,它們之間不需要有任何通信.第2類:數據通信量很少,通信頻率小,例如服務器為確保時間的準確性,需要和時間提供服務器(NTP服務器)進行通信.第3類:服務器之間關系密切,通信量大,通信頻率高.例如Web前臺服務器和后臺數據庫服務器.
第1類通信適合作虛擬服務器網絡端口實體化,由于服務器之間沒有通信,在2臺Web服務器實體化之后,可以利用服務器接入交換機或者網絡安全設備進行服務器之間的隔離,避免相互之間的影響.第2類通信由于通信量很小,因此虛擬服務器網絡端口實體化之后,對整個系統的通信負擔基本沒有影響.在服務器網絡端口實體化之后,可以利用服務器接入交換機對服務器的通信進行監控和控制.第3類通信由于服務器之間關系緊密,任何1臺服務器的安全問題,就會導致整個服務的運行異常,適合于作為一個整體進行控制,因此,需要將整個服務器組作為一個整體進行網絡端口實體化,進行統一的網絡防護,方法是對虛擬服務器組的網絡端口組統一進行實體化.
如圖6所示,虛擬服務器組C中有2臺服務器,其中虛擬服務器C1為前臺Web,虛擬服務器C2為后臺數據庫服務器.由于這2臺服務器之間通信量大,如果分別進行網絡端口實體化,那么由于發夾彎路由的原因,會給虛擬化實體機、實體交換機和服務器接入交換機增加不小的資源開銷.現在將虛擬服務器C1和C1的網絡端口都設置到VLANC中,在同一個VLAN中,C1和C2之間的通信都會通過虛擬交換機來完成.為了對虛擬服務器組C進行保護,將該組虛擬服務器的網絡端口作為一個整體進行實體化,實體化的端口為實體交換機的端口C,這樣只需對實體交換機的端口C保護就可以達到對整個虛擬服務器組C的保護.實現方法就是將實體交換機的端口C指定到VLANC中,虛擬服務器組C之外的設備與服務器組C內的任何1臺服務器通信都需要通過實體交換機的端口C,可以通過實體交換機的安全功能對虛擬服務器組C進行保護.圖6說明了只有2臺服務器的服務器組的網絡端口實體化方法,有多臺服務器的服務器組的網絡端口實體化方法與此一致.

圖6 虛擬服務器組的網絡端口實體化
通過添加1臺實體交換機,將該實體交換機和虛擬化主機進行整合,這個整合體可以看作1臺高密度的服務器柜,將重要的虛擬服務器網絡端口通過實體交換機進行實體化,1臺交換機一般可以提供幾十個應用服務器或者服務器組的網絡端口實體化,另外虛擬化系統中的VLAN資源的數量也很充足.經實踐,使用1臺交換機已能滿足作者所在單位的使用需求.如有更多的虛擬服務器需要隔離控制,可通過添加實體交換的辦法來擴充.另外,在原實體服務器環境中,在1臺服務器出現安全事件時,拔下服務器的網絡電纜通常作為斷網隔離的最簡單也最直接的方法,任何能進入服務器機房的值班人員都可以做到,在虛擬化環境中,有眾多的虛擬服務器共享實體主機的網絡連接,如果斷開實體主機的網絡連接,那么虛擬化環境中的虛擬服務器都會斷網.但在虛擬服務器網絡端口實體化之后,該方法依然可用.
虛擬服務器網絡端口實體化之后,原先的網絡安全策略和網絡安全設備基本可以不變,這樣既利用了虛擬化的易管理優點,又充分利用了原實體網絡的安全方案和安全設備,節約了開支.