專利名稱:一種PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種PPPoE(基于以太網(wǎng)的點(diǎn)對(duì)點(diǎn)協(xié)議)協(xié)議報(bào)文轉(zhuǎn)發(fā)方法。
背景技術(shù):
隨著寬帶網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,以xDSL、CableModem和以太網(wǎng)為主的幾種主流寬帶接入技術(shù)的應(yīng)用,在秉承窄帶撥號(hào)上網(wǎng)的運(yùn)營(yíng)思路基礎(chǔ)上,IETF(國(guó)際互聯(lián)網(wǎng)工程任務(wù)組)制定出了PPPoE協(xié)議,它提供了在以太網(wǎng)中多臺(tái)用戶主機(jī)連接到遠(yuǎn)端的BAS(寬帶接入服務(wù)器)上的一種標(biāo)準(zhǔn),在以太網(wǎng)上建立、維持各用戶主機(jī)與BAS之間點(diǎn)對(duì)點(diǎn)的關(guān)系,BAS提供PPPoE服務(wù)器功能以支持對(duì)PPPoE協(xié)議報(bào)文的終結(jié)。
如圖1所示,在接入網(wǎng)絡(luò)中,多個(gè)用戶主機(jī)11通過其網(wǎng)絡(luò)終端設(shè)備12與網(wǎng)絡(luò)接入設(shè)備13如DSLAM(數(shù)字用戶線復(fù)用器)相連接,其用戶主機(jī)接入?yún)f(xié)議類型可以是PPPoE或PPPoA,DSLAM在完成PPPoE/PPPoA到PPPoE的轉(zhuǎn)換后需要進(jìn)一步通過EMAN(以太網(wǎng)城域網(wǎng))將PPPoE報(bào)文轉(zhuǎn)發(fā)到BAS上以終結(jié)PPP會(huì)話。由于EMAN中的執(zhí)行匯聚功能的以太網(wǎng)交換機(jī)14或BAS 15的MAC地址表的容量是有限的,如果在接入設(shè)備DSLAM的每個(gè)用戶主機(jī)和BAS之間的PPPoE會(huì)話都使用不同的MAC地址,當(dāng)用戶會(huì)話數(shù)較大時(shí)容易耗盡EMAN中后續(xù)設(shè)備(以太網(wǎng)交換機(jī)14和BAS 15)的MAC地址表。而且對(duì)后續(xù)設(shè)備來說,龐大的MAC地址表也限制了其數(shù)據(jù)轉(zhuǎn)發(fā)處理能力。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,根據(jù)本方法實(shí)現(xiàn)的網(wǎng)絡(luò)設(shè)備下的多個(gè)客戶端可使用同樣的MAC地址與BAS進(jìn)行會(huì)話。
一種PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,包括a)在PPPoE發(fā)現(xiàn)階段,上行方向,將來自若干客戶端的PPPoE協(xié)議報(bào)文源MAC地址設(shè)置為本機(jī)MAC地址,并將客戶端信息承載在PPPoE協(xié)議報(bào)文中,下行方向,根據(jù)返回的PPPoE協(xié)議報(bào)文中相應(yīng)客戶端信息配置PPPoE協(xié)議報(bào)文;并為每個(gè)客戶端PPPoE建立會(huì)話記錄表;b)在PPP會(huì)話階段,根據(jù)所建立的會(huì)話記錄進(jìn)行上行PPPoE數(shù)據(jù)報(bào)文源MAC地址替換,下行PPPoE數(shù)據(jù)協(xié)議報(bào)文目的MAC地址替換,并轉(zhuǎn)發(fā)PPPoE數(shù)據(jù)報(bào)文。
優(yōu)選地,所述會(huì)話記錄表至少包括客戶端信息、PPPoE會(huì)話標(biāo)識(shí)。
優(yōu)選地,所述會(huì)話記錄表進(jìn)一步包括PPPoE服務(wù)器MAC地址。
優(yōu)選地,所述會(huì)話記錄表進(jìn)一步包括中繼會(huì)話標(biāo)簽,所述PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法進(jìn)一步將來自客戶端協(xié)議報(bào)文的中繼會(huì)話標(biāo)簽值保存在會(huì)話記錄表并在相應(yīng)的返回報(bào)文中予以替換。
其中,所述客戶端信息可以是客戶端MAC地址。
優(yōu)選地,所述PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)中,客戶端信息承載于PPPoE協(xié)議報(bào)文中繼會(huì)話標(biāo)簽。
優(yōu)選地,所述PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)中,當(dāng)所述PPPoE報(bào)文為有效發(fā)現(xiàn)終止報(bào)文時(shí),進(jìn)一步刪除該報(bào)文相應(yīng)的客戶端與PPPoE服務(wù)器之間所建立的會(huì)話記錄。
通過上述發(fā)明方法,網(wǎng)絡(luò)接入設(shè)備可以對(duì)所轉(zhuǎn)發(fā)的所有PPPoE報(bào)文通過使用有限的MAC地址,從而減少了EMAN中的以太網(wǎng)交換機(jī)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)時(shí)所需要的查表時(shí)間,提高了轉(zhuǎn)發(fā)效率;此外,針對(duì)現(xiàn)有BAS和以太網(wǎng)交換機(jī)的MAC地址表數(shù)量比較少、不利于大規(guī)模PPPoE/PPPoA用戶的接入,通過本發(fā)明很好地解決了上述局限性;在本發(fā)明實(shí)現(xiàn)上,以DSLAM為例,通過將用戶設(shè)備MAC地址替換為本機(jī)MAC地址,如用戶接入線卡的MAC地址,從而避免了用戶設(shè)備MAC地址在EMAN中和其他網(wǎng)絡(luò)設(shè)備的MAC發(fā)生沖突。
圖1是一種典型的網(wǎng)絡(luò)接入系統(tǒng)結(jié)構(gòu)示意;圖2是一種典型的PPPoE會(huì)話流程圖;圖3是PPPoE幀格式;
圖4是本發(fā)明所提供的客戶端與BAS之間PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā);圖5是本發(fā)明提供的客戶端會(huì)話記錄表。
具體實(shí)施例方式
下面結(jié)合附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施方式進(jìn)行詳細(xì)的說明。
圖2是一種典型的用戶主機(jī)11與BAS 15之間的PPPoE會(huì)話流程圖,它包含PPPoE發(fā)現(xiàn)階段和PPP會(huì)話兩個(gè)階段。
(1)PPPoE發(fā)現(xiàn)階段目的是獲得PPPoE終結(jié)端BAS的PPPoE服務(wù)器的MAC地址,并建立一個(gè)與該P(yáng)PPoE服務(wù)器之間唯一的PPP會(huì)話標(biāo)識(shí)符(SESSION ID)。發(fā)現(xiàn)階段會(huì)話步驟包括用戶主機(jī)廣播一個(gè)PADI(有效發(fā)現(xiàn)初始)報(bào)文尋找BAS,PADI報(bào)文必須至少包含一個(gè)服務(wù)名稱類型(Service Name)的標(biāo)簽,以表明用戶主機(jī)所要求提供的服務(wù)。
一個(gè)或多個(gè)可以提供用戶主機(jī)要求的BAS(圖中只示意一個(gè))發(fā)送PADO(有效發(fā)現(xiàn)提供)報(bào)文。
用戶主機(jī)選擇一個(gè)合適的BAS,發(fā)送PADR(單播會(huì)話請(qǐng)求)報(bào)文以告知被選擇的BAS,PADR中必須聲明向BAS請(qǐng)求的服務(wù)種類。
被選擇的BAS收到PADR報(bào)文后開始為用戶主機(jī)分配一個(gè)唯一的Session ID,啟動(dòng)PPP狀態(tài)機(jī)以準(zhǔn)備開始PPP會(huì)話,并發(fā)送一個(gè)PADS(會(huì)話確認(rèn)報(bào)文)。
此外,PPPoE還有一個(gè)PADT(有效發(fā)現(xiàn)終止)報(bào)文,它可以在會(huì)話建立后的任何時(shí)候由用戶主機(jī)或者BAS發(fā)送,以終止PPPoE會(huì)話。
(2)PPP會(huì)話階段用戶主機(jī)收到PADS報(bào)文后,雙方進(jìn)入PPP會(huì)話階段。在會(huì)話階段的Session ID必須是發(fā)現(xiàn)階段所分配的值,PPPoE數(shù)據(jù)(PPP Data)報(bào)文的負(fù)荷區(qū)包含一個(gè)PPP幀,進(jìn)行PPP層的鏈路配置、協(xié)商、數(shù)據(jù)交換等過程。
結(jié)合圖1所示意,用戶主機(jī)與BAS之間的網(wǎng)絡(luò)終端設(shè)備12、網(wǎng)絡(luò)接入設(shè)備13、太網(wǎng)交換機(jī)14等將提供PPPoE協(xié)議報(bào)文的轉(zhuǎn)發(fā)。
圖3是PPPOE的幀格式,其詳細(xì)說明可參考相關(guān)IETF標(biāo)準(zhǔn),這里只作簡(jiǎn)單說明類型31為0x8863時(shí)表示PPPoE發(fā)現(xiàn)階段;為0x8864時(shí)表示PPP會(huì)話階段。
代碼32用于表示用戶主機(jī)與BAS之間的報(bào)文類型,例如為0x09時(shí)表示一個(gè)PADI報(bào)文;0x07時(shí)表示一個(gè)PADO報(bào)文,為0x00時(shí)表示PPP會(huì)話階段……。
SESSION_ID 33是一個(gè)網(wǎng)絡(luò)字節(jié)序的無符號(hào)值,對(duì)一個(gè)給定的PPP會(huì)話來說該值是一個(gè)固定值,并且與客戶端地址和目的地址一起實(shí)際地定義了一個(gè)PPP會(huì)話。
標(biāo)簽類型34用于其它約定用途定義,例如為0x0101表示一個(gè)服務(wù)名稱類型(表明可向用戶主機(jī)提供的服務(wù)種類)的標(biāo)簽;為0x0102表示一個(gè)寬帶接入服務(wù)器名稱的標(biāo)簽;為0x0110表示一個(gè)中繼會(huì)話標(biāo)簽,……上述每種標(biāo)簽除了標(biāo)簽類型34外,還具有標(biāo)簽長(zhǎng)度、標(biāo)簽值。
下面,我們結(jié)合圖4以DSLAM為例對(duì)客戶端與BAS之間PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法做進(jìn)一步說明。
在PPPoE發(fā)現(xiàn)階段,DSLAM在獲得來自客戶端PADI(或者PADR)報(bào)文時(shí),記錄下該報(bào)文所對(duì)應(yīng)的客戶端信息,如客戶端MAC地址;DSLAM進(jìn)一步將客戶端信息編碼到發(fā)往BAS的PADI(或者PADR)報(bào)文中,并以本機(jī)MAC地址(如當(dāng)前用戶線卡的MAC地址)替換PADI(或者PADR)報(bào)文的源MAC地址然后將轉(zhuǎn)換后的PADI’(或者PADR’)報(bào)文傳遞到BAS端的PPPoE Server。當(dāng)收到來自PPPoE Server響應(yīng)的PADO’(或者PADS’)后,根據(jù)該報(bào)文中原樣復(fù)制的客戶端信息找到原客戶端MAC地址,然后DSLAM以獲得的原客戶端MAC地址替換PADO’(或者PADS’)報(bào)文的目的MAC地址后、并進(jìn)一步刪除該報(bào)文中的客戶端信息編碼并將轉(zhuǎn)換后的PADO(或者PADS)報(bào)文傳遞給客戶端。
DSLAM可以為每個(gè)正在建立或建立好的客戶端PPPoE會(huì)話建立會(huì)話記錄表,如圖5所示,其會(huì)話記錄結(jié)構(gòu)至少需要包含客戶端信息、SESSION_ID以為每個(gè)客戶端與PPPoE服務(wù)器之間定義一個(gè)唯一的PPP會(huì)話;當(dāng)EMAN中存在多個(gè)PPPoE服務(wù)器時(shí),該會(huì)話記錄結(jié)構(gòu)還需要進(jìn)一步包括PPPoE服務(wù)器MAC地址。
優(yōu)選地,所述客戶端信息既可以是前述客戶端MAC地址、也可以包括與該客戶端相連的DSLAM中的端口號(hào)、或其它相關(guān)信息或它們的組合,只要其能唯一地表示該客戶端PPPoE協(xié)議報(bào)文。如此,PPPoE報(bào)文中承載的客戶信息可以是唯一標(biāo)識(shí)該客戶端的一個(gè)PPPoE會(huì)話記錄索引,DSLAM能根據(jù)該記錄索引確定PADO’(或者PADS’)需要配置轉(zhuǎn)發(fā)的客戶端信息。
優(yōu)選地,對(duì)客戶端上行的PPPoE報(bào)文轉(zhuǎn)發(fā)可以使用PPPoE協(xié)議報(bào)文中繼會(huì)話標(biāo)簽承載客戶端信息;但不排除在DSLAM和BAS之間約定一個(gè)新的標(biāo)簽類型承載上述客戶端信息,只要BAS返回的PPPoE報(bào)文(如前述PADO’或者PADS’)中提供從PADI(或者PADR)中原樣復(fù)制的客戶端信息。
優(yōu)選地,如果發(fā)現(xiàn)階段協(xié)議報(bào)文中已經(jīng)存在中繼會(huì)話標(biāo)簽,根據(jù)RFC 2516中約定,轉(zhuǎn)發(fā)設(shè)備再不得增加新的中繼會(huì)話標(biāo)簽,但我們可以在客戶端會(huì)話記錄表中增加一個(gè)中繼標(biāo)簽選項(xiàng),將來自客戶端轉(zhuǎn)發(fā)前的PPPoE報(bào)文(如前述PADI或者PADR)的中繼會(huì)話標(biāo)簽記錄保存在會(huì)話記錄表中并對(duì)BAS返回的PPPoE報(bào)文(如前述PADO’或者PADS’)相應(yīng)的中繼標(biāo)簽予以替換后再轉(zhuǎn)發(fā)。
收到PADS’后,它將報(bào)文中的SESSION_ID記錄到會(huì)話記錄表相應(yīng)的客戶端會(huì)話記錄中,如此,DSLAM可以為每個(gè)客戶端與PPPoE服務(wù)器之間定義一個(gè)唯一的PPP會(huì)話.如前所述,當(dāng)EMAN中存在多個(gè)PPPoE服務(wù)器時(shí),該會(huì)話記錄結(jié)構(gòu)還需要進(jìn)一步記錄PPPoE服務(wù)器的MAC地址,當(dāng)然,對(duì)PPPoE服務(wù)器的MAC地址的記錄可以是在收到PADO’報(bào)文時(shí)記錄(EMAN中存在一個(gè)PPPoE服務(wù)器時(shí)),也可以是在收到PADS’進(jìn)行記錄。
在PPP會(huì)話階段,如果收到來自客戶端的PPPoE數(shù)據(jù)(PPP Data)報(bào)文,則以本機(jī)MAC地址,如當(dāng)前用戶線卡的MAC地址替換原來的源MAC地址,并根據(jù)發(fā)現(xiàn)階段確定的會(huì)話記錄將轉(zhuǎn)換后的PPP Data’報(bào)文發(fā)往目的BAS。同樣,在收到來自BAS的PPP Data’報(bào)文,根據(jù)報(bào)文中的SESSION_ID以及BAS的PPPoE服務(wù)器的MAC地址可以在會(huì)話記錄唯一地確定客戶端信息,如客戶端MAC地址,并以其替換該報(bào)文中的目的MAC地址并轉(zhuǎn)發(fā)轉(zhuǎn)換后的PPP Data報(bào)文。
此外,當(dāng)DSLAM收到客戶端或者BAS發(fā)送的PADT報(bào)文時(shí),它在執(zhí)行完該報(bào)文轉(zhuǎn)發(fā)后,進(jìn)一步刪除該客戶端與PPPoE服務(wù)器之間會(huì)話記錄。
盡管上述實(shí)施例對(duì)PPPoE客戶端進(jìn)行PPPoE報(bào)文轉(zhuǎn)發(fā),但是本發(fā)明思想同樣可用于為PPPoA客戶端提供PPPoA到PPPoE的報(bào)文轉(zhuǎn)發(fā),所不同的是DSLAM記錄PPPoA客戶端信息不同,例如DSL線號(hào)、Vpi和Vci,并需要完成PPPoA協(xié)議報(bào)文到PPPoE協(xié)議報(bào)文的轉(zhuǎn)換過程。
通過上述PPPoE協(xié)議報(bào)文轉(zhuǎn)換方法,DSLAM可以為多個(gè)PPPoE/PPPoA客戶端使用單一的源MAC地址與BAS進(jìn)行PPPoE會(huì)話,從而節(jié)省了后續(xù)設(shè)備的MAC地址空間,減少了其進(jìn)行數(shù)據(jù)交換過程中的查表時(shí)間,從而提高了轉(zhuǎn)發(fā)效率。
不脫離本發(fā)明的構(gòu)思和范圍可以做出許多其他改變和改型。應(yīng)當(dāng)理解,本發(fā)明不限于特定的實(shí)施方式,本發(fā)明的范圍由所附權(quán)利要求限定。
權(quán)利要求
1.一種PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,包括a)在PPPoE發(fā)現(xiàn)階段,上行方向,將來自若干客戶端的PPPoE協(xié)議報(bào)文源MAC地址設(shè)置為本機(jī)MAC地址,并將客戶端信息承載在PPPoE協(xié)議報(bào)文中,下行方向,根據(jù)返回的PPPoE協(xié)議報(bào)文中相應(yīng)客戶端信息配置PPPoE協(xié)議報(bào)文,并為每個(gè)客戶端PPPoE建立會(huì)話記錄表;b)在PPP會(huì)話階段,根據(jù)所建立的會(huì)話記錄進(jìn)行上行PPPoE數(shù)據(jù)報(bào)文源MAC地址設(shè)置,下行PPPoE數(shù)據(jù)協(xié)議報(bào)文客戶端信息恢復(fù),并轉(zhuǎn)發(fā)PPPoE數(shù)據(jù)報(bào)文。
2.如權(quán)利要求1所述的PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,其特征在于所述會(huì)話記錄表至少包括客戶端信息、PPPoE會(huì)話標(biāo)識(shí)。
3.如權(quán)利要求2所述的PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,其特征在于所述會(huì)話記錄表進(jìn)一步包括PPPoE服務(wù)器MAC地址。
4.如權(quán)利要求1至3所述的PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,其特征在于當(dāng)所述客戶端信息可以是客戶端MAC地址。
5.如權(quán)利要求1至3所述的PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,其特征在于所述步驟a)中,客戶端信息承載于PPPoE協(xié)議報(bào)文中繼會(huì)話標(biāo)簽。
6.如權(quán)利要求5所述的PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,其特征在于所述會(huì)話記錄表進(jìn)一步包括中繼會(huì)話標(biāo)簽,所述PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法進(jìn)一步將來自客戶端協(xié)議報(bào)文的中繼會(huì)話標(biāo)簽值保存在會(huì)話記錄表并在相應(yīng)的返回報(bào)文中予以替換。
7.如權(quán)利要求1至3所述的PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,其特征在于當(dāng)所述PPPoE報(bào)文為有效發(fā)現(xiàn)終止報(bào)文時(shí),進(jìn)一步刪除該報(bào)文相應(yīng)的客戶端與PPPoE服務(wù)器之間所建立的會(huì)話記錄。
全文摘要
本發(fā)明公開了一種PPPoE協(xié)議報(bào)文轉(zhuǎn)發(fā)方法,所述方法包括a)在PPPoE發(fā)現(xiàn)階段,上行方向,將來自若干客戶端的PPPoE協(xié)議報(bào)文源MAC地址設(shè)置為本機(jī)MAC地址,并將客戶端信息承載在PPPoE協(xié)議報(bào)文中,下行方向,根據(jù)返回的PPPoE協(xié)議報(bào)文中相應(yīng)客戶端信息配置PPPoE協(xié)議報(bào)文,并為每個(gè)客戶端PPPoE建立會(huì)話記錄表;b)在PPP會(huì)話階段,根據(jù)所建立的會(huì)話記錄進(jìn)行上行PPPoE數(shù)據(jù)報(bào)文源MAC地址設(shè)置,下行PPPoE數(shù)據(jù)協(xié)議報(bào)文客戶端信息恢復(fù),并轉(zhuǎn)發(fā)PPPoE數(shù)據(jù)報(bào)文。通過上述發(fā)明方法,可以減少EMAN中的以太網(wǎng)交換機(jī)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)時(shí)所需要的查表時(shí)間,提高了轉(zhuǎn)發(fā)效率。
文檔編號(hào)H04L29/06GK1972238SQ20051011072
公開日2007年5月30日 申請(qǐng)日期2005年11月24日 優(yōu)先權(quán)日2005年11月24日
發(fā)明者趙民正, 徐毅鈞, 張偉華, 熊誠(chéng)峰 申請(qǐng)人:上海貝爾阿爾卡特股份有限公司