簡介
PPPoE(英語:Point-to-Point Protocol Over Ethernet),
乙太網上的點對點協定,是將
點對點協定(PPP)封裝在
乙太網(Ethernet)框架中的一種網路隧道協定。由於協定中集成PPP協定,所以實現出傳統
乙太網不能提供的
身份驗證、
加密以及
壓縮等功能,也可用於纜線數據機(cable modem)和
數字用戶線路(DSL)等以
乙太網協定向用戶提供接入服務的協定體系。
本質上,它是一個允許在乙太網
廣播域中的兩個乙太網接口間創建點對點隧道的協定。
它使用傳統的基於PPP的���體來管理一個不是使用串列線路而是使用類似於乙太網的有向分組網路的連線。這種有登入和口令的標準連線,方便了接入供應商的記費。並且,連線的另一端僅當PPPoE連線接通時才分配IP位址,所以允許IP位址的動態復用。
PPPoE是由UUNET、Redback Networks和RouterWare所開發的。發表於RFC 2516說明中。
PPPoE的階段
PPPoE分為兩個階段:
PPPoE發現
由於傳統的PPP連線是創建在串列鏈路或撥號時創建的ATM虛電路連線上的,所有的PPP幀都可以確保通過電纜到達對端。但是乙太網是多路訪問的,每一個節點都可以相互訪問。以太幀包含目的節點的物理地址(
MAC地址),這使得該幀可以到達預期的目的節點。 因此,為了在乙太網上創建連線而交換PPP控制報文之前,兩個端點都必須知道對端的MAC地址,這樣才可以在控制報文中攜帶MAC地址。PPPoE發現階段做的就是這件事。除此之外,在此階段還將創建一個會話ID,以供後面交換報文使用。
PPP會話
一旦連線的雙方知道了對端的MAC地址,會話就創建了。
PPPoE發現階段
儘管傳統的PPP是點對點協定,但是由於多個主機可以通過一個單獨的物理連線連線到一個服務提供者,因此PPPoE本身就是一個客戶端-伺服器的關係。 發現過程包含四個步驟。主機作為客戶端,
ISP端的訪問集中器作為伺服器。這四步在下面詳述。最後一步第五步是關閉一個現存會話的方法。
客戶端到伺服器
PADI為PPPoE Active Discovery Initiation的縮寫。
如果一個用戶想要使用DSL撥號連入Internet,那么他的計算機必須首先在其ISP的網路服務提供點(POP)找到DSL訪問集中器(DSL-AC)。在乙太網上通訊只能通過
MAC地址。由於計算機不知道DSL-AC的MAC地址,於是就在乙太網上
廣播一個PADI報文。這個報文中包含傳送者的MAC地址。
PADI報文可能被一個以上的DSL-AC接收。 只有可以提供“服務名稱”(Service-Name)的DSL-AC設備才應該回復。
伺服器到客戶端
PADO為PPPoE Active Discovery Offer的縮寫。
一旦用戶計算機傳送了PADI報文,DSL-AC就會使用PADI中提供的MAC地址回復一個PADO報文。PADO報文中包含了DSL-AC的MAC地址、名稱以及服務名。如果多於一個POP的DSL-AC回復了PADO報文,用戶計算機就使用提供的名稱和服務來從中選擇一個。
客戶端到伺服器
PADR為PPPoE Active Discovery Request的縮寫。
當用戶計算機收到一個來自DSL-AC的可接受的PADO報文後,就會傳送一個PADR報文給DSL-AC,用來確認接受傳送PADO報文的DSL-AC所提供的PPPoE連線。
伺服器到客戶端
PADS為PPPoE Active Discovery Session-confirmation的縮寫。
上面的PADR報文由DSL-AC的PADS報文進行確認,並在其中攜帶一個會話ID。用戶計算機與此DSL-AC的連線現在就完整創建了。
任何一方
PADT為PPPoE Active Discovery Termination的縮寫。
這個報文終結用戶計算機與POP的的連線,可由用戶計算機或DSL-AC任意一方傳送。
使用時的缺點
使用Internet前,需先透過PPPoE進行撥接,而非計算機引導後立即上網。(引導後立即上網,詳見
DHCP,有些ISP有提供第1台PC自DHCP獲取固定IP)
部分
ISP會對PPPoE的連線用戶採取定時斷線,以節省營運成本及IP位址的占用,故對於需長時間掛網的用戶較不利。但也有部分ISP為提供用戶選擇PPPoE可發配非固定IP或固定IP的服務。
故障分析
(1)645故障描述:撥號適配器未裝
這種情況主要針對Windows ME和Windows98而言,解決辦法是在Windows98下添加撥號適配器組件即可。對Windows ME而言,因為它沒有直接添加撥號適配器的選項,所以必須在控制臺中先刪除撥號網路組件,再添加撥號網路組件,完成適配器的添加。
(2)691/629故障描述:不能通過驗證
可能的原因是用戶的賬戶或者密碼輸入錯誤,或用戶的賬戶餘額不足,用戶在使用時未正常退出而造成用戶賬號駐留,可等待幾分鐘或重新啟動後再撥號。
(3)630故障描述:無法撥號,沒有合適的網卡和驅動
可能的原因是網卡未安裝好、網卡驅動不正常或網卡損壞。檢查網卡是否工作正常或更新網卡驅動。
(4)633故障描述:數據機(或其它連線設備)已在使用,或沒有正確配置。
如果是撥號網路連線,則網路連線試圖使用的
COM連線埠正在被其他活動網路連線或其他進程(例如,諸如傳真程式之類的電話線路監視程式)使用。退出阻止使用COM連線埠的應用程式。
如果是
虛擬專用網路(VPN),則不能打開網路連線試圖使用的VPN設備。這需要您的系統管理員才能解決。
如果這是寬頻連線,則無法���開網路連線嘗試使用的寬頻設備。確保要求硬體(
電纜數據機)運行正常。有關所需硬體的詳細信息需要您的寬頻服務提供商來解答。
(5)720故障描述:不支持PPPoE連線
它是Windows 2000特有的故障,建議重新啟動後再進行連線,如仍不能排除故障,建議重灌系統。
(6)697故障描述:網卡禁用
只要在設備管理中重新啟用網卡即可。
(7)769故障描述:撥號時報769錯誤
在Windows XP系統中網卡被禁用、系統檢測不到網卡或者撥號軟體故障,有時會報769錯誤。重新啟用網卡、檢查網卡工作是否正常或重裝撥號軟體即可解決。
(8)678(651)故障描述:無法建立連線
遠程計算機沒有回響,windows xp 錯誤代碼為678,windows 7錯誤代碼為651,造成此故障的原因是基礎線路問題,或者您的網際網路服務提供商設備問題。
發展前景
PPPoE是從窄帶技術演化而來,PPP最早就是專門為電話線上網而設計的,當寬頻普及後,為了兼容以前的電話線用戶習慣,故在寬頻網路中繼承了PPP技術。PPPoE是一種過渡技術,目前已經基本處於淘汰階段。原因如下:
1、PPPoE是一種2層鏈路技術,正常下無法穿透三層交換機,若要在三層交換機傳輸,就必須做trunk,即把三層當作二層交換機使用。這導致不能充分發揮三層交換機的潛能,三層交換機的很多高級功能都無法使用,從而浪費了寶貴的網路設備資源。也給整體網路規劃造成了一定的複雜性。如果一開始採用了PPPoE認證,那么以後想要使用三層交換機網路規劃功能,調整整體網路,那么將是一個巨大的工作量。
2、寬頻使用PPPoE方式,將造成不必要的頻寬損耗,而且上網速度比正常寬頻速度要慢一個級別。原因是採用PPPoE比正常寬頻包,多了2個協定層,一個是PPPoE協定層,另一個就是PPP協定層,這幾個協定層頭會增加到正常數據包頭部里,在傳輸數據過程中,多出了不少額外數據,撥號握手過程也比正常多了好幾個步驟。具體協定層數據結構見如圖一:
3、2004年開始,ARP攻擊在網路流行時,PPPoE由於自身與ARP無關的特點,使其具有天然免疫優勢,所以,當時很多場合對PPPoE有較高的需求。
但經過近10年網路發展,隨著各種安全軟體普及,如360、電腦管家、以及各種防毒軟體等都早已具有防止ARP攻擊功能。因此,ARP攻擊已經徹底消失殆盡。PPPoE的各種缺點已經越來越不適應寬頻網路的發展。
4、PPPoE客戶端一般都會採用作業系統自帶的PPPoE,但設定比較麻煩,有很多步驟,普通家庭用戶若不熟悉,大多數根本搞不定,此時維護人員必須挨家挨戶進行上門設定,這給網路維護帶來了很大工作量。非常不利寬頻網路用戶的發展和運營,將經常接到用戶關於PPPoE的使用投訴。
5、PPPoE的效率比較低,從PPPoE協定模型可以看出,BAS匯聚了用戶的所有數據流,它必須將每一個PPPoE包都拆開檢查處理,這在很大程度上是沿襲了傳統的PPP處理的方式,一旦用戶很多,數據包數量很大,解封裝速度就需要很快,BAS很大的精力花在檢測用戶的數據包上,容易形成接入的“瓶頸”。
6、PPPoE由於採用了二層鏈路方式,所以在防止ARP三層包攻擊方式具有很大安全性,但PPPoE自身卻存在著協定不安全性,因為PPPoE認證是採用廣播方式,在網段內只要裝個網路嗅探器,都能截獲到PPPoE包,並能做任意修改重定向。關於PPPoE安全漏洞詳細描述見最後參考資料《PPPoE驗證缺陷所帶來的危害》