主機路由獲取方法、裝置及系統的制作方法
【專利摘要】本發明實施例提供一種主機路由獲取方法、裝置及系統。本發明主機路由獲取方法,包括:第一網關設備接收第一主機發送的第一地址解析協議ARP請求報文,第一ARP請求報文包含第二主機的互聯網絡協議IP地址;若第一網關設備確定不存在與第二主機的IP地址對應的路由,則第一網關設備廣播第一邊界網關協議BGP更新報文,第一BGP更新報文包含類型標識信息和第二主機的IP地址,以使第二網關設備根據第一BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由;第一網關設備接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。本發明實施例實現了虛擬子網中的網關設備按需獲取其下掛的主機的路由。
【專利說明】
主機路由獲取方法、裝置及系統
【技術領域】
[0001]本發明實施例涉及通信技術,尤其涉及一種主機路由獲取方法、裝置及系統。
【背景技術】
[0002]數據中心(data center,簡稱DC)大二層組網環境中,存在大量虛擬主機(virtualmachine,簡稱VM),VM規模可達到數十萬級甚至百萬級規模,因此低成本可擴展互聯技術對數據中心網絡規劃至關重要。虛擬子網(virtual subnet,簡稱VS)是目前一種性價比比較高的網絡虛擬化互聯技術,數據中心大二層組網中有多個虛擬子網,每個虛擬子網有一個網關設備,每個網關設備下掛有多個虛擬主機。
[0003]為了實現DC域內出入虛擬子網的數據流量的路徑最優,各個虛擬子網中的網關設備需要獲取并發布其下掛的虛擬主機的路由,但是由于VM的加入,網關設備及時發布虛擬主機的路由成為一個需要解決的問題。
【發明內容】
[0004]本發明實施例提供一種主機路由獲取方法、裝置及系統,以實現虛擬子網中的網關設備按需獲取其下掛的主機的路由并及時發布該路由。
[0005]第一方面,本發明實施例提供一種主機路由獲取方法,包括:
[0006]第一網關設備接收第一主機發送的第一地址解析協議ARP請求報文,所述第一ARP請求報文包含第二主機的互聯網絡協議IP地址;所述第一網關設備和所述第一主機位于第一虛擬子網內;
[0007]若所述第一網關設備確定不存在與所述第二主機的IP地址對應的路由,則所述第一網關設備廣播第一邊界網關協議BGP更新報文,所述第一 BGP更新報文包含類型標識信息和所述第二主機的IP地址,以使第二網關設備根據所述第一 BGP更新報文發布與所述第二主機的IP地址對應的路由;所述第一網關設備接收并保存所述第二網關設備發布的與所述第二主機的IP地址對應的路由,所述第二網關設備和所述第二主機位于第二虛擬子網內。
[0008]在第一方面的第一種可能的實現方式中,還包括:
[0009]若所述第一網關設備確定存在與所述第二主機的IP地址對應的路由,則所述第一網關設備確定所述第二主機的IP地址對應的路由是否為所述第一虛擬子網內的路由;
[0010]若為所述第一虛擬子網內的路由,則所述第一網關設備丟棄所述第一 ARP請求報文;
[0011]若不為所述第一虛擬子網內的路由,則所述第一網關設備代替所述第二主機應答所述第一 ARP請求報文。
[0012]根據第一方面或第一方面的第一種可能的實現方式,在第二種可能的實現方式中,還包括:
[0013]所述第一網關設備接收來自第二網關設備的第二 BGP更新報文,所述第二 BGP更新報文包含所述類型標識信息和第三主機的IP地址;
[0014]根據所述第二 BGP更新報文確定所述第一網關設備是否存在與所述第三主機的IP地址對應的路由;
[0015]若確定存在與所述第三主機的IP地址對應的路由,則所述第一網關設備發布與所述第三主機的IP地址對應的路由,以使所述第二網關設備接收并保存與所述第三主機的IP地址對應的路由;
[0016]若確定不存在與所述第三主機的IP地址對應的路由,則所述第一網關設備在所述第一虛擬子網內廣播第二 ARP請求報文,所述第二 ARP請求報文包含所述第三主機的IP地址;所述第一網關設備接收所述第三主機發送的ARP應答報文,所述ARP應答報文包含所述第三主機的IP地址和MAC地址;所述第一網關設備根據所述ARP應答報文生成與所述第三主機的IP地址對應的路由,向所述第二網關設備發布與所述第三主機的IP地址對應的路由,以使所述第二網關設備接收并保存與所述第三主機的IP地址對應的路由。
[0017]第二方面,本發明實施例提供一種主機路由獲取裝置,所述裝置部署在第一網關設備上,所述裝置包括:
[0018]報文接收模塊,用于接收第一主機發送的第一地址解析協議ARP請求報文,所述第一ARP請求報文包含第二主機的互聯網絡協議IP地址;所述第一網關設備和所述第一主機位于第一虛擬子網內;
[0019]第一確定模塊,用于確定所述第一網關設備是否存在與所述第二主機的IP地址對應的路由;
[0020]第一報文廣播模塊,用于當所述第一確定模塊確定所述第一網關設備不存在與所述第二主機的IP地址對應的路由時,廣播第一邊界網關協議BGP更新報文,所述第一 BGP更新報文包含類型標識信息和所述第二主機的IP地址;
[0021]路由獲取模塊,用于接收并保存第二網關設備發布的所述第二主機的IP地址對應的路由。
[0022]在第二方面的第一種可能的實現方式中,還包括:
[0023]第二確定模塊,用于當所述第一確定模塊確定所述第一網關設備存在與所述第二主機的IP地址對應的路由時,確定所述第二主機的IP地址對應的路由是否為所述第一虛擬子網內的路由;
[0024]報文丟棄模塊,用于當所述第二確定模塊確定所述第二主機的IP地址對應的路由為所述第一虛擬子網內的路由,丟棄所述第一 ARP請求報文;
[0025]報文代答模塊,用于當所述第二確定模塊確定所述第二主機的IP地址對應的路由不為所述第一虛擬子網內的路由,代替所述第二主機應答所述第一 ARP請求報文。
[0026]根據第二方面或第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述裝置還包括:第二報文廣播模塊和路由發布模塊;
[0027]所述報文接收模塊,還用于接收來自第二網關設備發送的第二 BGP更新報文,所述第二 BGP更新報文包含所述類型標識信息和第三主機的IP地址;
[0028]所述第一確定模塊,還用于根據所述第二 BGP更新報文確定所述第一網關設備是否存在與所述第三主機的IP地址對應的路由;
[0029]第二報文廣播模塊,用于當所述第一確定模塊確定不存在與所述第三主機的IP地址對應的路由,在所述第一虛擬子網內廣播第二 ARP請求報文,所述第二 ARP請求報文包含所述第三主機的IP地址;所述報文接收模塊,還用于接收所述第三主機發送的ARP應答報文,所述ARP應答報文包含所述第三主機的IP地址和MAC地址;
[0030]所述路由獲取模塊,還用于根據所述報文接收模塊接收的所述ARP應答報文,生成與所述第三主機的IP地址對應的路由;
[0031]所述路由發布模塊,用于在所述第一確定模塊確定存在與所述第三主機的IP地址對應的路由時,發布與所述第三主機的IP地址對應的路由;在所述第一確定模塊確定不存在與所述第三主機的IP地址對應的路由時,發布所述路由獲取模塊生成的與所述第三主機的IP地址對應的路由。
[0032]第三方面,本發明實施例提供一種主機路由獲取系統,包括:第一網關設備和第二網關設備;
[0033]所述第一網關設備位于第一虛擬子網內,所述第二網關設備位于第二虛擬子網內;
[0034]所述第一網關設備,用于接收第一主機發送的第一地址解析協議ARP請求報文,所述第一 ARP請求報文包含第二主機的互聯網絡協議IP地址,所述第一主機位于所述第一虛擬子網內;當確定所述第一網關設備不存在與所述第二主機的IP地址對應的路由時,廣播第一邊界網關協議BGP更新報文,所述第一 BGP更新報文包含類型標識信息和所述第二主機的IP地址;
[0035]所述第二網關設備,用于接收所述第一網關設備發送的所述第一 BGP更新報文,根據所述第一 BGP更新報文確定所述第二網關設備是否存在與所述第二主機的IP地址對應的路由;當確定存在與所述第二主機的IP地址對應的路由時,發布與所述第二主機的IP地址對應的路由;還用于當確定不存在與所述第二主機的IP地址對應的路由時,在所述第二虛擬子網內廣播第二 ARP請求報文,所述第二 ARP請求報文包含所述第二主機的IP地址;接收所述第二主機發送的第二 ARP應答報文,并根據所述第二 ARP應答報文生成與所述第二主機的IP地址對應的路由,所述第二 ARP應答報文包含所述第二主機的IP地址和MAC地址;發布所述第二主機的IP地址對應的路由;
[0036]所述第一網關設備,還用于接收并保存所述第二網關設備發布的與所述第二主機的IP地址對應的路由。
[0037]在第三方面的第一種可能的實現方式中,所述第一網關設備,還用于當確定所述第一網關設備存在與所述第二主機的IP地址對應的路由時,確定所述第二主機的IP地址對應的路由是否為所述第一虛擬子網內的路由;若為所述第一虛擬子網內的路由,則丟棄所述第一 ARP請求報文;若不為所述第一虛擬子網內的路由,則代替所述第二主機應答所述第一 ARP請求報文。
[0038]本發明實施例主機路由獲取方法、裝置及系統,通過接收第一主機發送的第一 ARP請求報文,第一 ARP請求報文包含第二主機的IP地址;若第一網關設備確定不存在與第二主機的IP地址對應的路由,則第一網關設備廣播第一 BGP更新報文,第一 BGP更新報文包含類型標識信息和所述第二主機的IP地址,以使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由;第一網關設備接收并保存第二網關設備發布的第二主機的IP地址對應的路由,解決了虛擬子網的網關設備如何及時獲取并發布其下掛的虛擬主機的路由的問題。
【專利附圖】
【附圖說明】
[0039]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0040]圖1為本發明實施例提供的一種主機路由獲取方法的流程圖;
[0041]圖2為本發明實施例提供的另一種主機路由獲取方法的流程圖;
[0042]圖3為本發明實施例提供的又一種主機路由獲取方法的流程圖;
[0043]圖4A為本發明實施例提供的數據中心組網示意圖;
[0044]圖4B為本發明實施例提供的圖4A組網下主機路由獲取方法的流程圖;
[0045]圖5為本發明實施例提供的主機路由獲取裝置500的結構示意圖;
[0046]圖6為本發明實施例提供的主機路由獲取裝置600的結構示意圖;
[0047]圖7為本發明實施例提供的主機路由獲取系統700的結構示意圖。
【具體實施方式】
[0048]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0049]圖1為本發明實施例提供的一種主機路由獲取方法的流程圖。該方法由配置在網關設備中的主機路由獲取裝置執行,該裝置可通過硬件和/或軟件的方式來實現。所述方法包括:
[0050]110、第一網關設備接收第一主機發送的第一地址解析協議(address resolut1nprotocol,簡稱ARP)請求報文,第一 ARP請求報文包含第二主機的互聯網協議(Internetprotocol,簡稱 IP)地址;
[0051]所述第一網關設備和所述第一主機位于第一虛擬子網內。
[0052]具體地,當第一虛擬子網內的第一主機需要和第二虛擬子網內的第二主機進行通信時,第一主機在子網內廣播發送包含所述第二主機的IP地址的第一 ARP請求報文。
[0053]120、若第一網關設備確定第一網關設備不存在與第二主機的IP地址對應的路由,貝1J第一網關設備廣播第一邊界網關協議(border gateway protocol,簡稱BGP)更新報文,第一 BGP更新報文包含類型標識信息和第二主機的IP地址;
[0054]這樣,可以使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由。其中,所述第二主機和所述第二網關設備位于第二虛擬子網內。
[0055]類型標識信息用來表示第一 BGP更新報文的類型,可以指示第二網關設備根據所述第一 BGP更新報文獲取與第二主機的IP地址對應的路由,并向第一網關設備發布該路由。例如,類型標識信息可以通過設定BGP更新報文中的屬性類型(attribute type)字段中預留的比特位的值來實現。
[0056]130、第一網關設備接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。通常,可以采用虛擬遷移機制,通過虛擬主機管理設備把虛擬主機的加入及時通知虛擬子網對應的網關設備,從而使網關設備獲取其對應虛擬子網的DC域內的主機路由信息,但是在沒有部署虛擬遷移技術的組網環境中不可實施;或者,也可以由網關設備定時掃描其對應虛擬子網的DC域內虛擬主機可能使用的與該網關設備同網段的IP地址,從而感知到該DC域內主機路由信息,但是這需要網關設備頻繁掃描同網段內虛擬主機的IP地址,會導致網絡內充滿大量ARP廣播報文,占用網絡帶寬,從而影響網絡業務和其它數據流量的轉發。而在本實施例的120和130中,第一網關設備在接收到第一主機發送的第一 ARP請求報文后,若確定不存在與第二主機的IP地址對應的路由,貝1J第一網關設備廣播第一 BGP更新報文,以使第二主機所在第二虛擬子網的第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由,然后第一網關設備接收并保存第二網關設備發布的第二主機的IP地址對應的路由。這樣,第二網關設備是在收到第一網關設備發送的第一 BGP更新報文后,才向第一網關設備發布與第二主機的IP地址對應的路由,這樣即使沒有部署虛擬遷移技術,第一網關設備也可以及時獲取DC域內主機路由,也可以避免定時掃描同網段內虛擬主機的IP地址導致廣播流量大、浪費網絡帶寬的問題。
[0057]需要說明的是,本發明中涉及的主機包括虛擬主機VM,計算機主機(host)等。
[0058]本實施例提供的主機路由獲取方法,通過第一網關設備確定不存在與第二主機的IP地址對應的路由后,廣播第一 BGP更新報文,使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由,從而使第一網關設備能夠接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。這樣,在虛擬主機的加入的情況下,網關設備能夠及時發布其下掛的虛擬主機的路由。
[0059]圖2為本發明實施例所提供的另一種主機路由獲取方法的流程圖。參照圖2,本實施例的方法可以包括:
[0060]210、第一網關設備接收第一主機發送的第一 ARP請求報文,第一 ARP請求報文包含第二主機的IP地址;第一網關設備和第一主機位于第一虛擬子網內。
[0061]220、第一網關設備確定第一網關設備是否存在與第二主機的IP地址對應的路由;若確定第一網關設備存在與第二主機的IP地址對應的路由時,執行230 ;否則執行260。
[0062]230、第一網關設備確定第二主機的IP地址對應的路由是否為第一虛擬子網內的路由;若確定第二主機的IP地址對應的路由是第一虛擬子網內的路由,則執行240 ;否則執行 250。
[0063]例如,第一網關設備可以根據本地存儲的路由標識信息,確定目的主機的IP地址對應的路由是否為第一虛擬子網內的路由。
[0064]240、第一網關設備丟棄第一 ARP請求報文。
[0065]250、第一網關設備對第一 ARP請求報文進行代答。
[0066]在250中,如果第一網關設備確定與第二主機的IP地址對應的路由不是第一虛擬子網內的路由,則第一網關設備可以代替第二主機應答第一 ARP請求報文;具體地,第一網關設備向第一主機發送第一 ARP應答報文,所述第一 ARP應答報文中包括第二主機的IP地址和媒體訪問控制(media access control,簡稱MAC)地址。
[0067]260、第一網關設備廣播第一 BGP更新報文,第一 BGP更新報文包含類型標識信息和第二主機的IP地址。
[0068]這樣,可以使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由,其中,所述第二主機和所述第二網關設備位于第二虛擬子網內;并執行270。
[0069]270、第一網關設備接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。
[0070]進一步的,第一網關設備代替第二主機應答第一 ARP請求報文;具體地,第一網關設備向第一主機發送第一 ARP應答報文,所述第一 ARP應答報文中包括第二主機的IP地址和MAC地址。
[0071]本實施例提供的主機路由獲取方法,通過第一網關設備確定不存在與第二主機的IP地址對應的路由后,廣播第一 BGP更新報文,使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由,第一網關設備接收并保存第二網關設備發布的與第二主機的IP地址對應的路由,實現了第一網關設備也能獲得該路由,從而使第一網關設備再次收到包含第二主機的IP地址的ARP請求報文后,能夠直接代替第二主機應答ARP請求報文。
[0072]在上述實施例提供的主機路由獲取方法的基礎上,圖3為本發明實施例提供的又一種主機路由獲取方法的流程圖。參照圖3,本實施例的方法可以包括:
[0073]310、第一網關設備接收來自第二網關設備發送的第二 BGP更新報文,第二 BGP更新報文包含類型標識信息和第三主機的IP地址。
[0074]320、第一網關設備根據第二 BGP更新報文確定第一網關設備是否存在與第三主機的IP地址對應的路由,若確定第一網關設備存在與第三主機的IP地址對應的路由,則執行步驟330,否則執行340。
[0075]330、第一網關設備發布與第三主機的IP地址對應的路由,以使第二網關設備接收并保存與第三主機的IP地址對應的路由。
[0076]340、在第一虛擬子網內廣播第二 ARP請求報文,第二 ARP請求報文包含第三主機的IP地址,并執行步驟350。
[0077]350、第一網關設備接收第三主機發送的第二 ARP應答報文,第二 ARP應答報文包含第三主機的IP地址和MAC地址。
[0078]360、第一網關設備根據第二 ARP應答報文生成與第三主機的IP地址對應的路由。
[0079]370、第一網關設備發布生成的與第三主機的IP地址對應的路由,以使第二網關設備接收并保存與第三主機的IP地址對應的路由。
[0080]本實施例中,以所述第三主機位于所述第一虛擬子網內為例,說明本發明技術方案。可以理解的是,對于所述第三主機不位于所述第一虛擬子網內的場景,所述第一網關設備將不會收到對所述第二 ARP請求報文的應答,相應地,所述第一網關設備不會執行本實施例中360和370。
[0081]本實施例提供的主機路由獲取方法,通過第一網關設備接收到第二 BGP更新報文后,使第一網關設備根據第二 BGP更新報文確定是否存在與第一主機的IP地址對應的路由,若存在,則可以直接發布該路由,若不存在,通過廣播第三ARP請求報文,接收ARP應答報文來生成與第一主機的IP地址對應的路由并發布該路由;這樣,虛擬子網的網關設備能夠按需及時發布其下掛的虛擬主機的路由。
[0082]為了詳細介紹上述各實施例示出的主機路由獲取方法,下面特配合圖4A和圖4B詳細介紹虛擬子網的網關設備獲取其下掛的主機的路由的過程。圖4A為本發明實施例提供的數據中心組網示意圖,圖4B為本發明實施例提供的圖4A組網下主機路由獲取方法的流程圖。
[0083]可以理解的是,本實施例中圖4A所示數據中心組網僅為一種示例;具體實現中,數據中心組網中虛擬子網的數量、各個虛擬子網內的主機或設備數量可能不同,本發明對此不做限制。
[0084]圖4A所示數據中心組網中可以包括網關設備PE1、網關設備PE2、網關設備PE3、網關設備PEl下掛的主機11和主機12、網關設備PE2下掛的主機21、網關設備PE3下掛的主機31、交換機1、交換機2和交換機3。其中,網關設備PEl為虛擬子網I的網關設備,網關設備PE2為虛擬子網2的網關設備,數據中心組網包括虛擬子網I和虛擬子網2,網關設備PE3為互聯網絡中的網關設備。本實施例的方法可以包括:
[0085]410、主機11通過交換機I向網關設備PEl發送了包含目的主機的IP地址的第一ARP請求報文。
[0086]網關設備PEl接收到該第一 ARP請求報文后,確定是否存在與目的主機的IP地址對應的路由。若存在與目的主機的IP地址對應的路由,則進一步確定該路由是否為虛擬子網I內的路由,若為虛擬子網I內的路由,則將該ARP請求報文丟棄,即不代替目的主機對該第一 ARP請求報文應答;若不為虛擬子網I內的路由,而是其它網關設備發布過來的路由,則代替目的主機應答該第一 ARP請求報文。例如,如果目的主機為主機12,網關設備PEl確定存在與目的主機的IP地址對應的路由后,會進一步確定主機12的IP地址對應的路由是否為虛擬子網I內的路由,由于主機12為網關設備PEl下掛的主機,因此主機12的IP地址對應的路由是虛擬子網I內的路由,這種情況下網關設備PEl不代替主機12應答該第一 ARP請求報文。如果目的主機為主機21,網關設備PEl確定存在與主機21的IP地址對應的路由后,會進一步確定主機21的IP地址對應的路由是否為虛擬子網I內的路由的,由于主機21為網關設備PE2下掛的主機,因此主機21的IP地址對應的路由是網關設備PE2發布的,這種情況下網關設備PEl可以代替主機21應答該第一 ARP請求報文。從而使得主機12可以從網關設備PEl獲得主機21的MAC地址,而不需要再經過網關設備PE2獲得主機21的MAC地址。
[0087]網關設備PEl接收到該第一 ARP請求報文后,若確定不存在與目的主機的IP地址對應的路由,則執行420。
[0088]420、網關設備PEl廣播包含類型標識信息和目的主機的IP地址的BGP更新報文,以使網關設備PE2根據類型標識信息向網關設備PE2下掛的主機發送包含目的主機的IP地址的第二 ARP請求報文。
[0089]在此需要說明的是,本實施例僅以存在網關設備PEl和網關設備PE2為例說明主機路由獲取方法的,若還存在虛擬子網的網關設備PE4,網關設備PE4也將收到所述BGP更新報文。
[0090]430、網關設備PE2在虛擬子網2內廣播包含目的主機的IP地址的第二 ARP請求報文。
[0091]440、網關設備PE2接收目的主機發送的ARP應答報文。
[0092]在430和440中,如果目的主機為主機21,則網關設備PE2向其下掛的主機發送包含目的主機的IP地址的ARP請求報文后,會收到主機21發送的ARP應答報文,ARP應答報文中包含主機21的IP地址和主機21的MAC地址。
[0093]450、網關設備PE2根據ARP應答報文生成與目的主機的IP地址對應的路由。
[0094]460、網關設備PE2向網關設備PEl和網關設備PE3發布生成的與目的主機的IP地址對應的路由。
[0095]需要說明的是,網關設備PE2生成與目的主機的IP地址對應的路由后,可以將該路由發布給BGP路由域中其他網關設備,也即可以將該路由發布給網關設備PEl和網關設備PE3。網關設備PE2在向網關設備PEl發布生成的與目的主機的IP地址對應的路由后,如果網關設備PEl再次收到包含該目的主機的IP地址的ARP請求報文,則可以代替該目的主機應答該ARP請求報文。例如網關設備PEl收到主機12發送的包含主機21的IP地址的ARP請求報文,則網關設備PEl可以代替主機21應答該ARP請求報文。如果網關設備PE3收到包含該目的主機的IP地址的ARP請求報文,則可以代替該目的主機應答該ARP請求報文。例如網關設備PE3收到主機31發送的包含主機21的IP地址的ARP請求報文,則網關設備PE3可以代替主機21應答該ARP請求報文。
[0096]本實施例提供的主機路由獲取方法,通過網關設備確定不存在與目的主機的IP地址對應的路由后,向其它虛擬子網的網關設備發送BGP更新報文。從而觸發其它虛擬子網的網關設備向各自下掛的主機發送包含目的主機的IP地址的ARP請求報文,使得目的主機所在的網關設備能夠收到目的主機的ARP應答報文,生成與目的主機的IP地址對應的路由,并發布生成的路由。從而實現了虛擬子網的網關設備能夠按需獲取其下掛的主機的路由,并發布生成的路由,使得其它網關設備也能獲得該路由;這樣其它網關設備收到源主機發送的包含與該路由對應的目的主機的IP地址的ARP請求報文后,能夠直接代替目的主機應答ARP請求報文。
[0097]圖5為本發明實施例提供的主機路由獲取裝置500的結構示意圖。本實施例的裝置適用于虛擬子網中的網關設備能夠按需獲取其下掛的主機的路由的情況。該裝置通常以硬件和/或軟件的方式來實現。參照圖5,該裝置包括如下模塊:報文接收模塊510、第一確定模塊520、第一報文廣播模塊530和路由獲取模塊540。
[0098]報文接收模塊510用于接收第一主機發送的第一地址解析協議ARP請求報文,第一 ARP請求報文包含第二主機的互聯網絡協議IP地址;第一網關設備和第一主機位于第一虛擬子網內;第一確定模塊520用于確定第一網關設備是否存在與第二主機的IP地址對應的路由;第一報文廣播模塊530用于當第一網關設備確定第一網關設備不存在與第二主機的IP地址對應的路由時,廣播第一邊界網關協議BGP更新報文,第一 BGP更新報文包含類型標識信息和第二主機的IP地址;路由獲取模塊540用于接收并保存第二網關設備發布的第二主機的IP地址對應的路由。
[0099]進一步的,還包括:
[0100]第二確定模塊,用于當第一確定模塊確定第一網關設備存在與第二主機的IP地址對應的路由時,確定第二主機的IP地址對應的路由是否為第一虛擬子網內的路由。
[0101]報文丟棄模塊,用于當第二確定模塊確定第二主機的IP地址對應的路由為第一虛擬子網內的路由,丟棄第一 ARP請求報文。
[0102]報文代答模塊,用于當第二確定模塊確定第二主機的IP地址對應的路由不為第一虛擬子網內的路由,代替第二主機應答第一 ARP請求報文。
[0103]進一步的,還包括:第二報文廣播模塊和路由發布模塊。
[0104]報文接收模塊510還用于接收來自第二網關設備發送的第二 BGP更新報文,第二BGP更新報文包含類型標識信息和第三主機的IP地址。
[0105]第一確定模塊520還用于根據第二 BGP更新報文確定第一網關設備是否存在與第三主機的IP地址對應的路由。
[0106]第二報文廣播模塊,用于當第一確定模塊確定不存在與第三主機的IP地址對應的路由,在第一虛擬子網內廣播第二 ARP請求報文,第二 ARP請求報文包含第三主機的IP地址。
[0107]報文接收模塊510還用于接收第三主機發送的ARP應答報文,ARP應答報文包含第三主機的IP地址和MAC地址。
[0108]路由獲取模塊540還用于根據報文接收模塊接收的ARP應答報文,生成與第三主機的IP地址對應的路由。
[0109]路由發布模塊,用于在第一確定模塊確定存在與第三主機的IP地址對應的路由時,發布與第三主機的IP地址對應的路由;在第一確定模塊確定不存在與第三主機的IP地址對應的路由時,發布路由獲取模塊生成的與第三主機的IP地址對應的路由。
[0110]本實施例提供的主機路由獲取裝置,通過在確定不存在與第二主機的IP地址對應的路由后,廣播第一 BGP更新報文,使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由,從而使第一網關設備能夠接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。從而實現了在虛擬主機的加入的情況下,網關設備能夠按需獲取其下掛的主機的路由并及時發布其下掛的主機的路由。
[0111]圖6為本發明實施例提供的主機路由獲取裝置600的結構示意圖。參照圖6,該裝置包括:處理器601、存儲器602、通信接口 603和總線604。其中,處理器601、存儲器602、通信接口 603通過總線604相互連接;
[0112]存儲器602,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計算機操作指令。
[0113]處理器601執行存儲器602所存放的程序,實現主機路由獲取方法,包括:
[0114]處理器601用于接收第一主機發送的第一地址解析協議ARP請求報文,第一 ARP請求報文包含第二主機的互聯網絡協議IP地址;第一網關設備和第一主機位于第一虛擬子網內;若第一網關設備確定不存在與第二主機的IP地址對應的路由,則廣播第一邊界網關協議BGP更新報文,第一 BGP更新報文包含類型標識信息和第二主機的IP地址,以使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由;接收并保存第二網關設備發布的第二主機的IP地址對應的路由,第二網關設備和第二主機位于第二虛擬子網內。
[0115]進一步的,處理器601還用于第一網關設備確定存在與第二主機的IP地址對應的路由,則第一網關設備確定第二主機的IP地址對應的路由是否為第一虛擬子網內的路由;若為第一虛擬子網內的路由,則第一網關設備丟棄第一 ARP請求報文;若不為第一虛擬子網內的路由,第一網關設備代替第二主機應答第一 ARP請求報文。
[0116]進一步的,處理器601還用于接收來自第二網關設備的第二 BGP更新報文,第二BGP更新報文包含類型標識信息和第三主機的IP地址;根據第二 BGP更新報文確定第一網關設備是否存在與第三主機的IP地址對應的路由。
[0117]處理器601還用于若確定存在與第三主機的IP地址對應的路由,則第一網關設備發布與第三主機的IP地址對應的路由,以使第二網關設備接收并保存與第三主機的IP地址對應的路由。
[0118]處理器601還用于若確定不存在與第三主機的IP地址對應的路由,則第一網關設備在第一虛擬子網內廣播第二 ARP請求報文,第二 ARP請求報文包含第三主機的IP地址;第一網關設備接收第三主機發送的ARP應答報文,ARP應答報文包含第三主機的IP地址和MAC地址;第一網關設備根據ARP應答報文生成與第三主機的IP地址對應的路由,向第二網關設備發布與第三主機的IP地址對應的路由,以使第二網關設備接收并保存與第三主機的IP地址對應的路由。
[0119]本實施例提供的主機路由獲取裝置,通過在確定不存在與第二主機的IP地址對應的路由后,廣播第一 BGP更新報文,使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由,從而使第一網關設備能夠接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。從而實現了在虛擬主機的加入的情況下,網關設備能夠按需獲取并發布其下掛的虛擬主機的路由。
[0120]圖7為本發明實施例提供的主機路由獲取系統700的結構示意圖。參照圖7,該系統包括:第一網關設備710和第二網關設備720。
[0121]第一網關設備710用于接收第一主機發送的第一地址解析協議ARP請求報文,第一 ARP請求報文包含第二主機的互聯網絡協議IP地址,第一主機位于第一虛擬子網內;當確定第一網關設備不存在與第二主機的IP地址對應的路由時,廣播第一邊界網關協議BGP更新報文,第一 BGP更新報文包含類型標識信息和第二主機的IP地址;第二網關設備720用于接收第一網關設備發送的第一 BGP更新報文,根據第一 BGP更新報文確定第二網關設備是否存在與第二主機的IP地址對應的路由;當確定存在與第二主機的IP地址對應的路由時,向第一網關設備發布與第二主機的IP地址對應的路由;還用于當確定不存在與第二主機的IP地址對應的路由時,在第二虛擬子網內廣播第二 ARP請求報文,第二 ARP請求報文包含第二主機的IP地址;接收二主機發送的第二 ARP應答報文,并根據第二 ARP應答報文生成與第二主機的IP地址對應的路由,第二 ARP應答報文包含第二主機的IP地址和MAC地址;發布第二主機的IP地址對應的路由;第一網關設備710還用于接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。
[0122]進一步的,第一網關設備710還用于當確定第一網關設備存在與第二主機的IP地址對應的路由時,確定第二主機的IP地址對應的路由是否為第一虛擬子網內的路由;若為第一虛擬子網內的路由,則丟棄第一 ARP請求報文;若不為第一虛擬子網內的路由,則代替第二主機應答第一 ARP請求報文。
[0123]舉例來說,參考圖4A所示數據中心組網,所述系統可以包括網關設備PE1、網關設備PE2、網關設備PE3、網關設備PE1下掛的主機11和主機12、網關設備PE2下掛的主機21、網關設備PE3下掛的主機31、交換機1、交換機2和交換機3。其中,網關設備PEl為虛擬子網I的網關設備,網關設備PE2為虛擬子網2的網關設備,數據中心組網包括虛擬子網I和虛擬子網2,網關設備PE3為互聯網絡中的網關設備。其中,網關設備PE1、網關設備PE2和網關設備PE3可以參考圖4B所示主機路由獲取方法,獲取主機路由,這里不再贅述。
[0124]本實施例提供的主機路由獲取系統,通過在確定不存在與第二主機的IP地址對應的路由后,廣播第一 BGP更新報文,使第二網關設備根據第一 BGP更新報文向第一網關設備發布與第二主機的IP地址對應的路由,從而使第一網關設備能夠接收并保存第二網關設備發布的與第二主機的IP地址對應的路由。從而實現了在虛擬主機的加入的情況下,網關設備能夠按需獲取并發布其下掛的虛擬主機的IP地址對應的路由。
[0125]本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0126]最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。
【權利要求】
1.一種主機路由獲取方法,其特征在于,包括: 第一網關設備接收第一主機發送的第一地址解析協議ARP請求報文,所述第一 ARP請求報文包含第二主機的互聯網絡協議IP地址;所述第一網關設備和所述第一主機位于第一虛擬子網內; 若所述第一網關設備確定不存在與所述第二主機的IP地址對應的路由,則所述第一網關設備廣播第一邊界網關協議BGP更新報文,所述第一 BGP更新報文包含類型標識信息和所述第二主機的IP地址,以使第二網關設備根據所述第一 BGP更新報文發布與所述第二主機的IP地址對應的路由;所述第一網關設備接收并保存所述第二網關設備發布的與所述第二主機的IP地址對應的路由,所述第二網關設備和所述第二主機位于第二虛擬子網內。
2.根據權利要求1所述的方法,其特征在于,還包括: 若所述第一網關設備確定存在與所述第二主機的IP地址對應的路由,則所述第一網關設備確定所述第二主機的IP地址對應的路由是否為所述第一虛擬子網內的路由; 若為所述第一虛擬子網內的路由,則所述第一網關設備丟棄所述第一 ARP請求報文; 若不為所述第一虛擬子網內的路由,則所述第一網關設備代替所述第二主機應答所述第一 ARP請求報文。
3.根據權利要求1或2所述的方法,其特征在于,還包括: 所述第一網關設備接收來自第二網關設備的第二 BGP更新報文,所述第二 BGP更新報文包含所述類型標識信息和第三主機的IP地址; 根據所述第二 BGP更新報文確定所述第一網關設備是否存在與所述第三主機的IP地址對應的路由; 若確定存在與所述第三主機的IP地址對應的路由,則所述第一網關設備發布與所述第三主機的IP地址對應的路由,以使所述第二網關設備接收并保存與所述第三主機的IP地址對應的路由; 若確定不存在與所述第三主機的IP地址對應的路由,則所述第一網關設備在所述第一虛擬子網內廣播第二 ARP請求報文,所述第二 ARP請求報文包含所述第三主機的IP地址;所述第一網關設備接收所述第三主機發送的ARP應答報文,所述ARP應答報文包含所述第三主機的IP地址和MAC地址;所述第一網關設備根據所述ARP應答報文生成與所述第三主機的IP地址對應的路由,向所述第二網關設備發布與所述第三主機的IP地址對應的路由,以使所述第二網關設備接收并保存與所述第三主機的IP地址對應的路由。
4.一種主機路由獲取裝置,所述裝置部署在第一網關設備上,其特征在于,所述裝置包括: 報文接收模塊,用于接收第一主機發送的第一地址解析協議ARP請求報文,所述第一ARP請求報文包含第二主機的互聯網絡協議IP地址;所述第一網關設備和所述第一主機位于第一虛擬子網內; 第一確定模塊,用于確定所述第一網關設備是否存在與所述第二主機的IP地址對應的路由; 第一報文廣播模塊,用于當所述第一確定模塊確定所述第一網關設備不存在與所述第二主機的IP地址對應的路由時,廣播第一邊界網關協議BGP更新報文,所述第一 BGP更新報文包含類型標識信息和所述第二主機的IP地址; 路由獲取模塊,用于接收并保存第二網關設備發布的所述第二主機的IP地址對應的路由。
5.根據權利要求4所述的裝置,其特征在于,還包括: 第二確定模塊,用于當所述第一確定模塊確定所述第一網關設備存在與所述第二主機的IP地址對應的路由時,確定所述第二主機的IP地址對應的路由是否為所述第一虛擬子網內的路由; 報文丟棄模塊,用于當所述第二確定模塊確定所述第二主機的IP地址對應的路由為所述第一虛擬子網內的路由,丟棄所述第一 ARP請求報文; 報文代答模塊,用于當所述第二確定模塊確定所述第二主機的IP地址對應的路由不為所述第一虛擬子網內的路由,代替所述第二主機應答所述第一 ARP請求報文。
6.根據權利要求4或5所述的裝置,其特征在于,所述裝置還包括:第二報文廣播模塊和路由發布模塊; 所述報文接收模塊,還用于接收來自第二網關設備發送的第二 BGP更新報文,所述第二 BGP更新報文包含所述類型標識信息和第三主機的IP地址; 所述第一確定模塊,還用于根據所述第二 BGP更新報文確定所述第一網關設備是否存在與所述第三主機的IP地址對應的路由; 第二報文廣播模塊,用于當所述第一確定模塊確定不存在與所述第三主機的IP地址對應的路由,在所述第一虛擬子網內廣播第二 ARP請求報文,所述第二 ARP請求報文包含所述第三主機的IP地址;所述報文接收模塊,還用于接收所述第三主機發送的ARP應答報文,所述ARP應答報文包含所述第三主機的IP地址和MAC地址; 所述路由獲取模塊,還用于根據所述報文接收模塊接收的所述ARP應答報文,生成與所述第三主機的IP地址對應的路由; 所述路由發布模塊,用于在所述第一確定模塊確定存在與所述第三主機的IP地址對應的路由時,發布與所述第三主機的IP地址對應的路由;在所述第一確定模塊確定不存在與所述第三主機的IP地址對應的路由時,發布所述路由獲取模塊生成的與所述第三主機的IP地址對應的路由。
7.—種主機路由獲取系統,其特征在于,包括:第一網關設備和第二網關設備; 所述第一網關設備位于第一虛擬子網內,所述第二網關設備位于第二虛擬子網內; 所述第一網關設備,用于接收第一主機發送的第一地址解析協議ARP請求報文,所述第一 ARP請求報文包含第二主機的互聯網絡協議IP地址,所述第一主機位于所述第一虛擬子網內;當確定所述第一網關設備不存在與所述第二主機的IP地址對應的路由時,廣播第一邊界網關協議BGP更新報文,所述第一 BGP更新報文包含類型標識信息和所述第二主機的IP地址; 所述第二網關設備,用于接收所述第一網關設備發送的所述第一 BGP更新報文,根據所述第一 BGP更新報文確定所述第二網關設備是否存在與所述第二主機的IP地址對應的路由;當確定存在與所述第二主機的IP地址對應的路由時,發布與所述第二主機的IP地址對應的路由;還用于當確定不存在與所述第二主機的IP地址對應的路由時,在所述第二虛擬子網內廣播第二 ARP請求報文,所述第二 ARP請求報文包含所述第二主機的IP地址;接收所述第二主機發送的第二 ARP應答報文,并根據所述第二 ARP應答報文生成與所述第二主機的IP地址對應的路由,所述第二 ARP應答報文包含所述第二主機的IP地址和MAC地址;發布所述第二主機的IP地址對應的路由; 所述第一網關設備,還用于接收并保存所述第二網關設備發布的與所述第二主機的IP地址對應的路由。
8.根據權利要求7所述的系統,其特征在于,所述第一網關設備,還用于當確定所述第一網關設備存在與所述第二主機的IP地址對應的路由時,確定所述第二主機的IP地址對應的路由是否為所述第一虛擬子網內的路由;若為所述第一虛擬子網內的路由,則丟棄所述第一 ARP請求報文;若不為所述第一虛擬子網內的路由,則代替所述第二主機應答所述第一 ARP請求報文。
【文檔編號】H04L12/701GK104426759SQ201310366892
【公開日】2015年3月18日 申請日期:2013年8月21日 優先權日:2013年8月21日
【發明者】楊柳青, 賀行健, 張銀娟, 趙諍 申請人:華為技術有限公司