modem接入技術面臨一些相互矛盾的目標,既要通過同一個用戶前置接入設備連接遠程的多個用戶主機,又要提供類似撥號一樣的接入控制,計費等功能,而且要盡可能地減少用戶的配置操作。
PPPOE的目標就是解決上述問題,1998年后期問世的以太網上點對點協議(PPPoverEthernet)技術是由Redback網絡公司、客戶端軟件開發商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETFRFC的基礎上聯合開發的。通過把最經濟的局域網技術-以太網和點對點協議的可擴展性及治理控制功能結合在一起,網絡服務提供商和電信運營商便可利用可靠和熟悉的技術來加速部署高速互聯網業務。它使服務提供商在通過數字用戶線、電纜調制解調器或無線連接等方式,提供支持多用戶的寬帶接入服務時更加簡便易行。同時該技術亦簡化了最終用戶在選擇這些服務時的配置操作。
PPPOE特點
PPPOE在標準PPP報文的前面加上以太網的報頭,使得PPPOE提供通過簡單橋接接入設備連接遠端接入設備,并可以利用以太網的共享性連接多個用戶主機,在這個模型下,每個用戶主機利用自身的ppp堆棧,用戶使用熟悉的界面。接入控制,計費等都可以針對每個用戶來進行。
PPPOE的優點:
.�安裝與操作方式類似于以往的撥號網絡模式,方便用戶使用。
.�用戶處的XDSL調制解調器無須任何配置。
.�答應多個用戶共享一個高速數據接入鏈路。
.�適應小型企業和遠程辦公的要求。
.�終端用戶可同時接入多個ISP,這種動態服務選擇的功能可以使 ISP輕易創建和提供新的業務。
.�兼容現有所有的XDSLModem和DSLAM。
.�可與ISP有接入結構相融合。
PPPOE的幀格式

參數取值ETHER_TYPE: 0x8863 Discovery Stage
0x8864 PPP session Stage
CODE:
0x00 PPP Session Stage
0x09 PPPOE Active Discovery Initiation (PADI) packet
0x07 PPPOE Active Discovery Offer (PADO) packet
0x19 PPPOE Active Discovery Request (PADR) packet
0x65 PPPOE Active Discovery Session-confirmation
(PADS) packet
0xa7 PPPOE Active Discovery Terminate (PADT) packet
TAG_TYPES:
0x0000 End-Of-List
0x0101 Service-Name
0x0102 AC-Name
0x0103 Host-Uniq
0x0104 AC-Cookie
0x0105 Vendor-Specific
0x0110 Relay-Session-Id
0x0201 Service-Name-Error
0x0202 AC-System-Error
0x0203 Generic-Error
PPPOE的實現過程
建立一個以太網上點對點協議會話包括兩個階段:1. 發現(Discovery)階段
在Discovery過程中用戶主機以廣播方式尋找可以連接的所有接入設備,獲得其以太網MAC地址。然后選擇需要連接的用戶主機并最后獲得所要建立的PPP會話的SESSION_ID。在Discovery過程中節點間是客戶端-服務器關系, 一個用戶主機(客戶端)最終要發現一個接入設備(服務器)。在網絡拓樸中,一般有不止一個的接入設備可以通信,Discovery階段答應用戶主機發現所有的接入設備,并從中選擇一個。當Discovery階段結束時, 用戶主機和接入設備之間都獲得了可供以太網上建立PPP連接的全部信息。Discovery階段保持無連接狀態直到一個PPP會話的建立。一旦PPP連接建立,則用戶主機和接入設備都必須為PPP虛擬端口分配資源。
PPP 會話階段
用戶主機與在發現階段確定的接入設備進行PPP協商。這個協商過程與標準的PPP協商并沒有任何區別。在PPP會話階段節點間是對等關系。
發現(Discovery)階段詳述
典型的發現(Discovery)階段共包括4個步驟:
1. 用戶主機發出PPPOE有效發現初始(PADI)包。以太網目的地址為廣播地址0xffffffff, CODE 字段為0x09, SESSION_ID為0x0000。PADI包必須至少包含一個服務名稱類型(Service-Name)的標簽(標簽類型字段為0x0101), 向接入設備提出所要求提供的服務。一個完整的PADI(包括PPPOE頭)不能超過1484字節,以留下充足的預留給agent設備增加Relay-Session-Id標識。
2. 接入設備收到在服務范圍內的PADI包后,發送PPPOE有效發現提供(PADO) 包以響應請求。其CODE字段為0x07 ,SESSION_ID仍為0x0000。PADO包必須包含一個接入設備名稱類型(AC-Name)的標簽(標簽類型字段為0x0102)以及一個或多個服務名稱類型標簽,表明可向用戶主機提供的服務種類。
3.用戶主機在可能收到的多個PADO包中選擇一個合適的接入設備,選擇的原則是根據PADO中接入設備名稱類型標簽和服務名稱類型標簽的內容。然后向所選擇的接入設備發送PPPOE有效發現請求(PADR)包。其CODE 字段為0x19,SESSION_ID仍為0x0000。PADR包必須包一個服務名稱類型標簽,確定向接入設備請求的服務種類。當一個用戶主機在確定時間沒有收到PADO,他會重發一個PADI,同時等待兩倍的時間。這種過程可以根據需要重復多次。
4.接入設備收到PADR包后預備開始PPP會話,它發送一個PPPOE 有效發現會話確認( PADS)包。其CODE 字段為0x65 , SESSION_ID為接入設備所產生的一個唯一的PPPOE會話標識號碼。0xffff作為預留資源,目前不能被使用作SESSION_ID。PADS包也必須包含一個服務名稱類型的標簽確認向用戶主機提供的服務。當用戶主機收到PADS包確認后,雙方就進入PPP會話階段。假如接入設備不能識別PADR中的服務名稱類型的標簽,則會回一個包含服務名稱錯誤( Service-Name-Error ) 標簽的PADS ,其SESSION_ID仍然是0x0000。假如用戶主機在確定時間沒收到PADS包,與沒收到PADO作同樣處理。
還有一種PPPOE有效發現終止(PADT)包,在一個PPP會話建立后它隨時可由用戶主機或接入設備中任何一方發送,指示PPP會話已終止。PADT包不需要任何標簽,其CODE字段為0xa7 , SESSION_ID 為需要終止的PPP會話的會話標識號碼。
安全性
為防止DOS(Denial of Service)攻擊,接入設備應該可以使用AC-Cookie屬性,接入設備應可以根據PADR中的源地址唯一再生成一個值,這樣就而已保證PADI的源地址是真正可達,同時限制與這個地址同時連接數量。這個算法細節并沒有在RFC2516中具體描述。雖然AC-Cookie在反DOS攻擊方面很有效,但它并不能防止所有DOS攻擊,在接入設備上也可以采用其他方法來對抗DOS。
常用PPPOE軟件
PPPOE軟件的作用就是連接操作系統的PPP協議和Ethernet協議,并通過PPPOE協議連接
ISPEnterNet:由NTS.COM 開發(現在已經并入Efficient Networks這個有名的設備開發制造公司),自己具備獨立的PPP協議,可以不依靠操作系統的撥號網絡來提供PPP協議, 具有直接通過網卡和ISP連接的能力,目前是最通用和流行的PPPOE 軟件,并且支持多種操作系統,目前已經提供有Windows,linux,MacOS的版本,并且根據功能的多少又分為100、300、500等多個系列。該軟件的300系列最流行,已經被多家特大型的ISP采用,例如法國電信,中國電信,在其網站提供有30天試用版。
WinPoET:由iVasion.com 開發(現在已經改為WindRiver 公司), 它是PPPOE 協議起草者之一,它在PPPOE軟件中也占有極大的份額,許多特大型ISP也采用它。它通過操作系統的撥號網絡來提供PPP協議,所以在使用上和我們使用普通56K撥號上網非常相似,它只是在后臺靜靜地進行著PPPOE服務。它的網站目前停止了該軟件的下載評估,軟件只批量賣給ISP
RaspPPOE:個人開發的PPPOE驅動軟件,小巧精干,沒有自己的界面面板完全只是一個驅動程序,也是依靠操作系統撥號網絡來提供PPP協議,由于它是以網絡協議組件的形式來工作,所以在使用上,完全和使用老式的Modem一樣簡單。
access Manager/IHS:實質就是EnterNet 300 ,只是打上了BELL的ISP接入服務部門Sympatico的商標。
新聞熱點
疑難解答