本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種IP地址沖突處理方法及裝置。
背景技術(shù):
在分布式VXLAN(Virtual eXtensible Local Area Network,虛擬可擴(kuò)展局域網(wǎng))IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)網(wǎng)關(guān)組網(wǎng)方案中,每臺(tái)VTEP(VXLAN Tunneling End Point,VXLAN隧道終端)設(shè)備都可以作為VXLAN IP網(wǎng)關(guān),對(duì)本地站點(diǎn)的流量進(jìn)行三層轉(zhuǎn)發(fā),很好地緩解了網(wǎng)關(guān)的壓力。
在分布式VXLAN IP網(wǎng)關(guān)組網(wǎng)中,所有的分布式VXLAN IP網(wǎng)關(guān)(以下簡(jiǎn)稱為GW)上都需要?jiǎng)?chuàng)建VSI(Virtual Switch Interface,虛擬交換接口)虛接口,并為不同GW上的相同VSI虛接口配置相同的IP地址和MAC地址,作為VXLAN內(nèi)虛擬機(jī)的網(wǎng)關(guān)地址。此外,GW上還需要開啟本地ARP(Address Resolution Protocol,地址解析協(xié)議)代理功能。
以同一VXLAN內(nèi)不同GW下的虛擬機(jī)通信為例,如VM(Virtual Machine,虛擬機(jī))1訪問VM2(VM1和VM2為同一VXLAN內(nèi)不同GW下的虛擬機(jī)),其流程如下:
VM1發(fā)送ARP請(qǐng)求報(bào)文,獲取VM2的MAC地址,GW(假設(shè)為GW1)接收到的VM1發(fā)送的ARP請(qǐng)求報(bào)文時(shí),一方面學(xué)習(xí)VM1的ARP信息,并對(duì)該ARP請(qǐng)求報(bào)文進(jìn)行代答,從而VM1學(xué)習(xí)到的VM2的MAC地址為GW1上連接VM1的VSI虛接口(假設(shè)為VSI虛接口10)的MAC地址。
另一方面,GW1將ARP請(qǐng)求報(bào)文中的發(fā)送端IP地址和發(fā)送端MAC地址修改為VSI虛接口10的IP地址和MAC地址后轉(zhuǎn)發(fā)到VXLAN內(nèi)的其它GW(假設(shè)VM2連接的GW為GW2),并通過(guò)EVPN(Ethernet Virtual Private Network,以太網(wǎng)虛擬專用網(wǎng))協(xié)議將根據(jù)學(xué)習(xí)到的ARP信息生成的ARP表項(xiàng)同步給其它GW。
GW2接收到該ARP請(qǐng)求報(bào)文后,在本地的VXLAN 10內(nèi)進(jìn)行廣播,同時(shí)通過(guò)EVPN協(xié)議學(xué)習(xí)到VM1的ARP信息;VM2接收到ARP請(qǐng)求報(bào)文后,學(xué)習(xí)到GW的ARP信息,并向GW2發(fā)送ARP應(yīng)答報(bào)文;GW2根據(jù)VM2的ARP應(yīng)答報(bào)文學(xué)習(xí)VM2的ARP信息,并將VM2的ARP信息對(duì)應(yīng)的ARP表項(xiàng)通過(guò)EVPN協(xié)議同步給GW1,從而GW1學(xué)習(xí)到VM2的ARP信息。
通過(guò)上述流程完成ARP信息的學(xué)習(xí)后,VM1到VM2的報(bào)文,根據(jù)已經(jīng)學(xué)習(xí)到的ARP信息進(jìn)行轉(zhuǎn)發(fā):首先發(fā)送給GW1;GW1對(duì)其進(jìn)行VXLAN封裝后,將其發(fā)送給GW2;GW2解封裝后,將其發(fā)送給VM2。
然而實(shí)踐發(fā)現(xiàn),由于現(xiàn)有分布式VXLAN IP網(wǎng)關(guān)組網(wǎng)中,虛擬機(jī)的ARP報(bào)文被重定向到了GW,因此,當(dāng)不同VM使用相同IP地址時(shí),VM無(wú)法感知,進(jìn)而可能導(dǎo)致虛擬機(jī)上的業(yè)務(wù)異常。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種IP地址沖突處理方法及裝置,以解決現(xiàn)有分布式VXLAN IP網(wǎng)關(guān)組網(wǎng)中,當(dāng)不同VM使用相同IP地址,VM無(wú)法感知到IP地址沖突的問題。
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種IP地址沖突處理方法,應(yīng)用于分布式虛擬可擴(kuò)展局域網(wǎng)VXLAN互聯(lián)網(wǎng)協(xié)議IP網(wǎng)關(guān)組網(wǎng)中的VXLAN IP網(wǎng)關(guān),所述VXLAN IP網(wǎng)關(guān)使能地址解析協(xié)議ARP代理或ARP代答,該方法包括:
當(dāng)確定存在與本VXLAN IP網(wǎng)關(guān)下第一虛擬機(jī)VM具有相同IP地址的第二VM時(shí),將本地ARP表項(xiàng)中與所述第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為所述第二VM的MAC地址;
向所述第一VM發(fā)送通知報(bào)文,所述通知報(bào)文用于通知所述第一VM存在與所述第一VM具有相同IP地址的第二VM;其中,所述通知報(bào)文中攜帶有所述第二VM的MAC地址。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種IP地址沖突處理裝置,應(yīng)用于分布式虛擬可擴(kuò)展局域網(wǎng)VXLAN互聯(lián)網(wǎng)協(xié)議IP網(wǎng)關(guān)組網(wǎng)中的VXLAN IP網(wǎng)關(guān),所述VXLAN IP網(wǎng)關(guān)使能地址解析協(xié)議ARP代理或ARP代答,該裝置包括:
確定單元,用于確定是否存在與本VXLAN IP網(wǎng)關(guān)下第一虛擬機(jī)VM具有相同IP地址的第二VM;
更新單元,用于當(dāng)所述確定單元確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),將本地ARP表項(xiàng)中與所述第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為所述第二VM的MAC地址;
發(fā)送單元,用于當(dāng)所述確定單元確定存在與本VXLAN IP網(wǎng)關(guān)下第一虛擬機(jī)VM具有相同IP地址的第二VM時(shí),向所述第一VM發(fā)送通知報(bào)文,所述通知報(bào)文用于通知所述第一VM存在與所述第一VM具有相同IP地址的第二VM;其中,所述通知報(bào)文中攜帶有所述第二VM的MAC地址。
應(yīng)用本發(fā)明實(shí)施例,通過(guò)在確定存在與本VXLAN IP網(wǎng)關(guān)下的第一VM具體相同IP地址的第二VM時(shí),將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址,并向第一VM發(fā)送攜帶有第二VM的MAC地址的通知報(bào)文,通知第一VM存在與第一VM具有相同IP地址的第二VM,使VM能夠及時(shí)獲知IP地址沖突的發(fā)生,并對(duì)發(fā)生IP地址沖突的VM進(jìn)行準(zhǔn)確定位。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的一種IP地址沖突處理方法的流程示意圖;
圖2A是本發(fā)明實(shí)施例提供的一種同網(wǎng)關(guān)下IP地址沖突的應(yīng)用場(chǎng)景的結(jié)構(gòu)示意圖;
圖2B是本發(fā)明實(shí)施例提供的一種不同網(wǎng)關(guān)下IP地址沖突的應(yīng)用場(chǎng)景的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例提供的一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例提供的另一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例提供的另一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例提供的另一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。
請(qǐng)參見圖1,圖1為本發(fā)明實(shí)施例提供的一種IP地址沖突處理方法的流程示意圖,其中,該IP地址沖突方法可以應(yīng)用于分布式VXLAN IP網(wǎng)關(guān)組網(wǎng)中的VXLAN IP網(wǎng)關(guān),該VXLAN IP網(wǎng)關(guān)使能了ARP代理或ARP代答,如圖1所示,該IP地址沖突處理方法可以包括以下步驟:
需要說(shuō)明的是,在本發(fā)明實(shí)施例中,步驟101~步驟102的執(zhí)行主體可以為分布式VXLAN IP網(wǎng)關(guān)組網(wǎng)中的任一網(wǎng)關(guān)或網(wǎng)關(guān)的處理器,如CPU(Center Process Unit,中央處理單元),為便于描述,以下以步驟101~步驟102的執(zhí)行主體為第一網(wǎng)關(guān)為例進(jìn)行說(shuō)明。其中,第一網(wǎng)關(guān)為分布式VXLAN IP網(wǎng)關(guān)組網(wǎng)中任一網(wǎng)關(guān)。
步驟101、當(dāng)確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址。
本發(fā)明實(shí)施例中,第一VM并不特指某一固定VM,而是可以指代第一網(wǎng)關(guān)已學(xué)習(xí)到ARP信息的任一本VXLAN IP網(wǎng)關(guān)的VM;同理,第二VM也并不特指某一固定VM,而是可以指代第一VM之外的任一VM。
本發(fā)明實(shí)施例中,當(dāng)?shù)谝痪W(wǎng)關(guān)確定存在與本VXLAN IP網(wǎng)關(guān)下的第一VM具有相同IP地址的第二VM時(shí),即第一網(wǎng)關(guān)確定存在IP地址沖突時(shí),第一網(wǎng)關(guān)可以先根據(jù)第二VM的IP地址和MAC地址更新本地ARP表中與第一VM對(duì)應(yīng)的ARP表項(xiàng),即將本地ARP表中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址(由于第一VM與第二VM具有相同的IP地址,因此,IP地址不需要改變)。
作為一種可選的實(shí)施方式,在本發(fā)明實(shí)施例中,確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM,可以包括:
當(dāng)接收到第二VM的ARP報(bào)文,且確定該ARP報(bào)文的源IP地址與本地ARP表中第一VM對(duì)應(yīng)的ARP表項(xiàng)的IP地址相同,源MAC地址與本地ARP表中第一VM對(duì)應(yīng)的ARP表項(xiàng)的MAC地址不同時(shí),確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM;其中,第一VM與第二VM為同一VXLAN IP網(wǎng)關(guān)下的VM。
在該實(shí)施方式中,若第一VM與第二VM均為第一網(wǎng)關(guān)下的VM,則當(dāng)?shù)谝痪W(wǎng)關(guān)接收到第二VM發(fā)送的ARP報(bào)文(免費(fèi)ARP報(bào)文或ARP請(qǐng)求報(bào)文)時(shí),第一網(wǎng)關(guān)可以學(xué)習(xí)第二VM的ARP信息,并根據(jù)第二VM的ARP信息查詢本地ARP表,若本地ARP表中存在與第二VM的IP地址相同,MAC地址不同的ARP表項(xiàng)(即第一VM對(duì)應(yīng)的ARP表項(xiàng)),則第一網(wǎng)關(guān)可以確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM,即發(fā)生了IP地址沖突。
作為另一種可選的實(shí)施方式,在本發(fā)明實(shí)施例中,確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM,可以包括:
當(dāng)接收到遠(yuǎn)端VXLAN IP網(wǎng)關(guān)同步的ARP表項(xiàng),且該ARP表項(xiàng)中的IP地址與本地ARP表中第一VM對(duì)應(yīng)的ARP表項(xiàng)的IP地址相同,MAC地址與第一VM對(duì)應(yīng)的ARP表項(xiàng)的MAC地址不同時(shí),確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM;其中,第一VM與第二VM為不同VXLAN IP網(wǎng)關(guān)下的VM。
在該實(shí)施方式中,若第一VM與第二VM為不同VXLAN IP網(wǎng)關(guān)下的VM(假設(shè)第二VM為第二網(wǎng)關(guān)下的VM),則當(dāng)?shù)谝痪W(wǎng)關(guān)接收到第二網(wǎng)關(guān)通過(guò)EVPN協(xié)議同步的ARP表項(xiàng)時(shí),可以根據(jù)該ARP表項(xiàng)查詢本地ARP表,若本地ARP表中存在與第二網(wǎng)關(guān)同步的ARP表項(xiàng)中的IP地址相同,MAC地址不同的ARP表項(xiàng),則確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM,即發(fā)生了IP地址沖突;其中,第一網(wǎng)關(guān)的本地ARP表中與第二網(wǎng)關(guān)同步過(guò)來(lái)的ARP表項(xiàng)的IP地址相同,MAC地址不同的ARP表項(xiàng)即為第一VM對(duì)應(yīng)的ARP表項(xiàng),該第二網(wǎng)關(guān)同步過(guò)來(lái)的與第一VM對(duì)應(yīng)的ARP表項(xiàng)IP地址相同,MAC地址不同的ARP表項(xiàng)即為第二VM對(duì)應(yīng)的ARP表項(xiàng)。
進(jìn)一步地,在本發(fā)明實(shí)施例中,當(dāng)?shù)谝籚M與第二VM為同一VXLAN IP網(wǎng)關(guān)下的VM時(shí),則將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址之后,第一網(wǎng)關(guān)還可以將更新后的ARP表項(xiàng)同步給遠(yuǎn)端VXLAN IP網(wǎng)關(guān),以使遠(yuǎn)端VXLAN IP網(wǎng)關(guān)將本地ARP表中與所述更新后的ARP表項(xiàng)中的IP地址相同的ARP表項(xiàng)中的MAC地址更新為所述更新后的ARP表項(xiàng)中的MAC地址。
在本發(fā)明實(shí)施例中,通過(guò)根據(jù)第二VM的IP地址和MAC地址更新本地ARP表中第一VM對(duì)應(yīng)的ARP表項(xiàng),可以有效兼容IP地址重分配后的正常使用。例如,在第一VM的地址過(guò)期或者第一VM關(guān)機(jī)等情況,而第一網(wǎng)關(guān)未及時(shí)獲知的情況下,當(dāng)?shù)诙M申請(qǐng)到了原來(lái)第一VM的IP地址時(shí),第二VM可以正常工作。
步驟102、向第一VM發(fā)送通知報(bào)文,該通知報(bào)文用于通知第一VM存在與第一VM具有相同IP地址的第二VM;其中,該通知報(bào)文中攜帶有第二VM的MAC地址。
本發(fā)明實(shí)施例中,當(dāng)?shù)谝痪W(wǎng)關(guān)確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM,即發(fā)生了IP地址沖突時(shí),第一網(wǎng)關(guān)可以向第一VM發(fā)送攜帶有第二VM的MAC地址的通知報(bào)文,該通知報(bào)文用于通知第一VM存在與第一VM具有相同IP地址的第二VM,從而第一VM可以獲知發(fā)生了IP地址沖突,且能夠獲知自身與哪一個(gè)VM發(fā)生了IP地址沖突,進(jìn)而第一VM可以向管理員進(jìn)行告警,以提示管理員自身與哪一個(gè)VM發(fā)生了IP地址沖突(如第一VM與第二VM發(fā)生了IP地址沖突),由管理員采取相應(yīng)的處理措施,如重新配置IP地址等。
優(yōu)選地,在本發(fā)明實(shí)施例中,第一網(wǎng)關(guān)向第一VM發(fā)送的通知報(bào)文可以為免費(fèi)ARP報(bào)文,該免費(fèi)ARP報(bào)文的源MAC地址為第二VM的MAC地址,源IP地址為第二VM的IP地址,目的IP地址為第一VM的IP地址(源IP地址和目的IP地址相同)。
值得說(shuō)明的是,在本發(fā)明實(shí)施例中,第一網(wǎng)關(guān)確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),第一網(wǎng)關(guān)將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址,以及向第一VM發(fā)送通知報(bào)文,通知第一VM存在與第一VM具有相同IP地址的第二VM二者之間并不存在必然的時(shí)序關(guān)系,即第一網(wǎng)關(guān)可以按照上述圖1所示方法流程中所描述的先將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址,后向第一VM發(fā)送通知報(bào)文,通知第一VM存在與第一VM具有相同IP地址的第二VM;或者,第一網(wǎng)關(guān)可以先向第一VM發(fā)送通知報(bào)文,通知第一VM存在與第一VM具有相同IP地址的第二VM,后將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址,其具體實(shí)現(xiàn)本發(fā)明實(shí)施例在此不做贅述。
進(jìn)一步地,在本發(fā)明實(shí)施例中,當(dāng)確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同的第二VM時(shí),還可以進(jìn)行告警處理,以提示用戶存在IP地址沖突。
具體的,在本發(fā)明實(shí)施例中,當(dāng)?shù)谝痪W(wǎng)關(guān)確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),第一網(wǎng)關(guān)可以進(jìn)行告警處理,以提示用戶(如管理員)存在IP地址沖突。
例如,第一網(wǎng)關(guān)可以通過(guò)發(fā)送日志或告警消息的方式告知管理員存在IP地址沖突。
進(jìn)一步地,在本發(fā)明實(shí)施例中,當(dāng)?shù)谝痪W(wǎng)關(guān)向第一VM發(fā)送的通知報(bào)文為免費(fèi)ARP報(bào)文時(shí),考慮到第一VM接收到該ARP報(bào)文時(shí),會(huì)回應(yīng)ARP報(bào)文,第一網(wǎng)關(guān)接收到第一VM回應(yīng)的ARP報(bào)文時(shí),會(huì)再次更新對(duì)應(yīng)IP地址的ARP表項(xiàng)(即第一VM或第二VM的IP地址對(duì)應(yīng)的ARP表項(xiàng)),此時(shí)第一網(wǎng)關(guān)會(huì)再次向第二VM發(fā)送攜帶第一VM的MAC地址的免費(fèi)ARP報(bào)文,通知第二VM存在與第二VM具有相同IP地址的第一VM,進(jìn)而,第二VM會(huì)回應(yīng)ARP報(bào)文,然后第一網(wǎng)關(guān)再次重復(fù)更新對(duì)應(yīng)的ARP表項(xiàng)…,進(jìn)而導(dǎo)致產(chǎn)生大量的日志以及ARP報(bào)文,造成系統(tǒng)資源浪費(fèi)。因此,為了避免上述情況發(fā)生,在本發(fā)明實(shí)施例中,若通知報(bào)文為源MAC地址為第二VM的MAC地址,源IP地址為第二VM的IP地址,目的IP地址為第一VM的IP地址的免費(fèi)ARP報(bào)文,則當(dāng)確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),還可以包括:
啟動(dòng)預(yù)設(shè)定時(shí)器,并在預(yù)設(shè)定時(shí)器超時(shí)前,拒絕對(duì)接收到的第一VM回應(yīng)的ARP報(bào)文進(jìn)行處理。
具體的,在本發(fā)明實(shí)施例中,當(dāng)?shù)谝痪W(wǎng)關(guān)確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),第一網(wǎng)關(guān)除了可以按照上述方法流程中所描述的步驟進(jìn)行處理之外,還可以啟動(dòng)一個(gè)預(yù)設(shè)定時(shí)器(該預(yù)設(shè)定時(shí)器的超時(shí)時(shí)長(zhǎng)可以根據(jù)具體場(chǎng)景設(shè)定),在該預(yù)設(shè)定時(shí)器超時(shí)前,若第一網(wǎng)關(guān)接收到第一VM回應(yīng)的ARP報(bào)文(第一VM接收到第一網(wǎng)關(guān)發(fā)送的上述免費(fèi)ARP報(bào)文后回應(yīng)的ARP報(bào)文)時(shí),第一網(wǎng)關(guān)可以拒絕對(duì)該ARP報(bào)文進(jìn)行處理,如不再根據(jù)該ARP報(bào)文包括的ARP信息更新本地ARP表中的相關(guān)表項(xiàng),也不再向第二VM發(fā)送免費(fèi)ARP報(bào)文,從而保證在該預(yù)設(shè)定時(shí)器超時(shí)之前,相同的IP地址沖突不會(huì)重復(fù)處理,節(jié)省系統(tǒng)資源。
可見,在圖1所示的方法流程中,通過(guò)在確定存在與本VXLAN IP網(wǎng)關(guān)下的第一VM具體相同IP地址的第二VM時(shí),將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址,并向第一VM發(fā)送攜帶有第二VM的MAC地址的通知報(bào)文,通知第一VM存在與第一VM具有相同IP地址的第二VM,使VM能夠及時(shí)獲知IP地址沖突的發(fā)生,并對(duì)發(fā)生IP地址沖突的VM進(jìn)行準(zhǔn)確定位。
為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施提供的技術(shù)方案,下面結(jié)合具體應(yīng)用場(chǎng)景本發(fā)明實(shí)施例提供的技術(shù)方案進(jìn)行描述。
請(qǐng)參見圖2A,為本發(fā)明實(shí)施例提供的一種同網(wǎng)關(guān)下IP地址沖突的應(yīng)用場(chǎng)景的結(jié)構(gòu)示意圖,如圖2A所示,在該應(yīng)用場(chǎng)景中,GW1和GW2均使能ARP代理功能,GW2下的VM2和VM3具有相同的IP地址(1.1.1.3),基于該應(yīng)用場(chǎng)景,IP地址沖突處理流程如下:
1、VM3上線時(shí)發(fā)送免費(fèi)ARP報(bào)文或ARP請(qǐng)求報(bào)文(源IP地址為1.1.1.3);
2、由于GW2使能了ARP代理功能,因此,GW2接收到VM3發(fā)送的ARP報(bào)文時(shí),無(wú)論目的IP地址是否為GW2的IP地址,均會(huì)將該ARP報(bào)文上送CPU。GW2處理該ARP報(bào)文時(shí),可以根據(jù)該ARP報(bào)文查詢ARP表,發(fā)現(xiàn)本地ARP表中存在與VM3的IP地址(1.1.1.3)相同,MAC地址為VM2的MAC地址的ARP表項(xiàng),則GW2可以更新該ARP表項(xiàng)(將該ARP表項(xiàng)的MAC地址更新為VM3的MAC地址),并使用GW2的MAC地址作為ARP應(yīng)答報(bào)文的源MAC地址,進(jìn)行ARP應(yīng)答;
3、GW2向VM2所在端口發(fā)送免費(fèi)ARP報(bào)文(源MAC地址為VM3的MAC地址,源IP地址和目的IP地址均為1.1.1.3),用于告知VM2其IP地址與VM3沖突;
4、GW2發(fā)送日志告知管理員存在IP地址沖突;
5、使用EVPN協(xié)議將VM3的ARP表項(xiàng)同步到其它網(wǎng)關(guān)(如GW1),以使GW1更新本地ARP表中的相關(guān)ARP表項(xiàng)。
請(qǐng)參見圖2B,為本發(fā)明實(shí)施例提供的一種不同網(wǎng)關(guān)下IP地址沖突的應(yīng)用場(chǎng)景的結(jié)構(gòu)示意圖,如圖2B所示,在該應(yīng)用場(chǎng)景中,GW1和GW2均使能ARP代理功能,GW1下的VM1和GW2下的VM3具有相同的IP地址(1.1.1.3),基于該應(yīng)用場(chǎng)景,IP地址沖突處理流程如下:
1、VM3上線時(shí)會(huì)發(fā)送免費(fèi)ARP報(bào)文或ARP請(qǐng)求報(bào)文(源IP地址為1.1.1.3);
2、由于GW2使能ARP代理功能,因此,GW2接收到VM3發(fā)送的ARP報(bào)文時(shí),無(wú)論目的IP地址是否為GW2的IP地址,均會(huì)將該ARP報(bào)文上送CPU。GW2處理該ARP報(bào)文時(shí),可以根據(jù)該ARP報(bào)文查詢ARP表,發(fā)現(xiàn)本地ARP表中存在與VM3的IP地址(1.1.1.3)相同,MAC地址不同的ARP表項(xiàng),且該ARP表項(xiàng)是其它網(wǎng)關(guān)同步過(guò)來(lái)的,則GW2可以更新該ARP表項(xiàng)(將該ARP表項(xiàng)的MAC地址更新為VM3的MAC地址),并使用GW2的MAC地址作為ARP應(yīng)答報(bào)文的源MAC地址,進(jìn)行ARP應(yīng)答;
3、GW2通過(guò)EVPN協(xié)議將更新后的ARP表項(xiàng)(IP地址為1.1.1.3,MAC地址為VM3的MAC地址)同步到其它網(wǎng)關(guān);
4、GW1接收到GW2通過(guò)EVPN協(xié)議同步的ARP表項(xiàng),查詢本地ARP表,發(fā)現(xiàn)存在IP地址相同(1.1.1.3),但MAC地址為VM1的MAC地址的ARP表項(xiàng),從而,GW1更新該ARP表項(xiàng)(將該ARP表項(xiàng)的MAC地址更新為VM3的MAC地址);
5、GW1向VM1所在端口發(fā)送免費(fèi)ARP報(bào)文(報(bào)文的源MAC地址為VM3的MAC地址,源IP地址和目的IP地址均為1.1.1.3),用于告知VM1其IP地址與VM3沖突;
6、GW1發(fā)送日志告知管理員存在地址沖突。
通過(guò)以上描述可以看出,在本發(fā)明實(shí)施例提供的技術(shù)方案中,通過(guò)在確定存在與本VXLAN IP網(wǎng)關(guān)下的第一VM具體相同IP地址的第二VM時(shí),將本地ARP表項(xiàng)中與第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為第二VM的MAC地址,并向第一VM發(fā)送攜帶有第二VM的MAC地址的通知報(bào)文,通知第一VM存在與第一VM具有相同IP地址的第二VM,使VM能夠及時(shí)獲知IP地址沖突的發(fā)生,并對(duì)發(fā)生IP地址沖突的VM進(jìn)行準(zhǔn)確定位。
請(qǐng)參見圖3,為本發(fā)明實(shí)施例提供的一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖,其中,所述裝置可以應(yīng)用于上述方法實(shí)施例中的第一網(wǎng)關(guān),如圖3所示,該IP地址沖突處理裝置可以包括:
確定單元310,用于確定是否存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM;
更新單元320,用于當(dāng)所述確定單元310確定存在與本VXLAN IP網(wǎng)關(guān)下第一虛擬機(jī)VM具有相同IP地址的第二VM時(shí),將本地ARP表項(xiàng)中與所述第一VM對(duì)應(yīng)的ARP表項(xiàng)中的MAC地址更新為所述第二VM的MAC地址;
發(fā)送單元330,用于當(dāng)所述確定單元310確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),向所述第一VM發(fā)送通知報(bào)文,所述通知報(bào)文用于通知所述第一VM存在與所述第一VM具有相同IP地址的第二VM;其中,所述通知報(bào)文中攜帶有所述第二VM的MAC地址。
在可選實(shí)施例中,所述確定單元310,可以具體用于當(dāng)接收到所述第二VM的ARP報(bào)文,且確定該ARP報(bào)文的源IP地址與本地ARP表中第一VM對(duì)應(yīng)的ARP表項(xiàng)的IP地址相同,源MAC地址與本地ARP表中第一VM對(duì)應(yīng)的ARP表項(xiàng)的MAC地址不同時(shí),確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM;其中,所述第一VM與所述第二VM為同一VXLAN IP網(wǎng)關(guān)下的VM;或,當(dāng)接收到遠(yuǎn)端VXLAN IP網(wǎng)關(guān)同步的ARP表項(xiàng),且該ARP表項(xiàng)中的IP地址與本地ARP表中第一VM對(duì)應(yīng)的ARP表項(xiàng)的IP地址相同,MAC地址與第一VM對(duì)應(yīng)的ARP表項(xiàng)的MAC地址不同時(shí),確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM;其中,所述第一VM與所述第二VM為不同VXLAN IP網(wǎng)關(guān)下的VM。
請(qǐng)一并參閱圖4,圖4為本發(fā)明實(shí)施例提供的另一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖,在圖3所示的實(shí)施例的基礎(chǔ)上,圖4所示的IP地址沖突處理裝置還可以包括:
告警單元340,用于當(dāng)所述確定單元310確定存在與本VXLAN IP網(wǎng)關(guān)下第一VM具有相同IP地址的第二VM時(shí),進(jìn)行告警處理,以提示用戶存在IP地址沖突。
請(qǐng)一并參閱圖5,圖5為本發(fā)明實(shí)施例提供的另一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖,在圖3所示的實(shí)施例的基礎(chǔ)上,圖5所示的IP地址沖突處理裝置還可以包括:
同步單元350,用于當(dāng)?shù)谝籚M與第二VM為同一VXLAN IP網(wǎng)關(guān)下的VM時(shí),將更新后的ARP表項(xiàng)同步給遠(yuǎn)端VXLAN IP網(wǎng)關(guān),以使所述遠(yuǎn)端VXLAN IP網(wǎng)關(guān)將本地ARP表中與所述更新后的ARP表項(xiàng)中的IP地址相同的ARP表項(xiàng)中的MAC地址更新為所述更新后的ARP表項(xiàng)中的MAC地址。
在可選實(shí)施例中,所述通知報(bào)文為源MAC地址為所述第二VM的MAC地址,源IP地址為所述第二VM的IP地址,目的IP地址為所述第一VM的IP地址的免費(fèi)ARP報(bào)文,
請(qǐng)一并參閱圖6,圖6為本發(fā)明實(shí)施例提供的另一種IP地址沖突處理裝置的結(jié)構(gòu)示意圖,在圖3所示的實(shí)施例的基礎(chǔ)上,圖6所示的IP地址沖突處理裝置還可以包括:
啟動(dòng)單元360,用于啟動(dòng)預(yù)設(shè)定時(shí)器;
處理單元370,用于在所述預(yù)設(shè)定時(shí)器超時(shí)前,拒絕對(duì)接收到的所述第一VM針對(duì)所述免費(fèi)ARP報(bào)文回應(yīng)的ARP報(bào)文進(jìn)行處理。
上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
由上述實(shí)施例可見,通過(guò)在確定存在與本VXLAN IP網(wǎng)關(guān)下的第一VM具體相同IP地址的第二VM時(shí),根據(jù)該第二VM的IP地址和MAC地址更新本地ARP表中與第一VM對(duì)應(yīng)的ARP表項(xiàng),并向第一VM發(fā)送攜帶有第二VM的MAC地址的通知報(bào)文,通知第一VM存在與第一VM具有相同IP地址的第二VM,使VM能夠及時(shí)獲知IP地址沖突的發(fā)生,并對(duì)發(fā)生IP地址沖突的VM進(jìn)行準(zhǔn)確定位。
本領(lǐng)域技術(shù)人員在考慮說(shuō)明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制。