一種通信方法、交換機(jī)、控制器及通信系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種通信方法,該方法通過將同一網(wǎng)段和不同網(wǎng)段的主機(jī)通過OpenFlow交換機(jī)和SDN控制器互連后,OpenFlow交換機(jī)接收第一主機(jī)發(fā)送的目的IP地址為虛擬網(wǎng)關(guān)的IP地址、目的MAC地址為虛擬網(wǎng)關(guān)的MAC地址的第一PING請(qǐng)求報(bào)文之后,將所述PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器,之后將所述SDN控制器下發(fā)的PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。這樣,能夠在一次配置之后,實(shí)現(xiàn)將OpenFlow交換機(jī)和SDN控制器作為幾個(gè)網(wǎng)段的交換機(jī)的共同的默認(rèn)網(wǎng)關(guān),實(shí)現(xiàn)網(wǎng)關(guān)之間的互連通信,并且進(jìn)一步可以實(shí)現(xiàn)不同網(wǎng)段的主機(jī)之間的通信。
【專利說(shuō)明】 一種通信方法、交換機(jī)、控制器及通信系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,具體涉及一種通信方法及實(shí)現(xiàn)該種通信方法的交換機(jī)、控制器和通信系統(tǒng)。
【背景技術(shù)】
[0002]網(wǎng)關(guān)(Gateway)又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。網(wǎng)關(guān)在網(wǎng)絡(luò)層以上實(shí)現(xiàn)網(wǎng)絡(luò)互連的網(wǎng)絡(luò)互連設(shè)備。網(wǎng)關(guān),既可以用于廣域網(wǎng)互連,也可以用于局域網(wǎng)互連。網(wǎng)關(guān)是一種充當(dāng)轉(zhuǎn)換重任的計(jì)算機(jī)系統(tǒng)或設(shè)備,用于在使用相同或不同的通信協(xié)議、數(shù)據(jù)格式或語(yǔ)言,甚至體系結(jié)構(gòu)完全不同的兩種系統(tǒng)之間。默認(rèn)網(wǎng)關(guān)是指局域網(wǎng)中的一個(gè)互聯(lián)網(wǎng)協(xié)議(InternetProtocol, IP)子網(wǎng)的默認(rèn)出口網(wǎng)關(guān)。該子網(wǎng)中的任意一臺(tái)主機(jī)如果要與其他IP網(wǎng)段的主機(jī)通信,則將數(shù)據(jù)包發(fā)給默認(rèn)網(wǎng)關(guān),由這個(gè)網(wǎng)關(guān)來(lái)處理數(shù)據(jù)包和轉(zhuǎn)發(fā)數(shù)據(jù)包?,F(xiàn)有技術(shù)中,通常需要配置默認(rèn)網(wǎng)關(guān)的IP后才能正常的與其他IP網(wǎng)段的主機(jī)通信和訪問互聯(lián)網(wǎng)。之后,移動(dòng)終端都是通過動(dòng)態(tài)主機(jī)分配協(xié)議(Dynamic Host Configurat1n Protocol,DHCP)協(xié)議自動(dòng)獲取和配置其自身的IP和網(wǎng)關(guān)地址。
[0003]傳統(tǒng)3層IP網(wǎng)絡(luò)的默認(rèn)網(wǎng)關(guān)可以配置在路由器或一臺(tái)物理主機(jī)上,即由路由器或主機(jī)充當(dāng)了默認(rèn)網(wǎng)關(guān)的角色。一個(gè)IP網(wǎng)段的主機(jī)通過一到多臺(tái)的傳統(tǒng)2層交換機(jī)連接到該路由器或物理主機(jī),并在該路由器或主機(jī)上配置一到多條靜態(tài)路由(小型網(wǎng)絡(luò))或動(dòng)態(tài)路由協(xié)議(大型復(fù)雜網(wǎng)絡(luò)),以實(shí)現(xiàn)該IP子網(wǎng)與其他網(wǎng)段/外網(wǎng)的通信。不同子網(wǎng)之間的主機(jī)經(jīng)由各自的默認(rèn)網(wǎng)關(guān)并依照這些網(wǎng)關(guān)/路由器上配置的靜態(tài)路由或動(dòng)態(tài)路由協(xié)議通信。
[0004]現(xiàn)有技術(shù)的方案要求網(wǎng)絡(luò)管理員手動(dòng)的配置所有的靜態(tài)路由到I到2臺(tái)的路由器上,主機(jī)或接入層交換機(jī)的變動(dòng)都會(huì)造成靜態(tài)路由的重新配置。例如,如果一臺(tái)主機(jī)的接入點(diǎn)變動(dòng),即其接入點(diǎn)從一臺(tái)以太網(wǎng)交換機(jī)的非VLAN端口變動(dòng)到另外一個(gè)虛擬局域網(wǎng)(Virtual Local Area Network,VLAN)端口(或該臺(tái)以太網(wǎng)交換機(jī)的VLAN端口發(fā)生變動(dòng)),則該主機(jī)的IP和默認(rèn)網(wǎng)關(guān)都要做相應(yīng)的變更(修改為新端口所在VLAN所屬的網(wǎng)段和網(wǎng)關(guān))。如果一條靜態(tài)路由的下一跳發(fā)生了改變,則需要登錄路由器并在命令行下修改原先的靜態(tài)路由規(guī)則。此外,園區(qū)網(wǎng)中每增加一個(gè)IP子網(wǎng),都要在路由器上預(yù)先新增相應(yīng)的靜態(tài)路由和物理端口,并增加VLAN或擴(kuò)充以太網(wǎng)交換機(jī)設(shè)備,使得網(wǎng)絡(luò)部署的復(fù)雜度和成本增力口?,F(xiàn)有技術(shù)的方案,存在的問題是,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化時(shí),使得網(wǎng)絡(luò)的部署和遷移很不靈活、配置繁瑣、可維護(hù)難度高、可擴(kuò)展性低的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種通信方法,以通過SDN控制器和OpenFlow交換機(jī)組合后作為虛擬的默認(rèn)網(wǎng)關(guān)實(shí)現(xiàn)不同網(wǎng)段之間主機(jī)的互連通信,并且在網(wǎng)絡(luò)拓?fù)浒l(fā)生改變時(shí),不需要手動(dòng)進(jìn)行逐個(gè)配置修改。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例第一方面提供了一種通信方法,一種通信方法,所述方法包括:
[0007]OpenFlow交換機(jī)接收第一主機(jī)發(fā)送的第一因特網(wǎng)包探索器PING請(qǐng)求報(bào)文,所述第一 PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段;
[0008]將所述PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器;
[0009]接收所述SDN控制器下發(fā)的PING回復(fù)報(bào)文;
[0010]將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
[0011]第二方面,本發(fā)明實(shí)施例提供了一種通信方法,該包括:
[0012]接收OpenFlow交換機(jī)發(fā)送的第一 PING請(qǐng)求報(bào)文,所述第一 PING請(qǐng)求報(bào)文由第一主機(jī)生成后發(fā)送給所述OpenFlow交換機(jī),所述第一 PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段;
[0013]對(duì)所述第一 PING請(qǐng)求報(bào)文進(jìn)行流表匹配通過后,生成PING回復(fù)報(bào)文;
[0014]將所述PING回復(fù)報(bào)文下發(fā)給所述OpenFlow交換機(jī),以便于所述OpenFlow交換機(jī)將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
[0015]第三方面,本發(fā)明實(shí)施例提供了一種交換機(jī),所述交換機(jī)包括:
[0016]第一接收模塊,用于接收第一主機(jī)發(fā)送的第一因特網(wǎng)包探索器PING請(qǐng)求報(bào)文,所述第一PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述交換機(jī)和與該交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段;
[0017]第一發(fā)送模塊,用于將所述PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器;
[0018]第二接收模塊,用于接收所述SDN控制器下發(fā)的PING回復(fù)報(bào)文;
[0019]第二發(fā)送模塊,用于將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
[0020]第四方面,本發(fā)明實(shí)施例提供了一種控制器,所述控制器包括:
[0021]第一接收模塊,用于接收OpenFlow交換機(jī)發(fā)送的第一 PING請(qǐng)求報(bào)文,所述第一PING請(qǐng)求報(bào)文由第一主機(jī)生成后發(fā)送給所述OpenFlow交換機(jī),所述第一 PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段;
[0022]報(bào)文生成模塊,用于對(duì)所述第一 PING請(qǐng)求報(bào)文進(jìn)行流表匹配通過后,生成PING回復(fù)報(bào)文;
[0023]第一發(fā)送模塊,用于將所述PING回復(fù)報(bào)文下發(fā)給所述OpenFlow交換機(jī),以便于所述OpenFlow交換機(jī)將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
[0024]第五方面,本發(fā)明實(shí)施例提供了一種通信系統(tǒng),該系統(tǒng)包括本發(fā)明實(shí)施例第三方面提供的交換機(jī)和本發(fā)明實(shí)施例第四方面提供的控制器。
[0025]本發(fā)明實(shí)施例通過將同一網(wǎng)段和不同網(wǎng)段的主機(jī)通過OpenFlow交換機(jī)和SDN控制器互連后,OpenFlow交換機(jī)接收第一主機(jī)發(fā)送的目的IP地址為虛擬網(wǎng)關(guān)的IP地址、目的MAC地址為虛擬網(wǎng)關(guān)的MAC地址的第一 PING請(qǐng)求報(bào)文之后,將所述PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器,之后將所述SDN控制器下發(fā)的PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。這樣,能夠在一次配置之后,實(shí)現(xiàn)將OpenFlow交換機(jī)和SDN控制器作為幾個(gè)網(wǎng)段的交換機(jī)的共同的默認(rèn)網(wǎng)關(guān),實(shí)現(xiàn)網(wǎng)關(guān)之間的互連通信。
【專利附圖】
【附圖說(shuō)明】
[0026]圖1為本發(fā)明實(shí)施例提供的一種通信系統(tǒng)的架構(gòu)圖;
[0027]圖2為本發(fā)明實(shí)施例提供的一種通信方法的流程圖;
[0028]圖3是本發(fā)明實(shí)施例中控制器對(duì)ICMP報(bào)文進(jìn)行處理的流程圖;
[0029]圖4是本發(fā)明實(shí)施例中控制器對(duì)ARP報(bào)文進(jìn)行處理的流程圖;
[0030]圖5是本發(fā)明實(shí)施例中提供的一種通信方法另一種應(yīng)用場(chǎng)景的架構(gòu)圖;
[0031]圖6是本發(fā)明實(shí)施例中控制器在跨網(wǎng)段通信時(shí),對(duì)PACKET_IN類型報(bào)文進(jìn)行處理的流程圖;
[0032]圖7是本發(fā)明實(shí)施例提供的交換機(jī)的結(jié)構(gòu)圖;
[0033]圖8是本發(fā)明實(shí)施例提供的控制器的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0034]本發(fā)明實(shí)施例提供了一種通信方法、交換機(jī)控制器和通信系統(tǒng),以下結(jié)合說(shuō)明書附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0035]圖1是本發(fā)明實(shí)施例提供的通信方法的一種典型的應(yīng)用場(chǎng)景的架構(gòu)圖,但是應(yīng)當(dāng)理解的是,本發(fā)明實(shí)施例并不局限于圖1所示的架構(gòu)。本發(fā)明實(shí)施例中的通信系統(tǒng)包括軟件定義網(wǎng)絡(luò)(software defined network, SDN)控制器、
[0036]OpenFlow交換機(jī)以及部署在應(yīng)用環(huán)境中的主機(jī)。其中,一臺(tái)SDN控制器可以通過管理通路連接一個(gè)或者一個(gè)以上的OpenFlow交換機(jī),一臺(tái)OpenFlow交換機(jī)進(jìn)一步通過不同的端口分別連接若干臺(tái)以太網(wǎng)交換機(jī),每臺(tái)交換機(jī)再連接若干個(gè)主機(jī),構(gòu)成數(shù)據(jù)通路。
[0037]進(jìn)一步地,SDN控制器承擔(dān)OpenFlow控制器的角色,并支持OpenFlow協(xié)議,其可以具有一個(gè)RJ-45網(wǎng)絡(luò)接口,用于連接管理通路中的OpenFlow交換機(jī),用戶可以預(yù)先通過管理軟件配置SDN控制器所管理的一個(gè)或多個(gè)網(wǎng)段,以及作為虛擬網(wǎng)關(guān)時(shí)的網(wǎng)關(guān)介質(zhì)接入控制(Media Access Contro, MAC)地址等。OpenFlow交換機(jī)可以具有一個(gè)RJ-45管理端口,用于連接到管理網(wǎng)絡(luò),并最終與SDN控制器相連。上述接口型號(hào),僅僅作為舉例,不應(yīng)理解為對(duì)本發(fā)明的限制。
[0038]所述SDN控制器運(yùn)行有地址解析協(xié)議(Address Resolut1n Protocol, ARP)管理器用于處理OpenFlow交換機(jī)上送上來(lái)的ARP請(qǐng)求(Request)和回復(fù)(Reply)報(bào)文、并負(fù)責(zé)生成和發(fā)送ARP Request和ARP R印Iy報(bào)文。而所述SDN控制器上運(yùn)行的IP層通信管理器,負(fù)責(zé)創(chuàng)建、維護(hù)和刪除IP網(wǎng)段和網(wǎng)關(guān)、回復(fù)針對(duì)網(wǎng)關(guān)的因特網(wǎng)包探測(cè)器(Packet InternetGrope,PING)(也就是ICMP Echo Request)報(bào)文、負(fù)責(zé)不同網(wǎng)段的2臺(tái)主機(jī)之間的通信。所有主機(jī)發(fā)出的ARP類型的報(bào)文都會(huì)由OpenFlow交換機(jī)產(chǎn)生PACKET_IN事件上送到SDN控制器,SDN控制器再以PACKET_OUT報(bào)文通過管理網(wǎng)直接發(fā)送到數(shù)據(jù)網(wǎng)中相關(guān)的主機(jī)。
[0039]在預(yù)配置動(dòng)作完成后,SDN控制器可以通過管理通路向OpenFlow交換機(jī)下發(fā)OpenFlow流規(guī)則,該流規(guī)則也可以被稱之為策略流表,滿足該策略流表匹配項(xiàng)的報(bào)文都會(huì)被上送到SDN控制器,由SDN控制器進(jìn)行相應(yīng)的處理。該策略流表可以是FL0W_M0D報(bào)文,策略流表的輸出動(dòng)作為上送控制器,任何目的IP匹配到這些策略流表中匹配項(xiàng)的的流都會(huì)上送SDN控制器。
[0040]也就是說(shuō),SDN控制器向OpenFlow交換機(jī)下發(fā)具有匹配項(xiàng)的策略流表,滿足匹配項(xiàng)的報(bào)文將被所述OpenFlow交換機(jī)上送到SDN控制器。
[0041]例如,運(yùn)行在SDN控制器上的ARP管理器自動(dòng)下發(fā)針對(duì)ARP類型報(bào)文的流表規(guī)則,針對(duì)網(wǎng)關(guān)和跨網(wǎng)段通信的ARP報(bào)文,其動(dòng)作為上傳控制器。
[0042]再例如,運(yùn)行在SDN控制器上的IP通信管理器下發(fā)另一流表規(guī)則,針對(duì)目的IP為該IP子網(wǎng)和/或目的MAC地址為網(wǎng)關(guān)MAC地址的數(shù)據(jù)報(bào)文,匹配的相應(yīng)動(dòng)作也為上送至控制器。
[0043]基于以上的應(yīng)用架構(gòu),本發(fā)明實(shí)施例提供了一種通信方法,該方法可以應(yīng)用于圖1所不的通信系統(tǒng),但不局限于圖1所不的應(yīng)用系統(tǒng),以圖1中的任意一臺(tái)OpenFlow交換機(jī)作為執(zhí)行主體,如圖2所示,本發(fā)明實(shí)施例可以包括:
[0044]201,OpenFlow交換機(jī)接收第一主機(jī)發(fā)送的第一因特網(wǎng)包探索器PING請(qǐng)求報(bào)文;
[0045]在該步驟中,所述第一 PING請(qǐng)求報(bào)文由第一主機(jī)生成,其目的IP地址為虛擬網(wǎng)關(guān)的IP地址,目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址。通常在第一 PING請(qǐng)求報(bào)文先經(jīng)過普通的以太網(wǎng)交換機(jī),以太網(wǎng)交換機(jī)再通過相應(yīng)的端口將第一 PING請(qǐng)求報(bào)文發(fā)送到OpenFlow交換機(jī)上相應(yīng)的端口。
[0046]所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段。
[0047]在正常的使用狀態(tài)中,主機(jī)的ARP緩存中已經(jīng)緩存了默認(rèn)網(wǎng)關(guān)的MAC地址,因此能夠順利構(gòu)建PING報(bào)文。
[0048]OpenFlow交換機(jī)接收到第一 PING請(qǐng)求報(bào)文,之后,進(jìn)行流表匹配之后,符合相應(yīng)的匹配項(xiàng),則執(zhí)行步驟202,如果不符合,則將報(bào)文丟棄。
[0049]202,將所述第一 PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器;
[0050]在該步驟中,OpenFlow交換機(jī)可以將第一 PING請(qǐng)求報(bào)文構(gòu)建為PACKET_IN類型報(bào)文,上傳給SDN控制器。
[0051]如圖3所示,SDN控制器接收到PACKET_IN類型報(bào)文之后,判斷PACKET_IN類型報(bào)文中的負(fù)載是否為ICMP Echo Request報(bào)文,如果是,則進(jìn)一步查看該ICMP Echo Request報(bào)文的目的IP地址是否屬于預(yù)配置好的該SDN控制器上維護(hù)的一個(gè)網(wǎng)關(guān)的IP地址,反之,則不進(jìn)行處理。
[0052]如果ICMP Echo Request報(bào)文的目的IP地址屬于預(yù)配置好的該SDN控制器上維護(hù)的一個(gè)網(wǎng)關(guān)的IP地址,則進(jìn)一步構(gòu)造ICMP Echo R印Iy報(bào)文,該ICMP Echo R印Iy報(bào)文作為PING回復(fù)報(bào)文,其中攜帶的源MAC地址可以為SDN控制器自身的MAC地址,源IP地址為網(wǎng)關(guān)IP地址,目的MAC地址為ICMP Echo Request報(bào)文的源MAC地址,目的IP地址為ICMPEcho Request報(bào)文的源IP地址。
[0053]SDN控制器構(gòu)建ICMP Echo R印Iy報(bào)文完成后,通過PACKET_0UT方式將ICMP EchoReply報(bào)文發(fā)送到ICMP Echo Request報(bào)文的來(lái)源端口,進(jìn)而下發(fā)給OpenFlow交換機(jī)。
[0054]203,接收所述SDN控制器下發(fā)的PING回復(fù)報(bào)文;
[0055]204,將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
[0056]當(dāng)?shù)谝恢鳈C(jī)接收到來(lái)自于SDN控制器的PING回復(fù)報(bào)文之后,即可證明,主機(jī)與默認(rèn)網(wǎng)關(guān)之間已經(jīng)完成一輪Ping通信,兩者建立了通信鏈路。
[0057]在另一種實(shí)施例中,例如,一臺(tái)主機(jī)首次連接到一個(gè)網(wǎng)段中的一臺(tái)交換機(jī)之后,該主機(jī)需要與默認(rèn)網(wǎng)關(guān)之間建立通信鏈路,此時(shí),該主機(jī)的ARP緩存中并不具有默認(rèn)網(wǎng)關(guān)的MAC地址,因此無(wú)法構(gòu)建PING請(qǐng)求報(bào)文。
[0058]在該種情況下,主機(jī)先生成ARP請(qǐng)求報(bào)文,請(qǐng)求獲取默認(rèn)網(wǎng)關(guān)的MAC地址,發(fā)送給OpenFlow交換機(jī),OpenFlow交換機(jī)接收第一主機(jī)發(fā)送的地址解析協(xié)議ARP請(qǐng)求報(bào)文;
[0059]更具體的,第一主機(jī)生成一個(gè)ARP請(qǐng)求報(bào)文時(shí),該ARP請(qǐng)求報(bào)文的目的MAC地址可以為FF-FF-FF-FF-FF-FF的以太網(wǎng)廣播幀,目的IP字段為網(wǎng)關(guān)的IP地址,與第一主機(jī)相連的接入層的以太網(wǎng)交換機(jī)收到該以太網(wǎng)廣播幀之后,將其發(fā)送給除來(lái)源端口之外的全部端口,其中包括與OpenFlow交換機(jī)相連的端口,以使得OpenFlow交換機(jī)收到所述ARP請(qǐng)求報(bào)文。
[0060]OpenFlow交換機(jī)接收到ARP請(qǐng)求報(bào)文之后,根據(jù)預(yù)配置階段SDN控制器下發(fā)的流表規(guī)則,進(jìn)行匹配,匹配完成后,可以按照PACKET_IN事件的方式將所述ARP請(qǐng)求報(bào)文發(fā)送給所述SDN控制器;
[0061]參考圖4,SDN控制器收到PACKET_IN事件之后,判斷接收到的報(bào)文是否為ARP報(bào)文,在接收到的報(bào)文是ARP報(bào)文的情況下,進(jìn)一步判斷ARP報(bào)文是ARP請(qǐng)求(ARP request)包還是ARP回復(fù)報(bào)文(ARP reply)。
[0062]如果是ARP回復(fù)報(bào)文,則SDN控制器從中提取出MAC地址和IP地址,將MAC/IP映射關(guān)系更新到ARP管理器的ARP緩存表。進(jìn)一步,更新MAC和PACKET_IN來(lái)源端口的映射關(guān)系到前向數(shù)據(jù)庫(kù)(Forwarding DataBase,F(xiàn)DB)表,也就是MAC地址轉(zhuǎn)發(fā)表中,最后通知IP通信模塊遍歷其維護(hù)的一個(gè)IP報(bào)文隊(duì)列,通過PACKET_0UT事件轉(zhuǎn)發(fā)出目的IP匹配該MAC/IP的報(bào)文,并相應(yīng)的安裝流表。
[0063]如果是ARP請(qǐng)求報(bào)文,則SDN控制器進(jìn)一步查看ARP請(qǐng)求報(bào)文中的目的IP地址是否屬于SDN控制器的維護(hù)范圍,如果是,則構(gòu)造ARP回復(fù)報(bào)文,構(gòu)造的ARP回復(fù)報(bào)文中攜帶默認(rèn)網(wǎng)關(guān)的MAC地址,例如,優(yōu)選的,可以選擇SDN控制器自身的MAC地址作為默認(rèn)網(wǎng)關(guān)的MAC地址,也可以選擇構(gòu)建一個(gè)唯一的地址作為默認(rèn)網(wǎng)關(guān)的MAC地址,之后通過PACKET_OUT事件的方式下發(fā)給報(bào)文的來(lái)源端口,進(jìn)一步下發(fā)給OpenFlow交換機(jī)。
[0064]OpenFlow交換機(jī)接收所述SDN控制器下發(fā)的ARP回應(yīng)報(bào)文,該ARP回應(yīng)報(bào)文中攜帶所述虛擬網(wǎng)關(guān)的MAC地址,進(jìn)一步將所述ARP回應(yīng)報(bào)文下發(fā)給所述第一主機(jī),從而使得第一主機(jī)獲取到默認(rèn)網(wǎng)關(guān)的MAC地址,可以構(gòu)建PING請(qǐng)求報(bào)文。執(zhí)行圖2所示的構(gòu)建與默認(rèn)網(wǎng)關(guān)的通信鏈路的動(dòng)作。
[0065]進(jìn)一步地,在另一種實(shí)施例中,可參考圖5所示的架構(gòu),當(dāng)位于第一網(wǎng)段的第一主機(jī)A需要與位于第二網(wǎng)段的第二主機(jī)B進(jìn)行通信時(shí),在第一主機(jī)A與默認(rèn)網(wǎng)關(guān)建立了通信鏈路之后,第一主機(jī)A構(gòu)造第二 PING請(qǐng)求報(bào)文,該報(bào)文的目的地址為第二主機(jī)B的IP地址,目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,OpenFlow交換機(jī)接收所述第一主機(jī)發(fā)送的第二PING請(qǐng)求報(bào)文。
[0066]OpenFlow交換機(jī)按照預(yù)配置的流表,將所述第二 PING請(qǐng)求報(bào)文上傳至所述SDN控制器;所述SDN控制器對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配,并且所述SDN控制器對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配成功后,對(duì)所述第二 PING請(qǐng)求報(bào)文的目的MAC地址修改為所述第二主機(jī)的MAC地址,封裝為第三PING報(bào)文之后,將所述第三PING報(bào)文下發(fā)給所述第二主機(jī),建立所述第一主機(jī)到所述第二主機(jī)之間的通信鏈路。
[0067]可參考圖6,作為一種可選的實(shí)施例,SDN控制器接收到一個(gè)以PACKET_IN事件方式接收到的報(bào)文后,判斷該報(bào)文的負(fù)載是否為第二 PING請(qǐng)求報(bào)文,例如IPV4報(bào)文,如果不是,則不作處理。
[0068]如果是,則查看IP報(bào)文中的目的IP地址是否屬于該SDN控制器維護(hù)的一個(gè)IP子網(wǎng),如果不是,則不作處理,反之,則查詢ARP管理器,查詢目的IP地址對(duì)應(yīng)的主機(jī)的MAC地址,也就是第二主機(jī)B的地址。
[0069]如果能夠查詢到所需的第二主機(jī)的MAC地址,則修改IP報(bào)文的目的MAC地址為查詢到的第二主機(jī)的MAC地址,之后通過PACKET_out事件將修改后的IP報(bào)文下發(fā)到目的IP地址所在的王機(jī)端口。
[0070]如果不能查詢到所需的第二主機(jī)的MAC地址,則構(gòu)造ARP請(qǐng)求報(bào)文,其源MAC地址為SDN控制器自身的MAC地址,源IP地址可以為0.0.0.0,以查詢第二主機(jī)的MAC地址,直至查詢到第二主機(jī)的MAC地址后,將其通過PACKET_out事件將修改后的IP報(bào)文下發(fā)到目的IP地址所在的主機(jī)端口。
[0071]將修改后的IP報(bào)文下發(fā)到目的IP地址所在的主機(jī)端口,之后,SDN控制器檢查已經(jīng)下發(fā)的流表,如果該報(bào)文的目的地址匹配之前下發(fā)的流表,則可以通過OSPF算法,算出源IP地址和目的IP地址之間的最短路徑,并在最短路徑上的每臺(tái)OpenFlow交換機(jī)上下發(fā)一條針對(duì)目的IP的流表,每條流表的輸出端口為最短路徑上相應(yīng)的下一個(gè)端口,且在路徑上最后一臺(tái)OpenFlow交換機(jī)上的流表的輸出動(dòng)作上增加修改IP的目的MAC地址的動(dòng)作,也就是將原先的目的MAC地址修改為目的IP地址所在主機(jī)的MAC地址。至此,第一主機(jī)到第二主機(jī)之間的單向通信鏈路已經(jīng)建立。
[0072]如果需要建立第一主機(jī)和第二主機(jī)之間的雙向通信鏈路,則需要第二主機(jī)執(zhí)行與第一主機(jī)相同的動(dòng)作,建立第二主機(jī)與第一主機(jī)之間的單向通信鏈路,不多贅述。
[0073]通過上述的實(shí)施例,可以實(shí)現(xiàn),由一臺(tái)OpenFlow交換機(jī)作為匯聚層/核心層的交換機(jī),所有的默認(rèn)網(wǎng)關(guān)和IP層通信功能均由控制器提供和OpenFlow交換機(jī)實(shí)現(xiàn)。相比于,傳統(tǒng)網(wǎng)絡(luò)的園區(qū)網(wǎng)的3層IP通信方案要求在一個(gè)接入層或匯聚層的以太網(wǎng)交換機(jī)劃分多個(gè)多個(gè)VLAN,每個(gè)VLAN對(duì)應(yīng)一個(gè)IP子網(wǎng),這種方式操作繁瑣且容易出錯(cuò)。本實(shí)施例則無(wú)需配置VLAN即可在接入層的一臺(tái)以太網(wǎng)交換機(jī)內(nèi)規(guī)劃多個(gè)IP子網(wǎng),且多個(gè)IP子網(wǎng)的默認(rèn)網(wǎng)關(guān)可以共享一個(gè)OpenFlow交換機(jī)的物理端口,極大的提高了網(wǎng)絡(luò)規(guī)劃和部署的靈活性、提高了的物理網(wǎng)絡(luò)資源的利用率并節(jié)省了網(wǎng)絡(luò)部署的成本。
[0074]相應(yīng)的,本發(fā)明實(shí)施例提供了一種交換機(jī),該交換機(jī)可以是圖1所示的OpenFlow交換機(jī),圖7是該實(shí)施例的結(jié)構(gòu)圖,由圖7可見,本實(shí)施例提供的交換機(jī)可以包括:
[0075]第一接收模塊701,用于接收第一主機(jī)發(fā)送的第一因特網(wǎng)包探索器PING請(qǐng)求報(bào)文,所述第一 PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述交換機(jī)和與該交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段;
[0076]第一發(fā)送模塊702,用于將所述PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器;
[0077]第二接收模塊703,用于接收所述SDN控制器下發(fā)的PING回復(fù)報(bào)文;
[0078]第二發(fā)送模塊704,用于將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
[0079]在一種可選的實(shí)施例中,所述交換機(jī)還包括:
[0080]第三接收模塊,用于接收第一主機(jī)發(fā)送的地址解析協(xié)議ARP請(qǐng)求報(bào)文,該ARP請(qǐng)求報(bào)文用于獲取所述虛擬網(wǎng)關(guān)的MAC地址;
[0081]第三發(fā)送模塊,用于將所述ARP請(qǐng)求報(bào)文發(fā)送給所述SDN控制器;
[0082]第四接收模塊,用于接收所述SDN控制器下發(fā)的ARP回應(yīng)報(bào)文,該ARP回應(yīng)報(bào)文中攜帶所述虛擬網(wǎng)關(guān)的MAC地址;
[0083]第四發(fā)送模塊,用于將所述ARP回應(yīng)報(bào)文下發(fā)給所述第一主機(jī)。
[0084]在另一種可選的實(shí)施例中,所述交換機(jī)還可以包括:
[0085]第五接收模塊,用于接收所述第一主機(jī)發(fā)送的第二 PING請(qǐng)求報(bào)文,所述第二 PING請(qǐng)求報(bào)文的目的地址為第二主機(jī)的IP地址,所述第二 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述第一主機(jī)和第二主機(jī)位于不同的IP網(wǎng)段;
[0086]第五發(fā)送模塊,用于將所述第二 PING請(qǐng)求報(bào)文上傳至所述SDN控制器,以便于所述SDN控制器對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配,并且所述SDN控制器對(duì)所述第二PING請(qǐng)求報(bào)文進(jìn)行流表匹配成功后,對(duì)所述第二 PING請(qǐng)求報(bào)文的目的MAC地址修改為所述第二主機(jī)的MAC地址,封裝為第三PING報(bào)文之后,將所述第三PING報(bào)文下發(fā)給所述第二主機(jī),建立所述第一主機(jī)到所述第二主機(jī)之間的通信鏈路。
[0087]在另一種可選的實(shí)施例中,所述交換機(jī)還可以包括:
[0088]第六接收模塊,用于接收SDN控制器下發(fā)的策略流表,所述策略流表具有匹配項(xiàng),滿足該匹配項(xiàng)的報(bào)文將被所述OpenFlow交換機(jī)上送到SDN控制器。
[0089]通過上述實(shí)施例,可以實(shí)現(xiàn)與SDN控制器進(jìn)行配合,實(shí)現(xiàn)默認(rèn)網(wǎng)關(guān)的功能。在一次配置之后,實(shí)將OpenFlow交換機(jī)和SDN控制器作為幾個(gè)網(wǎng)段的交換機(jī)的共同的默認(rèn)網(wǎng)關(guān),實(shí)現(xiàn)網(wǎng)關(guān)之間的互連通信。
[0090]相應(yīng)的,本發(fā)明實(shí)施例提供了一種控制器,該控制器可以是圖1所示的SDN控制器,圖8是該實(shí)施例的結(jié)構(gòu)圖,由圖8可見,本實(shí)施例提供的控制器可以包括:
[0091]第一接收模塊801,用于接收OpenFlow交換機(jī)發(fā)送的第一 PING請(qǐng)求報(bào)文,所述第一PING請(qǐng)求報(bào)文由第一主機(jī)生成后發(fā)送給所述OpenFlow交換機(jī),所述第一 PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段;
[0092]報(bào)文生成模塊802,用于對(duì)所述第一 PING請(qǐng)求報(bào)文進(jìn)行流表匹配通過后,生成PING回復(fù)報(bào)文;
[0093]第一發(fā)送模塊803,用于將所述PING回復(fù)報(bào)文下發(fā)給所述OpenFlow交換機(jī),以便于所述OpenFlow交換機(jī)將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
[0094]在一種可選的實(shí)施例中,所述控制器還可以包括:
[0095]第二接收模塊,用于接收所述OpenFlow交換機(jī)發(fā)送的ARP請(qǐng)求報(bào)文,所述ARP請(qǐng)求報(bào)文是所述第一主機(jī)發(fā)送給所述OpenFlow交換機(jī),該ARP請(qǐng)求報(bào)文用于獲取所述虛擬網(wǎng)關(guān)的MAC地址;
[0096]確定模塊,用于確定所述虛擬網(wǎng)關(guān)的MAC地址;
[0097]第二發(fā)送模塊,用于向所述OpenFlow交換機(jī)下發(fā)ARP回應(yīng)報(bào)文,該ARP回應(yīng)報(bào)文中攜帶所述虛擬網(wǎng)關(guān)的MAC地址,以便于所述OpenFlow交換機(jī)將所述ARP回應(yīng)報(bào)文下發(fā)給所述第一主機(jī)。
[0098]在另一種可選的實(shí)施例中,所述控制器還可以包括:
[0099]第三接收模塊,用于接收所述OpenFlow交換機(jī)發(fā)送的第二 PING請(qǐng)求報(bào)文,所述第二PING請(qǐng)求報(bào)文的目的地址為第二主機(jī)的IP地址,所述第二 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述第一主機(jī)和第二主機(jī)位于不同的IP網(wǎng)段;
[0100]匹配模塊,用于對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配;
[0101]封裝模塊,用于對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配成功后,對(duì)所述第二 PING請(qǐng)求報(bào)文的目的MAC地址修改為所述第二主機(jī)的MAC地址,封裝為第三PING報(bào)文;
[0102]第三發(fā)送模塊,用于將所述第三PING報(bào)文下發(fā)給所述第二主機(jī),建立所述第一主機(jī)到所述第二主機(jī)之間的通信鏈路。
[0103]在又一種實(shí)施例中,所述控制器還可以包括:
[0104]路徑確定模塊,用于確定所述第一主機(jī)和所述第二主機(jī)之間的最短通信路徑;
[0105]流表下發(fā)模塊,用于向所述最短通信路徑上的每臺(tái)交換機(jī)下發(fā)目的IP地址與所述第二主機(jī)IP地址匹配的流表。
[0106]可選的,所述流表下發(fā)模塊還用于向所述OpenFlow交換機(jī)下發(fā)策略流表,所述策略流表具有匹配項(xiàng),滿足該匹配項(xiàng)的報(bào)文將被所述OpenFlow交換機(jī)上送到SDN控制器。
[0107]通過本實(shí)施例提供的控制器,可以與交換機(jī)進(jìn)行配合,實(shí)現(xiàn)默認(rèn)網(wǎng)關(guān)的功能。能夠在一次配置之后,實(shí)現(xiàn)將OpenFlow交換機(jī)和SDN控制器作為幾個(gè)網(wǎng)段的交換機(jī)的共同的默認(rèn)網(wǎng)關(guān),實(shí)現(xiàn)網(wǎng)關(guān)之間的互連通信。
[0108]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是⑶-R0M,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0109]本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
[0110]本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
[0111]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0112]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種通信方法,其特征在于,所述方法包括: OpenFlow交換機(jī)接收第一主機(jī)發(fā)送的第一因特網(wǎng)包探索器PING請(qǐng)求報(bào)文,所述第一PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段; 將所述PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器; 接收所述SDN控制器下發(fā)的PING回復(fù)報(bào)文; 將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
2.如權(quán)利要求1所述的方法,其特征在于,所述接收第一主機(jī)發(fā)送的PING請(qǐng)求報(bào)文,之前,還包括: 接收第一主機(jī)發(fā)送的地址解析協(xié)議ARP請(qǐng)求報(bào)文,該ARP請(qǐng)求報(bào)文用于獲取所述虛擬網(wǎng)關(guān)的MAC地址; 將所述ARP請(qǐng)求報(bào)文發(fā)送給所述SDN控制器; 接收所述SDN控制器下發(fā)的ARP回應(yīng)報(bào)文,該ARP回應(yīng)報(bào)文中攜帶所述虛擬網(wǎng)關(guān)的MAC地址; 將所述ARP回應(yīng)報(bào)文下發(fā)給所述第一主機(jī)。
3.如權(quán)利要求1或2任一項(xiàng)所述的方法,其特征在于,所述將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路;之后,還包括: 接收所述第一主機(jī)發(fā)送的第二 PING請(qǐng)求報(bào)文,所述第二 PING請(qǐng)求報(bào)文的目的地址為第二主機(jī)的IP地址,所述第二 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述第一主機(jī)和第二主機(jī)位于不同的IP網(wǎng)段; 將所述第二 PING請(qǐng)求報(bào)文上傳至所述SDN控制器,以便于所述SDN控制器對(duì)所述第二PING請(qǐng)求報(bào)文進(jìn)行流表匹配,并且所述SDN控制器對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配成功后,對(duì)所述第二 PING請(qǐng)求報(bào)文的目的MAC地址修改為所述第二主機(jī)的MAC地址,封裝為第三PING報(bào)文之后,將所述第三PING報(bào)文下發(fā)給所述第二主機(jī),建立所述第一主機(jī)到所述第二主機(jī)之間的通信鏈路。
4.如權(quán)利要求1所述的方法,其特征在于,所述OpenFlow交換機(jī)接收第一主機(jī)發(fā)送的第一因特網(wǎng)包探索器PING請(qǐng)求報(bào)文,之前,還包括: 接收SDN控制器下發(fā)的策略流表,所述策略流表具有匹配項(xiàng),滿足該匹配項(xiàng)的報(bào)文將被所述OpenFlow交換機(jī)上送到SDN控制器。
5.一種通信方法,其特征在于,包括: 接收OpenFlow交換機(jī)發(fā)送的第一 PING請(qǐng)求報(bào)文,所述第一 PING請(qǐng)求報(bào)文由第一主機(jī)生成后發(fā)送給所述OpenFlow交換機(jī),所述第一 PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段; 對(duì)所述第一 PING請(qǐng)求報(bào)文進(jìn)行流表匹配通過后,生成PING回復(fù)報(bào)文; 將所述PING回復(fù)報(bào)文下發(fā)給所述OpenFlow交換機(jī),以便于所述OpenFlow交換機(jī)將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
6.如權(quán)利要求5所述的方法,其特征在于,所述接收OpenFlow交換機(jī)發(fā)送的第一PING請(qǐng)求報(bào)文,之前,還包括: 接收所述OpenFlow交換機(jī)發(fā)送的ARP請(qǐng)求報(bào)文,所述ARP請(qǐng)求報(bào)文是所述第一主機(jī)發(fā)送給所述OpenFlow交換機(jī),該ARP請(qǐng)求報(bào)文用于獲取所述虛擬網(wǎng)關(guān)的MAC地址; 確定所述虛擬網(wǎng)關(guān)的MAC地址; 向所述OpenFlow交換機(jī)下發(fā)ARP回應(yīng)報(bào)文,該ARP回應(yīng)報(bào)文中攜帶所述虛擬網(wǎng)關(guān)的MAC地址,以便于所述OpenFlow交換機(jī)將所述ARP回應(yīng)報(bào)文下發(fā)給所述第一主機(jī)。
7.如權(quán)利要求5或6任一項(xiàng)所述的方法,其特征在于,所述將所述PING回復(fù)報(bào)文下發(fā)給所述OpenFlow交換機(jī),之后,還包括: 接收所述OpenFlow交換機(jī)發(fā)送的第二 PING請(qǐng)求報(bào)文,所述第二 PING請(qǐng)求報(bào)文的目的地址為第二主機(jī)的IP地址,所述第二 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述第一主機(jī)和第二主機(jī)位于不同的IP網(wǎng)段; 對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配; 并且所述SDN控制器對(duì)所述第二 PING請(qǐng)求報(bào)文進(jìn)行流表匹配成功后,對(duì)所述第二 PING請(qǐng)求報(bào)文的目的MAC地址修改為所述第二主機(jī)的MAC地址,封裝為第三PING報(bào)文; 將所述第三PING報(bào)文下發(fā)給所述第二主機(jī),建立所述第一主機(jī)到所述第二主機(jī)之間的通信鏈路。
8.如權(quán)利要求7所述的方法,其特征在于,所述將所述第三PING報(bào)文下發(fā)給所述第二主機(jī),建立所述第一主機(jī)到所述第二主機(jī)之間的通信鏈路,之后,還包括: 確定所述第一主機(jī)和所述第二主機(jī)之間的最短通信路徑; 向所述最短通信路徑上的每臺(tái)交換機(jī)下發(fā)目的IP地址與所述第二主機(jī)IP地址匹配的流表。
9.如權(quán)利要求5所述的方法,其特征在于,還包括: 向所述OpenFlow交換機(jī)下發(fā)策略流表,所述策略流表具有匹配項(xiàng),滿足 該匹配項(xiàng)的報(bào)文將被所述OpenFlow交換機(jī)上送到SDN控制器。
10.一種交換機(jī),其特征在于,所述交換機(jī)包括: 第一接收模塊,用于接收第一主機(jī)發(fā)送的第一因特網(wǎng)包探索器PING請(qǐng)求報(bào)文,所述第一PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述交換機(jī)和與該交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段; 第一發(fā)送模塊,用于將所述PING請(qǐng)求報(bào)文發(fā)送給所述SDN控制器; 第二接收模塊,用于接收所述SDN控制器下發(fā)的PING回復(fù)報(bào)文; 第二發(fā)送模塊,用于將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
11.一種控制器,其特征在于,所述控制器包括: 第一接收模塊,用于接收OpenFlow交換機(jī)發(fā)送的第一 PING請(qǐng)求報(bào)文,所述第一 PING請(qǐng)求報(bào)文由第一主機(jī)生成后發(fā)送給所述OpenFlow交換機(jī),所述第一 PING請(qǐng)求報(bào)文的目的IP地址為虛擬網(wǎng)關(guān)的IP地址,所述第一 PING請(qǐng)求報(bào)文的目的MAC地址為所述虛擬網(wǎng)關(guān)的MAC地址,所述虛擬網(wǎng)關(guān)為所述第一主機(jī)所處網(wǎng)段的默認(rèn)網(wǎng)關(guān),該虛擬網(wǎng)關(guān)由所述OpenFlow交換機(jī)和與該OpenFlow交換機(jī)連接的軟件定義網(wǎng)絡(luò)SDN控制器組成,所述第一主機(jī)位于所述SDN控制器的管理的至少一個(gè)網(wǎng)段; 報(bào)文生成模塊,用于對(duì)所述第一 PING請(qǐng)求報(bào)文進(jìn)行流表匹配通過后,生成PING回復(fù)報(bào)文; 第一發(fā)送模塊,用于將所述PING回復(fù)報(bào)文下發(fā)給所述OpenFlow交換機(jī),以便于所述OpenFlow交換機(jī)將所述PING回復(fù)報(bào)文下發(fā)給所述第一主機(jī),以建立所述虛擬網(wǎng)關(guān)與所述第一主機(jī)之間的通信鏈路。
12.一種通信系統(tǒng),其特征在于,包括權(quán)利要求9所述的交換機(jī)和權(quán)利要求10所述的控制器。
【文檔編號(hào)】H04L12/46GK104202266SQ201410379220
【公開日】2014年12月10日 申請(qǐng)日期:2014年8月4日 優(yōu)先權(quán)日:2014年8月4日
【發(fā)明者】陳啟昌, 黃東遠(yuǎn), 周都 申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司