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