PPPoE(Point-to-Point Protocol over Ethernet)
PPP協議處於OSI(Open Systems Interconnection)參考模型的第二層,即TCP/IP數據鏈路層,主要用於全雙工的異步鏈路上進行點到點的數據傳輸。PPP協議的一個重要功能便是提供了身份驗證功能。但是PPP協議雖然提供了通信雙方身份驗證的功能,其協議中沒有提供地址信息,而以太網是一個廣播類型的多路訪問網絡,因而PPP協議是無法直接應用在以太網鏈路上的。它通過在以太網上提供點到點的連接,建立PPP會話,封裝PPP報文為PPPoE報文。PPPoE技術可以將用戶連接到遠程接入設備上,並提供良好訪問控制功能,提供了一種經濟的用戶接入技術,並實現了對用戶的控制。
PPPoE利用以太網絡,提供遠程的多個用戶主機接入功能,並且能夠提供數據傳輸的計費數據,解決用戶上網收費等實際應用問題,因而被廣泛應用於接入運營商網絡。
PPPoE具有以下特點:
功能上:
PPPoE由於集成了PPP協議,實現了傳統以太網不能提供的身份驗證、加密以及壓縮等功能。
PPPoE通過唯一的Session ID可以很好的保障用戶的安全性。
應用上:
PPPoE撥號上網作為一種最常見的方式讓終端設備能夠連接ISP從而實現寬帶接入。
PPPoE可用於纜線調制解調器(Cable Modem)和數字用戶線路(DSL)等以太網線,通過以太網協議向用戶提供接入服務的協議體系。
總而言之,PPPoE技術將以太網技術的經濟性與PPP協議的可管理控制性結合在一起,提供接入互聯網的功能。對於運營商來說,它能夠最大限度地利用電信接入網現有的體系結構,利用現有的撥號網絡資源.
PPPoE報文

轉自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html
| 報文字段 | 說明 |
|---|---|
| Ver域 | 4bits,PPPoE版本號,值為0x1。 |
| Type域 | 4bits,PPPoE類型,值為0x1。 |
| Code域 | 8bits,PPPoE報文類型。Code域為0x00,表示會話數據。Code域為0x09,表示PADI報文;Code域為0x07,表示PADO或PADT報文;Code域為0x19,表示PADR報文;Code域為0x65,表示PADS報文。 |
| Session_ID域 | 16bits,對於一個給定的PPP會話,該值是一個固定值,並且與以太網Source_address和Destination_address一起實際地定義了一個PPP會話。值0xffff為將來的使用保留,不允許使用。 |
| Length域 | 16bits,定義PPPoE的Payload域長度。不包括以太網頭部和PPPoE頭部的長度。 |
PPPoE建立連接的階段
在了解PPPoE建立連接的階段之前,先了解下PPPoE組網結構中的各種角色。
PPPoE協議采用(CS)Client/Server模式,如PPPoE接入組網圖所示,基本的PPPoE組網中的角色有PPPoE Client,PPPoE Server,以及RADIUS設備。

轉自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html
PPPoE用戶上線需要經過兩個階段,發現階段和PPP會話階段。發現階段主要是選擇PPPoE服務器,並確定索要建立的會話標識符Session ID。PPP會話階段即執行標准的PPP過程,包括LCP協商、PAP/CHAP認證、NCP協商等階段。

轉自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html
PPPoE工作原理實現過程
具體的PPPoE發現階段和PPP會話階段的時序如下圖所示。

轉自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html
PPPoE發現階段和PPP會話階段時序圖
發現階段
發現階段是指設備為用戶分配接入的Session ID,用來標識一條用戶與設備之間的PPPoE虛擬鏈路。
PPPoE Client廣播一個PADI(PPPoE Active Discovery Initiation,PPPoE激活發現起始)報文,在此報文中包含用戶想要得到的服務類型信息。
以太網內的所有PPPoE Server在收到這個初始化報文后,將其中請求的服務與自己能提供的服務進行比較,其中可以為PPPoE Client提供此服務的PPPoE Server會回應PADO(PPPoE Active Discovery Offer,PPPoE激活發現服務)報文。
PPPoE Client可能會收到多個PPPoE Server回應的PADO報文。PPPoE Client會根據一定的條件從返回PADO報文的PPPoE Server中選定符合條件的PPPoE Server,並向它返回一個會話請求報文PADR(非廣播)(PPPoE Active Discovery Request,PPPoE激活發現請求),在PADR報文中封裝所需的服務信息。
被選定的PPPoE Server在收到PADR報文后,PPPoE Server會產生一個唯一的會話標識以標識它和PPPoE Client的這段PPPoE會話。並把這個特定的會話標識包含在會話確認報文PADS(PPPoE Active Discovery Session-confirmation,PPPoE激活發現會話確認)中回應給PPPoE Client,如果沒有錯誤發生就進入到PPP會話階段,而PPPoE Client在收到會話確認報文后如果沒有錯誤發生也進入到PPP會話階段。
PPP會話階段
PPP會話階段包括LCP協商、PAP/CHAP認證、NCP協商等階段。
LCP協商
進入PPP會話階段之后,首先進行LCP協商,LCP協商過程如下。
- PPPoE Client與PPPoE Server互相發送LCP Configure-Request報文。
- 雙方收到Configure-Request報文后,根據報文中協商選項支持情況做出適當的回應(請參見下表)。若兩端都回應了Configure-ACK,則標志LCP鏈路建立成功,否則會繼續發送Request報文:
1.如果在設定的LCP協商間隔與協商次數內,
對端回應了Configure-ACK,則LCP鏈路建立成功。
2.如果在超過了設定的LCP協商次數后,
對端尚未回應Configure-ACK,則終止LCP協商。
LCP鏈路建立成功后,PPPoE Server會周期性地向PPPoE Client發送LCP Echo-Request報文,然后接收PPPoE Client回應的Echo-Reply報文,來探測LCP鏈路是否正常,以維持LCP連接。
表1-2 回應報文類型列表
| 回應報文類型 | 含義 |
|---|---|
| Configure-ACK | 若完全支持對端的LCP選項,則回應Configure-ACK報文,報文中必須完全協帶對端Request報文中的選項。 |
| Configure-NAK | 若支持對端的協商選項,但不認可該項協商的內容,則回應Configure-NAK報文,在Configure-NAK的選項中填上本端期望的內容,如:對端MRU值為1500,而本端期望MRU值為1492,則在Configure-NAK報文中填上1492。 |
| Configure-Reject | 若不能支持對端的協商選項,則回應Configure-Reject報文,報文中帶上不能支持的選項 |
-
PAP/CHAP認證
LCP協商完成后,會進入認證階段,該分為PAP認證和CHAP認證兩種認證方式。 -
PAP認證
PAP為兩次握手協議,是通過用戶名和密碼來對用戶進行認證,並且是以明文的方式傳遞用戶名和密碼。PPPoE Server(或者RADIUS服務器)根據本端的用戶表查看用戶名和密碼是否正確。適用於網絡安全要求相對較低的環境。 -
CHAP認證
CHAP認證為三次握手協議,也是由PPPoE Server(或者RADIUS服務器)根據本端的用戶表查看用戶名和密碼是否正確。但是CHAP認證方式只在網絡上傳輸用戶名,不傳輸用戶密碼,安全性比PAP要高。 -
NCP協商
NCP協商的主要功能是協商PPP報文的網絡層參數,如IPCP、IPv6CP等。PPPoE Client主要通過IPCP協議來獲取訪問網絡的IP地址或IP地址段。
NCP協商的流程與LCP流程類似。NCP協商成功之后,PPPoE Client可以正常訪問網絡。
NCP協商成功之后,即為PPPoE Client上線,此時PPPoE Server(通常為BRAS設備),會給RADIUS服務器發送計費請求報文,通過RADIUS服務器對PPPoE Client進行計費。
PPPoE與IPoE相比有哪些不同?
目前,PPPoE和IPoE作為用戶接入兩大最常見的接入方式,已經實現了廣泛的應用。雖然兩者都屬於用戶接入的方式,但PPPoE和IPoE之間有很大的區別。接下來對PPPoE和IPoE進行對比。
IPoE是一種在以太網絡上直接封裝傳輸IP報文的用戶接入方式。IPoE技術依賴DHCP協議提供IP地址,但是DHCP協議本身並不具備建立鏈路、認證用戶以及鏈路監測的功能。因而IPoE技術將DHCP協議和可擴展身份驗證協議,例如Web協議,802.1x協議等,結合在一起,提供了與PPPoE相同的功能。詳細對比如下圖所示。

轉自:https://info.support.huawei.com/infofinder/encyclopedia/zh/PPPoE.html
PPPoE的認證方式,可管理性強,本身安全性很高,其代價是限制了網絡的使用范圍和組播業務的開展,因此在HSI(High Speed Internet)高速上網業務和光纖寬帶撥號上網業務應用比較廣泛,給學校、企業、家庭用戶帶來了快速、方便的寬帶接入方式。IPoE可以自主管理IP地址的使用期限,可以在局域網范圍內進行設置,無需客戶端軟件,操作簡單,但是需要配合其他協議來進行認證,在IPTV/VoIP業務上應用比較廣泛。
IPoE的安全性方面需要家庭網關,網絡接入設備,寬帶網絡網關協同工作。其保證策略包括:反地址欺騙,用戶終端數限制,防 Dos 攻擊,業務隔離,非法組播源抑制,端口隔離。IPoE在組播業務場景下,可以將組播復制下移到靠近用戶的設備,因此在互聯網電視和語音方面得到了廣泛應用。
