本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種dhcp報文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
dhcp(dynamichostconfigurationprotocol,動態(tài)主機配置協(xié)議)采用客戶端/服務(wù)器模式,由dhcp服務(wù)器為網(wǎng)絡(luò)設(shè)備動態(tài)地分配ip地址等網(wǎng)絡(luò)配置參數(shù)。dhcp客戶端和dhcp服務(wù)器處于不同物理網(wǎng)段時,dhcp客戶端可以通過dhcp中繼與dhcp服務(wù)器通信,獲取ip地址及其他配置信息。
vxlan(virtualextensiblelan,可擴展虛擬局域網(wǎng)絡(luò))是基于ip網(wǎng)絡(luò)、采用“macinudp”封裝形式的二層vpn技術(shù)。vxlan可以基于已有的服務(wù)提供商或企業(yè)ip網(wǎng)絡(luò),為分散的物理站點提供二層互聯(lián),并能夠為不同的租戶提供業(yè)務(wù)隔離。
在基于vxlan的分布式網(wǎng)關(guān)架構(gòu)中,每個leaf節(jié)點均為三層網(wǎng)關(guān),同一個vpn內(nèi),leaf節(jié)點上的vsi(virtualswitchinterface,虛擬交換實例)接口地址均相同,通常在leaf節(jié)點上使能dhcprelay功能。如果使用該vsi接口地址作為主機發(fā)送的報文的源ip地址,即dhcp服務(wù)器回應(yīng)的offer、ack等報文的目的ip地址也是所述vsi接口地址,由于每個leaf中的vsi接口地址均相同,則leaf節(jié)點收到dhcp服務(wù)器回應(yīng)的目的地址為vsi接口地址的報文時,無法根據(jù)該vsi地址將報文轉(zhuǎn)發(fā)到正確的leaf節(jié)點上。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種dhcp報文轉(zhuǎn)發(fā)方法及裝置來解決因地址分配導致的dhcp報文無法轉(zhuǎn)發(fā)到目標設(shè)備的問題。
具體地,本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:
本發(fā)明提供一種dhcp報文轉(zhuǎn)發(fā)方法,所述方法應(yīng)用于分布式vxlan組網(wǎng)中的dhcp服務(wù)器接入的leaf節(jié)點,所述leaf節(jié)點使能了dhcprelay功能,所述方法包括:
接收dhcp服務(wù)器發(fā)送的第一dhcp報文,所述第一dhcp報文為所述dhcp服務(wù)器針對接收到的來自dhcp客戶端的第二dhcp報文的回應(yīng)報文;
若本地mac地址表中記錄有dhcp客戶端的mac地址對應(yīng)的mac表項,則通過所述mac表項中記錄的出接口發(fā)送所述第一dhcp報文;
若本地mac地址表中未記錄dhcp客戶端的mac地址對應(yīng)的mac表項,則根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點,以使所述對應(yīng)的leaf節(jié)點通過其本地mac地址表中記錄的dhcp客戶端的mac地址對應(yīng)的mac表項中的出接口發(fā)送所述第一dhcp報文。
進一步的,所述第一dhcp報文的目的mac地址為所述dhcp客戶端的mac地址;所述第一dhcp報文的目的ip地址為所述dhcp客戶端接入的leaf節(jié)點的vsi接口地址。
進一步的,該方法還包括:
若接收到dhcp客戶端接入的leaf節(jié)點發(fā)送的同步消息,所述同步消息中攜帶所述dhcp客戶端的mac地址,則在本地mac地址表中記錄所述dhcp客戶端的mac地址對應(yīng)的mac表項。
進一步的,所述記錄的mac表項中的出接口為本leaf節(jié)點上接收到所述同步消息的接口。
進一步的,所述根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點,包括:
根據(jù)所述目的ip地址查詢本地記錄的路由表,獲取對應(yīng)的至少一個出接口;
按照預設(shè)的策略,從獲取的至少一個出接口中選擇出目的出接口,通過所述目的出接口將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點。
基于相同的構(gòu)思,本發(fā)明還提供一種dhcp報文轉(zhuǎn)發(fā)裝置,所述裝置應(yīng)用于分布式vxlan組網(wǎng)中的dhcp服務(wù)器接入的leaf節(jié)點,所述leaf節(jié)點使能了dhcprelay功能,所述裝置包括:
報文接收單元,用于接收dhcp服務(wù)器發(fā)送的第一dhcp報文,所述第一dhcp報文為所述dhcp服務(wù)器針對接收到的來自dhcp客戶端的第二dhcp報文的回應(yīng)報文;
第一發(fā)送單元,用于若本地mac地址表中記錄有dhcp客戶端的mac地址對應(yīng)的mac表項,則通過所述mac表項中記錄的出接口發(fā)送所述第一dhcp報文;
第二發(fā)送單元,用于若本地mac地址表中未記錄dhcp客戶端的mac地址對應(yīng)的mac表項,則根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點,以使所述對應(yīng)的leaf節(jié)點通過其本地mac地址表中記錄的dhcp客戶端的mac地址對應(yīng)的mac表項中的出接口發(fā)送所述第一dhcp報文。
進一步的,所述第一dhcp報文的目的mac地址為所述dhcp客戶端的mac地址;所述第一dhcp報文的目的ip地址為所述dhcp客戶端接入的leaf節(jié)點的vsi接口地址。
進一步的,該裝置還包括:
地址記錄單元,用于若接收到dhcp客戶端接入的leaf節(jié)點發(fā)送的同步消息,所述同步消息中攜帶所述dhcp客戶端的mac地址,則在本地mac地址表中記錄所述dhcp客戶端的mac地址對應(yīng)的mac表項。
進一步的,所述地址記錄單元記錄的mac表項中的出接口為本leaf節(jié)點上接收到所述同步消息的接口。
進一步的,所述第二發(fā)送單元,具體用于根據(jù)所述目的ip地址查詢本地記錄的路由表,獲取對應(yīng)的至少一個出接口;按照預設(shè)的策略,從獲取的至少一個出接口中選擇出目的出接口,通過所述目的出接口將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點。
由此可見,本發(fā)明的dhcp服務(wù)器接入的leaf節(jié)點可以接收dhcp服務(wù)器發(fā)送針對接收到的來自dhcp客戶端的第二dhcp報文回應(yīng)的第一dhcp報文;若本地mac地址表中記錄有dhcp客戶端的mac地址對應(yīng)的mac表項,則通過所述mac表項中記錄的出接口發(fā)送所述第一dhcp報文;若本地mac地址表中未記錄dhcp客戶端的mac地址對應(yīng)的mac表項,則根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點,以使所述對應(yīng)的leaf節(jié)點通過本地mac地址表中記錄的dhcp客戶端的mac地址對應(yīng)的mac表項中的出接口發(fā)送所述第一dhcp報文。因此,本發(fā)明可以通過dhcp客戶端的mac地址查找到目的dhcp客戶端對應(yīng)的出接口,從而實現(xiàn)將dhcp報文轉(zhuǎn)發(fā)到目的dhcp客戶端的目的,提升分布式網(wǎng)關(guān)中的leaf節(jié)點的適用性。
附圖說明
圖1是本發(fā)明一種示例性實施方式中分布式網(wǎng)關(guān)的組網(wǎng)示意圖;
圖2是本發(fā)明一種示例性實施方式中的一種dhcp報文轉(zhuǎn)發(fā)方法的處理流程圖;
圖3是本發(fā)明一種示例性實施方式中的一種dhcp報文轉(zhuǎn)發(fā)示意圖;
圖4是本發(fā)明一種示例性實施方式中的另一種dhcp報文轉(zhuǎn)發(fā)示意圖;
圖5發(fā)明一種示例性實施方式中的dhcp報文轉(zhuǎn)發(fā)裝置的指令所在的設(shè)備的硬件結(jié)構(gòu)圖;
圖6本發(fā)明一種示例性實施方式中的一種dhcp報文轉(zhuǎn)發(fā)裝置的邏輯結(jié)構(gòu)圖。
具體實施方式
請參考圖1,是本發(fā)明一種示例性實施方式中的分布式leaf節(jié)點的組網(wǎng)示意圖,所述分布式leaf節(jié)點是基于vxlan網(wǎng)絡(luò)組建的,其中包括多個leaf節(jié)點。其中l(wèi)eaf節(jié)點3連接dhcpserver,即dhcp服務(wù)器,dhcp服務(wù)器用于為網(wǎng)絡(luò)設(shè)備動態(tài)地分配ip地址等網(wǎng)絡(luò)配置參數(shù),其他leaf節(jié)點,例如leaf1節(jié)點連接host主機,例如dhcp客戶端。dhcp客戶端和dhcp服務(wù)器處于不同物理網(wǎng)段時,dhcp客戶端可以通過dhcp中繼與dhcp服務(wù)器通信。
在每個leaf節(jié)點上使能dhcprelay實現(xiàn)地址分配時,leaf節(jié)點可以作為dhcprelay網(wǎng)關(guān)。當dhcp報文在leaf節(jié)點之間轉(zhuǎn)發(fā)時,由于leaf節(jié)點節(jié)點上的vsi接口地址均相同,如果使用該vsi接口地址作為dhcp服務(wù)器客戶端發(fā)送的dhcp報文的源地址,則會導致dhcp服務(wù)器回應(yīng)的dhcp報文使用該vsi接口地址作為目的ip地址時,從而無法將回應(yīng)的第二dhcp報文轉(zhuǎn)發(fā)到dhcp客戶端所在的leaf節(jié)點上。
為了解決現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種dhcp報文轉(zhuǎn)發(fā)方法請參考圖2,是本發(fā)明一種示例性實施方式中的一種dhcp報文轉(zhuǎn)發(fā)方法的處理流程圖,所述方法應(yīng)用于分布式vxlan組網(wǎng)中的dhcp服務(wù)器接入的leaf節(jié)點,所述leaf節(jié)點使能了dhcprelay功能,所述方法包括:
步驟201、接收dhcp服務(wù)器發(fā)送的第一dhcp報文,所述第一dhcp報文為所述dhcp服務(wù)器針對接收到的來自dhcp客戶端的第二dhcp報文的回應(yīng)報文;
在本實施例中,在基于vxlan的分布式leaf節(jié)點下,在每個leaf節(jié)點上均使能了dhcprelay功能。dhcp服務(wù)器接入的leaf節(jié)點可以接收dhcp服務(wù)器發(fā)送的第一dhcp報文,該第一dhcp報文為dhcp服務(wù)器針對接收到的來自dhcp客戶端的第二dhcp報文的回應(yīng)報文。
本實施例中,分布式leaf節(jié)點在轉(zhuǎn)發(fā)dhcp客戶端發(fā)送的第二dhcp報文時,該第二dhcp報文的源ip地址和giaddr(dhcp中繼)地址都是dhcp客戶端接入的leaf節(jié)點的vsi接口地址,當dhcp服務(wù)器收到第二dhcp報文后,以giaddr地址為dhcp客戶端分配ip地址,具體來講,每個dhcp地址池都有對應(yīng)的網(wǎng)段,通過giaddr地址查找到網(wǎng)段,再通過網(wǎng)段找到對應(yīng)dhcp地址池,在這個dhcp地址池的網(wǎng)段下進行地址的分配,即選擇一個空閑未分配的ip地址來作為dhcp客戶端的ip地址。并且針對該第二dhcp報文回復的第一dhcp報文的目的ip地址仍為vsi接口地址。而由于第二dhcp報文的源mac地址為dhcp客戶端的mac地址,則所述第一dhcp報文的目的mac地址即為所述dhcp客戶端的mac地址;所述第一dhcp報文的目的ip地址為所述dhcp客戶端接入的leaf節(jié)點的vsi接口地址。
步驟202、若本地mac地址表中記錄有dhcp客戶端的mac地址對應(yīng)的mac表項,則通過所述mac表項中記錄的出接口發(fā)送所述第一dhcp報文;
當本leaf節(jié)點收到第一dhcp報文時,可以獲取該第一dhcp報文中的目的mac地址,即dhcp客戶端的mac地址,進一步判斷本地mac地址表中是否記錄有dhcp客戶端的mac地址對應(yīng)的mac表項,如果有記錄,則說明本leaf節(jié)點已經(jīng)學習到了該dhcp客戶端的mac地址,因此可以通過所述mac表項中記錄的出接口將所述第一dhcp報文發(fā)送到該dhcp客戶端接入的leaf節(jié)點。該dhcp客戶端接入的leaf節(jié)點在收到該第一dhcp報文時,可以根據(jù)第一dhcp報文的目的mac地址將第一dhcp報文轉(zhuǎn)發(fā)至dhcp客戶端。
步驟203、若本地mac地址表中未記錄dhcp客戶端的mac地址對應(yīng)的mac表項,則根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點,以使所述對應(yīng)的leaf節(jié)點通過本地mac地址表中記錄的dhcp客戶端的mac地址對應(yīng)的mac表項中的出接口發(fā)送所述第一dhcp報文。
若本地mac地址表中未記錄dhcp客戶端的mac地址對應(yīng)的mac表項,即dhcp服務(wù)器接入的leaf節(jié)點沒有學習到dhcp客戶端的mac地址,則根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點。具體來講,本leaf節(jié)點可以根據(jù)所述第一dhcp報文的目的ip地址查詢本地記錄的路由表,從該路由表中獲取對應(yīng)的至少一個出接口,具體來講,dhcp服務(wù)器接入的leaf節(jié)點在查詢本地記錄的路由表時,會查找第一dhcp報文的目的ip地址對應(yīng)的出接口,由于此時所述目的ip地址為dhcp客戶端接入的leaf節(jié)點的vsi接口地址,且每個leaf節(jié)點上的vsi接口地址均相同,因此該leaf節(jié)點會查找到該目的ip地址對應(yīng)的多個出接口。然后本leaf節(jié)點可以按照預設(shè)的策略,例如按照當前最優(yōu)鏈路優(yōu)先,或是按照dhcp客戶端對應(yīng)的預設(shè)的鏈路等策略,從獲取的至少一個出接口中選擇出目的出接口,通過所述目的出接口將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點。當所述對應(yīng)的leaf節(jié)點收到第一dhcp報文時,可以通過本地mac地址表中記錄的dhcp客戶端的mac地址對應(yīng)的mac表項中的出接口發(fā)送所述第一dhcp報文。
之所以dhcp服務(wù)器接入的leaf節(jié)點上可能會學習不到dhcp客戶端的mac地址,是因為dhcp客戶端接入的leaf節(jié)點在同步dhcp客戶端的mac地址時,執(zhí)行的同步策略不同。
關(guān)于同步策略的說明如下:
首先,將leaf節(jié)點分為兩類:一是dhcp服務(wù)器接入的leaf節(jié)點,為了后續(xù)描述方便,記為第一leaf節(jié)點;一是除去第一leaf節(jié)點以外的leaf節(jié)點,為了后續(xù)描述方便,記為第二leaf節(jié)點。
根據(jù)leaf節(jié)點的分類,mac地址的同步策略有兩種:一是向第一leaf節(jié)點同步,一是向第二leaf節(jié)點同步。
因此,如果dhcp客戶端接入的leaf節(jié)點僅向第二leaf節(jié)點同步dhcp客戶端的mac地址,第二leaf節(jié)點可能有多個,則這些第二leaf節(jié)點會學習到dhcp客戶端的mac地址,此時,第一leaf節(jié)點則學習不到dhcp客戶端的mac地址;如果dhcp客戶端接入的leaf節(jié)點僅向第一leaf節(jié)點同步dhcp客戶端的mac地址,則第一leaf節(jié)點、即dhcp服務(wù)器接入的leaf節(jié)點會學習到dhcp客戶端的mac地址,此時,第二leaf節(jié)點則學習不到dhcp客戶端的mac地址。當然,dhcp客戶端接入的leaf節(jié)點也可以選擇同時向第一leaf節(jié)點和第二leaf節(jié)點同步dhcp客戶端的mac地址。
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合圖3、圖4對本發(fā)明該方案作進一步地詳細說明。
本實施例中,如圖3所示,leaf1接收dhcp客戶端(即本地主機host1)發(fā)往dhcp服務(wù)器的dhcpdiscover報文,該dhcpdiscover報文的源mac地址為host1的mac地址,源ip地址為host1的ip地址,目的mac地址為dhcp服務(wù)器的mac地址。
leaf1收到dhcpdiscover報文時,進行本地mac地址學習,具體來講:leaf1判斷接收到的dhcpdiscover報文所屬的vsi,將dhcpdiscover報文中的源mac地址(主機host1的mac地址)添加到該vsi的mac地址表中,在mac地址表中,主機host1的mac地址對應(yīng)的接口為leaf1接收到dhcpdiscover報文的接口、記為接口1-1。然后,leaf1需要將主機host1的mac地址向其他leaf節(jié)點進行同步。
在本實施例中,將leaf節(jié)點分為兩類:一是dhcp服務(wù)器接入的leaf節(jié)點(例如leaf3),為了后續(xù)描述方便,記為第一leaf節(jié)點;一是除第一leaf節(jié)點以外的其他leaf節(jié)點(例如leaf1、leaf2),為了后續(xù)描述方便,記為第二leaf節(jié)點。則需要進行主機mac地址同步的即為第二leaf節(jié)點。
根據(jù)leaf節(jié)點的分類,主機mac地址的同步策略有兩種:一是向第一leaf節(jié)點同步,一是向第二leaf節(jié)點同步。
如圖3所示,如果同步策略為向第一leaf節(jié)點同步,則預先在第二leaf節(jié)點上配置第一leaf節(jié)點的地址,則第二leaf節(jié)點學習到主機mac地址后,根據(jù)預先配置的第一leaf節(jié)點的地址,向第一leaf節(jié)點同步學習到的主機mac地址;例如,預先在leaf1和leaf2上配置leaf3的地址,則leaf1學習到host1的mac地址后,根據(jù)預先配置的leaf3的地址,向leaf3同步host1的mac地址,同步消息中攜帶host1的mac地址,則leaf3會在本地mac地址表中添加host1的mac地址,對應(yīng)的接口為leaf3上接收到同步消息的接口、記為隧道接口2-1,同步消息如圖3中的箭頭①所示;leaf2學習到host2的mac地址后,根據(jù)預先配置的leaf3的地址,向leaf3同步host2的mac地址,同步消息中攜帶host2的mac地址,則leaf3會在本地mac地址表中添加host2的mac地址,對應(yīng)的接口為leaf3上接收到同步消息的接口,記為隧道接口2-2,同步消息如圖3中的箭頭②所示;
如圖4所示,如果同步策略為向第二leaf節(jié)點同步,則預先在第二leaf節(jié)點上配置除本節(jié)點以外的其他第二leaf節(jié)點的地址,則本節(jié)點學習到主機mac地址后,根據(jù)預先配置的其他第二leaf節(jié)點的地址,向其他第二leaf節(jié)點同步學習到主機mac地址;例如,預先在leaf1上配置leaf2的地址,在leaf2上配置leaf1的地址,則leaf1學習到host1的mac地址后,根據(jù)預先配置的leaf2的地址,向leaf2同步host1的mac地址,同步消息中攜帶host1的mac地址,則leaf2會在本地mac地址表中添加host1的mac地址,對應(yīng)的接口為leaf2上接收到同步消息的接口、記為隧道接口3-1,同步消息如圖4中的箭頭①所示;leaf2學習到host2的mac地址后,根據(jù)預先配置的leaf1的地址,向leaf1同步host2的mac地址,同步消息中攜帶host2的mac地址,則leaf1會在本地mac地址表中添加host2的mac地址,對應(yīng)的接口為leaf1上接收到同步消息的接口、記為隧道接口3-2,同步消息如圖4中的箭頭②所示。
本申請示例中,主機mac地址的同步可采用bgp協(xié)議。
leaf1將接收到的來自host1dhcpdiscover報文中的源ip地址修改為自身的vsi接口地址,根據(jù)目的mac地址(即dhcp服務(wù)器的mac地址)查找mac地址表獲取到對應(yīng)的出接口,將dhcpdiscover報文進行vxlan封裝后通過所述出接口轉(zhuǎn)發(fā)到leaf3。
當leaf3收到dhcpdiscover報文后,根據(jù)目的mac地址(dhcp服務(wù)器的mac地址)查找mac地址表獲取到對應(yīng)的出接口,將dhcpdiscover報文轉(zhuǎn)發(fā)到dhcp服務(wù)器。
dhcp服務(wù)器針對dhcpdiscover報文回應(yīng)dhcpoffer報文。該dhcpoffer報文的目的ip地址是leaf1的vsi接口地址,目的mac地址為host1的mac地址,源mac地址為dhcp服務(wù)器的mac地址。
leaf3接收dhcpoffer報文,可以先查找本地mac地址表項中是否存在與目的mac地址(host1的mac地址)對應(yīng)的出接口,需要說明的是,由于同步策略不同,對應(yīng)的查找結(jié)果存在兩種情況:
第一種情況:
如圖3所示,如果同步策略為向第一leaf節(jié)點同步,則leaf3的mac地址表項中存在host1的mac地址對應(yīng)的表項,則leaf3獲取host1的mac地址對應(yīng)的出接口,即隧道接口2-1,然后leaf3可以將dhcpoffer報文進行vxlan隧道封裝,然后通過隧道接口2-1將封裝后的dhcpoffer報文轉(zhuǎn)發(fā)至leaf1,轉(zhuǎn)發(fā)隧道如圖3的箭頭③所示。當leaf1收到leaf3轉(zhuǎn)發(fā)的該dhcpoffer報文時,則可以查找本地mac地址表項中目的mac地址(host1的mac地址)對應(yīng)的出接口1-1,從而將該dhcpoffer報文通過該出接口1-1轉(zhuǎn)發(fā)至目的mac地址對應(yīng)的主機host1。
第二種情況:
如圖4所示,如果同步策略為向第二leaf節(jié)點同步,則leaf3的mac地址表項中不存在host1的mac地址對應(yīng)的表項,此時,leaf3可以根據(jù)dhcpoffer報文目的ip地址(即leaf1的vsi接口地址)轉(zhuǎn)發(fā)該dhcpoffer報文。需要說明的是,該dhcpoffer報文需要查路由表轉(zhuǎn)發(fā),所述路由表中包括ip地址和隧道接口。由于dhcpoffer報文的目的ip地址為leaf1的vsi接口地址,而leaf2和leaf1屬于同一個vpn,兩者的vsi接口地址相同,因此根據(jù)該vsi接口地址查找路由表后可以獲得對應(yīng)的兩個出接口(一個對應(yīng)leaf1、一個對應(yīng)leaf2),即去往該vsi接口地址的路徑有兩條,此時leaf3可以根據(jù)預設(shè)的路由策略選路,從而選擇出一個出接口。因此,dhcpoffer報文可能不會轉(zhuǎn)發(fā)到leaf1。如圖4中的箭頭③所示,若是leaf2收到該dhcpoffer報文,則可以查找本地mac地址表項中是否存在與目的mac地址對應(yīng)的出接口,由于leaf1已經(jīng)將主機host1的mac地址通知到leaf2節(jié)點,因此leaf2節(jié)點可以查找到主機mac地址對應(yīng)的出接口,leaf2節(jié)點可以進一步將dhcpoffer報文進行vxlan封裝,然后通過出接口轉(zhuǎn)發(fā)至leaf1,如圖4中的箭頭④所示。當leaf1收到leaf2轉(zhuǎn)發(fā)的該dhcpoffer報文,則可以查找本地mac地址表項中是否存在與目的mac地址對應(yīng)的出接口,從而查找到該目的mac地址對應(yīng)的出接口1-1,則將該dhcpoffer報文通過該出接口1-1轉(zhuǎn)發(fā)至目的mac地址對應(yīng)的主機host1。
基于相同的構(gòu)思,本發(fā)明還提供一種dhcp報文轉(zhuǎn)發(fā)裝置,該裝置可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,本發(fā)明的dhcp報文轉(zhuǎn)發(fā)裝置作為一個邏輯意義上的裝置,是通過其所在設(shè)備的cpu將存儲器中對應(yīng)的計算機程序指令讀取后運行而成。
請參考圖5,是本發(fā)明一種示例性實施方式中的一種dhcp報文轉(zhuǎn)發(fā)裝置的指令所在的設(shè)備的硬件結(jié)構(gòu)圖,所述裝置作為計算機程序指令應(yīng)用于分布式vxlan組網(wǎng)中的dhcp服務(wù)器接入的leaf節(jié)點,所述leaf節(jié)點使能了dhcprelay功能,該裝置基本運行環(huán)境包括cpu,存儲器以及其他硬件,本發(fā)明的dhcp報文轉(zhuǎn)發(fā)裝置對應(yīng)的指令存儲在存儲器中,從邏輯層面上來看,該dhcp報文準發(fā)裝置的邏輯結(jié)構(gòu)如圖6所示,該裝置600包括:
報文接收單元601,用于接收dhcp服務(wù)器發(fā)送的第一dhcp報文,所述第一dhcp報文為所述dhcp服務(wù)器針對接收到的來自dhcp客戶端的第二dhcp報文的回應(yīng)報文;
第一發(fā)送單元602,用于若本地mac地址表中記錄有dhcp客戶端的mac地址對應(yīng)的mac表項,則通過所述mac表項中記錄的出接口發(fā)送所述第一dhcp報文;
第二發(fā)送單元603,用于若本地mac地址表中未記錄dhcp客戶端的mac地址對應(yīng)的mac表項,則根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點,以使所述對應(yīng)的leaf節(jié)點通過其本地mac地址表中記錄的dhcp客戶端的mac地址對應(yīng)的mac表項中的出接口發(fā)送所述第一dhcp報文。
可選的,所述第一dhcp報文的目的mac地址為所述dhcp客戶端的mac地址;所述第一dhcp報文的目的ip地址為所述dhcp客戶端接入的leaf節(jié)點的vsi接口地址。
可選的,該裝置還包括:
地址記錄單元604,用于若接收到dhcp客戶端接入的leaf節(jié)點發(fā)送的同步消息,所述同步消息中攜帶所述dhcp客戶端的mac地址,則在本地mac地址表中記錄所述dhcp客戶端的mac地址對應(yīng)的mac表項。
可選的,所述地址記錄單元604記錄的mac表項中的出接口為本leaf節(jié)點上接收到所述同步消息的接口。
可選的,所述第二發(fā)送單元603,具體用于根據(jù)所述目的ip地址查詢本地記錄的路由表,獲取對應(yīng)的至少一個出接口;按照預設(shè)的策略,從獲取的至少一個出接口中選擇出目的出接口,通過所述目的出接口將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點。
由此可見,本發(fā)明的dhcp服務(wù)器接入的leaf節(jié)點可以接收dhcp服務(wù)器發(fā)送針對接收到的來自dhcp客戶端的第二dhcp報文回應(yīng)的第一dhcp報文;若本地mac地址表中記錄有dhcp客戶端的mac地址對應(yīng)的mac表項,則通過所述mac表項中記錄的出接口發(fā)送所述第一dhcp報文;若本地mac地址表中未記錄dhcp客戶端的mac地址對應(yīng)的mac表項,則根據(jù)第一dhcp報文的目的ip地址將所述第一dhcp報文發(fā)送至對應(yīng)的leaf節(jié)點,以使所述對應(yīng)的leaf節(jié)點通過本地mac地址表中記錄的dhcp客戶端的mac地址對應(yīng)的mac表項中的出接口發(fā)送所述第一dhcp報文。因此,本發(fā)明可以通過dhcp客戶端的mac地址查找到目的dhcp客戶端對應(yīng)的出接口,從而實現(xiàn)將dhcp報文轉(zhuǎn)發(fā)到目的dhcp客戶端的目的,提升分布式網(wǎng)關(guān)中的leaf節(jié)點的適用性。
上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。
對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。