本發(fā)明涉及DHCP技術(shù),尤指一種基于DHCP的用戶接入控制方法及DHCP中繼。
背景技術(shù):
動態(tài)主機配置協(xié)議(DHCP,Dynamic Host Configuration Protocol)是在引導(dǎo)程序協(xié)議(BOOTP,Bootstrap Protocol)基礎(chǔ)上進(jìn)行了優(yōu)化和擴展而產(chǎn)生的一種網(wǎng)絡(luò)配置協(xié)議。隨著互聯(lián)網(wǎng)寬帶業(yè)務(wù)以及移動互聯(lián)網(wǎng)的不斷發(fā)展,DHCP在交互式網(wǎng)絡(luò)電視(IPTV)、下一代網(wǎng)絡(luò)(NGN,Next Generation Network)、3G、4G等業(yè)務(wù)中得到了廣泛應(yīng)用。傳統(tǒng)的寬帶遠(yuǎn)程接入服務(wù)器(Bras,Broadband Remote Access Server)設(shè)備一般部署在與用戶相連的二層網(wǎng)絡(luò)環(huán)境中,對以太網(wǎng)上IP協(xié)議(IPoE,IP over Ethernet)用戶一般采用地址集中管理,中繼分散管理的方式,一個地址部署多臺寬帶遠(yuǎn)程接入服務(wù)器(BRAS,Broadband Remote Access Server)設(shè)備作為DHCP中繼(DHCP relay)來管理IPoE寬帶接入用戶。
為了更好的開展業(yè)務(wù)、管理用戶運營商迫切需要尋找一種適應(yīng)多業(yè)務(wù)需求且靈活、可擴展的技術(shù)來支撐,這種技術(shù)同時能夠確保以太網(wǎng)接入的安全性、支持運營商對接入用戶進(jìn)行控制和管理,就需要對三層接入DHCP relay級聯(lián)的情況下在非第一級直連用戶的DHCP relay上做用戶控制。圖1為現(xiàn)有單層級聯(lián)DHCP relay的組網(wǎng)示意圖,如圖1所示,DHCP客戶端(DHCP Client)與DHCP服務(wù)器(DHCP Server)之間通過兩級DHCP relay連接,其中DHCP relay1為第一級中繼(relay),DHCP relay2為級聯(lián)relay;圖2為現(xiàn)有多層級聯(lián)DHCP relay的組網(wǎng)示意圖,如圖2所示,DHCP Client與DHCP Server之間通過三級DHCP relay連接,其中DHCP relay1為第一級relay,DHCP relay2~DHCP relayN為(N-1)級級聯(lián)relay。
按照DHCP標(biāo)準(zhǔn)協(xié)議,級聯(lián)DHCP relay只起到轉(zhuǎn)發(fā)請求報文的作用,對 于下行的報文協(xié)議規(guī)定直接路由到第一級relay的代理服務(wù)器地址(giaddr)上,中間的級聯(lián)relay不會處理該報文,同時由于路由規(guī)劃問題,下行應(yīng)答報文可能都不通過中間級聯(lián)relay返回,而直接由DHCP Server返回第一級relay,再由第一級relay返回DHCP Client。這樣,如果采用標(biāo)準(zhǔn)的方式,級聯(lián)設(shè)備要想截獲下行DHCP交互報文,首先,要規(guī)劃路由保證下行報文必須在預(yù)先規(guī)劃的路由上經(jīng)過本設(shè)備,第二,需要采用類似于snooping的方式,將下行協(xié)議報文捕獲到,并上傳到應(yīng)用層,這對傳遞的協(xié)議棧收包處理沖擊較大,第三,采用snooping的方式可能會捕獲大量本設(shè)備不需要的DHCP報文,給設(shè)備性能帶來影響,也就是說,如果還繼續(xù)基于傳統(tǒng)協(xié)議在級聯(lián)relay上是不能實現(xiàn)對用戶的接入控制的。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供一種用戶接入控制方法及DHCP中繼,能夠?qū)θ龑咏尤隓HCP relay級聯(lián)的情況下在級聯(lián)relay上是實現(xiàn)對用戶的接入控制。
為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種用戶接入控制方法,包括:
級聯(lián)動態(tài)主機配置協(xié)議DHCP中繼接收到來自上一級DHCP中繼的報文,記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址;
級聯(lián)DHCP中繼逐級轉(zhuǎn)發(fā)報文直至DHCP服務(wù)器。
可選地,所述上一級DHCP中繼為第一級DHCP中繼;或者,
所述上一級DHCP中繼為第一級DHCP中繼或級聯(lián)DHCP中繼。
可選地,所述上一級DHCP中繼為第一級DHCP中繼,該方法之前還包括:
第一級DHCP中繼接收來自DHCP客戶端DHCP Client的報文,將自身的代理服務(wù)器地址填充在代理服務(wù)器地址giaddr字段;
第一級DHCP中繼選擇其下一級DHCP中繼繼續(xù)發(fā)送報文。
可選地,所述記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址包括:
所述級聯(lián)DHCP中繼接收到來自上一級DHCP中繼的報文,提取原始DHCP中繼的giaddr,并將其記錄在預(yù)先設(shè)置的代理地址填充link-selection選項字段中;
將報文中的giaddr字段替換為當(dāng)前接收到報文的所述級聯(lián)DHCP中繼的giaddr。
可選地,所述級聯(lián)DHCP中繼逐級轉(zhuǎn)發(fā)報文直至DHCP服務(wù)器包括:
所述級聯(lián)DHCP中繼選擇其下一級DHCP中繼,并返回執(zhí)行所述記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址的步驟,直至報文轉(zhuǎn)發(fā)至所述DHCP服務(wù)器;
或者,所述級聯(lián)DHCP中繼將報文轉(zhuǎn)發(fā)給DHCP服務(wù)器。
可選地,該方法還包括:
所述級聯(lián)DHCP中繼接收到DHCP服務(wù)器或其下一級DHCP中繼返回的響應(yīng)報文,將代理服務(wù)器地址更改為所述記錄的其上一級DHCP中繼的地址后轉(zhuǎn)發(fā),直至響應(yīng)報文返回第一級DHCP中繼;
第一級DHCP中繼將響應(yīng)報文返回給DHCP客戶端。
本發(fā)明還提供了一種DHCP中繼,至少包括第一處理模塊、轉(zhuǎn)發(fā)模塊;其中,
第一處理模塊,用于接收到來自上一級DHCP中繼的報文,記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址,將處理后的報文輸出給轉(zhuǎn)發(fā)模塊;
轉(zhuǎn)發(fā)模塊,用于將接收到的報文輸出給下一級設(shè)備。
可選地,所述第一處理模塊具體用于:接收到來自上一級DHCP中繼的報文,提取原始DHCP中繼的giaddr,并將其記錄在預(yù)先設(shè)置的link-selection選項字段中;將報文中的giaddr字段替換為當(dāng)前接收到報文的所述級聯(lián)DHCP中繼的giaddr;將處理后的報文輸出給所述轉(zhuǎn)發(fā)模塊。
可選地,所述上一級DHCP中繼為第一級DHCP中繼;或者,
所述上一級DHCP中繼為第一級DHCP中繼或級聯(lián)DHCP中繼。
可選地,還包括第二處理模塊,用于接收到所述DHCP服務(wù)器或自身所在DHCP中繼的下一級DHCP中繼返回的響應(yīng)報文,將代理服務(wù)器地址更改為所述記錄的自身所在DHCP中繼的上一級DHCP中繼的地址后輸出給所述轉(zhuǎn)發(fā)模塊。
與現(xiàn)有技術(shù)相比,本申請技術(shù)方案包括級聯(lián)DHCP中繼接收到來自上一級DHCP中繼的報文,記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址;級聯(lián)DHCP中繼逐級轉(zhuǎn)發(fā)報文直至DHCP服務(wù)器。本發(fā)明提供的技術(shù)方案,在級聯(lián)DHCP relay上通過將原始DHCP relay的代理服務(wù)器地址記錄在新增代理地址填充(link-selection)選項字段,將級聯(lián)DHCP relay自身的代理服務(wù)器地址填充在代理服務(wù)器地址(giaddr)字段中,達(dá)到了使DHCP Server回復(fù)的響應(yīng)報文都經(jīng)過報文流經(jīng)的所有級聯(lián)DHCP relay,對三層接入DHCP relay級聯(lián)的情況下在級聯(lián)relay上是實現(xiàn)了對用戶的接入控制。
進(jìn)一步地,本發(fā)明方法也為生成用戶表管理用戶提供了保障,為業(yè)務(wù)部署提供了更大的方便;而且,本發(fā)明提供的技術(shù)方案完全符合標(biāo)準(zhǔn)協(xié)議,不存在任何對接問題,不需要其他設(shè)備做特殊處理,也不需要通過修改協(xié)議棧收發(fā)包等特殊方式抓取報文生成用戶,實現(xiàn)簡單,減輕了設(shè)備負(fù)擔(dān)。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1為現(xiàn)有單層級聯(lián)DHCP relay的組網(wǎng)示意圖;
圖2為現(xiàn)有多層級聯(lián)DHCP relay的組網(wǎng)示意圖;
圖3為本發(fā)明用戶接入控制方法的流程圖;
圖4為本發(fā)明DHCP relay的組成結(jié)構(gòu)示意圖;
圖5為本發(fā)明用戶接入控制方法的實施例流程示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
圖3為本發(fā)明用戶接入控制方法的流程圖,如圖3所示,包括:
步驟300:級聯(lián)DHCP中繼接收到來自上一級DHCP中繼的報文,記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址。
其中,對于單層級聯(lián)DHCP relay的組網(wǎng)方式,上一級DHCP中繼為第一級DHCP中繼;對于多層級聯(lián)DHCP relay的組網(wǎng)方式,上一級DHCP中繼為第一級DHCP中繼或級聯(lián)DHCP中繼。
本步驟中的記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址具體包括:
級聯(lián)DHCP relay接收到來自上一級DHCP relay的報文,提取原始DHCP relay的代理服務(wù)器地址(giaddr),并將其填充在Link-selection sub-option中;同時將報文中的giaddr字段替換為當(dāng)前接收到報文的級聯(lián)DHCP relay的giaddr。這里,本領(lǐng)域技術(shù)人員明確知道的是,原始DHCP relay的giaddr就是第一級DHCP relay填充在報文中的原始giaddr。
其中,Link-selection sub-option是標(biāo)準(zhǔn)RFC規(guī)定的82號選項的子選項,Link Selection sub-option可能會預(yù)先已經(jīng)存在,已經(jīng)存在的情況就不再修改,如果不存在的話,則按本發(fā)明中的將報文攜帶的giaddr地址填入Link Selection sub-option即可,具體實現(xiàn)屬于本領(lǐng)域技術(shù)人員的慣用技術(shù)手段,這里不做限定,這里需要強調(diào)的是,采用Link-selection sub-option保存原始DHCP relay的代理服務(wù)器地址,以便在響應(yīng)報文返回時,可以將其作為轉(zhuǎn)發(fā)的目的地址重新替換在giaddr字段中。Link Selection sub-option按照標(biāo)準(zhǔn)協(xié)議是分配地址使用的,保證地址所在的網(wǎng)段正確,但是對于未攜帶Link Selection sub-option的報文,一般根據(jù)giaddr來分配地址,本發(fā)明中,將giaddr填入Link Selection sub-option,達(dá)到了根據(jù)標(biāo)準(zhǔn)協(xié)議可以正確的分配地址。
當(dāng)上一級DHCP中繼為第一級DHCP中繼時,本發(fā)明方法之前還包括:
第一級DHCP relay接收來自DHCP Client的報文,將自身的代理服務(wù)器地址填充在giaddr字段,同時選擇下一級DHCP relay繼續(xù)發(fā)送報文。
步驟301:級聯(lián)DHCP中繼逐級轉(zhuǎn)發(fā)報文直至DHCP服務(wù)器。
級聯(lián)DHCP relay選擇下一級DHCP relay,并返回步驟300,直至報文轉(zhuǎn)發(fā)至DHCP服務(wù)器;或者直接將報文轉(zhuǎn)發(fā)給DHCP Server。
本發(fā)明方法還包括:級聯(lián)DHCP中繼接收到DHCP服務(wù)器或下一級DHCP中繼返回的響應(yīng)報文,將代理服務(wù)器地址更改為之前記錄的其上一級DHCP中繼的地址后轉(zhuǎn)發(fā),直至響應(yīng)報文返回第一級DHCP中繼;第一級DHCP中繼將響應(yīng)報文返回給DHCP客戶端。
本發(fā)明提供的用戶接入控制方法,在級聯(lián)DHCP relay上通過將原始DHCP relay的代理服務(wù)器地址記錄在Link Selection sub-option中,將級聯(lián)DHCP relay自身的代理服務(wù)器地址填充在giaddr字段中,達(dá)到了使DHCP server回復(fù)的響應(yīng)報文都經(jīng)過報文流經(jīng)的所有級聯(lián)DHCP relay,對三層接入DHCP relay級聯(lián)的情況下在級聯(lián)relay上是實現(xiàn)了對用戶的接入控制,也為生成用戶表管理用戶提供了保障,為業(yè)務(wù)部署提供了更大的方便;同時,本發(fā)明提供的技術(shù)方案完全符合標(biāo)準(zhǔn)協(xié)議,不存在任何對接問題,不需要其他設(shè)備做特殊處理,也不需要通過修改協(xié)議棧收發(fā)包等特殊方式抓取報文生成用戶,實現(xiàn)簡單,減輕了設(shè)備負(fù)擔(dān)。
圖4為本發(fā)明DHCP relay的組成結(jié)構(gòu)示意圖,如圖4所示,包括第一處理模塊、轉(zhuǎn)發(fā)模塊;其中,
第一處理模塊,用于接收到來自上一級DHCP中繼的報文,記錄原始DHCP中繼的地址,并將自身的地址作為代理服務(wù)器地址,將處理后的報文輸出給轉(zhuǎn)發(fā)模塊;
轉(zhuǎn)發(fā)模塊,用于將接收到的報文輸出給下一級設(shè)備。
其中,第一處理模塊具體用于:接收到來自上一級DHCP relay的報文,提取原始DHCP relay的giaddr,并將其填充在Link-selection sub-option中;同時將報文中的giaddr字段替換為當(dāng)前接收到報文的級聯(lián)DHCP relay的giaddr;將處理后的報文輸出給轉(zhuǎn)發(fā)模塊。
其中,對于單層級聯(lián)DHCP relay的組網(wǎng)方式,上一級DHCP中繼為第一級DHCP中繼;對于多層級聯(lián)DHCP relay的組網(wǎng)方式,上一級DHCP中繼為第一級DHCP中繼或級聯(lián)DHCP中繼。
本發(fā)明DHCP relay還包括第二處理模塊,用于接收到DHCP服務(wù)器或自身所在DHCP中繼的下一級DHCP中繼返回的響應(yīng)報文,將代理服務(wù)器地址更改為之前記錄的自身所在DHCP中繼的上一級DHCP中繼的地址后輸出給轉(zhuǎn)發(fā)模塊。
圖5為本發(fā)明用戶接入控制方法的實施例流程示意圖,如圖5所示,本實施例以單層級聯(lián)DHCP relay的組網(wǎng)方式為例,并假設(shè)DHCP relay1為第一級DHCP relay,DHCP relay2為級聯(lián)DHCP relay;具體實現(xiàn)包括:
步驟500:DHCP client向第一級DHCP relay即DHCP relay1發(fā)送DHCP發(fā)現(xiàn)(DHCP DISCOVER)請求報文。
步驟501:DHCP relay1接收DHCP DISCOVER請求報文,將自身的代理服務(wù)器地址填充到giaddr字段,同時選擇下一級DHCP relay繼續(xù)發(fā)送DHCP DISCOVER。
步驟502~步驟503:級聯(lián)DHCP relay DHCP relay2接收DHCP DISCOVER請求報文,提取DHCP relay1的giaddr并將其填充到填充在Link-selection sub-option中,同時將giaddr字段信息替換為DHCP relay2自身的giaddr。選擇下一級DHCP relay或DHCP服務(wù)器轉(zhuǎn)發(fā)報文。
通過本步驟的處理,按照DHCP標(biāo)準(zhǔn)協(xié)議DHCP server根據(jù)giaddr字段實現(xiàn)了報文的響應(yīng)可以返回到級聯(lián)DHCP relay上;
并將第一級giaddr即原始giaddr填充到Link-selection sub-option中,使得根據(jù)標(biāo)準(zhǔn)協(xié)議可以正確的分配地址,同時選擇下一級DHCP relay/server繼續(xù)發(fā)送DHCPDISCOVER;
步驟504~步驟505:DHCP server收到DHCP DISCOVER后返回DHCP接受(DHCP OFFER)響應(yīng)報文,其中,目的地址為giaddr字段所攜帶的代理服務(wù)器地址。
步驟506~步驟507:DHCP relay2接收DHCP OFFER響應(yīng)報文,記錄用 戶信息如接入的端口信息,將giaddr字段的信息恢復(fù)為步驟502~步驟503中記錄的第一級DHCP relay即DHCP relay1的giaddr信息;繼續(xù)轉(zhuǎn)發(fā)DHCP OFFER,此時的目的地址為DHCP relay1的giaddr。
步驟508:DHCP relay1接收DHCP OFFER響應(yīng)報文,按標(biāo)準(zhǔn)協(xié)議處理后轉(zhuǎn)發(fā)給DHCP Client。
步驟509:DHCP client向DHCP relay1返回DHCP索求(DHCP REQUEST)請求報文。
步驟510:DHCP relay1接收DHCP REQUEST請求報文,將自身的代理服務(wù)器地址填充到giaddr字段,同時選擇下一級DHCP relay繼續(xù)發(fā)送DHCP REQUEST;
步驟511~512:DHCP relay2接收DHCP REQUEST請求報文,檢查報文如對接入信息的檢查(具體實現(xiàn)屬于本領(lǐng)域技術(shù)人員的公知技術(shù),這里不再贅述),提取DHCP relay1的giaddr并將其填充到新增的link-selection選項字段中,同時將giaddr字段信息替換為DHCP relay2自身的giaddr。選擇下一級DHCP relay或DHCP服務(wù)器轉(zhuǎn)發(fā)報文。
步驟513~步驟514:DHCP server收到DHCP REQUEST后,返回DHCP回應(yīng)(DHCP ACK)響應(yīng)報文,其中,目的地址為giaddr字段所攜帶的代理服務(wù)器地址。
步驟515~步驟516:DHCP relay2接收DHCP ACK響應(yīng)報文,記錄用戶信息如接入的端口信息,將giaddr字段的信息恢復(fù)為步驟511~步驟512中記錄的上一級DHCP relay即DHCP relay1的giaddr信息;繼續(xù)轉(zhuǎn)發(fā)DHCP ACK,此時的目的地址為DHCP relay1的giaddr。
步驟517:DHCP relay1接收DHCP ACK響應(yīng)報文,按標(biāo)準(zhǔn)協(xié)議處理后轉(zhuǎn)發(fā)給DHCP Client。
以上所述,僅為本發(fā)明的較佳實例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。