近年來(lái),網(wǎng)絡(luò)數(shù)據(jù)業(yè)務(wù)發(fā)展迅速,寬帶用戶(hù)呈爆炸式的增長(zhǎng),運(yùn)營(yíng)商在采用xDSL,LAN,HFC,無(wú)線(xiàn)等多種接入方式的同時(shí),為了構(gòu)建一個(gè)可運(yùn)營(yíng)、可管理、可盈利的寬帶網(wǎng)絡(luò),十分關(guān)心如何有效地完成用戶(hù)的管理,PPPoE就是隨之出現(xiàn)的多種認(rèn)證技術(shù)中的一種。
1 PPPoE協(xié)議概述
1.1PPPoE的工作原理
PPPoE(PPP over Ethernet)是在以太網(wǎng)上建立PPP連接,由于以太網(wǎng)技術(shù)十分成熟且使用廣泛,而PPP協(xié)議在傳統(tǒng)的撥號(hào)上網(wǎng)應(yīng)用中顯示出良好的可擴(kuò)展性和優(yōu)質(zhì)的管理控制機(jī)制,二者結(jié)合而成的PPPoE協(xié)議得到了寬帶接入運(yùn)營(yíng)商的認(rèn)可并廣為采用。
PPPoE建立過(guò)程可以分為Discovery階段和PPP會(huì)話(huà)階段。Discovery階段是一個(gè)無(wú)狀態(tài)的階段,該階段主要是選擇接入服務(wù)器,確定所要建立的PPP會(huì)話(huà)標(biāo)識(shí)符Session ID,同時(shí)獲得對(duì)方點(diǎn)到點(diǎn)的連接信息;PPP會(huì)話(huà)階段執(zhí)行標(biāo)準(zhǔn)的PPP過(guò)程。
一個(gè)典型的Discovery階段包括以下4個(gè)步驟:
(1)主機(jī)首先主動(dòng)發(fā)送廣播包PADI尋找接入服務(wù)器,PADI必須至少包含一個(gè)服務(wù)名稱(chēng)類(lèi)型的TAG,以表明主機(jī)所要求提供的服務(wù)。
(2)接入服務(wù)器收到包后如果可以提供主機(jī)要求
0 1 2 3 4 5 6 78 9 0 1 2 3 4 56 7 8 9 0 1 2 34 5 6 7 8 9 0 1
以太網(wǎng)類(lèi)=0x8863/8864版本(Ver)類(lèi)型(Type)編碼(CODE)
會(huì)話(huà)ID(Session ID)長(zhǎng)度(Length)
凈荷(Payload)
(3)主機(jī)在回應(yīng)PADO的接入服務(wù)器中選擇一個(gè)合適的,并發(fā)送PADR告知接入服務(wù)器,PADR中必須聲明向接入服務(wù)器請(qǐng)求的服務(wù)種類(lèi)。
(4)接入服務(wù)器收到PADR包后開(kāi)始為用戶(hù)分配一個(gè)唯一的會(huì)話(huà)標(biāo)識(shí)符Session ID,啟動(dòng)PPP狀態(tài)機(jī)以準(zhǔn)備開(kāi)始PPP會(huì)話(huà),并發(fā)送一個(gè)會(huì)話(huà)確認(rèn)包PADS。
主機(jī)收到PADS后,雙方進(jìn)入PPP會(huì)話(huà)階段。在會(huì)話(huà)階段,PPPoE的以太網(wǎng)類(lèi)域設(shè)置為0x8864,CODE為0x00,Session ID必須是Discovery階段所分配的值。
PPP會(huì)話(huà)階段主要是LCP、認(rèn)證、NCP 3個(gè)協(xié)議的協(xié)商過(guò)程,LCP階段主要完成建立、配置和檢測(cè)數(shù)據(jù)鏈路連接,認(rèn)證協(xié)議類(lèi)型由LCP協(xié)商(CHAP或者PAP),NCP是一個(gè)協(xié)議族,用于配置不同的網(wǎng)絡(luò)層協(xié)議,常用的是IP控制協(xié)議(IPCP),它負(fù)責(zé)配置用戶(hù)的IP和DNS等工作。
PADT包是會(huì)話(huà)中止包,它可以由會(huì)話(huà)雙方的任意一方發(fā)起,但必須是會(huì)話(huà)建立之后才有效。
1.2PPPoE的特點(diǎn)
PPPoE不僅有以太網(wǎng)的快速簡(jiǎn)便的特點(diǎn),同時(shí)還有PPP的強(qiáng)大功能,任何能被PPP封裝的協(xié)議都可以通過(guò)PPPoE傳輸,此外還有如下特點(diǎn):
(1)PPPoE很容易檢查到用戶(hù)下線(xiàn),可通過(guò)一個(gè)PPP會(huì)話(huà)的建立和釋放對(duì)用戶(hù)進(jìn)行基于時(shí)長(zhǎng)或流量的統(tǒng)計(jì),計(jì)費(fèi)方式靈活方便。
(2)PPPoE可以提供動(dòng)態(tài)IP地址分配方式,用戶(hù)無(wú)需任何配置,網(wǎng)管維護(hù)簡(jiǎn)單,無(wú)需添加設(shè)備就可解決IP地址短缺問(wèn)題,同時(shí)根據(jù)分配的IP地址,可以很好地定位用戶(hù)在本網(wǎng)內(nèi)的活動(dòng)。
(3)用戶(hù)通過(guò)免費(fèi)的PPPoE客戶(hù)端軟件(如EnterNet),輸入用戶(hù)名和密碼就可以上網(wǎng),跟傳統(tǒng)的撥號(hào)上網(wǎng)差不多,最大程度地延續(xù)了用戶(hù)的習(xí)慣,從運(yùn)營(yíng)商的角度來(lái)看,PPPoE對(duì)其現(xiàn)存的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行變更也很小。
DSLAM是ADSL匯聚設(shè)備,其內(nèi)核采用ATM或IP但上聯(lián)口為以太網(wǎng)口,BAS是局端實(shí)現(xiàn)PPPoE功能的接入服務(wù)器,它終結(jié)由用戶(hù)側(cè)發(fā)起的PPPoE進(jìn)程。下行的以太幀從IP城域網(wǎng)經(jīng)路由器送到BAS,被加上PPPoE的頭后送到DSLAM封裝成AAL5幀,經(jīng)過(guò)交叉模塊發(fā)送到ADSL Modem,由其完成AAL5幀重組并解出以太幀發(fā)送到客戶(hù)端,客戶(hù)端從PPPoE包中取出IP數(shù)據(jù)包。
上行的PPPoE包在ADSL Modem中封裝成AAL5幀,由ATM信元傳輸?shù)骄侄说腄SLAM,DSLAM負(fù)責(zé)終結(jié)ATM,重新組合出PPPoE包,并通過(guò)設(shè)好的PVC(永久虛電路)傳送到BAS處理。
從上面可以看出,PPPoE將PPP承載到以太網(wǎng)之上,實(shí)質(zhì)是在共享介質(zhì)的網(wǎng)絡(luò)上提供一條邏輯上的點(diǎn)到點(diǎn)鏈路,對(duì)用戶(hù)而言,在DSLAM和ADSL Modem之間的ATM傳輸是透明的,如果將中間的DSLAM和ADSL Modem換成有線(xiàn)電視的接入設(shè)備,就是典型的HFC接入,BAS對(duì)PPPoE包的處理方式不變。
2 PPPoE在BAS上的實(shí)現(xiàn)
PPPoE撥號(hào)軟件在應(yīng)用中已經(jīng)很成熟(Windows XP中自帶),下面重點(diǎn)討論P(yáng)PPoE在接入服務(wù)器BAS中的實(shí)現(xiàn)方式。
2.1PPPoE的效率
從PPPoE協(xié)議模型可以看出,BAS匯聚了用戶(hù)的所有數(shù)據(jù)流,它必須將每一個(gè)PPPoE包都拆開(kāi)檢查處理,這在很大程度上是沿襲了傳統(tǒng)的PPP處理的方式,雖然有很好的安全性,但一旦用戶(hù)很多,數(shù)據(jù)包數(shù)量很大,解封裝速度就需要很快,BAS很大的精力花在檢測(cè)用戶(hù)的數(shù)據(jù)包上,容易形成接入的“瓶頸”。
為此,在BAS的硬件結(jié)構(gòu)上可以采用分布式網(wǎng)絡(luò)處理器(NP)和ASIC芯片設(shè)計(jì)。網(wǎng)絡(luò)處理器是專(zhuān)門(mén)針對(duì)電信網(wǎng)絡(luò)設(shè)備而開(kāi)發(fā)的專(zhuān)用處理器,它有一套專(zhuān)門(mén)的指令集,用于處理電信網(wǎng)絡(luò)的各種協(xié)議和業(yè)務(wù),可以大大提高設(shè)備的處理能力。同時(shí),ASIC芯片轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)接近硬件的轉(zhuǎn)發(fā)性能,遠(yuǎn)非CPU軟件方式可比,采用這種方式將PPPoE數(shù)據(jù)流的處理與轉(zhuǎn)發(fā)分開(kāi),工作效率大大提高。此外在軟件系統(tǒng)結(jié)構(gòu)上還應(yīng)該與其他技術(shù)相結(jié)合,更好地發(fā)揮PPPoE的性能。
2.2PPPoE與VLAN的結(jié)合
VLAN即虛擬局域網(wǎng),是一種通過(guò)將局域網(wǎng)內(nèi)的設(shè)備邏輯地劃分成一個(gè)個(gè)不同的網(wǎng)段,從而實(shí)現(xiàn)虛擬工作組的技術(shù)。劃分VLAN的目的,一是提高網(wǎng)絡(luò)安全性,不同VLAN的數(shù)據(jù)不能自由交流,需要接受第三層的檢驗(yàn);二是隔離廣播信息,劃分VLAN后,廣播域縮小,有利于改善網(wǎng)絡(luò)性能,能夠?qū)V播風(fēng)暴控制在一個(gè)VLAN內(nèi)部。
PPPoE是一個(gè)客戶(hù)端/服務(wù)器協(xié)議,客戶(hù)端需要發(fā)送PADI包尋找BAS,因此它必須同BAS在同一個(gè)廣播式的二層網(wǎng)絡(luò)內(nèi),與VLAN的結(jié)合很好地解決了這方面的安全隱患。此外通過(guò)將不同業(yè)務(wù)類(lèi)型的用戶(hù)分配到不同的VLAN處理,可以靈活地開(kāi)展業(yè)務(wù),加快處理流程,當(dāng)然VLAN的規(guī)劃必須在二層設(shè)備和BAS之間統(tǒng)一協(xié)調(diào)。
BAS收到上行的PPPoE包后,首先判別VLAN ID的所屬類(lèi)別,如果是普通的撥號(hào)用戶(hù),則確定是Discovery階段還是會(huì)話(huà)階段的數(shù)據(jù)包,并嚴(yán)格按照PPPoE協(xié)議處理。在會(huì)話(huà)階段,根據(jù)不同的用戶(hù)類(lèi)型從不同的地址池中向用戶(hù)分配IP地址,地址池由上層網(wǎng)管配置。如果是已經(jīng)通過(guò)認(rèn)證的用戶(hù)的數(shù)據(jù)包,則根據(jù)該用戶(hù)的服務(wù)類(lèi)型處理,比如,如果是本地認(rèn)證的撥號(hào)用戶(hù),且對(duì)方也申請(qǐng)有同樣的功能,則直接由本地轉(zhuǎn)發(fā)。
如果是專(zhuān)線(xiàn)用戶(hù),則不用經(jīng)過(guò)PPPoE復(fù)雜的認(rèn)證過(guò)程,直接根據(jù)用戶(hù)的VLAN ID便可進(jìn)入專(zhuān)線(xiàn)用戶(hù)處理流程,接入速度大大提高。此外為了統(tǒng)一網(wǎng)管,在BAS與其他設(shè)備之間需要通信,這些數(shù)據(jù)包是內(nèi)部數(shù)據(jù)包,也可根據(jù)VLAN ID來(lái)辨別。
對(duì)于下行數(shù)據(jù),由于BAS負(fù)責(zé)分配和解析用戶(hù)的IP,兼有網(wǎng)關(guān)的功能,它收到數(shù)據(jù)包的目的IP是用戶(hù)的,因此以IP為索引查找用戶(hù)的信息比根據(jù)MAC要方便得多,這一點(diǎn)與普通的交換機(jī)有所不同,具體過(guò)程跟上行處理差不多。
2.3PPPoE對(duì)多業(yè)務(wù)選擇的支持
多業(yè)務(wù)選擇指的是用戶(hù)通過(guò)一條終結(jié)到BAS的PPP連接來(lái)自主地選擇后臺(tái)網(wǎng)絡(luò)運(yùn)營(yíng)商所提供的多種業(yè)務(wù)。之所以要支持多業(yè)務(wù)的選擇,一方面是因?yàn)楦鞣N業(yè)務(wù)的具體實(shí)現(xiàn)在技術(shù)上的側(cè)重點(diǎn)是不同的,對(duì)網(wǎng)絡(luò)性能的要求也不盡相同,以前采取的固定分配的方式非常不便;另一方面,從網(wǎng)絡(luò)應(yīng)用的發(fā)展看,網(wǎng)絡(luò)內(nèi)容服務(wù)供應(yīng)商ICP與網(wǎng)絡(luò)接入商ISP的分離是必然趨勢(shì),在接入?yún)R聚側(cè),ISP必須嚴(yán)格保證將用戶(hù)選擇的業(yè)務(wù)流轉(zhuǎn)發(fā)到相應(yīng)的ICP中去。
目前采用的方法是用戶(hù)先在PPPoE撥號(hào)軟件中選擇相應(yīng)的業(yè)務(wù),然后對(duì)用戶(hù)進(jìn)行業(yè)務(wù)授權(quán)確認(rèn),最后激活BAS內(nèi)部相應(yīng)的處理模塊。但是采用這種方式,用戶(hù)只能知道業(yè)務(wù)的名字,無(wú)法直觀地、全面地獲知BAS提供的各種業(yè)務(wù)類(lèi)型,特別是在新業(yè)務(wù)的開(kāi)展上十分困難,有很大的局限性。
因此可以將BAS與后臺(tái)業(yè)務(wù)選擇網(wǎng)關(guān)及RADIUS服務(wù)器相配合,采取先認(rèn)證后選擇業(yè)務(wù)的方式,具體操作如下:
(1)主機(jī)發(fā)送PADI尋找BAS,PADI中包含一個(gè)服務(wù)名類(lèi)型的TAG,它的值為空,表示該用戶(hù)可以接受任何類(lèi)型的服務(wù)。
(2)BAS收到包后回送PADO,PADO中包含所有可以提供的服務(wù)的TAG,同時(shí),還包含一個(gè)服務(wù)名為General的TAG。
(3)主機(jī)發(fā)送PADR。用戶(hù)選擇已知的服務(wù)名,也可以選擇General服務(wù)。
(4)BAS收到PADR包后為用戶(hù)分配資源,并開(kāi)始PPP協(xié)商過(guò)程。在PPP過(guò)程中,BAS將用戶(hù)輸入的賬號(hào)和密碼等信息送到RADIUS服務(wù)器上認(rèn)證。
(5)通過(guò)認(rèn)證的用戶(hù),享受BAS提供的該項(xiàng)服務(wù),但如果選擇的是General,則被強(qiáng)制訪(fǎng)問(wèn)與BAS直連的服務(wù)選擇網(wǎng)關(guān)。后臺(tái)的服務(wù)選擇網(wǎng)關(guān)是一臺(tái)具有Web Server功能的服務(wù)器,用戶(hù)可以通過(guò)Web的交互式界面得到可選擇業(yè)務(wù)的相關(guān)信息(包括費(fèi)用、帶寬等),同時(shí)顯示該用戶(hù)賬號(hào)對(duì)應(yīng)的信息。
(6)用戶(hù)選擇相應(yīng)的業(yè)務(wù),同時(shí)服務(wù)選擇網(wǎng)關(guān)會(huì)定義各種用戶(hù)的業(yè)務(wù)范圍和操作權(quán)限。
(7)服務(wù)選擇網(wǎng)關(guān)激活接入服務(wù)器內(nèi)部相應(yīng)的業(yè)務(wù)模型實(shí)現(xiàn)該業(yè)務(wù)。以上方式是嚴(yán)格按照PPPoE協(xié)議執(zhí)行的,與當(dāng)前流行的撥號(hào)軟件完全兼容,如果用戶(hù)對(duì)其他的業(yè)務(wù)根本不感興趣而對(duì)已申請(qǐng)的業(yè)務(wù)非常熟悉,也不影響用戶(hù)的習(xí)慣。
從BAS的角度考慮,PPPoE的操作流程也沒(méi)有什么改變,只是多添了一種服務(wù)類(lèi)型而已。如果運(yùn)營(yíng)商當(dāng)前沒(méi)有服務(wù)選擇網(wǎng)關(guān),可以通過(guò)網(wǎng)管配置,在對(duì)PADI包的回應(yīng)時(shí)不包含General服務(wù)就可以了。
對(duì)于運(yùn)營(yíng)商來(lái)說(shuō),采用以上方式不僅大大提高了接入用戶(hù)操作的透明度,還可以起到業(yè)務(wù)門(mén)戶(hù)的作用,為下一步的服務(wù)擴(kuò)展提供空間,而且從寬帶接入網(wǎng)以后發(fā)展的趨勢(shì)來(lái)看,按需分配與業(yè)務(wù)類(lèi)型相應(yīng)的帶寬和QoS是必然的。