一種ip地址分配的方法和裝置制造方法
【專利摘要】本發(fā)明提供IP地址分配的方法及裝置,所述方法包括:接收來自SDN交換機轉(zhuǎn)發(fā)的客戶端DHCP報文;根據(jù)客戶端發(fā)送的DHCP報文的不同類型,生成對應(yīng)的不同響應(yīng)報文。應(yīng)用本發(fā)明實施例可以實現(xiàn)為不同IP子網(wǎng)中的客戶端分配IP地址,解決了一臺DHCP服務(wù)器只能為一個子網(wǎng)中的客戶端分配IP地址的問題。
【專利說明】一種IP地址分配的方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別是涉及一種IP地址分配的方法和裝置。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)規(guī)模的擴大和網(wǎng)絡(luò)復(fù)雜度的提高,網(wǎng)絡(luò)配置越來越復(fù)雜,經(jīng)常出現(xiàn)計算 機位置變化(如便攜機或無線網(wǎng)絡(luò))和計算機數(shù)量超過可分配的IP地址的情況,這時需要 用到動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol, DHCP)為客戶端分配IP 地址。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明提供一種IP地址分配的方法及裝置,將現(xiàn)有的依據(jù)DHCP協(xié)議為客戶端分 配IP地址的過程在SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))網(wǎng)絡(luò)中實現(xiàn)。
[0004] 根據(jù)本發(fā)明實施例的第一方面,提供一種IP地址分配的方法,所述方法應(yīng)用在 SDN中的控制器上,所述方法包括:
[0005] 接收來自SDN交換機轉(zhuǎn)發(fā)的客戶端DHCP報文;
[0006] 根據(jù)客戶端發(fā)送的DHCP報文的不同類型,生成對應(yīng)的不同響應(yīng)報文。
[0007] 根據(jù)本發(fā)明實施例的第二方面,提供一種IP地址分配的方法,所述方法應(yīng)用在 SDN中的交換機上,所述方法包括:
[0008] 接收來自客戶端的DHCP報文,若在預(yù)置的流表中匹配到所述DHCP報文的流表項, 則根據(jù)預(yù)設(shè)規(guī)則進行處理;若在預(yù)置的流表中未匹配到所述DHCP報文的流表項,則將所述 DHCP報文封裝為輸入數(shù)據(jù)包發(fā)送至SDN控制器;
[0009] 接收來自SDN控制器的報文,若所述控制器報文為客戶端的DHCP報文對應(yīng)的響應(yīng) 報文,則將所述響應(yīng)報文轉(zhuǎn)發(fā)至對應(yīng)的客戶端。
[0010] 根據(jù)本發(fā)明實施例的第三方面,提供一種IP地址分配的裝置,所述裝置應(yīng)用在 SDN中的控制器上,所述裝置包括:
[0011] 報文接收模塊,用于接收來自SDN交換機轉(zhuǎn)發(fā)的客戶端DHCP報文;
[0012] 報文響應(yīng)模塊,用于根據(jù)客戶端發(fā)送的DHCP報文的不同類型,生成對應(yīng)的不同響 應(yīng)報文。
[0013] 根據(jù)本發(fā)明實施例的第四方面,提供一種IP地址分配的裝置,所述裝置應(yīng)用在 SDN中的交換機上,所述裝置包括:
[0014] 客戶端報文處理模塊,用于接收來自客戶端的DHCP報文,若在預(yù)置的流表中匹配 到所述DHCP報文的流表項,則根據(jù)預(yù)設(shè)規(guī)則進行處理;若在預(yù)置的流表中未匹配到所述 DHCP報文的流表項,則將所述DHCP報文封裝為輸入數(shù)據(jù)包發(fā)送至SDN控制器;
[0015] 控制器報文處理模塊,用于接收來自SDN控制器的報文,若所述控制器報文為客 戶端的DHCP報文對應(yīng)的響應(yīng)報文,則將所述響應(yīng)報文轉(zhuǎn)發(fā)至對應(yīng)的客戶端。
[0016] 由本發(fā)明實施例可見,SDN控制器掌握著全局IP子網(wǎng)的配置信息,因此能夠根據(jù) DHCP報文轉(zhuǎn)發(fā)的路徑和端口得知客戶端的位置,從而能夠為不同IP子網(wǎng)中的客戶端分配 正確的IP地址,解決了現(xiàn)有技術(shù)中一臺DHCP服務(wù)器只能為一個子網(wǎng)中的客戶端分配IP地 址的問題。
【專利附圖】
【附圖說明】
[0017] 圖1示出了本發(fā)明IP地址分配方法的一個實施例流程圖。
[0018] 圖2示出了本發(fā)明IP地址分配方法的另一個實施例流程圖。
[0019] 圖3示出了本發(fā)明IP地址分配方法的另一個實施例流程圖。
[0020] 圖4示出了本發(fā)明IP地址分配裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖。
[0021] 圖5示出了本發(fā)明IP地址分配裝置的一個實施例框圖。
[0022] 圖6示出了本發(fā)明IP地址分配裝置的另一個實施例框圖。
【具體實施方式】
[0023] 這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及 附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例 中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附 權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。DHCP是一個局域 網(wǎng)的網(wǎng)絡(luò)協(xié)議,用于給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動分配IP地址。具體實現(xiàn)DHCP客戶 端向DHCP服務(wù)器請求分配IP地址的過程如下:
[0024] 1)發(fā)現(xiàn)階段,DHCP客戶端發(fā)送DHCP Discover發(fā)現(xiàn)報文在網(wǎng)絡(luò)上尋找DHCP服務(wù) 器;
[0025] 2)提供階段,DHCP服務(wù)器向DHCP客戶端發(fā)送一個包含出租的IP地址和其他設(shè)置 的DHCP Offer提供報文;
[0026] 3)選擇階段,如果有多臺DHCP服務(wù)器向DHCP客戶端發(fā)來DHCP Offer提供報文, 則DHCP客戶端只接受第一個接收到的DHCP Offer提供報文,然后它就以廣播方式回答一 個DHCP Request確認報文,該信息中包含向它所選定的DHCP服務(wù)器請求IP地址的內(nèi)容;
[0027] 4)確認階段,當DHCP服務(wù)器收到DHCP客戶端回答的DHCP Request確認報文之 后,它便向DHCP客戶端發(fā)送一個包含它所提供的IP地址和其他設(shè)置的DHCP Ack確認響應(yīng) 報文,告訴DHCP客戶端可以使用它所提供的IP地址。DHCP客戶端在收到DHCP Ack確認響 應(yīng)報文后,發(fā)送ARP報文到網(wǎng)絡(luò)上,用來確定DHCP服務(wù)器提供的IP地址是否已經(jīng)被其它客 戶端所占用。如果已被別的客戶端占用,則發(fā)送給DHCP服務(wù)器一個DHCP Decline包,重新 開始DHCP過程;如果沒有被占用,則DHCP過程結(jié)束,DHCP客戶端正式使用該IP地址;
[0028] 5)重新登陸,以后DHCP客戶端每次重新登錄網(wǎng)絡(luò)時,就不需要再發(fā)送DHCP Discover發(fā)現(xiàn)報文了,而是直接發(fā)送包含前一次所分配的IP地址的DHCP Request確認報 文;
[0029] 6)更新租約,DHCP服務(wù)器向DHCP客戶端出租的IP地址一般都有一個租借期限, 期滿后DHCP服務(wù)器便會收回出租的IP地址。如果DHCP客戶端要延長其IP租約,則必須 更新其IP租約。
[0030] 由上述DHCP工作流程可以看出,DHCP協(xié)議基本上是一個單向驅(qū)動協(xié)議,DHCP服務(wù) 器完全是被動的,其動作基本由DHCP客戶端的請求行為而觸發(fā)。這會帶來如下三個問題:
[0031] (1) DHCP服務(wù)器不能發(fā)現(xiàn)網(wǎng)絡(luò)上非DHCP客戶端已經(jīng)在使用的IP地址,這將可能帶 來二次及以上的DHCP過程。多次DHCP過程增加了網(wǎng)絡(luò)上數(shù)據(jù)包的傳送量,加重了網(wǎng)絡(luò)的 負載。
[0032] (2) DHCP服務(wù)器不具備鑒別主機身份的能力,這會帶來嚴重的安全隱患,若惡意主 機假冒DHCP服務(wù)器向網(wǎng)絡(luò)主機提供虛假配置信息,或者惡意主機假冒客戶端向DHCP服務(wù) 器請求大量IP地址使IP地址池枯竭,都將帶來嚴重的后果。
[0033] (3)DHCP的實現(xiàn)方式只適用于DHCP客戶端和服務(wù)器處于同一個子網(wǎng)內(nèi)的情況。
[0034] 為了解決上述DHCP分配IP地址的缺點和不足,本發(fā)明利用SDN網(wǎng)絡(luò)中控制平面 和轉(zhuǎn)發(fā)平面分離的架構(gòu)特點。利用SDN控制平面充當DHCP服務(wù)器,同時在SDN控制平面上 進一步部署經(jīng)過優(yōu)化的DHCP服務(wù),使得所述SDN控制平面能夠用來進行客戶端IP地址分 配、主機身份鑒定等功能;SDN轉(zhuǎn)發(fā)平面則進行DHCP報文的監(jiān)聽和轉(zhuǎn)發(fā)等。在實現(xiàn)時,SDN 中的控制平面功能由控制器(Controller)實現(xiàn),控制器主要通過流表項向交換機下發(fā)報 文轉(zhuǎn)發(fā)策略;數(shù)據(jù)轉(zhuǎn)發(fā)平面的功能由交換機(Switch)實現(xiàn),主要用于按照控制器下發(fā)的流 表項對報文進行轉(zhuǎn)發(fā)。在一種可選的實現(xiàn)方案中,其可以通過OpenFlow(開放流)技術(shù)將 網(wǎng)絡(luò)設(shè)備的控制面與數(shù)據(jù)面進行分離,從而實現(xiàn)對網(wǎng)絡(luò)流量的靈活控制。
[0035] 為了便于理解,下面首先對SDN網(wǎng)絡(luò)中的基本概念加以說明:
[0036] SDN控制器:是SDN架構(gòu)中的控制平面,通過對SDN交換機中的流表進行控制,從 而實現(xiàn)對整個SDN網(wǎng)絡(luò)進行集中控制。
[0037] SDN交換機:接收SDN控制器設(shè)置的流表,并根據(jù)流表進行報文轉(zhuǎn)發(fā)和處理;另一 方面,也會主動向SDN控制器上報本設(shè)備的狀態(tài)和事件,如接口 UP (可用)/DOWN (可不用)。
[0038] 流表:由匹配規(guī)則(Rule)、動作(Action)和統(tǒng)計(Statistics)三部分組成。
[0039] 匹配規(guī)則包括:SDN交換機端口(switch port)、VLAN ID (標識)、源MAC地址、目 的MAC地址、以太網(wǎng)類型、源IP地址、目的IP地址、IP協(xié)議、TCP (Transmission Control Protocol,傳輸控制協(xié)議)源端口、TCP目標端口等。
[0040] 動作:每一個流表項關(guān)聯(lián)一個如何處理匹配該流表項的報文的動作序列,該動作 序列可以由〇個或多個執(zhí)行動作組成,在對報文進行轉(zhuǎn)發(fā)處理時必須按照各個執(zhí)行動作的 順序來處理。如果流表項沒有關(guān)聯(lián)任何執(zhí)行動作,則丟棄匹配該流表項的報文。SDN交換機 不需要支持所有的動作類型,但如果SDN交換機不支持某個動作,則必須向SDN控制器返回 錯誤。SDN交換機與SDN控制器建立連接之后,要協(xié)商雙方支持的動作類型。動作具體可以 是:轉(zhuǎn)發(fā)報文到一個或多個端口,封裝報文并轉(zhuǎn)發(fā)給SDN控制器,丟棄報文,修改報文內(nèi)容 等。
[0041] 參見表1為流表結(jié)構(gòu)的一個具體示例:
[0042]
【權(quán)利要求】
1. 一種IP地址分配的方法,其特征在于,所述方法應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的控制 器上,所述方法包括: 接收來自SDN交換機轉(zhuǎn)發(fā)的客戶端DHCP報文; 根據(jù)客戶端發(fā)送的DHCP報文的不同類型,生成對應(yīng)的不同響應(yīng)報文。
2. 如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述DHCP報文的不同類型,生成對 應(yīng)的響應(yīng)報文,具體包括: 若所述DHCP報文的類型為DHCP Discover報文,則為所述客戶端分配一個IP地址,并 生成包含該分配的IP地址的DHCP Offer響應(yīng)報文; 若所述DHCP報文的類型為DHCP Request報文,則為所述客戶端生成對應(yīng)的DHCP Ack 或DHCP Nack報文;其中,當確定所述DHCP Request報文中包括的IP地址可以使用,則生 成DHCP Ack報文,若確定所述IP地址不可使用,則生成DHCP Nack報文。
3. 如權(quán)利要求2所述的方法,其特征在于,所述生成包含該分配的IP地址的DHCP Offer響應(yīng)報文之前,還包括: 向網(wǎng)絡(luò)中的所有客戶端發(fā)送沖突檢測報文詢問當前分配的IP地址是否正在被使用; 判斷在預(yù)設(shè)時間內(nèi)是否接收到來自客戶端對于所述沖突檢測報文回復(fù)的沖突響應(yīng)報 文,若收到,則為所述客戶端重新分配IP地址并重新執(zhí)行上述步驟。
4. 如權(quán)利要求2所述的方法,其特征在于,所述為所述客戶端分配一個IP地址之前,還 包括: 若所述DHCP報文的類型為DHCP Offer、DHCP Ack、DHCP Nack報文時,則丟棄所述DHCP 報文。
5. 如權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 設(shè)置流表,所述流表中設(shè)置有以下過濾規(guī)則:當接收到DHCP客戶端報文的源端口號為 67、目的端口號為68時,則動作Action設(shè)置為丟棄當前匹配的報文; 將所述流表下發(fā)至對應(yīng)的SDN交換機。
6. 如權(quán)利要求2所述的方法,其特征在于,所述生成DHCP Ack響應(yīng)報文后,還包括: 生成DHCP客戶端身份識別報文,其中所述身份識別報文包括目標客戶端當前使用的 目標IP地址; 將所述身份識別報文封裝成Packet out報文發(fā)送至對應(yīng)的SDN交換機; 判斷在預(yù)設(shè)時間范圍內(nèi)是否收到所述目標客戶端對所述身份識別報文回復(fù)的身份響 應(yīng)報文,若未收到,則確定所述目標客戶端為非法DHCP客戶端,回收所述目標客戶端的目 標IP地址,并將所述目標客戶端加入黑名單; 向SDN交換機下發(fā)流表,設(shè)置在預(yù)設(shè)的時間范圍內(nèi),對來自黑名單中客戶端發(fā)送的報 文進行丟棄。
7. -種IP地址分配的方法,其特征在于,所述方法應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的交換 機上,所述方法包括: 接收來自客戶端的DHCP報文,若在預(yù)置的流表中匹配到所述DHCP報文的流表項,則根 據(jù)預(yù)設(shè)規(guī)則進行處理;若在預(yù)置的流表中未匹配到所述DHCP報文的流表項,則將所述DHCP 報文封裝為輸入數(shù)據(jù)包發(fā)送至SDN控制器; 接收來自SDN控制器的報文,若所述控制器報文為客戶端的DHCP報文對應(yīng)的響應(yīng)報 文,則將所述響應(yīng)報文轉(zhuǎn)發(fā)至對應(yīng)的客戶端。
8. 如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)規(guī)則進行處理,具體包括: 若所述DHCP報文的源端口號為67、目的端口號為68,則丟棄所述DHCP報文。
9. 如權(quán)利要求7所述的方法,其特征在于,所述接收來自SDN控制器的報文之后,還包 括: 若所述控制器報文為預(yù)分配的IP地址的沖突檢測報文,則將所述沖突檢測報文轉(zhuǎn)發(fā) 至對應(yīng)的所有客戶端; 若接收到客戶端對所述沖突檢測報文回復(fù)的沖突響應(yīng)報文,則將所述沖突響應(yīng)報文封 裝為輸入數(shù)據(jù)包發(fā)送至SDN控制器。
10. 如權(quán)利要求7所述的方法,其特征在于,所述接收來自SDN控制器的報文之后,還包 括: 接收控制器發(fā)送的身份識別報文,將所述身份識別報文發(fā)送至對應(yīng)的客戶端,并在判 斷出所述客戶端為非法DHCP客戶端時,接收控制器下發(fā)的關(guān)于該客戶端的DHCP報文過濾 流表,在預(yù)定時間內(nèi),對接收到該客戶端發(fā)送的報文直接進行丟棄處理。
11. 一種IP地址分配的裝置,其特征在于,所述裝置應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的控制 器上,所述裝置包括: 報文接收模塊,用于接收來自SDN交換機轉(zhuǎn)發(fā)的客戶端DHCP報文; 報文響應(yīng)模塊,用于根據(jù)客戶端發(fā)送的DHCP報文的不同類型,生成對應(yīng)的不同響應(yīng)報 文。
12. 如權(quán)利要求11所述的裝置,其特征在于,所述報文響應(yīng)模塊具體包括: 地址分配單元,用于判斷所述DHCP報文的類型是否為DHCP Discover報文,若是,則為 所述客戶端分配一個IP地址,并生成包含該分配的IP地址的DHCP Offer響應(yīng)報文; 地址確認單元,用于判斷所述DHCP報文的類型是否為DHCP Request報文,若是,則為 所述客戶端生成對應(yīng)的DHCP Ack或DHCP Nack報文;其中,當確定所述DHCP Request報 文中包括的IP地址可以使用,則生成DHCP Ack報文,若確定所述IP地址不可使用,則生成 DHCP Nack 報文。
13. 如權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 沖突檢測模塊,用于向網(wǎng)絡(luò)中的所有客戶端發(fā)送沖突檢測報文詢問當前分配的IP地 址是否正在被使用;判斷在預(yù)設(shè)時間內(nèi)是否接收到來自客戶端對于所述沖突檢測報文回復(fù) 的沖突響應(yīng)報文,若收到,則為所述客戶端重新分配IP地址并重新執(zhí)行上述步驟。
14. 如權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 報文過濾模塊,用于判斷所述DHCP報文的類型是否為DHCP Offer、DHCP Ack、DHCP Nack報文,若是,則丟棄所述DHCP報文。
15. 如權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 流表設(shè)置模塊,用于設(shè)置流表,所述流表中設(shè)置有以下過濾規(guī)則:當接收到DHCP客戶 端報文的源端口號為67、目的端口號為68時,則動作Action設(shè)置為丟棄當前匹配的報文; 將所述流表下發(fā)至對應(yīng)的SDN交換機。
16. 如權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 識別處理模塊,用于生成DHCP客戶端身份識別報文,其中所述身份識別報文包括目標 客戶端當前使用的目標IP地址;將所述身份識別報文封裝成Packet out報文發(fā)送至對應(yīng) 的SDN交換機;判斷在預(yù)設(shè)時間范圍內(nèi)是否收到所述目標客戶端對所述身份識別報文回復(fù) 的身份響應(yīng)報文,若未收到,則確定所述目標客戶端為非法DHCP客戶端,回收所述目標客 戶端的目標IP地址,并將所述目標客戶端加入黑名單;向SDN交換機下發(fā)流表,設(shè)置在預(yù)設(shè) 的時間范圍內(nèi),對來自黑名單中客戶端發(fā)送的報文進行丟棄。
17. -種IP地址分配的裝置,其特征在于,所述裝置應(yīng)用在軟件定義網(wǎng)絡(luò)SDN中的交換 機上,所述裝置包括: 客戶端報文處理模塊,用于接收來自客戶端的DHCP報文,若在預(yù)置的流表中匹配到所 述DHCP報文的流表項,則根據(jù)預(yù)設(shè)規(guī)則進行處理;若在預(yù)置的流表中未匹配到所述DHCP報 文的流表項,則將所述DHCP報文封裝為輸入數(shù)據(jù)包發(fā)送至SDN控制器; 控制器報文處理模塊,用于接收來自SDN控制器的報文,若所述控制器報文為客戶端 的DHCP報文對應(yīng)的響應(yīng)報文,則將所述響應(yīng)報文轉(zhuǎn)發(fā)至對應(yīng)的客戶端。
18. 如權(quán)利要求17所述的裝置,其特征在于,所述根據(jù)預(yù)設(shè)規(guī)則進行處理,具體為:若 所述DHCP報文的源端口號為67、目的端口號為68,則丟棄所述DHCP報文。
19. 如權(quán)利要求17所述的裝置,其特征在于,所述裝置還包括: 沖突檢測模塊,用于判斷所述控制器報文是否為預(yù)分配的IP地址的沖突檢測報文,若 是,則將所述沖突檢測報文轉(zhuǎn)發(fā)至對應(yīng)的所有客戶端;若接收到客戶端對所述沖突檢測報 文回復(fù)的沖突響應(yīng)報文,則將所述沖突響應(yīng)報文封裝為輸入數(shù)據(jù)包發(fā)送至SDN控制器。
20. 如權(quán)利要求17所述的方法,其特征在于,所述裝置還包括: 識別處理模塊,用于接收控制器發(fā)送的身份識別報文,將所述身份識別報文發(fā)送至對 應(yīng)的客戶端,并在判斷出所述客戶端為非法DHCP客戶端時,接收控制器下發(fā)的關(guān)于該客戶 端的DHCP報文過濾流表,在預(yù)定時間內(nèi),對接收到該客戶端發(fā)送的報文直接進行丟棄處 理。
【文檔編號】H04L12/28GK104104744SQ201410326287
【公開日】2014年10月15日 申請日期:2014年7月9日 優(yōu)先權(quán)日:2014年7月9日
【發(fā)明者】江玉八 申請人:杭州華三通信技術(shù)有限公司