一種arp報文的處理方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種地址解析協(xié)議ARP (Address Resolut1nProtocol)報文的處理方法和設(shè)備。
【背景技術(shù)】
[0002]如圖1所示,為現(xiàn)有SDN (Software Defined Network,軟件定義網(wǎng)絡(luò))的組網(wǎng)結(jié)構(gòu)示意圖。在現(xiàn)有的SDN網(wǎng)絡(luò)中,所有的ARP報文并沒有廣播轉(zhuǎn)發(fā),而是由控制器(Controller)進(jìn)行代答。即,SDN網(wǎng)絡(luò)中的各個轉(zhuǎn)發(fā)設(shè)備(例如虛擬交換機(jī)(VirtualSwitch))將各自接收的ARP報文統(tǒng)一上報給控制器,由控制器統(tǒng)一響應(yīng)各ARP報文。
[0003]具體地,SDN網(wǎng)絡(luò)中的虛擬機(jī)的端口要向控制器進(jìn)行注冊,注冊信息包括該端口的IP地址(即,互聯(lián)網(wǎng)協(xié)議地址)和MAC地址(即,媒體訪問控制地址)等信息。這樣,該虛擬機(jī)需要與其他虛擬機(jī)進(jìn)行通信時,向與該虛擬機(jī)連接的轉(zhuǎn)發(fā)設(shè)備發(fā)送ARP報文;該轉(zhuǎn)發(fā)設(shè)備收到該ARP報文后,默認(rèn)動作是上報控制器,即,將該ARP報文上報給控制器;控制器查找本地表項(xiàng),根據(jù)該虛擬機(jī)的注冊信息進(jìn)行ARP代答,將ARP代答報文通過openf low協(xié)議下發(fā)到該端口 ;后續(xù)該虛擬機(jī)獲得該其它虛擬機(jī)的IP地址(Internet Protocol Address,互聯(lián)網(wǎng)協(xié)議地址)和MAC地址(Media Access Control Address,媒體訪問控制地址),開始與該其他虛擬機(jī)進(jìn)行通信。
[0004]從上述對SDN網(wǎng)絡(luò)中ARP報文的處理過程可以看出,轉(zhuǎn)發(fā)設(shè)備對接收到的ARP報文都默認(rèn)上報給控制器,如果轉(zhuǎn)發(fā)設(shè)備接收到大量的用于攻擊和用于欺騙的偽造IP地址和MAC地址的ARP報文,并將這些報文直接上報給控制器,這就導(dǎo)致網(wǎng)絡(luò)的安全性較差。
【發(fā)明內(nèi)容】
[0005]本申請?zhí)峁┝艘环NARP報文的處理方法和設(shè)備,用于解決現(xiàn)有SDN網(wǎng)絡(luò)中ARP報文的處理機(jī)制導(dǎo)致的網(wǎng)絡(luò)安全性差的問題。
[0006]為達(dá)到上述目的,本發(fā)明提供了一種ARP報文處理方法,至少包括以下步驟:
[0007]軟件定義網(wǎng)絡(luò)SDN網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)設(shè)備將通過自身的第一端口接收到的所述SDN網(wǎng)絡(luò)中的虛擬機(jī)發(fā)送的注冊信息上報給所述SDN網(wǎng)絡(luò)中的控制器;
[0008]所述轉(zhuǎn)發(fā)設(shè)備接收所述控制器下發(fā)的針對所述第一端口的第一過濾流表,所述第一過濾流表包含所述注冊信息中所述虛擬機(jī)的IP地址和MAC地址;
[0009]所述轉(zhuǎn)發(fā)設(shè)備在通過所述第一端口接收到ARP報文時,判斷所述ARP報文中攜帶的源IP地址和源MAC地址是否均與所述第一過濾流表中的IP地址和MAC地址一致;
[0010]當(dāng)判斷結(jié)果為是時,將所述ARP報文上報給所述控制器。
[0011]本發(fā)明還提供了一種轉(zhuǎn)發(fā)設(shè)備,該轉(zhuǎn)發(fā)設(shè)備包括:
[0012]上報模塊,用于將通過軟件定義網(wǎng)絡(luò)SDN中的所述轉(zhuǎn)發(fā)設(shè)備自身的第一端口接收到的所述SDN網(wǎng)絡(luò)中的虛擬機(jī)發(fā)送的注冊信息上報給所述SDN網(wǎng)絡(luò)中的控制器;以及在判斷模塊判斷出ARP報文中攜帶的源IP地址和源MAC地址均與第一過濾流表中的IP地址和MAC地址一致時,將所述ARP報文上報給所述控制器;
[0013]接收模塊,用于接收所述控制器下發(fā)針對所述第一端口的第一過濾流表,所述第一過濾流表包含所述注冊信息中所述虛擬機(jī)的IP地址和MAC地址;
[0014]判斷模塊,用于在通過所述第一端口接收到ARP報文時,判斷所述ARP報文中的攜帶的源IP地址和源MAC地址是否均與所述第一過濾流表中的IP地址和MAC地址一致。
[0015]本發(fā)明還提供了一種ARP報文處理方法,至少包括以下步驟:
[0016]軟件定義網(wǎng)絡(luò)SDN網(wǎng)絡(luò)中的控制器接收所述SDN網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)設(shè)備在通過所述轉(zhuǎn)發(fā)設(shè)備的第一端口接收到所述SDN網(wǎng)絡(luò)中的虛擬機(jī)發(fā)送的注冊信息后上報的所述注冊信息;
[0017]所述控制器向所述轉(zhuǎn)發(fā)設(shè)備下發(fā)針對所述第一端口的、且包含有所述注冊信息中所述虛擬機(jī)的IP地址和MAC地址的第一過濾流表,以使所述轉(zhuǎn)發(fā)設(shè)備在通過所述第一端口接收到ARP報文時,判斷所述ARP報文中的源IP地址和源MAC地址是否均與所述第一過濾流表中的IP地址和MAC地址一致,并在判斷結(jié)果為是時,將所述ARP報文上報給所述控制器。
[0018]本發(fā)明還提供了一種控制器,該控制器包括:
[0019]接收模塊,用于接收所述SDN網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)設(shè)備在通過所述轉(zhuǎn)發(fā)設(shè)備的第一端口接收到所述SDN網(wǎng)絡(luò)中的虛擬機(jī)發(fā)送的注冊信息后上報的所述注冊信息;
[0020]下發(fā)模塊,用于向所述轉(zhuǎn)發(fā)設(shè)備下發(fā)針對所述第一端口的、且包含有所述注冊信息中所述虛擬機(jī)的IP地址和MAC地址的第一過濾流表,以使所述轉(zhuǎn)發(fā)設(shè)備在通過所述第一端口接收到ARP報文時,判斷所述ARP報文中的源IP地址和源MAC地址是否均與所述第一過濾流表中的IP地址和MAC地址一致,并在判斷結(jié)果為是時,將所述ARP報文上報給所述控制器。
[0021]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
[0022]通過應(yīng)用本發(fā)明的技術(shù)方案,SDN網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)設(shè)備將通過自身的第一端口接收到的SDN網(wǎng)絡(luò)中的虛擬機(jī)發(fā)送的注冊信息上報給SDN網(wǎng)絡(luò)中的控制器;并接收控制器下發(fā)的針對第一端口的第一過濾流表,第一過濾流表包含注冊信息中虛擬機(jī)的IP地址和MAC地址;將通過第一端口接收到的ARP報文中與第一過濾流表中的IP地址和MAC地址一致的ARP報文上報給控制器??梢?,本發(fā)明通過對ARP報文進(jìn)行過濾,將非法ARP報文(攻擊或欺騙的ARP報文)過濾掉,不僅提高了網(wǎng)絡(luò)的安全性,還避免了大量的非法ARP報文占用較多的帶寬資源及導(dǎo)致控制器的CPU占用率較高的問題,進(jìn)而提高了控制器對ARP報文的代答效率,減少了硬件資源消耗。
【附圖說明】
[0023]圖1為現(xiàn)有SDN的組網(wǎng)示意圖;
[0024]圖2為本發(fā)明所提出的一種ARP報文處理方法的流程示意圖之一;
[0025]圖3為適用于本發(fā)明提供的ARP報文處理方法的SDN網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
[0026]圖4為本發(fā)明所提出的一種ARP報文處理方法的流程示意圖之二 ;
[0027]圖5為本發(fā)明中提出的一種轉(zhuǎn)發(fā)設(shè)備的結(jié)構(gòu)示意圖;
[0028]圖6為本發(fā)明所提出的ARP報文處理方法的流程示意圖之三;
[0029]圖7為本發(fā)明所提出的ARP報文處理方法的流程示意圖之四;
[0030]圖8為本發(fā)明中提出的一種控制器的結(jié)構(gòu)示意圖;
【具體實(shí)施方式】
[0031]下面將結(jié)合本發(fā)明的實(shí)施例中的附圖,對本發(fā)明的實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明的實(shí)施例保護(hù)的范圍。
[0032]如圖2所示,為實(shí)施例一所提出的一種ARP報文處理方法的流程示意圖,該方法應(yīng)用于包括有虛擬機(jī)、轉(zhuǎn)發(fā)設(shè)備和控制器的SDN網(wǎng)絡(luò)中,下面將在轉(zhuǎn)發(fā)設(shè)備側(cè)對該方法進(jìn)行詳細(xì)說明。
[0033]該方法,具體包括以下步驟:
[0034]步驟S201、轉(zhuǎn)發(fā)設(shè)備將通過自身的第一端口接收到的虛擬機(jī)發(fā)送的注冊信息上報給控制器。
[0035]例如圖3中,轉(zhuǎn)發(fā)設(shè)備通過自身的第一端口 Pl與虛擬機(jī)連接,虛擬機(jī)在進(jìn)行注冊時,會將攜帶該虛擬機(jī)的IP地址和MAC地址的注冊信息通過轉(zhuǎn)發(fā)設(shè)備上報給控制器。
[0036]步驟S202、轉(zhuǎn)發(fā)設(shè)備接收控制器下發(fā)的針對第一端口的第一過濾流表,該第一過濾流表包含注冊信息中虛擬機(jī)的IP地址和MAC地址。
[0037]控制器獲得攜帶該虛擬機(jī)的IP地址和MAC地址的注冊信息后,針對轉(zhuǎn)發(fā)設(shè)備上與該虛擬機(jī)連接的第一端口 Pl,生成包含該虛擬機(jī)的IP地址和MAC地址的第一過濾流表,并將該第一過濾流表下發(fā)到第一端口 Pl。需要注意的是,控制器下發(fā)的包含該虛擬機(jī)的IP地址和MAC地址的第一過濾流表是不老化的流表。
[0038]步驟S203、轉(zhuǎn)發(fā)設(shè)備在通過第一端口接收到ARP報文時,判斷ARP報文中攜帶的源IP地址和源MAC地址是否均與第一過濾流表中的IP地址和MAC地址一致;
[0039]虛擬機(jī)進(jìn)行注冊后,當(dāng)需要與其他虛擬機(jī)進(jìn)行通信時,向與該虛擬機(jī)連接的轉(zhuǎn)發(fā)設(shè)備發(fā)送ARP報文,轉(zhuǎn)發(fā)設(shè)備在第一端口接收到ARP報文時,判斷該ARP報文中攜帶的源IP地址和源MAC地址是否均與控制器下發(fā)到該第一端口的第一過濾流表中的IP地址和MAC地址一致。
[0040]若判斷結(jié)果為是,則執(zhí)行下述步驟S204。
[0041]步驟S204、將ARP報文發(fā)送給控制器。
[0042]也就是說,如果ARP報文中的源IP地址和源MAC地址與第一過濾流表中的IP地址和MAC地址一致,則認(rèn)為該ARP報文是虛擬機(jī)發(fā)送的合法ARP報文,轉(zhuǎn)發(fā)設(shè)備將該ARP報文上報給控制器。
[0043]優(yōu)選地,在這種情況下,轉(zhuǎn)發(fā)設(shè)備可以根據(jù)第一過濾流表中的執(zhí)行動作實(shí)現(xiàn)該ARP報文的上報,例如,第一過濾流表中的執(zhí)行動作為執(zhí)行其他流表中的操作后上報,此時,轉(zhuǎn)發(fā)設(shè)備需要對該ARP報文按照其他流表中的操作處理之后,再上報給控制器。
[0044]如果該ARP報文中的源IP地址與第一過濾流表中的IP地址不一致,且該ARP報文中的源MAC地址與第一過濾流表中的MAC地址不一致;或者,
[0045]該ARP報文中的源IP地址與第一過濾流表中的IP地址一致,但該ARP報文中的源MAC地址與第一過濾流表中的MAC地址不一致;或者,
[0046]該ARP報文中的源IP地址與第一過濾流表中的IP地址不一致,但該ARP報文中的源MAC地址與第一過濾流表中的MAC地址一致,則執(zhí)行下述步驟S205。
[0047]步驟S205、將ARP報文丟棄。
[0048]也就是說,除判斷結(jié)果為是之外的其他幾種情況,均視為該ARP報文是非法ARP報文,轉(zhuǎn)發(fā)設(shè)備將該ARP報文丟棄,以避免過多占用控制器的帶寬資源。
[0049]優(yōu)選地,在這種情況下,轉(zhuǎn)發(fā)設(shè)備可以根據(jù)第一過濾流表中的執(zhí)行動作實(shí)現(xiàn)該ARP報文的丟棄,例如,第一過濾流表中的執(zhí)行動作為執(zhí)行默認(rèn)丟棄流表中的丟棄操作,此時,轉(zhuǎn)發(fā)設(shè)備按照默認(rèn)丟棄流表的指