PPPoE技术白皮书
PPPoE技術白皮書
關鍵詞:PPP,Ethernet,PPPoE
摘????要:PPPoE是一種通過一個遠端接入設備為以太網上的主機提供接入服務,并可以對接入的每個主機實現控制和計費的技術。本文介紹了PPPoE的產生背景、技術優點、工作過程和典型組網應用。
縮略語:
| 縮略語 | 英文全名 | 中文解釋 |
| ADSL | Asymmetric Digital Subscriber Line | 非對稱數字用戶線 |
| DSLAM | Digital Subscriber Line Access Multiplexer | 數字用戶線接入復用器 |
| PPP | Point to Point Protocol | 點對點協議 |
| PPPoE | PPP Over Ethernet | 在以太網上承載PPP協議 |
| PADI | PPPoE Active Discovery Initiation | PPPoE活動發現發起報文 |
| PADO | PPPoE Active Discovery Offer | PPPoE活動發現提供報文 |
| PADR | PPPoE Active Discovery Request | PPPoE活動發現請求報文 |
| PADS | PPPoE Active Discovery Session-confirmation | PPPoE活動發現會話報文 |
| PADT | PPPoE Active Discovery Terminate | PPPoE活動發現終結報文 |
?
目??錄
1?概述
1.1?產品背景
1.2?技術優點
2 PPPoE技術實現方案
2.1 PPPoE組網結構
2.2 PPPoE報文格式
2.3 PPPoE工作過程
2.3.1 Discovery階段
2.3.2 Session階段
2.3.3 Terminate階段
3?典型組網應用
3.1?利用ADSL Modem將局域網接入Internet
3.1.1?組網需求
3.1.2?組網圖
3.2?無線PPPoE接入
3.2.1?組網需求
3.2.2?組網圖
4?參考文獻
5?附錄
5.1?報文結構
?
1??概述
1.1??產品背景
人們想通過相同的接入設備來連接到遠程站點上的多個主機,同時接入設備能夠提供與撥號上網類似的訪問控制和計費功能。在眾多的接入技術中,把多個主機連接到接入設備的最經濟的方法就是以太網,而PPP協議可以提供良好的訪問控制和計費功能,于是產生了在以太網上傳輸PPP的方法,即PPPoE。
PPPoE協議的提出解決了用戶上網收費等實際應用問題,得到了寬帶接入運營商的認可并廣為采用。
1.2??技術優點
對于用戶來說,PPPoE的優點如下:
l??????????????沿襲傳統的撥號上網方式,依舊使用他們熟悉的硬件以及類似的軟件進行Internet的接入。
l??????????????兼容現有的所有xDSL Modem,不需要對客戶端的xDSL Modem進行復雜的配置。
l??????????????使用以太網網卡連接PC和xDSL Modem,允許多臺PC同時共享xDSL線路,可以節約用戶投資。
對于運營商來說,PPPoE的優點如下:
l??????????????運營商可以通過數字用戶線、電纜調制解調器或無線連接等方式提供支持多用戶的寬帶接入服務。
l??????????????運營商可以利用可靠和熟悉的技術來加速部署高速互聯網業務,對現有網絡部署影響小。
l??????????????運營商可以通過訪問控制功能對用戶的身份進行確認,通過計費功能對用戶進行計費,同時對用戶的網絡行為進行監控,保證了網絡安全。
l??????????????終端用戶可同時接入多個運營商,這種動態服務選擇的功能可以使運營商容易創建和提供新的業務。
2??PPPoE技術實現方案
2.1??PPPoE組網結構
PPPoE使用Client/Server模型,PPPoE的客戶端為PPPoE Client,PPPoE的服務器端為PPPoE Server。PPPoE Client向PPPoE Server發起連接請求,兩者之間會話協商通過后,PPPoE Server向PPPoE Client提供接入控制、認證等功能。
根據PPP會話的起止點所在位置的不同,有兩種組網結構:
l??????????????第一種方式在設備之間建立PPP會話,所有主機通過同一個PPP會話傳送數據,主機上不用安裝PPPoE客戶端撥號軟件,一般是一個企業(公司)共用一個賬號(圖中PPPoE Client位于企業/公司內部,PPPoE Server是運營商的設備)。
圖1?PPPoE組網結構圖1
l??????????????第二種部署方式,PPP會話建立在Host和運營商的路由器之間,為每一個Host建立一個PPP會話,每個Host都是PPPoE Client,每個Host一個帳號,方便運營商對用戶進行計費和控制。Host上必須安裝PPPoE客戶端撥號軟件。
圖2?PPPoE組網結構圖2
2.2??PPPoE報文格式
PPPoE報文的格式就是在以太網幀中攜帶PPP報文,如圖3所示。
圖3?報文格式
各個字段解釋如下:
l??????????????Destination_address域:一個以太網單播目的地址或者以太網廣播地址(0xffffffff)。對于Discovery數據包來說,該域的值是單播或者廣播地址,PPPoE Client尋找PPPoE Server的過程使用廣播地址,確認PPPoE Server后使用單播地址。對于Session階段來說,該域必須是Discovery階段已確定的通信對方的單播地址。
l??????????????Source_address域:源設備的以太網MAC地址。
l??????????????Ether_type:設置為0x8863(Discovery階段或拆鏈階段)或者0x8864(Session階段)。
l??????????????Ver域:4bits,PPPoE版本號,值為0x1。
l??????????????Type域:4bits,PPPoE類型,值為0x1。
l??????????????Code域:8bits,PPPoE報文類型。Code域為0x00,表示會話數據。Code域為0x09,表示PADI報文;Code域為0x07,表示PADO或PADT報文;Code域為0x19,表示PADR報文;Code域為0x65,表示PADS報文。報文的具體情況請參見附錄部分。
l??????????????Session_ID域:16bits,對于一個給定的PPP會話,該值是一個固定值,并且與以太網Source_address和Destination_address一起實際地定義了一個PPP會話。值0xffff為將來的使用保留,不允許使用。
l??????????????Length域:16bits,定義PPPoE的Payload域長度。不包括以太網頭部和PPPoE頭部的長度。
2.3??PPPoE工作過程
PPPoE的協商過程如圖4所示:
圖4?PPPoE協商過程
PPPoE可分為三個階段,即Discovery階段、Session階段和Terminate階段。
2.3.1??Discovery階段
Discovery階段由四個過程組成。完成之后通信雙方都會知道PPPoE的Session_ID?以及對方以太網地址,它們共同確定了唯一的PPPoE Session。
(1)????????PPPoE Client廣播發送一個PADI報文,在此報文中包含PPPoE Client想要得到的服務類型信息。
(2)????????所有的PPPoE Server收到PADI報文之后,將其中請求的服務與自己能夠提供的服務進行比較,如果可以提供,則單播回復一個PADO報文。
(3)????????根據網絡的拓撲結構,PPPoE Client可能收到多個PPPoE Server發送的PADO報文,PPPoE Client選擇最先收到的PADO報文對應的PPPoE Server做為自己的PPPoE Server,并單播發送一個PADR報文。
(4)????????PPPoE Server產生一個唯一的會話ID(SESSION ID),標識和PPPoE Client的這個會話,通過發送一個PADS報文把會話ID發送給PPPoE Client,如果沒有錯誤,會話建立后便進入PPPoE Session階段。
2.3.2??Session階段
PPPoE Discovery階段的工作為PPPoE Client和PPPoE之間建立了Session,之后PPPoE便進入了Session階段,Session階段可劃分為兩部分,一是PPP協商階段,二是PPP報文傳輸階段。
PPPoE Session上的PPP協商和普通的PPP協商方式一致,分為LCP、認證、NCP三個階段。
(1)????????LCP階段主要完成建立、配置和檢測數據鏈路連接。
(2)????????LCP協商成功后,開始進行認證工作,認證協議類型由LCP協商結果(CHAP或者PAP)決定。
(3)????????認證成功后,PPP進入NCP階段,NCP是一個協議族,用于配置不同的網絡層協議,常用的是IP控制協議(IPCP),它負責配置用戶的IP和DNS等工作。
PPPoE Session的PPP協商成功后,其上就可以承載PPP數據報文。
在PPPoE Session階段所有的以太網數據包都是單播發送的。
2.3.3??Terminate階段
PPP通信雙方應該使用PPP協議自身(比如PPP終結報文)來結束PPPoE會話,但在無法使用PPP協議結束會話時可以使用PADT報文。
進入PPPoE Session階段后,PPPoE Client和PPPoE Server都可以通過發送PADT報文的方式來結束PPPoE連接。PADT數據包可以在會話建立以后的任意時刻單播發送。在發送或接收到PADT后,就不允許再使用該會話發送PPP流量了,即使是常規的PPP結束數據包也不允許發送。
3??典型組網應用
3.1??利用ADSL Modem將局域網接入Internet
3.1.1??組網需求
企業希望使用一個公共帳號訪問Internet:
l??????????????Router A作為PPPoE Client,通過一個帳號訪問Internet(相當于整個企業的員工公用這個帳號)。
l??????????????Router B作為PPPoE Server連接至DSLAM,提供RADIUS認證、計費等功能,同時連接到Internet。
3.1.2??組網圖
圖5?利用ADSL Modem將局域網接入Internet組網圖
3.2??無線PPPoE接入
3.2.1??組網需求
AP設備作為PPPoE Client,BRAS設備作為PPPoE Server,終端用戶可以直接通過無線網絡訪問Internet。
3.2.2??組網圖
圖6?無線PPPoE接入組網圖
4??參考文獻
l??????????????RFC1661:The Point-to-Point Protocol (PPP)
l??????????????RFC2516:A Method for Transmitting PPP Over Ethernet (PPPoE)
5??附錄
5.1??報文結構
1.?PADI(PPPoE Active Discovery Initiation)
l??????????????Code域為0x09。
l??????????????Session_ID域為0x0000。
l??????????????TAG_TYPE域為0x0101(Service-Name),表明后面緊跟的是服務的名稱。有且只有一個TAG_TYPE為Service-Name的TAG,其他類型的TAG可選。
圖7?PADI數據包舉例
2.?PADO(PPPoE Active Discovery Offer)
l??????????????Code域為0x07。
l??????????????SESSION_ID域為0x0000。
l??????????????TAG_TYPE域為0x0101(Service-Name),表明后面緊跟的是服務的名稱;為0x0102(AC-Name)表明后面緊跟的字符串唯一地表示了某個特定的訪問集中器。有且只有一個TAG_TYPE為AC-Name的TAG,至少一個TAG_TYPE為Service-Name的TAG。
圖8?PADO數據包舉例
3.?PADR(PPPoE Active Discovery Request)
l??????????????Code域為0x19。
l??????????????SESSION_ID為0x0000。
l??????????????TAG_TYPE域為0x0101(Service-Name),表明后面緊跟的是服務的名稱。有且只有一個TAG_TYPE為Service-Name的TAG,其他類型的TAG可選。
圖9?PADR數據包舉例
4.?PADS(PPPoE Active Discovery Session-confirmation)
l??????????????Code域為0x65。
l??????????????SESSION_ID為Discovery階段分配的數值。
l??????????????TAG為可選。
圖10?PADS數據包舉例
5.?PADT(PPPoE Active Discovery Terminate)
l??????????????Code域為0xa7。
l??????????????SESSION_ID域為Discovery階段分配的數值。
l??????????????無TAG。
圖11?PADT數據包舉例
總結
以上是生活随笔為你收集整理的PPPoE技术白皮书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java——操作集合的工具类:Colle
- 下一篇: Summary Day30