一、 前言
近年來,網(wǎng)絡數(shù)據(jù)業(yè)務發(fā)展迅速,寬帶用戶呈爆炸式的增長,運營商在采用xDSL,LAN,HFC,無線等多種接入方式的同時,為了構(gòu)建一個可運營、可管理、可盈利的寬帶網(wǎng)絡,十分關(guān)心如何有效地完成用戶的管理,PPPoE(PPP over Ethernet)就是隨之出現(xiàn)的多種認證技術(shù)中的一種。
1、PPP over Ethernet
1998年后期問世的以太網(wǎng)上點對點協(xié)議(PPP over Ethernet)技術(shù)是由Redback 網(wǎng)絡公司、客戶端軟件開發(fā)商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETF RFC制的基礎上聯(lián)合開發(fā)的。通過把最經(jīng)濟的局域網(wǎng)技術(shù)——以太網(wǎng)和點對點協(xié)議的可擴展性及管理控制功能結(jié)合在一起,網(wǎng)絡服務提供商和電信運營商便可利用可靠和熟悉的技術(shù)來加速部署高速互聯(lián)網(wǎng)業(yè)務。它使服務提供商在通過數(shù)字用戶線、電纜調(diào)制解調(diào)器或無線連接等方式,提供支持多用戶的寬帶接入服務時更加簡便易行。同時該技術(shù)亦簡化了最終用戶在動態(tài)地選擇這些服務時的操作。
PPPoE 基于以太網(wǎng)的點對點協(xié)議,當前的 PPPOE 主要被 ISP用于 xDSL 和 cable modems 與用戶端的連接,他們幾乎與以太網(wǎng)一樣。 PPPoE 是一種標準的點對點協(xié)議 (PPP), 他們之間只是傳輸上的差異: PPPoE 使用 modem 連接來代替普通的以太網(wǎng)。一般來說 , PPPoE 是基于與用戶認證和通過分發(fā) IP 地址給客戶端。一個 PPPoE 連接由客戶端和一個訪問集線服務器組成,客戶端可以是一個安裝了 PPPoE 協(xié)議的 windows 電腦。 PPPoE 客戶端和服務器能工作在任何以太網(wǎng)等級的路由器接口
2、網(wǎng)通的寬帶接入方式
網(wǎng)通的寬帶接入方式通常都是LAN的方式,即所有的用戶都位于一個大的局域網(wǎng)中,客戶端要上網(wǎng),需要先使用相應的賬號進行PPPoE撥號,通過驗證之后獲得公網(wǎng)IP,然后才能上網(wǎng)。
二、PPPoE驗證過程
1、PPPoE驗證過程
首先了解一下PPPoE驗證過程:
假如客戶端要通過一個局域網(wǎng)與遠程的PPPoE服務器進行身份驗證,這時,它們會有兩個不同的會話階段,Discovery階段和PPP會話階段。當一個客戶端想開始一個PPPoE會話時,它必須首先進行發(fā)現(xiàn)階段以識別對端的以太網(wǎng)MAC地址,并建立一個PPPoESESSON_ID。在發(fā)現(xiàn)階段,基于網(wǎng)絡的拓撲結(jié)構(gòu),客戶端可以發(fā)現(xiàn)多個PPPoE服務器,然后從中選擇一個,不過通常都是選擇反應最快的一個。Discovery階段是一個無狀態(tài)的階段,該階段主要是選擇接入服務器,確定所要建立的PPP會話標識符Session ID,同時獲得對方點到點的連接信息;PPP會話階段執(zhí)行標準的PPP過程。當此階段完成,通信的兩端都知到PPPoESESSON_ID和對端的以太網(wǎng)地址,它們一起定義了一個唯一的PPPoE會話。這些步驟包括客戶端廣播一個發(fā)起分組(PASI),一個或多個PPPoE服務器發(fā)送響應分組(PADO),客戶端向選中的服務器發(fā)送請求分組(PADR),選中的PPPoE服務器發(fā)送一個確認分組(PADS)給客戶端。當客戶端接收到確認分組,它可以開始進行PPP會話階段。當PPPoE服務器發(fā)送出確認分組,它可以開始PPP會話。當客戶端在指定的時間內(nèi)沒有接收到PADO,它應該重新發(fā)送它的PADI分組,并且加倍等待時間,這個過程會被重復期望的次數(shù)。如果客戶端正等待接收PADS,應該使用具有客戶端重新發(fā)送PADR的相似超時機制。在重試指定的次數(shù)后,主機應該重新發(fā)送PADI分組。PPPOE還有一個PADT分組,它可以在會話建立后的任何時候發(fā)送,來終止PPPOE會話。它可以由客戶端或者PPPOE服務器發(fā)送。當接收到一個PADT,不再允許使用這個會話來發(fā)送PPP業(yè)務在發(fā)送或接收PADT后,即正常的PPP不能使用時,可以使用PADT,一旦PPPOE會話開始,PPP數(shù)據(jù)就可以以任何其它的PPP封裝形式發(fā)送。所有的以太網(wǎng)幀都是單播的,身份驗證是發(fā)生在會話階段的,PPPoE會話的SESSION_ID一定不能改變,并且必須是發(fā)現(xiàn)階段分配的值。
2。 PPP over Ethernet基本幀格式
建立一個以太網(wǎng)上點對點協(xié)議會話包括兩個階段:1。 發(fā)現(xiàn)(Discovery)階段。在Discovery過程中用戶主機以廣播方式尋找可以連接的所有的接入集線器,并獲得其以太網(wǎng)MAC地址。然后選擇需要連接的主機并確定所要建立的PPP會話識別標號。2。 PPP會話階段。用戶主機與接入集線器根據(jù)在發(fā)現(xiàn)階段所協(xié)商的PPP會話連接參數(shù)進行PPP會話。因此對應于這兩種過程,以太網(wǎng)上點對點協(xié)議幀格式(如圖2)也包括兩種類型:發(fā)現(xiàn)階段的以太網(wǎng)幀中的類型字段為0x8863;PPP會話階段的以太網(wǎng)幀中的類型字段為0x8864,它們均已得到IEEE的認可。PPPoE包中的版本(VER) 字段和類型(TYPE)字段長度均為4比特,在當前版本PPPoE建議中這兩個字段值都固定為0x1。代碼(CODE)字段長度為8比特,根據(jù)兩階段中各種數(shù)據(jù)包的不同功能而值不同。在PPP會話階段CODE字段為0x00,發(fā)現(xiàn)階段中的各種數(shù)據(jù)包格式將在下面詳細介紹發(fā)現(xiàn)階段時給出。版本標識號碼(SESSION_ID)字段長度為16比特,在一個給定的PPP會話過程中它是固定不變的。值0xffffff為保留值。長度(LENGTH)字段為16比特長,指示PPPoE凈荷長度。發(fā)現(xiàn)階段PPPoE載荷可以為空或由多個標記(TAG)組成,每個標記都是TLV(類型-長度-值)的結(jié)構(gòu);PPP會話階段PPPoE載荷為標準的點對點協(xié)議包。
3。 發(fā)現(xiàn)(Discovery)階段的詳細介紹
一個典型的發(fā)現(xiàn)(Discovery)階段共包括4個步驟:
1、主機發(fā)出PPPoE有效發(fā)現(xiàn)啟動(PADI)包。以太網(wǎng)目的地址為廣播地址0xffffffffffff, CODE字段為0x09,SESSION_ID為0x0000。PADI包必須至少包含一個服務名稱類型的標簽(標簽類型字段為0x0101),向接入集線器提出所要求提供的服務。
2、接入集線器收到在服務范圍內(nèi)的PADI包后,發(fā)送PPPoE有效發(fā)現(xiàn)提供(PADO)包以響應請求。其CODE字段為0x07 ,SESSION_ID仍為0x0000。PADO包必須包含一個接入集線器名稱類型的標簽(標簽類型字段為0x0102)以及一個或多個服務名稱類型標簽,表明可向主機提供的服務種類。
3、主機在可能收到的多個PADO包中選擇一個合適的,然后向所選擇的接入集線器發(fā)送PPPoE有效發(fā)現(xiàn)請求(PADR)包。其CODE字段為0x19 ,SESSION_ID仍為0x0000。PADR包必須包一個服務名稱類型標簽,確定向接入集線器請求的服務種類。
4、接入集線器收到PADR包后準備開始PPP會話,它發(fā)送一個PPPoE有效發(fā)現(xiàn)會話確認(PADS)包。其CODE字段為0x65 ,SESSION_ID為接入集線器所產(chǎn)生的一個唯一的PPPoE會話標識號碼。PADS包也必須包含一個接入集線器名稱類型的標簽確認向主機提供的服務。當主機收到PADS包確認后,雙方就進入PPP會話階段。
三、PPPoE驗證的利用
從上面的過程我們需要注意兩點:發(fā)現(xiàn)階段是廣播方式進行的。會話階段是單播;客戶端通常選擇反應最的PPPOE服務器進行身份驗證和接入,什么是反應快?我們可以理解成客戶端將與最近的PPPOE服務器進行身份驗證。
利用思路:這就是今天要說的關(guān)鍵,如果我們架設一個PPPOE服務器,那么與我們同一交換機或集線器(通常是一個樓層)的用戶都將會選擇這個服務器進行接入和身份驗證,而不會去尋找遠方的PPPOE服務器。
下面說一下利用過程:
1、架設PPPOE服務器。架設PPPOE服務器,原作者是利用Windows Server2003的“路由與遠程訪問”服務來架設的,然后安裝PPPoE驅(qū)動,這樣使得路由與遠程訪問服務增加了PPPOE服務。當然也可使用Linux系統(tǒng),網(wǎng)上有一篇關(guān)于Linux+PPPoE服務器的文章。
2、 將PPPOE身份驗證設為未加密方式(具體情況還得取決與PPPOE服務器),不用多說,這主要是為了方便明文嗅探。
3、 使用Sniffer進行嗅探。
四、解決方案與結(jié)束語
有關(guān)解決方案還在琢磨之中。偶所處地問題相當嚴重。