本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及一種基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理方法及系統(tǒng)。
背景技術(shù):
在云虛擬網(wǎng)絡(luò)中,數(shù)據(jù)中心經(jīng)過(guò)云虛擬化后,使得ip地址出現(xiàn)10-30倍的增長(zhǎng)。在大規(guī)模虛擬網(wǎng)絡(luò)下,虛擬主機(jī)發(fā)起的大量arp(addressresolutionprotocol,地址解析協(xié)議)廣播報(bào)文會(huì)嚴(yán)重影響數(shù)據(jù)中心承載網(wǎng)絡(luò)的網(wǎng)絡(luò)質(zhì)量,甚至癱瘓整個(gè)數(shù)據(jù)中心網(wǎng)絡(luò)。
為了解決arp廣播風(fēng)暴問(wèn)題,云虛擬網(wǎng)絡(luò)會(huì)使用arp代理的方式抑制arp廣播行為。在業(yè)界主流的方法是通過(guò)arp代理進(jìn)程監(jiān)聽(tīng)arp報(bào)文并主動(dòng)回復(fù)arp響應(yīng)。但是使用arp代理進(jìn)程的缺點(diǎn)是arp代理進(jìn)程本身容易單點(diǎn)瓶頸,如果arp代理進(jìn)程受到arp攻擊容易癱瘓。并且受限于linuxbridge的鄰居子系統(tǒng)學(xué)習(xí)機(jī)制,arp代理不能完全抑制arp廣播。對(duì)于數(shù)據(jù)中心物理網(wǎng)絡(luò)對(duì)云虛擬網(wǎng)絡(luò)發(fā)起的arp廣播,使用arp代理進(jìn)程的方式目前沒(méi)有有效的解決方案。另外一種方案是通過(guò)sdn控制器通過(guò)首包機(jī)制監(jiān)聽(tīng)arp報(bào)文并且由sdn控制器主動(dòng)回復(fù)arp的方式抑制arp廣播。這樣的方案缺點(diǎn)是sdn控制器處理性能會(huì)成為單點(diǎn)。上訴兩個(gè)方案都無(wú)法實(shí)現(xiàn)低消耗無(wú)單點(diǎn)的arp代理,無(wú)法抑制數(shù)據(jù)中心對(duì)云虛擬網(wǎng)絡(luò)發(fā)起的arp廣播報(bào)文。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)上述現(xiàn)有技術(shù)中的arp代理無(wú)法抑制數(shù)據(jù)中心對(duì)云虛擬網(wǎng)絡(luò)發(fā)起的arp廣播報(bào)文的問(wèn)題,提出了一種基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理方法及系統(tǒng),能夠有效抑制arp廣播尋址的頻率。
一方面,本發(fā)明提供一種基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理方法,包括:
虛擬機(jī)對(duì)數(shù)據(jù)中心物理網(wǎng)絡(luò)發(fā)起arp尋址;
軟件定義網(wǎng)絡(luò)控制器下發(fā)流表,通過(guò)所述流表回復(fù)虛擬機(jī),使得所述虛擬機(jī)獲得的數(shù)據(jù)中心物理網(wǎng)絡(luò)的mac地址為統(tǒng)一mac地址;
虛擬機(jī)發(fā)起ip通訊報(bào)文;
軟件定義網(wǎng)絡(luò)控制器接收所述ip通訊報(bào)文,并根據(jù)所述ip通訊報(bào)文確定數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址;
所述軟件定義網(wǎng)絡(luò)控制器獲取所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,并記錄到鄰居表;
所述軟件定義網(wǎng)絡(luò)控制器根據(jù)所述鄰居表下發(fā)流表至虛擬交換機(jī),所述流表動(dòng)作修改目標(biāo)mac地址為所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,根據(jù)所述流表轉(zhuǎn)發(fā)所述ip通訊報(bào)文;
所述數(shù)據(jù)中心物理網(wǎng)絡(luò)接收所述ip通訊報(bào)文并進(jìn)行回復(fù);
所述數(shù)據(jù)中心物理網(wǎng)絡(luò)發(fā)起arp廣播尋址首包;
所述軟件定義網(wǎng)絡(luò)控制器根據(jù)所述arp廣播判斷目標(biāo)地址是否為云內(nèi)地址;
如果是,則軟件定義網(wǎng)絡(luò)控制器配置反向響應(yīng)流表,修改所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的源mac地址為統(tǒng)一mac地址,通過(guò)所述反向響應(yīng)流表進(jìn)行回復(fù),回復(fù)的地址為虛擬機(jī)的mac地址或彈性ip的mac地址。
進(jìn)一步地,所述鄰居表為分布式,用于記錄鄰居表所屬的計(jì)算節(jié)點(diǎn);
所述鄰居表包括記錄ip地址、記錄ip地址對(duì)應(yīng)的mac地址、記錄上次更新時(shí)間以及記錄生存時(shí)間。
進(jìn)一步地,所述軟件定義網(wǎng)絡(luò)控制器獲取所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,并記錄到鄰居表,包括:
軟件定義網(wǎng)絡(luò)控制器根據(jù)所述ip地址訪(fǎng)問(wèn)所述數(shù)據(jù)中心物理網(wǎng)絡(luò)獲取所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,建立所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址與mac地址的映射關(guān)系,并存儲(chǔ)至所述鄰居表。
進(jìn)一步地,所述軟件定義網(wǎng)絡(luò)控制器根據(jù)所述arp廣播判斷目標(biāo)地址是否為云內(nèi)地址,包括:
軟件定義網(wǎng)絡(luò)控制器根據(jù)所述arp廣播獲取目標(biāo)地址,將所述目標(biāo)地址與預(yù)先存儲(chǔ)的云內(nèi)虛擬機(jī)的地址進(jìn)行比較,根據(jù)比較結(jié)果確定所述目標(biāo)地址是否為云內(nèi)地址。
進(jìn)一步地,所述統(tǒng)一mac地址為fe:ff:ff:ff:ff:ff。
另一方面,本發(fā)明還提供一種基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理系統(tǒng),包括:n個(gè)計(jì)算節(jié)點(diǎn)、軟件定義網(wǎng)絡(luò)控制器以及數(shù)據(jù)中心物理網(wǎng)絡(luò),所述計(jì)算節(jié)點(diǎn)包括虛擬機(jī)和虛擬交換機(jī),其中n為大于或等于2的整數(shù);
虛擬機(jī)用于對(duì)數(shù)據(jù)中心物理網(wǎng)絡(luò)發(fā)起arp尋址;
軟件定義網(wǎng)絡(luò)控制器用于下發(fā)流表,通過(guò)所述流表回復(fù)虛擬機(jī),使得所述虛擬機(jī)獲得的數(shù)據(jù)中心物理網(wǎng)絡(luò)的mac地址為統(tǒng)一mac地址;
所述虛擬機(jī)還用于發(fā)起ip通訊報(bào)文;
所述軟件定義網(wǎng)絡(luò)控制器還用于接收所述ip通訊報(bào)文,并根據(jù)所述ip通訊報(bào)文確定數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址,獲取所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,并記錄到鄰居表,根據(jù)所述鄰居表下發(fā)流表至虛擬交換機(jī),所述流表動(dòng)作修改目標(biāo)mac地址為所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,根據(jù)所述流表轉(zhuǎn)發(fā)所述ip通訊報(bào)文;
所述數(shù)據(jù)中心物理網(wǎng)絡(luò)用于接收所述ip通訊報(bào)文并進(jìn)行回復(fù);
所述數(shù)據(jù)中心物理網(wǎng)絡(luò)還用于發(fā)起arp廣播尋址首包;
所述軟件定義網(wǎng)絡(luò)控制器還用于根據(jù)所述arp廣播判斷目標(biāo)地址是否為云內(nèi)地址;如果是,則軟件定義網(wǎng)絡(luò)控制器配置反向響應(yīng)流表,修改所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的源mac地址為統(tǒng)一mac地址,通過(guò)所述反向響應(yīng)流表進(jìn)行回復(fù),回復(fù)的地址為虛擬機(jī)的mac地址或彈性ip的mac地址。
進(jìn)一步地,所述軟件定義網(wǎng)絡(luò)控制器的數(shù)量為n個(gè),分別與各計(jì)算節(jié)點(diǎn)中的虛擬交換機(jī)通信連接。
本發(fā)明提供的基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理方法及系統(tǒng),當(dāng)虛擬機(jī)對(duì)物理數(shù)據(jù)中心發(fā)起尋址時(shí),軟件定義網(wǎng)絡(luò)控制器根據(jù)鄰居記錄信息,下發(fā)修改目標(biāo)mac為物理數(shù)據(jù)中心目標(biāo)ip對(duì)應(yīng)的mac地址并轉(zhuǎn)發(fā)流表;當(dāng)數(shù)據(jù)中心物理網(wǎng)絡(luò)對(duì)云虛擬網(wǎng)絡(luò)發(fā)起尋址時(shí),軟件定義網(wǎng)絡(luò)控制器下發(fā)將數(shù)據(jù)報(bào)文的源mac地址修改成統(tǒng)一mac地址并轉(zhuǎn)發(fā)流表,arp代理轉(zhuǎn)發(fā)處理全部由流表完成,資源消耗低,并且無(wú)單點(diǎn)瓶頸,支持代理云虛擬網(wǎng)絡(luò)對(duì)數(shù)據(jù)中心物理網(wǎng)絡(luò)的arp尋址,支持?jǐn)?shù)據(jù)中心物理網(wǎng)絡(luò)對(duì)云虛擬網(wǎng)絡(luò)的arp尋址實(shí)現(xiàn)arp完全代理,軟件定義網(wǎng)絡(luò)控制器的鄰居子系統(tǒng)可以有效抑制arp廣播尋址的頻率,大大減輕物理承載網(wǎng)絡(luò)的壓力。
附圖說(shuō)明
圖1為本發(fā)明提供的基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理方法一種實(shí)施例的流程圖。
圖2為本發(fā)明提供的基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理系統(tǒng)一種實(shí)施例的結(jié)構(gòu)示意圖。
圖3為本發(fā)明提供的基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理系統(tǒng)另一種實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
實(shí)施例一
參考圖1,本實(shí)施例提供一種基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理方法,包括:
步驟s101,虛擬機(jī)對(duì)數(shù)據(jù)中心物理網(wǎng)絡(luò)發(fā)起arp尋址;
步驟s102,軟件定義網(wǎng)絡(luò)控制器下發(fā)流表,通過(guò)所述流表回復(fù)虛擬機(jī),使得所述虛擬機(jī)獲得的數(shù)據(jù)中心物理網(wǎng)絡(luò)的mac地址為統(tǒng)一mac地址;
步驟s103,虛擬機(jī)發(fā)起ip通訊報(bào)文;
步驟s104,軟件定義網(wǎng)絡(luò)控制器接收所述ip通訊報(bào)文,并根據(jù)所述ip通訊報(bào)文確定數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址;
步驟s105,所述軟件定義網(wǎng)絡(luò)控制器獲取所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,并記錄到鄰居表;
步驟s106,所述軟件定義網(wǎng)絡(luò)控制器根據(jù)所述鄰居表下發(fā)流表至虛擬交換機(jī),所述流表動(dòng)作修改目標(biāo)mac地址為所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,根據(jù)所述流表轉(zhuǎn)發(fā)所述ip通訊報(bào)文;
步驟s107,所述數(shù)據(jù)中心物理網(wǎng)絡(luò)接收所述ip通訊報(bào)文并進(jìn)行回復(fù);
步驟s108,所述數(shù)據(jù)中心物理網(wǎng)絡(luò)發(fā)起arp廣播尋址首包;
步驟s109,所述軟件定義網(wǎng)絡(luò)控制器根據(jù)所述arp廣播判斷目標(biāo)地址是否為云內(nèi)地址;
步驟s110,如果是,則軟件定義網(wǎng)絡(luò)控制器配置反向響應(yīng)流表,修改所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的源mac地址為統(tǒng)一mac地址,通過(guò)所述反向響應(yīng)流表進(jìn)行回復(fù),回復(fù)的地址為虛擬機(jī)的mac地址或彈性ip的mac地址。
具體地,步驟s101和步驟s102為軟件定義網(wǎng)絡(luò)控制器代理虛擬機(jī)arp尋址。
步驟s103和步驟s104中,虛擬機(jī)首先發(fā)起ip通訊報(bào)文,與虛擬機(jī)建立通訊連接的軟件定義網(wǎng)絡(luò)控制器接收所述ip通訊報(bào)文,對(duì)所述ip通訊報(bào)文進(jìn)行解析獲得目標(biāo)ip地址,確定該目標(biāo)ip地址為數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址。
步驟s105中,軟件定義網(wǎng)絡(luò)控制器代理虛擬機(jī)尋址,根據(jù)所述ip地址訪(fǎng)問(wèn)所述數(shù)據(jù)中心物理網(wǎng)絡(luò)獲取所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,建立所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址與mac地址的映射關(guān)系,并存儲(chǔ)至所述鄰居表。
作為一種優(yōu)選的實(shí)施方式,鄰居表為分布式,用于記錄鄰居表所屬的計(jì)算節(jié)點(diǎn);
所述鄰居表包括記錄ip地址、記錄ip地址對(duì)應(yīng)的mac地址、記錄上次更新時(shí)間以及記錄生存時(shí)間。
鄰居表格式如表1所示:
表1
進(jìn)一步地,步驟s106-步驟s107中,軟件定義網(wǎng)絡(luò)控制器根據(jù)鄰居表信息下發(fā)流表,流表修改目標(biāo)mac地址為所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,根據(jù)所述流表轉(zhuǎn)發(fā)所述ip通訊報(bào)文至數(shù)據(jù)中心物理網(wǎng)絡(luò),數(shù)據(jù)中心物理網(wǎng)絡(luò)接收該ip通訊報(bào)文并進(jìn)行回復(fù)。
至此,完成代理虛擬機(jī)發(fā)起尋址的流程。
進(jìn)一步地,步驟s108-步驟s109中,數(shù)據(jù)中心物理網(wǎng)絡(luò)發(fā)起arp廣播尋址首包,軟件定義網(wǎng)絡(luò)控制器接收所述arp廣播尋址首包,并進(jìn)行分析,判斷目標(biāo)地址是否為云內(nèi)地址:軟件定義網(wǎng)絡(luò)控制器根據(jù)所述arp廣播獲取目標(biāo)地址,將所述目標(biāo)地址與預(yù)先存儲(chǔ)的云內(nèi)虛擬機(jī)的地址進(jìn)行比較,根據(jù)比較結(jié)果確定所述目標(biāo)地址是否為云內(nèi)地址,如果所述目標(biāo)地址與任一預(yù)先存儲(chǔ)的云內(nèi)虛擬機(jī)的地址一致,則確定所述目標(biāo)地址為云內(nèi)地址,如果該目標(biāo)地址不是云內(nèi)地址,則下發(fā)丟棄策略。
步驟s110中,如果確定該目標(biāo)地址為云內(nèi)地址,則軟件定義網(wǎng)絡(luò)控制器配置反向響應(yīng)流表,修改所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的源mac地址為統(tǒng)一mac地址,通過(guò)所述反向響應(yīng)流表回復(fù)該arp廣播,回復(fù)的地址為虛擬機(jī)的mac地址或彈性ip的mac地址。
其中,彈性ip為虛擬機(jī)的一對(duì)一natip地址,彈性ip的mac默認(rèn)為計(jì)算節(jié)點(diǎn)物理網(wǎng)卡的mac地址。
作為一種優(yōu)選的實(shí)施方式,統(tǒng)一mac地址為fe:ff:ff:ff:ff:ff。
作為一種優(yōu)選的實(shí)施方式,反射響應(yīng)流表格式如表2所示:
表2
至此,完成代理數(shù)據(jù)中心物理網(wǎng)絡(luò)對(duì)虛擬機(jī)發(fā)起的arp尋址。
本實(shí)施例提供的基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理方法,arp代理轉(zhuǎn)發(fā)處理全部由流表完成,資源消耗低,并且無(wú)單點(diǎn)瓶頸,支持代理云虛擬網(wǎng)絡(luò)對(duì)數(shù)據(jù)中心物理網(wǎng)絡(luò)的arp尋址,支持?jǐn)?shù)據(jù)中心物理網(wǎng)絡(luò)對(duì)云虛擬網(wǎng)絡(luò)的arp尋址實(shí)現(xiàn)arp完全代理,軟件定義網(wǎng)絡(luò)控制器的鄰居子系統(tǒng)可以有效抑制arp廣播尋址的頻率,大大減輕物理承載網(wǎng)絡(luò)的壓力。
實(shí)施例二
參考圖2,本實(shí)施例提供一種基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理系統(tǒng),包括:n個(gè)計(jì)算節(jié)點(diǎn)101、軟件定義網(wǎng)絡(luò)控制器102以及數(shù)據(jù)中心物理網(wǎng)絡(luò)103,計(jì)算節(jié)點(diǎn)包括虛擬機(jī)104和虛擬交換機(jī)105,其中n為大于或等于2的整數(shù);
虛擬機(jī)104用于對(duì)數(shù)據(jù)中心物理網(wǎng)絡(luò)發(fā)起arp尋址;
軟件定義網(wǎng)絡(luò)控制器102用于下發(fā)流表,通過(guò)所述流表回復(fù)虛擬機(jī),使得所述虛擬機(jī)獲得的數(shù)據(jù)中心物理網(wǎng)絡(luò)的mac地址為統(tǒng)一mac地址;
虛擬機(jī)104用于發(fā)起ip通訊報(bào)文;
軟件定義網(wǎng)絡(luò)控制器102用于接收所述ip通訊報(bào)文,并根據(jù)所述ip通訊報(bào)文確定數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址,獲取所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,并記錄到鄰居表,根據(jù)所述鄰居表下發(fā)流表至虛擬交換機(jī)105,所述流表動(dòng)作修改目標(biāo)mac地址為數(shù)據(jù)中心物理網(wǎng)絡(luò)的ip地址對(duì)應(yīng)的mac地址,根據(jù)流表轉(zhuǎn)發(fā)所述ip通訊報(bào)文;
數(shù)據(jù)中心物理網(wǎng)絡(luò)103用于接收所述ip通訊報(bào)文并進(jìn)行回復(fù);
數(shù)據(jù)中心物理網(wǎng)絡(luò)103還用于發(fā)起arp廣播尋址首包;
軟件定義網(wǎng)絡(luò)控制器102還用于根據(jù)所述arp廣播判斷目標(biāo)地址是否為云內(nèi)地址;如果是,則軟件定義網(wǎng)絡(luò)控制器配置反向響應(yīng)流表,修改所述數(shù)據(jù)中心物理網(wǎng)絡(luò)的源mac地址為統(tǒng)一mac地址,通過(guò)所述反向響應(yīng)流表進(jìn)行回復(fù),回復(fù)的地址為虛擬機(jī)的mac地址或彈性ip的mac地址。
具體工作原理請(qǐng)參考實(shí)施例一,在此不再贅述。
作為一種優(yōu)選的實(shí)施方式,參考圖3,所述代理系統(tǒng)為分布式架構(gòu),軟件定義網(wǎng)絡(luò)控制,102的數(shù)量為n個(gè),分別與各計(jì)算節(jié)點(diǎn)中的虛擬交換機(jī)通信連接。
本實(shí)施例提供的基于軟件定義網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)arp完全代理系統(tǒng),架構(gòu)簡(jiǎn)單,arp代理轉(zhuǎn)發(fā)處理全部由流表完成,資源消耗低,并且無(wú)單點(diǎn)瓶頸,支持代理云虛擬網(wǎng)絡(luò)對(duì)數(shù)據(jù)中心物理網(wǎng)絡(luò)的arp尋址,支持?jǐn)?shù)據(jù)中心物理網(wǎng)絡(luò)對(duì)云虛擬網(wǎng)絡(luò)的arp尋址實(shí)現(xiàn)arp完全代理,軟件定義網(wǎng)絡(luò)控制器的鄰居子系統(tǒng)可以有效抑制arp廣播尋址的頻率,大大減輕物理承載網(wǎng)絡(luò)的壓力。
應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。