本發(fā)明涉及通信技術(shù)領域,特別是涉及一種泛洪抑制方法和一種泛洪抑制裝置。
背景技術(shù):
由于可擴展虛擬局域網(wǎng)絡(Virtual eXtensible LAN,VXLAN)可以按照需要進行虛擬網(wǎng)絡部署,而無需對物理網(wǎng)絡進行重新配置;還可以支持多租戶環(huán)境下的大規(guī)模網(wǎng)絡部署,因此,VXLAN網(wǎng)絡被廣泛應用。
VXLAN網(wǎng)絡中的虛擬機(Virtual Machine,VM)向其他VM發(fā)送數(shù)據(jù)報文時,會向與其連接的隧道端點設備(VXLAN Tunnel End Point,VTEP)發(fā)送請求目的MAC的地址解析協(xié)議(Address Resolution Protocol,ARP)報文,VTEP在接收到ARP請求報文后,會向VXLAN網(wǎng)絡中的其他VTEP或本地站點廣播該ARP請求報文;為了避免廣播發(fā)送的ARP請求報文占用核心網(wǎng)絡帶寬,現(xiàn)有技術(shù)中,VTEP從本地站點或VXLAN隧道接收到ARP請求和ARP應答報文后,根據(jù)該報文在本地建立ARP泛洪抑制表項。后續(xù)當VTEP收到本站點內(nèi)VM請求其它VM的MAC地址的ARP請求時,優(yōu)先根據(jù)ARP泛洪抑制表項進行代答。如果沒有對應的ARP泛洪抑制表項,則將ARP請求泛洪到核心網(wǎng)。ARP泛洪抑制功能可以大大減少ARP泛洪的次數(shù)。
但當VM使用某個偽造IP地址作為源IP構(gòu)造發(fā)送ARP報文時,由于VTEP無法區(qū)分該偽造的IP地址是不是VM自身的IP地址,因此,VTEP同樣也會為該偽造的源IP地址建立相應的ARP泛洪抑制表項,從而造成目的IP為此地址的數(shù)據(jù)報文被錯誤地轉(zhuǎn)發(fā)到該VM。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例所要解決的技術(shù)問題是提供一種泛洪抑制方法,以防止VM通過偽造源IP發(fā)送ARP使VTEP建立錯誤的ARP泛洪抑制表項,造成流量被錯誤的轉(zhuǎn)發(fā)。
相應的,本發(fā)明實施例還提供了一種泛洪抑制裝置,用以保證上述方法的實現(xiàn)及應用。
為了解決上述問題,本發(fā)明實施例公開了一種泛洪抑制方法,應用于可擴展虛擬局域網(wǎng)絡VXLAN中,所述VXLAN網(wǎng)絡包括隧道節(jié)點設備VTEP和虛擬機VM,所述的方法具體包括:VTEP接收VM發(fā)送的地址解析協(xié)議ARP請求報文并解析;依據(jù)所述解析后的ARP請求報文,向所述VM單播免費ARP報文;當接收到所述VM針對所述免費ARP報文的應答時,建立第一ARP泛洪抑制表項;將所述ARP請求報文封裝為VXLAN封裝的ARP請求報文,發(fā)送到所述VXLAN網(wǎng)絡內(nèi)的其他VTEP;其中,所述第一ARP泛洪抑制表項包括所述ARP請求報文對應的源IP地址和源MAC地址。
本發(fā)明實施例還公開了一種泛洪抑制裝置,應用于可擴展虛擬局域網(wǎng)絡VXLAN中的VTEP上,所述的裝置具體包括:報文接收模塊,用于調(diào)用VTEP接收VM發(fā)送的地址解析協(xié)議ARP請求報文并解析;報文單播模塊,用于依據(jù)所述解析后的ARP請求報文,向所述VM單播免費ARP報文;第一表項建立模塊,用于當接收到所述VM針對所述免費ARP報文的應答時,建立第一ARP泛洪抑制表項;以及將所述ARP請求報文封裝為VXLAN封裝的ARP請求報文,發(fā)送到所述VXLAN網(wǎng)絡內(nèi)的其他VTEP;其中,所述第一ARP泛洪抑制表項包括所述ARP請求報文對應的源IP地址和源MAC地址。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例包括以下優(yōu)點:
本發(fā)明實施例所述的泛洪抑制方法,應用于VXLAN網(wǎng)絡中,所述VXLAN網(wǎng)絡包括VTEP和VM,在VTEP接收到VM發(fā)送的ARP請求報文后,即向所述VM單播免費ARP報文,當接收到VM針對該單播的ARP報文的應答時,再建立一個與源IP地址對應的表項;從而,使得VTEP可以依據(jù)VM針對單播的ARP報文進行應答,建立源IP地址對應的表項;從而保證了VTEP建立ARP泛洪抑制表項的正確性,防止了由于建立錯誤的ARP泛洪抑制表項而造成的流量被錯誤的轉(zhuǎn)發(fā)。
附圖說明
圖1是本發(fā)明的一種泛洪抑制方法實施例的步驟流程圖;
圖2是是本發(fā)明的VXLAN網(wǎng)絡中VTEP組網(wǎng)示意圖;
圖3是本發(fā)明的另一種泛洪抑制方法實施例的步驟流程圖;
圖4是本發(fā)明一種泛洪抑制裝置實施例的結(jié)構(gòu)框圖;
圖5是本發(fā)明另一種泛洪抑制裝置實施例的結(jié)構(gòu)框圖。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。
本發(fā)明實施例的核心構(gòu)思之一在于,提出一種泛洪抑制方法和泛洪抑制裝置,以防止VM通過偽造源IP發(fā)送ARP使VTEP建立錯誤的ARP泛洪抑制表項,造成流量被錯誤的轉(zhuǎn)發(fā)。其中,所述的泛洪抑制方法應用于VXLAN網(wǎng)絡中,所述VXLAN網(wǎng)絡包括VTEP和VM,具體的,在VTEP接收到VM發(fā)送的ARP請求報文后,即向所述VM單播免費的ARP報文,當接收到VM針對該單播的ARP報文的應答時,再在其一類ARP泛洪抑制表中建立一個與源IP地址對應的表項;從而,使得VTEP可以依據(jù)VM針對單播的ARP報文進行應答,在一類ARP泛洪抑制表中建立源IP地址對應的表項;從而保證了VTEP建立ARP泛洪抑制表項的正確性,防止了由于建立錯誤的ARP泛洪抑制表項而造成的流量被錯誤的轉(zhuǎn)發(fā)。
參照圖1,示出了本發(fā)明的一種泛洪抑制方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟102、VTEP接收VM發(fā)送的地址解析協(xié)議ARP請求報文并解析。
步驟104、依據(jù)所述解析后的ARP請求報文,向所述VM單播免費ARP報文。
步驟106、當接收到所述VM針對所述免費ARP報文的應答時,建立第一ARP泛洪抑制表項;其中,所述第一ARP泛洪抑制表項包括所述ARP請求報文對應的源IP地址和源MAC地址。
步驟108、將所述ARP請求報文封裝為VXLAN封裝的ARP請求報文,發(fā)送到所述VXLAN網(wǎng)絡內(nèi)的其他VTEP。
本發(fā)明實施例提出的泛洪抑制方法,是用于VXLAN網(wǎng)絡中的VTEP在接收VM發(fā)送的ARP請求報文時,建立其一類ARP泛洪抑制表中的泛洪抑制表項的方法,其中,所述的一類ARP泛洪抑制表是以ARP請求報文的源IP地址建立的,其中的每個表項均包括ARP請求報文的源IP地址和源MAC地址。
由于在VM向目的IP地址發(fā)送流量時,VM需要知道目的IP對應的MAC地址,即目的VM的MAC地址;因此,VM會向VXLAN網(wǎng)絡中的各VTEP廣播一個ARP請求報文,以獲取該目的IP地址對應的目的MAC地址。具體的,所述VM在向目的IP地址發(fā)送流量之前,向與該VM連接的VTEP發(fā)送一個ARP請求報文,再由該VTEP將所述ARP請求報文泛洪至VXLAN網(wǎng)絡中的其他的VTEP上,然后再由其他各VTEP將所述ARP請求報文下發(fā)至各自的下掛VM中,以找到所述ARP請求報文中目的IP地址對應的目的VM,從而可以根據(jù)VM的應答獲取到目的MAC地址。VETP接收到VM發(fā)送的ARP請求報文后,對所述ARP請求報文進行解析,得到ARP請求報文數(shù)據(jù);所述ARP請求報文數(shù)據(jù)中包括發(fā)送ARP請求報文設備的IP地址和MAC地址,即源IP地址和源MAC地址,以及目的IP地址;VTEP可以根據(jù)所述源IP地址和源MAC地址,在其一類ARP泛洪抑制表中建立與源IP地址對應的第一ARP泛洪抑制表項。
由于VM可能使用偽造的IP地址發(fā)送所述ARP請求報文,使得VTEP上建立的第一ARP泛洪抑制表項是錯誤的,從而導致了流量的錯誤轉(zhuǎn)發(fā),因此,在VTEP在建立第一ARP泛洪抑制表項之前,可以先判斷所述ARP請求報文數(shù)據(jù)中的源IP地址,是否是發(fā)送所述ARP請求報文的VM的真實IP地址;當所述源IP地址是所述VM的真實IP地址時,VTEP才執(zhí)行建立第一ARP泛洪抑制表項的操作;當所述源IP地址不是所述VM的真實IP地址時,VTEP則無需建立第一ARP泛洪抑制表項。具體的,由于VM接收到所述免費ARP報文后,對所述免費ARP報文進行解析;當所述免費ARP報文中的目的IP地址和目的MAC地址,分別與VM的IP地址和MAC地址都相同時,VM將返回VTEP一條ARP應答報文。而當所述免費ARP報文中的目的IP地址與VM的IP地址,或者,免費ARP報文中目的MAC地址與VM的MAC不相同時,則不會向所述VETP返回應答。因此,判斷ARP請求報文數(shù)據(jù)中的源IP地址是否是VM真實的IP地址的方法是,VTEP向VM單播一條免費ARP報文,其中,生成免費ARP報文的方式是,從解析后的ARP請求報文中獲取源IP地址和源MAC地址;將所述源IP地址和源MAC地址,分別作為免費ARP報文的目的IP地址和目的MAC地址。當VTEP接收到VM針對所述免費ARP報文的應答時,則可以確定VM真實的IP地址是所述ARP請求報文數(shù)據(jù)中的源IP地址;此時,VTEP可以在所述一類ARP泛洪抑制表中,以所述ARP報文數(shù)據(jù)中的源IP地址為依據(jù),建立包含源IP地址和源MAC地址的第一ARP泛洪抑制表項;因此,所述第一ARP泛洪抑制表項為正確的ARP泛洪抑制表項。在建立所述第一ARP泛洪抑制表項之后,將所述ARP請求報文為VXLAN封裝的ARP請求報文,再將所述ARP請求報文發(fā)送至VXLAN網(wǎng)絡內(nèi)的其他的VTEP上,從而其他的VTEP上建立的第一ARP泛洪抑制表項也是正確的。而當VTEP沒有接收到VM針對所述免費ARP報文的應答時,則可以確定所述ARP請求報文數(shù)據(jù)中的源IP地址是VM偽造的地址;此時,VTEP無需建立所述第一ARP泛洪抑制表項,為了使得其他的VTEP上同樣不建立所述第一ARP泛洪抑制表項,VTEP在沒接收到VM的應答后,除了不建立所述第一ARP泛洪抑制表項外,也不向其他的VTEP泛洪所述ARP請求報文,以防止其他的VTEP上建立錯誤的第一ARP泛洪抑制表項。
此外,VTEP在未接收到VM針對所述免費ARP報文的應答時,除了不建立所述第一ARP泛洪抑制表項外,還需判斷在預設時間內(nèi)接收到的VM發(fā)送的所述ARP請求報文的數(shù)量是否超過閾值,其中,預設時間和閾值可以根據(jù)實際情況設置,如預設時間為5s,閾值為5個;若未超過閾值,則向所述VTEP下掛的其他VM發(fā)送所述ARP請求報文,而不向VXLAN網(wǎng)絡內(nèi)其他的VTEP發(fā)送所述ARP請求報文;若超過閾值,則VTEP不向其他任何設備泛洪所述ARP請求報文;且在預設時間如30s內(nèi)不處理所述VM發(fā)送的ARP請求報文,以防止ARP的惡意攻擊。
為了更清楚的說明本發(fā)明的實施例,可以結(jié)合參照圖2,對所述泛洪抑制方法的具體步驟進行詳細的說明。圖2示出了本發(fā)明的VXLAN網(wǎng)絡中VTEP組網(wǎng)示意圖,圖2中,VTEP1、VTEP2和VTEP3通過核心網(wǎng)絡互聯(lián),VTEP1、VTEP2和VTEP3下掛的虛擬設備分別為VM1、VM2和VM3,VM1、VM2和VM3屬于同一個VXLAN,其中,VTEP1的IP地址為IP1、MAC地址為MAC1,VTEP2的IP地址為IP2、MAC地址為MAC2,VTEP3的IP地址為IP3、MAC地址為MAC3。以下以VM1為例,對VM不使用偽造IP地址和使用偽造IP地址兩種情況下,發(fā)送ARP請求報文后VTEP1的處理方法進行說明。其中,在VM不使用偽造IP地址的情況下,VTEP對接收的所述ARP請求報文的處理方法是:VM1使用自身IP地址IP1,以IP2為目的IP地址,向VTEP1發(fā)送ARP請求報文;VTEP1接收到所述ARP請求報文并解析后,以IP1、MAC1分別為免費ARP報文得目的IP地址和目的MAC地址,向VM1單播所述免費單播報文;VM1會向VTEP1回復應答,VTEP1接收到VM1的應答后,建立IP1、MAC1對應的第一ARP泛洪抑制表項,并將所述ARP請求報文泛洪至VTEP2和VTPE3上,VTEP2和VTPE3均建立IP1、MAC1對應的第一ARP泛洪抑制表項。在VM使用偽造IP地址的情況下,VTEP對接收的所述ARP請求報文的處理方法是:VM1使用偽造IP地址IP3,以IP2為目的IP地址,向VTEP1發(fā)送ARP請求報文;VTEP1接收到所述ARP請求報文并解析后,以IP3、MAC1分別為免費ARP報文的目的IP地址和目的MAC地址,向VM1單播所述免費單播報文;由于IP3不是VM1的IP地址,因此,VM1不會向VTEP1回復應答,使得VTEP1、VTEP2和VTEP3均不會建立IP3、MAC1對應的ARP泛洪抑制表項,從而避免了VM2向IP3發(fā)送流量時,不會根據(jù)IP3、MAC1對應的ARP泛洪抑制表項,將流量轉(zhuǎn)發(fā)至VM1上。
本發(fā)明實施例所述的泛洪抑制方法,應用于VXLAN網(wǎng)絡中,所述VXLAN網(wǎng)絡包括VTEP和VM,在VTEP接收到VM發(fā)送的ARP請求報文后,即向所述VM單播免費ARP報文,當接收到VM針對該單播的ARP報文的應答時,再建立一個與源IP地址對應的表項;從而,使得VTEP可以依據(jù)VM針對單播的ARP報文進行應答,建立源IP地址對應的表項;從而保證了VTEP建立ARP泛洪抑制表項的正確性,防止了由于建立錯誤的ARP泛洪抑制表項而造成的流量被錯誤的轉(zhuǎn)發(fā)。
在所述VTEP泛洪所述ARP請求報文后,當所述ARP請求報文中目的IP對應的目的VM在線時,目的VM會回復對應的應答報文;當VTEP接收所述應答報文后,在其一類ARP泛洪抑制表中,建立應答報文的源IP地址對應的表項,包括所述應答報文的源IP地址和源MAC地址,所述表項中的源IP地址即為所述ARP請求報文中的目的地址;此時,VTEP會告知對應的VM已經(jīng)獲取到所述ARP請求報文請求的目的MAC地址,則VM不再向該VTEP發(fā)送所述ARP請求報文。但當該目的VM不在線時,例如,目的VM不存在或出現(xiàn)故障時,VTEP無法收到對應的應答報文,使得VTEP的一類ARP泛洪抑制表中,無法建立ARP請求報文中目的IP地址對應的ARP泛洪抑制表項;此時VTEP不會向?qū)腣M發(fā)送消息;從而,VM會多次向VTEP發(fā)送所述ARP請求報文,而VTEP則會將該ARP請求報文泛洪發(fā)往其他所有的VTEP,占用核心網(wǎng)絡帶寬并且增加其他VETP的處理負擔。因此,本發(fā)明實施例,提出一種防止由于目的VM不在線時,VTEP向網(wǎng)絡中所有的VTEP泛洪所述ARP請求報文,而造成的占用核心網(wǎng)絡帶寬并且增加其他VETP的處理負擔的方法。參照圖3,示出了本發(fā)明另一種泛洪抑制方法實施例的步驟流程圖,具體步驟如下:
步驟302、VTEP接收VM發(fā)送的地址解析協(xié)議ARP請求報文并解析。
步驟304、依據(jù)所述解析后的ARP請求報文,向所述VM單播ARP報文。
步驟306、當接收到所述VM針對所述免費ARP報文的應答時,建立第一ARP泛洪抑制表項。
步驟302-步驟306與上述步驟102-步驟106類似,在此不再贅述。
步驟308、建立第二ARP泛洪抑制表項,并將所述第二ARP泛洪抑制表項標記為未激活狀態(tài),其中,所述第二ARP泛洪抑制表項與所述ARP請求報文中目的IP地址對應。
VTEP在接收VM的針對所述免費ARP報文的應答時,除了在一類ARP泛洪抑制表中建立第一ARP泛洪抑制表項外,還可以在二類ARP泛洪抑制表中建立第二ARP泛洪抑制表項,其中,所述二類ARP泛洪抑制表是依據(jù)ARP請求報文的目的IP地址建立的,其中的每個表項均包括目的IP地址,和所述目的IP地址對應的隧道口,每個表項對應有兩個狀態(tài):未激活狀態(tài)和激活狀態(tài);此時,所述第二ARP泛洪抑制表項的隧道口對應的內(nèi)容為空;并將所述第二ARP泛洪抑制表項標記為未激活狀態(tài),即不將所述第二ARP泛洪抑制表項下發(fā)硬件,接收的ARP請求報文不按照所述第二ARP泛洪抑制表項進行轉(zhuǎn)發(fā)。
步驟310、將所述ARP請求報文封裝為VXLAN封裝的ARP請求報文,發(fā)送到所述VXLAN網(wǎng)絡內(nèi)的其他VTEP。
VTEP在建立上述第一ARP泛洪抑制表項和第二ARP泛洪抑制表項后,將所述ARP請求報文封裝為VXLAN封裝的ARP請求報文,再將ARP請求報文發(fā)送至VXLAN網(wǎng)絡中的其他VTEP上,以獲取所述ARP請求報文中目的IP地址對應的目的MAC地址。當所述目的IP對應的VM在線時,則VTEP可以收到所述目的VM的應答;而當所述目的IP對應的VM不在線時,則VTEP無法收到所述目的VM的應答。
步驟312、判斷在第一預設時間內(nèi)是否再次接收到所述ARP請求報文;若是,則執(zhí)行步驟314;若否,則執(zhí)行步驟322。
VTEP未收到所述目的VM的應答后,VM可能不再向VTEP發(fā)送的ARP請求報文,也可能向VTEP發(fā)送多次ARP請求報文;對于兩種不同的情況,VTEP的處理方式是不同的,因此,當VTEP在泛洪所述ARP請求報文后,需要判斷在第一預設時間內(nèi)是否再次接收到所述ARP請求報文,當在第一預設時間內(nèi)再次接收到所述ARP請求報文時,執(zhí)行步驟314-320;而當在第一預設時間內(nèi)沒有再次接收到所述ARP請求報文時,執(zhí)行步驟322。其中,第一預設時間是根據(jù)實際VTEP組網(wǎng)、網(wǎng)絡狀況等等因素確定的。
步驟314、依據(jù)所有的ARP泛洪抑制表,計算目標隧道口。
當在第一預設時間內(nèi)再次接收到所述ARP請求報文時,為了不讓VTEP將所述ARP請求報文,發(fā)送至VXLAN網(wǎng)絡中的所有VTEP;可以計算出一個或幾個目標隧道口,通過所述目標隧道口,將所述ARP請求報文發(fā)送至VXLAN網(wǎng)絡中的一個或幾個VTEP上,以減少占用核心網(wǎng)絡帶寬,和減少其他VETP的處理負擔;其中,所述目標隧道口是VTEP上可能將所述ARP報文,發(fā)送至目標IP地址對應目標VM的隧道口。具體的計算目標隧道口的方法是,由于此時不在線的目的IP地址對應的目的VM,是某個VTEP下掛的VM中的其中一個,因此,可以先依據(jù)VTEP上所有的ARP泛洪抑制表項,計算出VXLAN網(wǎng)絡中各遠端VTEP下所有下掛的VM的最小網(wǎng)段。其中,所述所有的ARP泛洪抑制表項是VTEP上一類ARP泛洪抑制表中的各ARP泛洪抑制表項。將接收到VM發(fā)送的所述ARP請求報文的VTEP,確定為本地VTEP;將VXLAN網(wǎng)絡中除本地VTEP外的其他VTEP確定為遠端VTEP。然后再判斷計算的各最小網(wǎng)段中,是否存在包含所述ARP請求報文中目的IP地址對應的最小網(wǎng)段;若存在包含所述目的IP地址的最小網(wǎng)段,則將該最小網(wǎng)段對應的遠端VTEP確定為目標VTEP;由于可能存在多個最小網(wǎng)段包含目標IP地址,因此,目標VTEP也可能存在多個。本地VTEP與各遠端VTEP之間,均存在一條VXLAN隧道,每條VXLAN隧道在本地VTEP上都存在一個隧道口;在確定目標VTEP后,將本地VTEP與目標VTEP之間的VXLAN隧道對應的隧道口,確定為目標隧道口。
步驟316、將所述目標隧道口添加至所述第二ARP泛洪抑制表項中,并將所述第二ARP泛洪抑制表項標記為激活狀態(tài)。
步驟318、通過所述第二ARP泛洪抑制表項中的目標隧道口轉(zhuǎn)發(fā)所述ARP請求報文。
在計算出目標隧道口后,即可以將所述目標隧道口添加到VTEP的二類ARP泛洪抑制表中,具體的,將計算出的所有的目標隧道口,添加到所述第二ARP泛洪抑制表項中,然后將所述第二ARP泛洪抑制表項標記為激活狀態(tài),即將所述第二ARP泛洪抑制表項標下發(fā)硬件,所述第二ARP泛洪抑制表項生效;VTEP將本次接收到的所述ARP請求通過所述第二ARP泛洪抑制表項中的目標隧道口,轉(zhuǎn)發(fā)至對應的遠端VTEP上。此外,當所述第二ARP泛洪抑制表項為激活狀態(tài)時,VTEP對在第二次后接收到的所有的所述ARP請求報文,按照第二ARP泛洪抑制表項中的目標隧道口轉(zhuǎn)發(fā)。
步驟320、當?shù)诙A設時間內(nèi)未接收到所述ARP請求報文時,刪除所激活狀態(tài)的第二ARP泛洪抑制表項。
由于VM發(fā)送所述ARP請求報文至VTEP一段時間后,可能不再向VTEP發(fā)送所述ARP請求報文,因此,VTEP在第二預設時間內(nèi)未接收到所述ARP請求報文時,由于VETP無需再向遠端VTEP泛洪所述ARP請求報文,從而也不會造成占用網(wǎng)絡帶寬并且增加其他VETP的處理負擔;因此,可以將所述激活狀態(tài)的第二ARP泛洪抑制表項刪除;具體的,可以先將所述第二ARP泛洪抑制表項的狀態(tài)更新為未激活狀態(tài),然后在一定時間內(nèi)如5秒,若仍未接收到所述ARP請求報文,則將未激活狀態(tài)的第二ARP泛洪抑制表項刪除;其中,所述第二預設時間是從VTEP未接收到VM的ARP請求報文開始后的一段時間,可以根據(jù)時間情況設置如30分鐘。
步驟322、刪除未激活狀態(tài)的第二ARP泛洪抑制表項。
當在第一預設時間內(nèi)未再次接收到所述ARP請求報文時,即VM不再向VTEP發(fā)送所述ARP請求報文,此時,VTEP的二類ARP泛洪抑制表中建立的第二ARP泛洪抑制表項是無用的,因此,可以刪除所述二類ARP泛洪抑制表中未激活狀態(tài)的第二ARP泛洪抑制表項。
步驟324、當所述目的IP地址對應的VM上線時,建立第三ARP泛洪抑制表項,所述第三ARP泛洪抑制表項包括所述目的IP地址和所述目的IP地址對應的MAC地址。
步驟326、刪除第二ARP泛洪抑制表項。
當所述目的IP地址對應的目的VM上線時,目的VM會向VXLAN網(wǎng)絡中的VTEP廣播一條ARP報文,以告知各VTEP目的VM的IP地址和MAC地址;各VTEP在接收到所述廣播的ARP報文后,在其一類ARP泛洪抑制表中,以該廣播的ARP報文的源IP地址和源MAC地址為依據(jù),建立第三ARP泛洪抑制表項,所述第三ARP泛洪抑制表項中包括廣播的ARP報文的源IP地址和源MAC地址。由于建立了VM發(fā)送的ARP請求報文中目的IP地址對應的第三ARP泛洪抑制表項,因此,無論第二ARP泛洪抑制表項是激活狀態(tài)還是未激活狀態(tài),都將第二ARP泛洪抑制表項刪除。
本發(fā)明實施例在VTEP接收到VM的應答后,在二類ARP泛洪抑制表項中建立ARP請求報文的目標IP地址對應的第二ARP泛洪抑制表項,并標記未為激活狀態(tài);當在第一預設時間內(nèi)未再次接收到VM的ARP請求報文時,則刪除該第二ARP泛洪抑制表項,以便于VTEP管理其ARP泛洪抑制表;當在第一預設時間內(nèi)再次接收到VM的ARP請求報文時,則計算對應的目標隧道口,并標記所述第二ARP泛洪抑制表項為激活狀態(tài),從而使得VTEP在接收到VM多次發(fā)送的ARP請求報文時,通過目標隧道口將所述ARP請求報文,轉(zhuǎn)發(fā)至對應的一個或幾個遠端VTEP上,使得VTEP在多次泛洪ARP請求報文時,不占用核心網(wǎng)絡帶寬,以及不增加其他VETP的處理負擔。
在上述實施例的基礎上,本實施還提供了一種泛洪抑制裝置,以保證上述方法的實施。
參照圖4,示出了本發(fā)明一種泛洪抑制裝置實施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:報文接收模塊402、報文單播模塊404和第一表項建立模塊406,其中,
報文接收模塊402,用于調(diào)用VTEP接收VM發(fā)送的地址解析協(xié)議ARP請求報文并解析。
報文單播模塊404,用于依據(jù)所述解析后的ARP請求報文,向所述VM單播免費ARP報文。
第一表項建立模塊406,用于當接收到所述VM針對所述免費ARP報文的應答時,建立第一ARP泛洪抑制表項;以及將所述ARP請求報文封裝為VXLAN封裝的ARP請求報文,發(fā)送到所述VXLAN網(wǎng)絡內(nèi)的其他VTEP;其中,所述第一ARP泛洪抑制表項包括所述ARP請求報文對應的源IP地址和源MAC地址。
在上述實施例的基礎上,對本發(fā)明實施例還包括的模塊,以及所述模塊包括的子模塊進行說明。參照圖5,示出了本發(fā)明一種泛洪抑制裝置實施例的結(jié)構(gòu)框圖,所述的裝置包括:報文接收模塊502、報文單播模塊504和第一表項建立模塊506,上述已經(jīng)論述,在此不再贅述,所述的裝置還包括:第二表項建立模塊508、目的隧道口計算模塊510、信息添加模塊512、報文轉(zhuǎn)發(fā)模塊514、第二表項刪除模塊516和第三表項建立模塊518,其中,
第二表項建立模508,用于建立第二ARP泛洪抑制表項,并將所述第二ARP泛洪抑制表項標記為未激活狀態(tài),其中,所述第二ARP泛洪抑制表項與所述ARP請求報文中目的IP地址對應。
目的隧道口計算模塊510,用于當在第一預設時間內(nèi)再次接收到所述ARP請求報文時,依據(jù)所有的ARP泛洪抑制表項,計算目標隧道口。
信息添加模塊512,用于將所述目標隧道口添加至所述第二ARP泛洪抑制表項中,并將所述第二ARP泛洪抑制表項標記為激活狀態(tài)。
報文轉(zhuǎn)發(fā)模塊514,用于通過所述第二ARP泛洪抑制表項中的目標隧道口轉(zhuǎn)發(fā)所述ARP請求報文。
第二表項刪除模塊516,用于當在第一預設時間內(nèi)未再次接收到所述ARP請求報文時,刪除未激活狀態(tài)的第二ARP泛洪抑制表項。
第三表項建立模塊518,用于當所述目的IP地址對應的VM上線時,在建立第三ARP泛洪抑制表項,所述第三ARP泛洪抑制表項包括所述目的IP地址和所述目的IP地址對應的MAC地址。
所述第二表項刪除模塊516,還用于當?shù)诙A設時間內(nèi)未接收到所述ARP請求報文時,刪除激活狀態(tài)的第二ARP泛洪抑制表項。
所述第二表項刪除模塊516,還用于刪除所述第二ARP泛洪抑制表項。
本發(fā)明實施例的所述報文單播模塊504包括:地址獲取子模塊5042、地址確定子模塊5044和報文發(fā)送子模塊5046,其中,
地址獲取子模塊5042,用于從解析后的ARP請求報文中獲取源IP地址和源MAC地址。
地址確定子模塊5044,用于將所述源IP地址和源MAC地址,分別作為所述免費ARP報文的目的IP地址和目的MAC地址。
報文發(fā)送子模塊5046,用于向所述VM單播所述免費ARP報文。
本發(fā)明實施例的目的隧道口計算模塊510包括:最小網(wǎng)段計算子模塊5102、目標VTEP確定子模塊5104和目標隧道口確定子模塊5106,其中,
最小網(wǎng)段計算子模塊5102,用于依據(jù)所有的ARP泛洪抑制表項,計算各遠端VTEP下掛所有的VM的最小網(wǎng)段。
目標VTEP確定子模塊5104,用于將包含所述目的IP地址的最小網(wǎng)段對應的遠端VTEP確定為目標VTEP;
目標隧道口確定子模塊5106,用于將本地VTEP中與目標VTEP對應的隧道口確定為目標隧道口;其中,所述本地VTEP為接收VM發(fā)送的所述ARP請求報文的VTEP,所述遠端VTEP為VXLAN網(wǎng)絡中除本地VTEP外的所有VTEP。
本發(fā)明實施例所述的泛洪抑制方法,應用于VXLAN網(wǎng)絡中,所述VXLAN網(wǎng)絡包括VTEP和VM,在VTEP接收到VM發(fā)送的ARP請求報文后,即向所述VM單播免費ARP報文,當接收到VM針對該單播的ARP報文的應答時,再建立一個與源IP地址對應的表項;從而,使得VTEP可以依據(jù)VM針對單播的ARP報文進行應答,建立源IP地址對應的表項;從而保證了VTEP建立ARP泛洪抑制表項的正確性,防止了由于建立錯誤的ARP泛洪抑制表項而造成的流量被錯誤的轉(zhuǎn)發(fā)。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內(nèi)的技術(shù)人員應明白,本發(fā)明實施例的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本發(fā)明實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明實施例是參照根據(jù)本發(fā)明實施例的方法、終端設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理終端設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理終端設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理終端設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理終端設備上,使得在計算機或其他可編程終端設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程終端設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明實施例的優(yōu)選實施例,但本領域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種泛洪抑制方法和一種泛洪抑制裝置,進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。