亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

上下文感知的分布式防火墻的制作方法

文檔序號(hào):11637251閱讀:289來源:國知局
上下文感知的分布式防火墻的制造方法與工藝



背景技術(shù):

在軟件定義數(shù)據(jù)中心(sddc)環(huán)境中,分布式網(wǎng)絡(luò)防火墻正在取代傳統(tǒng)的防火墻,以便滿足粒度和可擴(kuò)展性的新要求。通常,防火墻控制器被部署在每一個(gè)管理程序上,以保護(hù)在管理程序上運(yùn)行的虛擬機(jī)(vm),并且集中式管理組件將防火墻規(guī)則分發(fā)到sddc中的所有防火墻控制器。經(jīng)常,每一個(gè)防火墻控制器接收到針對(duì)整個(gè)數(shù)據(jù)中心的大的規(guī)則集。防火墻控制器然后將所有規(guī)則應(yīng)用到數(shù)據(jù)中心中的每一個(gè)受保護(hù)的vm。圖1圖示數(shù)據(jù)中心100中的分布式防火墻方案,其中防火墻規(guī)則的完整集被應(yīng)用到每一個(gè)vm。在這種情況下,因?yàn)楸仨殞?duì)照整個(gè)規(guī)則集檢查每一個(gè)網(wǎng)絡(luò)分組,所以大的規(guī)則集會(huì)對(duì)防火墻引擎造成顯著的負(fù)擔(dān)。此外,因?yàn)橐?guī)則集被復(fù)制到每一個(gè)受保護(hù)的vm,所以它還消耗大量的存儲(chǔ)器。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的一些實(shí)施例提供了上下文感知的分布式防火墻方案,其中任務(wù)是為一組網(wǎng)絡(luò)地址提供防火墻保護(hù)的防火墻引擎應(yīng)用與和機(jī)器相關(guān)聯(lián)的一組網(wǎng)絡(luò)地址相關(guān)的防火墻規(guī)則的精簡集。在一些實(shí)施例中,由在主機(jī)機(jī)器上運(yùn)行的管理程序或虛擬化軟件實(shí)現(xiàn)防火墻控制器,并且由防火墻控制器保護(hù)的網(wǎng)絡(luò)地址對(duì)應(yīng)于由管理程序托管的vm的網(wǎng)絡(luò)地址。這些防火墻控制器中的一些或全部是允許主機(jī)機(jī)器操作vm的管理程序的一部分。防火墻控制器又通過提供與這些vm的網(wǎng)絡(luò)地址相關(guān)的規(guī)則來保護(hù)那些vm。

在一些實(shí)施例中,每一個(gè)主機(jī)機(jī)器接收關(guān)于數(shù)據(jù)中心中的所有規(guī)則的防火墻配置消息。但是,主機(jī)機(jī)器的管理程序/防火墻控制器只識(shí)別用于其每一個(gè)vm的相關(guān)規(guī)則,使得管理程序?qū)⒅恍枰獞?yīng)用識(shí)別出的相關(guān)規(guī)則來對(duì)傳入分組進(jìn)行檢查。在一些實(shí)施例中,管理程序?qū)崿F(xiàn)允許每一個(gè)vm的過濾器從所有接收到的規(guī)則中快速識(shí)別相關(guān)規(guī)則的搜索結(jié)構(gòu)。

在一些實(shí)施例中,搜索結(jié)構(gòu)用于識(shí)別與vm或一組vm相關(guān)的限定規(guī)則(由ipcidr塊指定的規(guī)則)。搜索結(jié)構(gòu)的每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)于ipcidr塊。如果規(guī)則的源地址字段或目的地地址字段指定節(jié)點(diǎn)的ipcidr塊,那么規(guī)則與節(jié)點(diǎn)相關(guān)聯(lián)。如果若干規(guī)則在它們的地址字段中指定相同的ipcidr塊,那么對(duì)應(yīng)于該ipcidr塊的節(jié)點(diǎn)將與該若干規(guī)則相關(guān)聯(lián)。在一些實(shí)施例中,搜索結(jié)構(gòu)被構(gòu)造為二進(jìn)制前綴樹。

為了使用搜索結(jié)構(gòu)來識(shí)別用于vm的相關(guān)規(guī)則,一些實(shí)施例使用vm的ip地址來查詢搜索結(jié)構(gòu)。查詢遍歷搜索結(jié)構(gòu)的節(jié)點(diǎn),并且收集與遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的所有規(guī)則。如果搜索結(jié)構(gòu)中的節(jié)點(diǎn)(i)其cidr塊包含所查詢的ip地址并且(ii)其所有祖先節(jié)點(diǎn)也被遍歷,那么該節(jié)點(diǎn)將被遍歷。

前面的發(fā)明內(nèi)容旨在用作對(duì)本發(fā)明的一些實(shí)施例的簡要介紹。它并不意味著是本文檔中所公開的所有發(fā)明性主題的介紹或概述。以下的具體實(shí)施方式和具體實(shí)施方式所參考的附圖將進(jìn)一步描述在發(fā)明內(nèi)容中所描述的實(shí)施例以及其它實(shí)施例。因此,為了理解本文檔所描述的所有實(shí)施例,需要對(duì)發(fā)明內(nèi)容、具體實(shí)施方式和附圖進(jìn)行全面地閱讀。此外,因?yàn)榭梢栽诓幻撾x本主題的精神的情況下以其它特定形式來體現(xiàn)所要求保護(hù)的主題,所以所要求保護(hù)的主題不受發(fā)明內(nèi)容、具體實(shí)施方式和附圖中的說明性細(xì)節(jié)的限制,而是要由所附權(quán)利要求來限定。

附圖說明

本發(fā)明的新穎特征在所附權(quán)利要求中闡述。但是,為了解釋的目的,在以下圖中闡述本發(fā)明的數(shù)個(gè)實(shí)施例。

圖1圖示數(shù)據(jù)中心中的分布式防火墻方案,其中防火墻規(guī)則的完整集被應(yīng)用到每一個(gè)vm。

圖2圖示分布式防火墻體系架構(gòu),其中每一個(gè)分布式防火墻控制器僅為它正在保護(hù)的網(wǎng)絡(luò)地址使用精簡的相關(guān)規(guī)則集。

圖3圖示在管理程序中實(shí)現(xiàn)的用于保護(hù)正在那些管理程序上操作的vm的上下文感知的防火墻控制器。

圖4圖示管理程序,該管理程序從網(wǎng)絡(luò)管理器接收防火墻規(guī)則的完整集并且識(shí)別與管理程序的每一個(gè)vm相關(guān)的規(guī)則。

圖5概念性地圖示用于通過僅識(shí)別和應(yīng)用相關(guān)規(guī)則來執(zhí)行防火墻過濾操作的過程。

圖6圖示其中每一個(gè)規(guī)則僅具有作為源地址和目的地地址的ipcidr塊的防火墻規(guī)則。

圖7圖示用于從集中的合格規(guī)則中高效地識(shí)別相關(guān)規(guī)則的搜索結(jié)構(gòu)。

圖8圖示使用搜索樹來識(shí)別用于數(shù)個(gè)示例ip地址的相關(guān)規(guī)則。

圖9概念性地圖示用于使用防火墻規(guī)則的搜索樹來識(shí)別與ip地址相關(guān)的合格規(guī)則的過程。

圖10概念性地圖示用于構(gòu)建用于識(shí)別相關(guān)規(guī)則的前綴樹搜索結(jié)構(gòu)并更新到本地防火墻控制器的過程。

圖11圖示正在操作用于托管虛擬機(jī)的虛擬化軟件的示例主機(jī)機(jī)器。

圖12概念性地圖示實(shí)現(xiàn)本發(fā)明的一些實(shí)施例的電子系統(tǒng)。

具體實(shí)施方式

在以下描述中,出于解釋的目的闡述了許多細(xì)節(jié)。但是,本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到的是,可以在不使用這些具體細(xì)節(jié)的情況下實(shí)踐本發(fā)明。在其它的情況下,以框圖的形式示出眾所周知的結(jié)構(gòu)和設(shè)備,以便防止用不必要的細(xì)節(jié)模糊本發(fā)明的描述。

本發(fā)明的一些實(shí)施例提供了上下文感知的分布式防火墻方案,其中任務(wù)是為一組網(wǎng)絡(luò)地址提供防火墻保護(hù)的防火墻引擎應(yīng)用與和機(jī)器相關(guān)聯(lián)的一組網(wǎng)絡(luò)地址相關(guān)的防火墻規(guī)則的精簡集。對(duì)于一些實(shí)施例,本發(fā)明通過基于vm的網(wǎng)絡(luò)地址減少在每一個(gè)vm上加載的規(guī)則來解決由大的規(guī)則集引起的挑戰(zhàn)。在一些實(shí)施例中,vm的網(wǎng)絡(luò)地址用于確定用于vm的所有相關(guān)防火墻規(guī)則。

在一些實(shí)施例中,當(dāng)vm連接到網(wǎng)絡(luò)時(shí),其將自己呈現(xiàn)為具有一個(gè)或多個(gè)有效的網(wǎng)絡(luò)地址,以便參與到網(wǎng)絡(luò)通信中。管理程序檢測(cè)vm的網(wǎng)絡(luò)地址,然后識(shí)別防火墻規(guī)則,該防火墻規(guī)則的已定義的網(wǎng)絡(luò)地址是vm的網(wǎng)絡(luò)地址的超集。這些識(shí)別出的規(guī)則是與vm相關(guān)的防火墻規(guī)則。這些規(guī)則被應(yīng)用到vm,并且防火墻引擎將僅使用這些規(guī)則來檢查vm的網(wǎng)絡(luò)流量。通常,用于數(shù)據(jù)中心的防火墻規(guī)則的總數(shù)可以相當(dāng)大,范圍從數(shù)萬到數(shù)十萬。但是,用于單個(gè)vm的防火墻規(guī)則的數(shù)量相當(dāng)小,不超過一百個(gè)。因此,基于精簡的相關(guān)規(guī)則集的分布式防火墻可以在存儲(chǔ)器和處理時(shí)間方面實(shí)現(xiàn)顯著的節(jié)省。

在一些實(shí)施例中,管理程序中的防火墻引擎將所有防火墻規(guī)則的網(wǎng)絡(luò)地址存儲(chǔ)在類特里(trie)的數(shù)據(jù)結(jié)構(gòu)中。在檢測(cè)到新vm的網(wǎng)絡(luò)地址后,防火墻引擎查找規(guī)則特里并尋找其地址是vm的網(wǎng)絡(luò)地址的超集的所有規(guī)則。然后它將這些規(guī)則應(yīng)用到vm。防火墻引擎將僅使用附屬于vm的規(guī)則來檢查該vm的網(wǎng)絡(luò)流量。

下面描述本發(fā)明的數(shù)個(gè)更詳細(xì)的實(shí)施例。部分i描述用于實(shí)現(xiàn)上下文感知的分布式防火墻方案的系統(tǒng)體系架構(gòu)。部分ii描述促進(jìn)識(shí)別用于本地防火墻控制器的相關(guān)規(guī)則的搜索結(jié)構(gòu)。部分iii描述用作vm的主機(jī)機(jī)器的示例計(jì)算設(shè)備。最后,部分iv描述實(shí)現(xiàn)本發(fā)明的一些實(shí)施例的電子系統(tǒng)。

i.體系架構(gòu)

圖2圖示分布式防火墻體系架構(gòu),其中每一個(gè)分布式防火墻控制器為它正在保護(hù)的網(wǎng)絡(luò)地址僅使用精簡的相關(guān)規(guī)則集。一些實(shí)施例將這些分布式防火墻控制器稱為是上下文感知的,這是因?yàn)檫@些防火墻控制器中的每一個(gè)都知道其必須保護(hù)的網(wǎng)絡(luò)地址,并且又僅使用與其知道的網(wǎng)絡(luò)地址相關(guān)的規(guī)則集。

該圖圖示實(shí)現(xiàn)分布式防火墻方案的數(shù)據(jù)中心200。如所圖示的,數(shù)據(jù)中心200采用若干分布式(或本地)防火墻控制器211-219。這些防火墻控制器中的每一個(gè)的任務(wù)是保護(hù)一個(gè)或多個(gè)網(wǎng)絡(luò)地址(即,與這些網(wǎng)絡(luò)地址相關(guān)聯(lián)的網(wǎng)絡(luò)節(jié)點(diǎn))。如所圖示的,防火墻控制器211的任務(wù)是保護(hù)網(wǎng)絡(luò)地址a、b和c,并且防火墻控制器219的任務(wù)是保護(hù)網(wǎng)絡(luò)地址x、y和z。

數(shù)據(jù)中心200具有防火墻規(guī)則的完整集205。每一個(gè)規(guī)則具有源字段和目的地字段。每一個(gè)源字段/目的地字段指定網(wǎng)絡(luò)地址、網(wǎng)絡(luò)地址的范圍(諸如,cidr塊)、或網(wǎng)絡(luò)地址的集合(諸如,容器)。具有分別落在規(guī)則的源字段和目的地字段內(nèi)的源地址和目的地地址的分組受規(guī)則的指定動(dòng)作/要求的約束。

這些規(guī)則用于保護(hù)數(shù)據(jù)中心200中的所有網(wǎng)絡(luò)地址(例如,在數(shù)據(jù)中心的所有主機(jī)機(jī)器上運(yùn)行的所有vm)。如所圖示的,一些規(guī)則適用于由防火墻控制器211保護(hù)的地址(地址a、b和c由規(guī)則1、2、3、1001和1002保護(hù)),而一些規(guī)則適用于由防火墻控制器219保護(hù)的地址(地址x、y和z由規(guī)則1001、1002、2001和2002保護(hù))。但是,與其中每一個(gè)防火墻控制器必須檢查數(shù)據(jù)中心100的整個(gè)規(guī)則集的圖1的分布式防火墻方案不同,圖2的數(shù)據(jù)中心200中的每一個(gè)防火墻控制器是上下文感知的,并且僅檢查用于它正在保護(hù)的網(wǎng)絡(luò)地址的規(guī)則集205的相關(guān)子集。

如所圖示的,上下文感知的防火墻控制器211僅提供分別用于地址a、b和c的規(guī)則的子集221、222和223。因此,地址a的防火墻僅檢查規(guī)則1、2和1001,地址b的防火墻僅檢查規(guī)則1、3和1002,地址c的防火墻僅檢查2和3,等等。同樣,上下文感知防火墻控制器219僅提供分別用于地址x、y和z的規(guī)則的子集227、228和229。因此,地址x的防火墻僅檢查規(guī)則1001、2001和2002,地址y的防火墻僅檢查規(guī)則1002和2001,地址z的防火墻僅檢查規(guī)則2002,等等。

在一些實(shí)施例中,防火墻控制器211-219由在主機(jī)機(jī)器上運(yùn)行的管理程序或虛擬化軟件實(shí)現(xiàn),并且由防火墻控制器保護(hù)的網(wǎng)絡(luò)地址對(duì)應(yīng)于由管理程序托管的vm的網(wǎng)絡(luò)地址。這些防火墻控制器中的一些或全部是允許主機(jī)機(jī)器操作vm的管理程序的一部分。防火墻控制器又通過提供與這些vm的網(wǎng)絡(luò)地址相關(guān)的規(guī)則來保護(hù)那些vm。對(duì)于一些實(shí)施例,圖3圖示在管理程序中實(shí)現(xiàn)的用于保護(hù)正在那些管理程序上操作的vm的上下文感知的防火墻控制器。

圖3圖示具有用于保護(hù)整個(gè)數(shù)據(jù)中心的集中式防火墻規(guī)則305的集合的數(shù)據(jù)中心300。集中式防火墻規(guī)則305由數(shù)據(jù)中心300的網(wǎng)絡(luò)管理器310維護(hù)。數(shù)個(gè)主機(jī)機(jī)器311-319位于數(shù)據(jù)中心300中。網(wǎng)絡(luò)管理器310和主機(jī)機(jī)器311-319通過物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施390互連,這允許網(wǎng)絡(luò)管理器向主機(jī)機(jī)器中的每一個(gè)發(fā)送控制平面消息,包括防火墻配置消息。數(shù)據(jù)中心300中的主機(jī)機(jī)器311-319操作vma至z,并且集中式防火墻規(guī)則305包括用于保護(hù)所有那些vm的規(guī)則。

每一個(gè)主機(jī)機(jī)器操作允許主機(jī)機(jī)器托管一個(gè)或多個(gè)vm的管理程序或虛擬化軟件。如所圖示的,主機(jī)機(jī)器311托管vma、b和c,主機(jī)機(jī)器312托管vmd、e和f,并且主機(jī)機(jī)器319托管vmx、y和z。每一個(gè)主機(jī)機(jī)器的虛擬化軟件還操作用于保護(hù)其正在托管的vm的分布式防火墻控制器(的本地副本)。每一個(gè)管理程序基于與vm相關(guān)的規(guī)則的精簡集為其vm中的每一個(gè)執(zhí)行防火墻操作。例如,主機(jī)機(jī)器311的虛擬化軟件僅為vma使用與vma相關(guān)的防火墻規(guī)則,為vmb使用與vmb相關(guān)的防火墻規(guī)則,等等。由于不需要搜索不相關(guān)的防火墻規(guī)則,因此每一個(gè)管理程序?qū)崿F(xiàn)的分布式防火墻控制器能夠在分組處理時(shí)間和存儲(chǔ)器使用方面實(shí)現(xiàn)顯著的節(jié)省。

不同的實(shí)施例使用不同的方法來確保每一個(gè)分布式防火墻控制器僅考慮相關(guān)規(guī)則。在一些其它實(shí)施例中,數(shù)據(jù)中心的網(wǎng)絡(luò)管理器得知哪些vm正在被特定的分布式防火墻控制器保護(hù)。網(wǎng)絡(luò)管理器然后識(shí)別用于那些vm的相關(guān)規(guī)則,并將僅包含識(shí)別出的相關(guān)規(guī)則的防火墻配置消息發(fā)送到特定的分布式防火墻控制器。因此,每一個(gè)主機(jī)機(jī)器只存儲(chǔ)用于它正在托管的vm的相關(guān)規(guī)則。

在一些實(shí)施例中,每一個(gè)主機(jī)機(jī)器接收關(guān)于數(shù)據(jù)中心中的所有規(guī)則的防火墻配置消息。如圖3所圖示的,每一個(gè)主機(jī)機(jī)器311-319從網(wǎng)絡(luò)管理器310接收數(shù)據(jù)中心防火墻規(guī)則305中的所有規(guī)則。但是,主機(jī)機(jī)器的管理程序/防火墻控制器僅識(shí)別用于其每一個(gè)vm的相關(guān)規(guī)則,使得管理程序?qū)⒅恍枰獞?yīng)用識(shí)別出的相關(guān)規(guī)則來對(duì)傳入分組進(jìn)行檢查。圖4圖示管理程序,該管理程序從網(wǎng)絡(luò)管理器接收防火墻規(guī)則的完整集并且識(shí)別與管理程序的每一個(gè)vm相關(guān)的規(guī)則。

如所圖示的,用于數(shù)據(jù)中心300中的每一個(gè)主機(jī)機(jī)器的管理程序包括本地防火墻控制器、搜索結(jié)構(gòu)和用于管理程序的vm的一組過濾器。例如,主機(jī)機(jī)器311運(yùn)行管理程序,包括本地防火墻控制器421、搜索結(jié)構(gòu)431和分別用于其vma、b和c的一組過濾器441-443。本地防火墻控制器421從網(wǎng)絡(luò)管理器310接收控制平面消息??刂破矫嫦ㄓ糜谡麄€(gè)數(shù)據(jù)中心的防火墻規(guī)則。本地防火墻控制器421又使用接收到的防火墻規(guī)則來構(gòu)建包括數(shù)據(jù)中心300的整個(gè)防火墻規(guī)則集的搜索結(jié)構(gòu)431。管理程序311的每一個(gè)過濾器(過濾器441-443)又使用搜索結(jié)構(gòu)431來查詢與其對(duì)應(yīng)的vm的ip地址相關(guān)的規(guī)則。vm的相關(guān)規(guī)則是其源地址或目的地地址包含該vm的ip地址或與該vm的ip地址完全相同的那些規(guī)則。

在一些實(shí)施例中,當(dāng)受保護(hù)的vm的虛擬nic(網(wǎng)絡(luò)接口控制器)連接到管理程序的l2虛擬交換機(jī)時(shí),管理程序創(chuàng)建過濾器作為邏輯網(wǎng)絡(luò)自省(introspection)實(shí)體。這種過濾器包含防火墻規(guī)則集,并且允許防火墻控制器對(duì)照規(guī)則檢查經(jīng)過虛擬nic的所有網(wǎng)絡(luò)分組。在從網(wǎng)絡(luò)管理器接收到新的防火墻配置消息之后,管理程序?qū)⒂眯乱?guī)則對(duì)所有受保護(hù)的vm的過濾器進(jìn)行編程。在一些實(shí)施例中,管理程序不是將所有接收到的規(guī)則傳遞到內(nèi)核中的每一個(gè)適用的過濾器,而是實(shí)現(xiàn)允許每一個(gè)vm的過濾器從所有接收到的規(guī)則中快速識(shí)別相關(guān)規(guī)則的搜索結(jié)構(gòu)(諸如,用于管理程序311的搜索結(jié)構(gòu)431)。將在下面部分ii中進(jìn)一步描述用于識(shí)別相關(guān)規(guī)則的搜索結(jié)構(gòu)。

圖5概念性地圖示用于通過僅識(shí)別和應(yīng)用相關(guān)規(guī)則來執(zhí)行防火墻過濾操作的過程500。在一些實(shí)施例中,該過程由在主機(jī)機(jī)器上運(yùn)行的管理程序執(zhí)行。具體而言,在一些實(shí)施例中,過程500由vm的過濾器模塊執(zhí)行。

當(dāng)過程接收(在510處)vm的分組時(shí),該過程開始。該過程然后使用(在520處)防火墻規(guī)則搜索結(jié)構(gòu)來基于vm的ip地址識(shí)別與vm相關(guān)的規(guī)則。在一些實(shí)施例中,過濾器高速緩存相關(guān)規(guī)則,并且當(dāng)防火墻規(guī)則已被更新時(shí),例如,當(dāng)管理程序從網(wǎng)絡(luò)控制器接收到防火墻配置消息時(shí),僅使用防火墻規(guī)則搜索結(jié)構(gòu)來更新其高速緩存的規(guī)則。

該過程然后識(shí)別(在530處)接收到的分組的源地址字段和目的地地址字段,并且通過應(yīng)用vm的相關(guān)規(guī)則對(duì)傳入分組執(zhí)行(在540處)防火墻操作(例如,阻止、允許等)。在一些實(shí)施例中,該過程瀏覽相關(guān)規(guī)則并且應(yīng)用那些具有分別包含傳入分組的源字段和目的地字段的源字段和目的地字段的規(guī)則。然后過程500結(jié)束。

ii.搜索結(jié)構(gòu)

如所提到的,防火墻規(guī)則的地址字段可以指定網(wǎng)絡(luò)地址、網(wǎng)絡(luò)地址的范圍或網(wǎng)絡(luò)地址的集合。不同的實(shí)施例使用針對(duì)不同類型的地址字段優(yōu)化的不同類型的搜索結(jié)構(gòu)。例如,一些實(shí)施例使用基于容器的搜索結(jié)構(gòu),該基于容器的搜索結(jié)構(gòu)針對(duì)被指定為網(wǎng)絡(luò)地址的容器的地址字段優(yōu)化。于2014年6月4日提交的標(biāo)題為“efficientpacketclassificationfordynamiccontainers”的美國專利申請(qǐng)no.14/295,553描述了用于使用容器來指定源地址和/或目的地地址的規(guī)則的搜索結(jié)構(gòu)。美國專利申請(qǐng)no.14/295,553通過引用被結(jié)合于此。

在一些實(shí)施例中,防火墻規(guī)則使用ipcidr塊來指定源地址和目的地地址,并且管理程序中的本地防火墻控制器使用搜索結(jié)構(gòu),該搜索結(jié)構(gòu)為了在使用ipcidr塊來指定源地址和目的地地址的規(guī)則當(dāng)中尋找相關(guān)規(guī)則而優(yōu)化。cidr(無類別域間路由)記號(hào)是ip地址及其相關(guān)聯(lián)路由前綴的緊湊表示。該記號(hào)由ip地址和前綴大小構(gòu)建,后者相當(dāng)于路由前綴掩碼中的前導(dǎo)“1”比特的數(shù)量。ip地址根據(jù)ipv4或ipv6的標(biāo)準(zhǔn)來表示。之后跟隨著分隔符,斜杠('/')字符,并且前綴大小被表示為十進(jìn)制數(shù)。該地址可以表示單個(gè)不同的接口地址或整個(gè)網(wǎng)絡(luò)的起始地址。例如,ipcidr塊192.168.100.0/24指定路由前綴192.168.100.0和子網(wǎng)掩碼255.255.255.0(即,24個(gè)前導(dǎo)“1”比特)。換句話說,記號(hào)192.168.100.0/24表示包括從192.168.100.0到192.168.100.255的地址范圍的子網(wǎng)。對(duì)于一些實(shí)施例,單獨(dú)的ip地址可以被認(rèn)為是/32cidr塊(即,具有用于整個(gè)子網(wǎng)掩碼的“1”比特)。

在一些實(shí)施例中,如果規(guī)則的源地址和目的地地址兩者都被定義為ipcidr塊,但vm的ip地址不落在任何一個(gè)ipcidr塊中,那么該規(guī)則被認(rèn)為與vm無關(guān)。來自或去往該vm的任何ip分組將不匹配不相關(guān)的規(guī)則,這是因?yàn)榉纸M的源地址和目的地地址都將與規(guī)則的源地址和目的地地址不匹配。相反,如果vm的ip地址落在規(guī)則的源ipcidr塊或目的地ipcidr塊的任何一個(gè)中,那么該規(guī)則與vm相關(guān),并且因此必須用于檢查來自或去往vm的分組。因此,在一些實(shí)施例中,本地防火墻控制器基于這種標(biāo)準(zhǔn)尋找與vm相關(guān)的所有規(guī)則。

一些實(shí)施例將防火墻規(guī)則分類為兩種類別:合格規(guī)則和不合格規(guī)則。如果規(guī)則的源地址和目的地地址兩者都被定義為ipcidr塊(或一組ipcidr塊),并且ipcidr塊既不是廣播地址也不是多播地址,那么該規(guī)則是合格的。所有其它規(guī)則都是不合格規(guī)則。不合格規(guī)則通常落入以下類別:

·規(guī)則的任何一個(gè)地址或兩個(gè)地址未被定義,這意味著它們是通配符地址。

·規(guī)則的任何一個(gè)地址或兩個(gè)地址具有否定標(biāo)志。

·規(guī)則的任何一個(gè)地址或兩個(gè)地址是廣播或多播地址。

·規(guī)則的任何一個(gè)地址或兩個(gè)地址是非ip地址。

在一些實(shí)施例中,無論受保護(hù)的vm的ip地址如何,所有不合格規(guī)則都由管理程序的本地防火墻控制器使用。換句話說,在一些實(shí)施例中,本地防火墻控制器將所有不合格規(guī)則視為相關(guān)規(guī)則,而不管受保護(hù)的vm的ip地址如何。但是,防火墻系統(tǒng)通常具有比不合格規(guī)則多得多的合格規(guī)則。因此,在一些實(shí)施例中,本地防火墻控制器使用搜索結(jié)構(gòu)來高效地尋找合格的相關(guān)規(guī)則。

圖6圖示示例防火墻規(guī)則集600。防火墻規(guī)則集600包括合格規(guī)則601-608(具有id為1至8的規(guī)則),每一個(gè)規(guī)則僅具有ipcidr塊作為源地址和目的地地址。例如,規(guī)則601將ipcidr塊192.168.17.0/24指定為其源地址,并且將cidr塊192.168.101.0/28指定為其目的地地址。規(guī)則606分別指定ip地址192.168.17.5和192.168.17.247作為源地址和目的地地址,但是這些相當(dāng)于在其子網(wǎng)掩碼中具有32個(gè)1的cidr塊(即192.168.17.5/32和192.168.17.247/32)。

防火墻規(guī)則集600的ipcidr塊都屬于子網(wǎng)192.0.0.0/8。由合格規(guī)則集中的規(guī)則使用的ipcidr塊是192.0.0.0/8的子集或子網(wǎng)。圖6還概念性地圖示由集600中的規(guī)則指定的一些不同ipcidr之間的邏輯關(guān)系。例如,vm192.168.101.2在子網(wǎng)192.168.101.0/28中,其是由規(guī)則601、605和607使用的ipcidr。子網(wǎng)192.168.101.0/28又是由規(guī)則602使用的子網(wǎng)192.168.0.0/16的子集。因此,規(guī)則601、602、605和607是用于具有ip地址192.168.101.2的vm的相關(guān)的合格的防火墻規(guī)則。

圖7圖示用于從集600中的合格規(guī)則中高效地識(shí)別相關(guān)規(guī)則的搜索結(jié)構(gòu)700。搜索結(jié)構(gòu)700包括節(jié)點(diǎn)701-714。每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)于ipcidr塊。如果規(guī)則的源地址字段或目的地地址字段指定節(jié)點(diǎn)的ipcidr塊,那么規(guī)則與該節(jié)點(diǎn)相關(guān)聯(lián)。如果兩個(gè)(或更多個(gè))規(guī)則都在其地址字段中指定相同的ipcidr塊,那么對(duì)應(yīng)于該ipcidr塊的節(jié)點(diǎn)將與這些規(guī)則相關(guān)聯(lián)(例如,通過包括這些規(guī)則的鏈表)。例如,規(guī)則601(規(guī)則id1)、605(規(guī)則id5)和607(規(guī)則id7)都指定ipcidr塊192.168.101.0/28作為源地址或目的地地址。在前綴樹700中,節(jié)點(diǎn)708對(duì)應(yīng)于ipcidr塊192.168.101.0/28,并且因此節(jié)點(diǎn)708與具有id1、5和7的規(guī)則相關(guān)聯(lián)。如所圖示的,節(jié)點(diǎn)702、703、704、705、708、710、711、712、713和714都是與來自集600的一個(gè)或多個(gè)合格規(guī)則相關(guān)聯(lián)的節(jié)點(diǎn)。

搜索結(jié)構(gòu)700被構(gòu)造為二進(jìn)制前綴樹或特里(即,具有基數(shù)2的帕特里夏樹(patriciatree)),其中每一個(gè)節(jié)點(diǎn)最多具有兩個(gè)子節(jié)點(diǎn)。在一些實(shí)施例中,每一個(gè)子節(jié)點(diǎn)的cidr塊是父節(jié)點(diǎn)的cidr的子網(wǎng)。例如,節(jié)點(diǎn)707和711是節(jié)點(diǎn)706的子節(jié)點(diǎn)。節(jié)點(diǎn)707(192.168.64.0/18)的cidr塊和節(jié)點(diǎn)711(192.168.17.0/24)的cidr塊都是由節(jié)點(diǎn)706(192.168.0.0/17)的cidr塊包含的子網(wǎng)。因此,搜索樹700中的任何節(jié)點(diǎn)對(duì)應(yīng)于包含其后代節(jié)點(diǎn)的所有ipcir塊的ipcidr塊(例如,根節(jié)點(diǎn)701的cidr塊(192.0.0.0/8)包含前綴樹中所有其它節(jié)點(diǎn)702-713的cidr塊)。

在一些實(shí)施例中,每一個(gè)節(jié)點(diǎn)的ipcidr塊可以被表示為前綴二進(jìn)制串,該前綴二進(jìn)制串的長度由“/”記號(hào)確定的。例如,節(jié)點(diǎn)706的cidr192.168.0.0/17可以被表示為17比特長的前綴二進(jìn)制串11000000101010000。又可以通過用后綴子串附加父節(jié)點(diǎn)的前綴串得到節(jié)點(diǎn)的每一個(gè)子節(jié)點(diǎn)。例如,節(jié)點(diǎn)707(192.168.64.0/18)的cidr可以通過將1比特后綴子串“1”附加到父節(jié)點(diǎn)706的前綴串得到(即,11000000101010000_1)。另一個(gè)子節(jié)點(diǎn)711(192.168.17.0/24)的cidr可以通過將7比特后綴子串“0010001”附加到父節(jié)點(diǎn)706的前綴二進(jìn)制串得到(即,11000000101010000_0010001)。用于子節(jié)點(diǎn)的附加串又變?yōu)樽庸?jié)點(diǎn)的前綴二進(jìn)制串,其又可以附加后綴子串以得到孫子節(jié)點(diǎn)的前綴串,以此類推。因此,除了根節(jié)點(diǎn)701之外,搜索樹700中的每一個(gè)節(jié)點(diǎn)都與后綴子串相關(guān)聯(lián)。例如,節(jié)點(diǎn)701與8比特后綴子串1100000相關(guān)聯(lián),節(jié)點(diǎn)705與8比特后綴子串10101000相關(guān)聯(lián),節(jié)點(diǎn)706與1比特后綴子串0相關(guān)聯(lián),節(jié)點(diǎn)711與7比特后綴子串0010001相關(guān)聯(lián),并且節(jié)點(diǎn)712與8比特后綴子串11110111相關(guān)聯(lián)。每一個(gè)節(jié)點(diǎn)的二進(jìn)制串或cidr塊可以通過將其所有祖先節(jié)點(diǎn)的后綴子串附加到根節(jié)點(diǎn)導(dǎo)出。例如,節(jié)點(diǎn)712的cidr塊192.168.17.247是節(jié)點(diǎn)701、705、706、711和712的所有后綴子串的附加結(jié)果(1100000_10101000_0_0010001_11110111)。

對(duì)于在搜索樹中具有兩個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn),一個(gè)子節(jié)點(diǎn)位于“1”路徑上,并且另一個(gè)子節(jié)點(diǎn)位于“0”路徑上。更準(zhǔn)確地說,在一些實(shí)施例中,一個(gè)子節(jié)點(diǎn)與以“0”開始的后綴子串相關(guān)聯(lián),并且另一個(gè)子節(jié)點(diǎn)與以“1”開始的后綴子串相關(guān)聯(lián)。例如,節(jié)點(diǎn)706具有與后綴子串“1”相關(guān)聯(lián)的“1”子節(jié)點(diǎn)707和與后綴子串“0010001”相關(guān)聯(lián)的“0”子節(jié)點(diǎn)711。當(dāng)遍歷用于特定ip地址或cidr塊的搜索樹時(shí),如果“1”路徑的后綴串匹配特定ip地址或cidr塊中的對(duì)應(yīng)比特,那么遍歷將采用“1”路徑。同樣,如果“0”路徑的后綴串匹配特定ip地址或cidr塊的對(duì)應(yīng)比特,那么遍歷將采用“0”路徑。如果“1”路徑或“0”路徑都不具有對(duì)ip地址或cidr塊的匹配后綴串,那么遍歷終止。

如上所述,搜索樹700用于促進(jìn)高效識(shí)別與vm或一組vm相關(guān)的合格規(guī)則(由ipcidr塊指定的規(guī)則)。為了使用搜索樹識(shí)別用于vm的相關(guān)規(guī)則,一些實(shí)施例使用vm的ip地址來查詢搜索樹。查詢遍歷搜索樹的節(jié)點(diǎn),并且收集與遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的所有規(guī)則。如果搜索樹中的節(jié)點(diǎn)(i)其cidr塊包含所查詢的ip地址并且(ii)其所有祖先節(jié)點(diǎn)也被遍歷,那么該節(jié)點(diǎn)將被遍歷。

圖8圖示使用搜索樹700來識(shí)別用于數(shù)個(gè)示例ip地址的相關(guān)規(guī)則?;趘m的ip地址為vm進(jìn)行每一個(gè)搜索或查詢。第一示例使用前綴樹700尋找用于ip地址192.168.101.2的相關(guān)規(guī)則。由于ip地址192.168.101.2(11000000101010000110010100000010)被解析為用于確定搜索樹的遍歷路徑的二進(jìn)制子串,遍歷遵循節(jié)點(diǎn)701、705、706、707、708、709的路徑。具體而言,該地址被解析為與遍歷的節(jié)點(diǎn)701、705、706、707、708、709的后綴子串匹配的子串(11000000_10101000_0_1_1001010000_0010)。沿此路徑,與遍歷的節(jié)點(diǎn)705、708和709相關(guān)聯(lián)的規(guī)則(規(guī)則2、1、5、7)被收集并被識(shí)別為與ip地址192.168.101.2相關(guān)的規(guī)則。因?yàn)楣?jié)點(diǎn)709沒有子節(jié)點(diǎn),所以遍歷在節(jié)點(diǎn)709處結(jié)束。節(jié)點(diǎn)709也是具有包含被查詢的ip地址的cidr塊的最后一個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)709的cidr與所查詢的ip地址192.168.101.2一致)。

第二示例使用前綴樹700尋找用于具有ip地址192.66.113.9的vm的相關(guān)規(guī)則。由于ip地址192.66.113.9(11000000010000100111000100001001)被解析為用于確定搜索樹的遍歷路徑的二進(jìn)制子串,遍歷遵循節(jié)點(diǎn)701、702和703的路徑。具體而言,ip地址的最高有效部分(11000000_0100001001_1)用于匹配節(jié)點(diǎn)701、702和703的后綴子串。沿此路徑,與節(jié)點(diǎn)702和703相關(guān)聯(lián)的規(guī)則(規(guī)則2、5、8)被收集并被識(shí)別為與ip地址192.66.113.9相關(guān)的規(guī)則。因?yàn)楣?jié)點(diǎn)703沒有子節(jié)點(diǎn),所以遍歷在節(jié)點(diǎn)703處結(jié)束。節(jié)點(diǎn)703也是具有包含被查詢的ip地址的cidr塊的最后一個(gè)節(jié)點(diǎn)(子網(wǎng)192.66.96.0/19包含ip地址192.66.113.9)。

第三示例使用前綴樹700尋找用于ip地址192.168.128.100的相關(guān)規(guī)則。由于ip地址192.168.128.100(11000000101010001000000001100100)被解析為用于確定搜索樹的遍歷路徑的二進(jìn)制子串,遍歷遵循節(jié)點(diǎn)701和705的路徑。具體而言,ip地址的最高有效部分(11000000_10101000)用于匹配節(jié)點(diǎn)701和705的后綴子串。沿此路徑,與節(jié)點(diǎn)705相關(guān)聯(lián)的規(guī)則(規(guī)則2)被收集并被識(shí)別為與ip地址192.168.128.100相關(guān)的規(guī)則。因?yàn)楣?jié)點(diǎn)705的子節(jié)點(diǎn)(706和714)都不能包含所查詢的ip地址(192.168.128.100既不落在192.168.0.0/17內(nèi)又不落在192.168.165.201內(nèi)),所以遍歷在節(jié)點(diǎn)705處結(jié)束。這也是因?yàn)樗樵兊膇p地址192.168.128.100不能遵循節(jié)點(diǎn)705的“1”路徑或“0”路徑,因?yàn)閷?duì)應(yīng)的子節(jié)點(diǎn)的后綴子串與ip地址192.168.128.100中的對(duì)應(yīng)比特不匹配。

對(duì)于一些實(shí)施例,圖9概念性地圖示用于使用防火墻規(guī)則的搜索樹來識(shí)別與ip地址相關(guān)的合格規(guī)則(在一些實(shí)施例中不合格規(guī)則被視為相關(guān))的過程900。在一些實(shí)施例中,ip地址是在主機(jī)機(jī)器的管理程序上運(yùn)行的vm的ip地址,并且管理程序執(zhí)行過程900,以便識(shí)別作為其分布式防火墻程序的一部分用于保護(hù)vm的相關(guān)規(guī)則。在一些實(shí)施例中,用于vm的過濾器模塊作為管理程序的一部分執(zhí)行過程900。在一些實(shí)施例中,該過程由管理程序中的搜索結(jié)構(gòu)管理模塊執(zhí)行,該管理程序接收對(duì)ip地址的查詢并且又產(chǎn)生用于所查詢的ip地址的相關(guān)規(guī)則。

當(dāng)過程900接收到(在910處)基于ip地址的對(duì)相關(guān)規(guī)則的查詢時(shí),過程900開始。在一些實(shí)施例中,該過程接收用作相關(guān)規(guī)則查詢的基礎(chǔ)的ip地址。該過程然后確定(在920處)搜索結(jié)構(gòu)的根節(jié)點(diǎn)是否包含所查詢的ip地址。如果不包含,那么過程900終止,這是因?yàn)樵谒阉髦袥]有其它節(jié)點(diǎn)可能包含所查詢的ip地址。如果根節(jié)點(diǎn)確實(shí)包含所查詢的ip地址,那么該過程然后將根節(jié)點(diǎn)設(shè)置為(在930處)當(dāng)前遍歷的節(jié)點(diǎn)并且進(jìn)行到940。

在940處,如果存在,那么該過程收集與當(dāng)前遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的規(guī)則。該過程然后確定(在950處)所查詢的ip地址是否能夠遵循到當(dāng)前遍歷的節(jié)點(diǎn)的“1”子節(jié)點(diǎn)的“1”路徑。如果能,那么該過程進(jìn)行到955。否則,該過程進(jìn)行到960以確定ip地址是否能夠遵循到當(dāng)前遍歷的節(jié)點(diǎn)的“0”子節(jié)點(diǎn)的“0”路徑。如果能,那么該過程進(jìn)行到965。否則,該過程進(jìn)行到970。

在955處,該過程將當(dāng)前遍歷的節(jié)點(diǎn)設(shè)置為“1”子節(jié)點(diǎn)并且進(jìn)行到940。相反,在965處,該過程將當(dāng)前遍歷的節(jié)點(diǎn)設(shè)置為“0”子節(jié)點(diǎn)并進(jìn)行到940。在一些實(shí)施例中,如果子節(jié)點(diǎn)的后綴子串與所查詢的ip地址的對(duì)應(yīng)比特匹配,那么所查詢的ip地址能夠遵循到子節(jié)點(diǎn)的路徑。當(dāng)子節(jié)點(diǎn)被遍歷時(shí),這意味著子節(jié)點(diǎn)的cidr塊包含所查詢的ip地址。

在970處,該過程已經(jīng)確定所查詢的ip地址不能遍歷當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)。在一些實(shí)施例中,這是因?yàn)樽庸?jié)點(diǎn)都不包含所查詢的ip地址,或者因?yàn)楫?dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn)。在任何一種情況下,當(dāng)前節(jié)點(diǎn)是對(duì)應(yīng)于包含所查詢的ip地址的cidr塊的最后一個(gè)節(jié)點(diǎn)。因此,該過程報(bào)告在遍歷防火墻搜索結(jié)構(gòu)期間收集到的所有規(guī)則作為與所查詢的ip地址相關(guān)或適用于所查詢的ip地址的規(guī)則。過程970然后結(jié)束。查詢實(shí)體(即,用于vm的管理程序或過濾器)然后采用報(bào)告的規(guī)則作為被識(shí)別用于保護(hù)vm的相關(guān)防火墻規(guī)則(合格規(guī)則)。

在一些實(shí)施例中,當(dāng)管理程序從網(wǎng)絡(luò)管理器接收到防火墻配置更新消息時(shí),管理程序構(gòu)建和更新前綴樹搜索結(jié)構(gòu)(諸如,搜索樹700)。構(gòu)建的樹然后被提供給vm的過濾器作為用于高效識(shí)別相關(guān)規(guī)則的搜索結(jié)構(gòu)。對(duì)于一些實(shí)施例,圖10概念性地圖示用于構(gòu)建用于識(shí)別相關(guān)規(guī)則的前綴樹搜索結(jié)構(gòu)并更新到本地防火墻控制器的過程1000。在一些實(shí)施例中,過程1000由執(zhí)行本地防火墻控制器的管理程序執(zhí)行。一些實(shí)施例連續(xù)執(zhí)行過程1000以動(dòng)態(tài)地保持其搜索結(jié)構(gòu)最新,使得vm的過濾器將能訪問防火墻規(guī)則的最新集。

當(dāng)該過程從網(wǎng)絡(luò)管理器(例如,310)接收到(在1010處)防火墻規(guī)則時(shí),該過程開始。在一些實(shí)施例中,規(guī)則是從網(wǎng)絡(luò)管理器接收到的防火墻配置消息的一部分。該過程然后在接收到的規(guī)則中從源地址字段和目的地地址字段識(shí)別(在1020處)合格的ipcidr塊。

該過程然后基于規(guī)則的cidr塊遍歷(在1030處)防火墻規(guī)則搜索樹。在一些實(shí)施例中,這種遍歷是基于接收到的規(guī)則的cidr塊的二進(jìn)制串(而不是基于如在過程900中的受保護(hù)vm的ip地址的二進(jìn)制串),即,通過將子節(jié)點(diǎn)的子串與規(guī)則的cidr塊中的對(duì)應(yīng)比特進(jìn)行比較來決定是采取“0”路徑還是“1”路徑等。

該過程然后確定(在1040處)其是否能夠從遍歷中為規(guī)則的cidr塊在搜索結(jié)構(gòu)中定位節(jié)點(diǎn)。與其中搜索是用于識(shí)別具有包含所查詢的ip地址的cidr塊的節(jié)點(diǎn)的過程900中用于尋找相關(guān)規(guī)則的遍歷不同,這里在過程1000中的遍歷是用于尋找恰好與規(guī)則的cidr塊匹配的節(jié)點(diǎn)。如果該過程能夠在搜索結(jié)構(gòu)中找到與規(guī)則的cidr塊匹配的節(jié)點(diǎn),那么該過程進(jìn)行到1050。否則,該過程進(jìn)行到1045。

在1045處,因?yàn)樗阉鹘Y(jié)構(gòu)沒有與規(guī)則的cidr塊對(duì)應(yīng)的現(xiàn)有節(jié)點(diǎn),所以該過程將與規(guī)則的cidr塊對(duì)應(yīng)的新節(jié)點(diǎn)添加或插入到搜索結(jié)構(gòu)中。在一些實(shí)施例中,該過程重新組織搜索結(jié)構(gòu),使得可以維護(hù)樹的二進(jìn)制前綴結(jié)構(gòu)。在一些實(shí)施例中,這種重新組織需要在防火墻中添加不與任何規(guī)則對(duì)應(yīng)的存根節(jié)點(diǎn),諸如搜索樹700中的節(jié)點(diǎn)706和707。在添加用于接收到的規(guī)則的cidr塊的新節(jié)點(diǎn)之后,該過程進(jìn)行到1050。

在1050處,該過程將接收到的規(guī)則與節(jié)點(diǎn)(從操作1045新添加的節(jié)點(diǎn)或從操作1040定位的節(jié)點(diǎn))相關(guān)聯(lián)。該過程然后確定(在1060處)在接收到的規(guī)則中是否存在更多合格的cidr塊。如果存在,那么該過程返回到1020以或者在搜索結(jié)構(gòu)中定位現(xiàn)有節(jié)點(diǎn)或者為規(guī)則中的其他cidr塊向搜索結(jié)構(gòu)添加新節(jié)點(diǎn)。否則,過程1000終止,并且構(gòu)建的搜索樹被更新并且可用于使用于識(shí)別相關(guān)規(guī)則。

在一些實(shí)施例中,如在部分ii中描述的搜索結(jié)構(gòu)是在數(shù)據(jù)中心的網(wǎng)絡(luò)管理器處實(shí)現(xiàn)的。網(wǎng)絡(luò)管理器在其防火墻規(guī)則數(shù)據(jù)庫中構(gòu)建和更新用于合格規(guī)則的搜索結(jié)構(gòu)。搜索結(jié)構(gòu)然后用于識(shí)別與各個(gè)vm相關(guān)的規(guī)則,該識(shí)別基于來自各個(gè)管理程序?qū)δ切﹙m的查詢或基于網(wǎng)絡(luò)管理器自己的記錄。標(biāo)識(shí)出的相關(guān)規(guī)則然后被傳遞給那些vm的主機(jī)機(jī)器。

iii.計(jì)算設(shè)備

如之前提到的,本發(fā)明的一些實(shí)施例由在用作主機(jī)機(jī)器的計(jì)算設(shè)備上運(yùn)行的虛擬化軟件或管理程序?qū)崿F(xiàn)。對(duì)于一些實(shí)施例,圖11圖示正在操作虛擬化軟件1105的示例主機(jī)機(jī)器1100。虛擬化軟件1105允許主機(jī)機(jī)器托管虛擬機(jī)1111-1114以及將虛擬機(jī)連接到物理網(wǎng)絡(luò)1190。這個(gè)物理網(wǎng)絡(luò)1190可以跨越一個(gè)或更多數(shù)據(jù)中心,并且包括各種物理交換機(jī)和路由器。

如所圖示的,主機(jī)1100能夠通過物理nic(pnic)1195訪問物理網(wǎng)絡(luò)1190。虛擬化軟件1105用作托管的vm1111-1114與物理nic1195(以及其它物理資源,諸如處理器和存儲(chǔ)器)之間的接口。vm中的每一個(gè)包括用于通過虛擬化軟件1105訪問網(wǎng)絡(luò)的虛擬nic(vnic)。vm中的每一個(gè)vnic負(fù)責(zé)在vm和虛擬化軟件1105之間交換分組。在一些實(shí)施例中,vnic是由虛擬nic仿真器實(shí)現(xiàn)的物理nic的軟件抽象。在一些實(shí)施例中,vm的vnic還包括用于識(shí)別相關(guān)防火墻規(guī)則并將那些防火墻規(guī)則應(yīng)用于過濾分組的防火墻過濾器。

虛擬化軟件1105管理vm1111-1114的操作,并且包括用于管理vm對(duì)物理網(wǎng)絡(luò)的訪問(在一些實(shí)施例中,通過實(shí)現(xiàn)vm連接到的邏輯網(wǎng)絡(luò))的數(shù)個(gè)組件。如所圖示的,虛擬化軟件1105包括物理交換元件1120、物理路由元件1130、控制器接口1140、上下文感知的分布式防火墻模塊1150以及上行鏈路模塊1170。

控制器接口1140從控制器或控制器集群1160接收控制平面消息。在一些實(shí)施例中,這些控制平面消息包括用于配置虛擬化軟件和/或虛擬機(jī)的各種組件(諸如,物理交換元件1120和物理路由元件1130)的配置數(shù)據(jù)。在一些實(shí)施例中,控制平面消息還包括用于防火墻配置的消息,例如,包括對(duì)存儲(chǔ)在主機(jī)機(jī)器1100處的防火墻規(guī)則的更新的消息。

上下文感知的分布式防火墻模塊1150從控制器接口1150接收防火墻規(guī)則更新(或防火墻配置消息)。上下文感知的分布式防火墻模塊1150還基于接收到的防火墻規(guī)則建立搜索結(jié)構(gòu)。使得搜索結(jié)構(gòu)對(duì)于vm(或其vnic中的其對(duì)應(yīng)過濾器)可訪問,因此可以如以上部分i和ii中描述的那樣高效地識(shí)別用于執(zhí)行防火墻操作的相關(guān)規(guī)則。

物理交換元件1120(或受管理的物理交換元件mpse)向物理nic1195和從物理nic1195傳遞網(wǎng)絡(luò)數(shù)據(jù),該物理nic1195與物理網(wǎng)絡(luò)1190對(duì)接。物理交換元件還包括多個(gè)虛擬端口(vport),該物理交換元件將物理nic與vm1111-1114、物理路由元件1130和控制器接口1140通信地互連。在一些實(shí)施例中,每一個(gè)虛擬端口與唯一的l2mac地址相關(guān)聯(lián)。物理交換元件在連接到其虛擬端口的任何兩個(gè)網(wǎng)絡(luò)元件之間執(zhí)行l(wèi)2鏈路層分組轉(zhuǎn)發(fā)。物理交換元件還在連接到其虛擬端口中的任何一個(gè)端口的任何網(wǎng)絡(luò)元件和物理網(wǎng)絡(luò)1190上可達(dá)的l2網(wǎng)絡(luò)元件(例如,在另一個(gè)主機(jī)上運(yùn)行的另一個(gè)vm)之間執(zhí)行l(wèi)2鏈路層分組轉(zhuǎn)發(fā)。

物理路由元件1130(或受管理的物理路由元件mpre)對(duì)從物理交換單元1120上的虛擬端口接收到的數(shù)據(jù)分組執(zhí)行l(wèi)3路由(例如,通過執(zhí)行l(wèi)3ip地址到l2mac地址解析)。在一些實(shí)施例中,物理路由元件1130附接到的虛擬端口是宿端口(sinkport)。每一個(gè)路由數(shù)據(jù)分組然后被發(fā)送回到物理交換單元1120,以根據(jù)解析的l2mac地址轉(zhuǎn)發(fā)到數(shù)據(jù)分組目的地。這個(gè)目的地可以是連接到物理交換單元1120上的虛擬端口的另一個(gè)vm,或者是物理網(wǎng)絡(luò)1190上可達(dá)的l2網(wǎng)絡(luò)元件(例如,在另一個(gè)主機(jī)上運(yùn)行的另一個(gè)vm、物理非虛擬化機(jī)器,等等)。

上行鏈路模塊1170在物理交換元件1120和物理nic1195之間中繼數(shù)據(jù)。在一些實(shí)施例中,上行鏈路模塊1170允許主機(jī)機(jī)器1100用作封裝覆蓋網(wǎng)絡(luò)(諸如,vxlan和vlan)的隧道端點(diǎn)。vxlan是一種覆蓋網(wǎng)絡(luò)封裝協(xié)議。由vxlan封裝創(chuàng)建的覆蓋網(wǎng)絡(luò)有時(shí)被稱為vxlan網(wǎng)絡(luò),或簡稱為vxlan。當(dāng)主機(jī)1100上的vm將數(shù)據(jù)分組(例如,以太網(wǎng)幀)發(fā)送到在相同vxlan網(wǎng)絡(luò)中但是在不同主機(jī)上的另一個(gè)vm時(shí),在將分組發(fā)送到物理網(wǎng)絡(luò)之前,上行鏈路模塊1170使用vxlan網(wǎng)絡(luò)的vni和vtep的網(wǎng)絡(luò)地址封裝數(shù)據(jù)分組。分組通過物理網(wǎng)絡(luò)被隧道化到目的地主機(jī)(即,封裝使得底層分組對(duì)于中間網(wǎng)元是透明的)。上行鏈路模塊1170還對(duì)傳入的vxlan分組進(jìn)行解封裝,并只將原始的內(nèi)部數(shù)據(jù)分組轉(zhuǎn)發(fā)到目的地vm。

在本文檔中,術(shù)語“分組”是指跨網(wǎng)絡(luò)發(fā)送的特定格式的比特集合。本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到的是,術(shù)語分組在本文中可以用于指可以跨網(wǎng)絡(luò)發(fā)送的比特的各種格式化集合,諸如以太網(wǎng)幀、tcp段、udp數(shù)據(jù)報(bào)、ip分組,等等。

貫穿本說明書涉及包括虛擬機(jī)(vm)的計(jì)算和網(wǎng)絡(luò)環(huán)境。但是,虛擬機(jī)只是數(shù)據(jù)計(jì)算節(jié)點(diǎn)(dcn)或數(shù)據(jù)計(jì)算端節(jié)點(diǎn)(也被稱為可尋址節(jié)點(diǎn))的一個(gè)示例。dcn可以包括非虛擬化物理主機(jī)、虛擬機(jī)、在主機(jī)操作系統(tǒng)之上運(yùn)行而不需要管理程序或單獨(dú)的操作系統(tǒng)的容器、以及管理程序內(nèi)核網(wǎng)絡(luò)接口模塊。

在一些實(shí)施例中,vm使用由虛擬化軟件(例如,管理程序、虛擬機(jī)監(jiān)視器,等等)虛擬化的主機(jī)的資源在主機(jī)上與其自己的客戶操作系統(tǒng)一起操作。租戶(即vm的所有者)可以選擇在客戶操作系統(tǒng)之上要操作哪些應(yīng)用。另一方面,一些容器是在主機(jī)操作系統(tǒng)之上運(yùn)行而不需要管理程序或單獨(dú)的客戶操作系統(tǒng)的結(jié)構(gòu)。在一些實(shí)施例中,主機(jī)操作系統(tǒng)使用命名空間將容器彼此隔離,并且因此提供在不同容器內(nèi)操作的不同應(yīng)用組的操作系統(tǒng)級(jí)隔離。這種隔離類似于在虛擬化系統(tǒng)硬件的管理程序虛擬化環(huán)境中提供的vm隔離,并且因此可以被視為隔離在不同容器中操作的不同應(yīng)用組的虛擬化形式。這種容器比vm更輕量。

在一些實(shí)施例中,管理程序內(nèi)核網(wǎng)絡(luò)接口模塊是包括具有管理程序內(nèi)核網(wǎng)絡(luò)接口和接收/傳輸線程的網(wǎng)絡(luò)堆棧的非vmdcn。管理程序內(nèi)核網(wǎng)絡(luò)接口模塊的一個(gè)示例是作為vmware公司的esxitm管理程序的一部分的vmknic模塊。

本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到的是,雖然本說明書涉及vm,但是給出的示例可以是任何類型的dcn,包括物理主機(jī)、vm、非-vm容器和管理程序內(nèi)核網(wǎng)絡(luò)接口模塊。事實(shí)上,在一些實(shí)施例中,示例網(wǎng)絡(luò)可以包括不同類型的dcn的組合。

iv.電子系統(tǒng)

許多上述特征和應(yīng)用被實(shí)現(xiàn)為軟件過程,該軟件過程被指定為記錄在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(也被稱為計(jì)算機(jī)可讀介質(zhì))上的一組指令。當(dāng)這些指令被(一個(gè)或多個(gè))處理單元(例如,一個(gè)或多個(gè)處理器、處理器核心、或其它處理單元)執(zhí)行時(shí),它們使得該(一個(gè)或多個(gè))處理單元執(zhí)行在指令中指示的動(dòng)作。計(jì)算機(jī)可讀介質(zhì)的示例包括,但不限于,cd-rom、閃存驅(qū)動(dòng)器、ram芯片、硬盤驅(qū)動(dòng)器、eprom,等等。計(jì)算機(jī)可讀介質(zhì)不包括無線傳遞或通過有線連接傳遞的載波和電子信號(hào)。

在本說明書中,術(shù)語“軟件”是指包括駐留在只讀存儲(chǔ)器中的固件或者可以被讀入到存儲(chǔ)器中用于被處理器處理的存儲(chǔ)在磁存儲(chǔ)設(shè)備中的應(yīng)用。此外,在一些實(shí)施例中,若干軟件發(fā)明可以被實(shí)現(xiàn)為更大程序的子部分,同時(shí)保持獨(dú)特的軟件發(fā)明。在一些實(shí)施例中,若干軟件發(fā)明也可以被實(shí)現(xiàn)為單獨(dú)的程序。最后,一起實(shí)現(xiàn)本文所描述的軟件發(fā)明的單獨(dú)程序的任意組合在本發(fā)明的范圍之內(nèi)。在一些實(shí)施例中,當(dāng)軟件程序被安裝以在一個(gè)或多個(gè)電子系統(tǒng)上操作時(shí),軟件程序定義執(zhí)行該軟件程序的操作的一個(gè)或多個(gè)特定的機(jī)器實(shí)現(xiàn)。

圖12概念性地圖示實(shí)現(xiàn)本發(fā)明的一些實(shí)施例的電子系統(tǒng)1200。電子系統(tǒng)1200可以用于執(zhí)行任何上述控制、虛擬化或操作系統(tǒng)應(yīng)用。電子系統(tǒng)1200可以是計(jì)算機(jī)(例如,桌面計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、平板計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、大型機(jī)、刀片計(jì)算機(jī),等等)、電話、pda或任何其它種類的電子設(shè)備。這種電子系統(tǒng)包括用于各種其它類型的計(jì)算機(jī)可讀介質(zhì)的各種類型的計(jì)算機(jī)可讀介質(zhì)和接口。電子系統(tǒng)1200包括總線1205、(一個(gè)或多個(gè))處理單元1210、系統(tǒng)存儲(chǔ)器1225、只讀存儲(chǔ)器1230、永久存儲(chǔ)設(shè)備1235、輸入設(shè)備1240、以及輸出設(shè)備1245。

總線1205統(tǒng)一地表示通信連接電子系統(tǒng)1200的眾多內(nèi)部設(shè)備的所有系統(tǒng)、外設(shè)和芯片組總線。例如,總線1205將(一個(gè)或多個(gè))處理單元1210與只讀存儲(chǔ)器1230、系統(tǒng)存儲(chǔ)器1225、永久存儲(chǔ)設(shè)備1235通信地連接。

從這些各種存儲(chǔ)器單元中,(一個(gè)或多個(gè))處理單元1210檢索要執(zhí)行的指令和要處理的數(shù)據(jù),以便執(zhí)行本發(fā)明的過程。(一個(gè)或多個(gè))處理單元在不同實(shí)施例中可以是單個(gè)處理器或多核心處理器。

只讀存儲(chǔ)器(rom)1230存儲(chǔ)由(一個(gè)或多個(gè))處理單元1210和電子系統(tǒng)的其它模塊所需要的靜態(tài)數(shù)據(jù)和指令。另一方面,永久存儲(chǔ)設(shè)備1235是讀與寫(read-and-write)存儲(chǔ)器設(shè)備。這個(gè)設(shè)備是即使當(dāng)電子系統(tǒng)1200關(guān)閉時(shí)也存儲(chǔ)指令和數(shù)據(jù)的非易失性存儲(chǔ)單元。本發(fā)明的一些實(shí)施例使用大容量存儲(chǔ)設(shè)備(諸如,磁盤或光盤及其對(duì)應(yīng)的盤驅(qū)動(dòng)器)作為永久存儲(chǔ)設(shè)備1235。

其它實(shí)施例使用可移除存儲(chǔ)設(shè)備(諸如,軟盤、閃存驅(qū)動(dòng)器等)作為永久存儲(chǔ)設(shè)備。與永久存儲(chǔ)設(shè)備1235類似,系統(tǒng)存儲(chǔ)器1225是讀與寫存儲(chǔ)器設(shè)備。但是,與存儲(chǔ)設(shè)備1235不同,系統(tǒng)存儲(chǔ)器是易失性讀與寫存儲(chǔ)器,諸如隨機(jī)存取存儲(chǔ)器。系統(tǒng)存儲(chǔ)器存儲(chǔ)處理器在運(yùn)行時(shí)需要的一些指令和數(shù)據(jù)。在一些實(shí)施例中,本發(fā)明的過程被存儲(chǔ)在系統(tǒng)存儲(chǔ)器1225、永久存儲(chǔ)設(shè)備1235、和/或只讀存儲(chǔ)器1230中。從這些各種存儲(chǔ)器單元中,(一個(gè)或多個(gè))處理單元1210檢索要執(zhí)行的指令和要處理的數(shù)據(jù),以便執(zhí)行一些實(shí)施例的過程。

總線1205還連接到輸入設(shè)備和輸出設(shè)備1240和1245。輸入設(shè)備使得用戶能夠?qū)⑿畔⒑瓦x擇命令傳遞到電子系統(tǒng)。輸入設(shè)備1240包括字母數(shù)字鍵盤和定點(diǎn)設(shè)備(也稱為“光標(biāo)控制設(shè)備”)。輸出設(shè)備1245顯示由電子系統(tǒng)生成的圖像。輸出設(shè)備包括打印機(jī)和顯示設(shè)備,諸如陰極射線管(crt)或液晶顯示器(lcd)。一些實(shí)施例包括用作輸入設(shè)備和輸出設(shè)備兩者的的設(shè)備,諸如觸摸屏。

最后,如在圖12中所示,總線1205還通過網(wǎng)絡(luò)適配器(未示出)將電子系統(tǒng)1200耦合到網(wǎng)絡(luò)1265。以這種方式,計(jì)算機(jī)可以是計(jì)算機(jī)的網(wǎng)絡(luò)(諸如,局域網(wǎng)(“l(fā)an”)、廣域網(wǎng)(“wan”)、或內(nèi)聯(lián)網(wǎng)、或網(wǎng)絡(luò)的網(wǎng)絡(luò),諸如互聯(lián)網(wǎng))的一部分。電子系統(tǒng)1200的任何或所有組件可以與本發(fā)明結(jié)合使用。

一些實(shí)施例包括電子組件,諸如微處理器、在機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì)(可替代地稱為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、機(jī)器可讀介質(zhì)或機(jī)器可讀存儲(chǔ)介質(zhì))中存儲(chǔ)計(jì)算機(jī)程序指令的存儲(chǔ)設(shè)備和存儲(chǔ)器。這種計(jì)算機(jī)可讀介質(zhì)的一些示例包括ram、rom、只讀壓縮盤(cd-rom)、可記錄壓縮盤(cd-r)、可重寫壓縮盤(cd-rw)、只讀數(shù)字多功能盤(例如,dvd-rom,雙層dvd-rom)、各種可記錄/可重寫dvd(例如,dvd-ram、dvd-rw、dvd+rw等)、閃存存儲(chǔ)器(例如,sd卡、小型sd卡、微型sd卡等)、磁和/或固態(tài)硬盤驅(qū)動(dòng)器、只讀和可記錄盤、超密度光盤、任何其它光或磁介質(zhì)、以及軟盤。計(jì)算機(jī)可讀介質(zhì)可以存儲(chǔ)可由至少一個(gè)處理單元執(zhí)行的并且包括用于執(zhí)行各種操作的指令集的計(jì)算機(jī)程序。計(jì)算機(jī)程序或計(jì)算機(jī)代碼的示例包括機(jī)器代碼(諸如由編譯器產(chǎn)生的),以及包括由計(jì)算機(jī)、電子組件、或使用解釋器的微處理器執(zhí)行的更高級(jí)代碼的文件。

雖然以上討論主要涉及執(zhí)行軟件的微處理器或多核處理器,但是一些實(shí)施例由一個(gè)或多個(gè)集成電路(諸如,專用集成電路(asic)或現(xiàn)場(chǎng)可編程門陣列(fpga))來執(zhí)行。在一些實(shí)施例中,這種集成電路執(zhí)行存儲(chǔ)在電路自身上的指令。

如在本說明書中所使用的,術(shù)語“計(jì)算機(jī)”、“服務(wù)器”、“處理器”以及“存儲(chǔ)器”都是指電子或其它技術(shù)設(shè)備。這些術(shù)語不包括人或人群。出于本說明書的目的,術(shù)語顯示或正在顯示意味著在電子設(shè)備上顯示。如本說明書中所使用的,術(shù)語“計(jì)算機(jī)可讀介質(zhì)”、“多個(gè)計(jì)算機(jī)可讀介質(zhì)”和“機(jī)器可讀介質(zhì)”被完全限制為以由計(jì)算機(jī)可讀的形式存儲(chǔ)信息的、有形的、物理的對(duì)象。這些術(shù)語不包括任何無線信號(hào)、有線下載信號(hào)、以及任何其它短暫信號(hào)。

雖然已經(jīng)參考許多特定細(xì)節(jié)描述本發(fā)明,但是本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到的是,在不脫離本發(fā)明的精神的情況下,可以以其它特定形式體現(xiàn)本發(fā)明。此外,多個(gè)圖(包括圖5、9和10)概念性地圖示過程??梢圆灰耘c所示出和描述的確切順序執(zhí)行這些過程的特定操作??梢圆辉谝幌盗羞B續(xù)的操作中執(zhí)行特定操作,并且不同的特定操作可以在不同的實(shí)施例中執(zhí)行特定操作。此外,可以使用數(shù)個(gè)子過程來實(shí)現(xiàn),或者作為較大的宏過程的一部分來實(shí)現(xiàn)過程。因此,本領(lǐng)域普通技術(shù)人員將理解的是,本發(fā)明不受上述說明性細(xì)節(jié)的限制,而是由所附權(quán)利要求來限定。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1