數字用戶線路 DSL(Digital Subscriber Line) 是以 電話線 為傳輸介質的傳輸技術,人們通常把所有的 DSL技術統稱為xDSL,x代表不同種類的數字用戶線路技術。目前比較流行的寬帶接入方式為ADSL,ADSL 是 非對稱DSL技術,使用的是PPPoE(PPP over Ethernet)協議。
DSL技術原理
DSL是一種利用現有電話網絡實現數據通信的寬帶技術。在使用DSL接入網絡時,用戶側會安裝 調制解調器,然后通過現有的電話線與數字用戶線路接入復用器(DSLAM)相連。DSLAM是各種DSL系統的局端設備,屬於最后一公里接入設備。然后,通過 高速ATM網絡或者以太網 將用戶的數據流量轉發給 寬帶遠程接入服務器(BRAS)。BRAS是面向寬帶網絡應用的接入網關,位於骨干網的邊緣層。
PPPoE原理
-
基本原理
問題:如何通過一台接入設備使多個主機接入網絡呢?
PPPoE利用以太網將大量主機組成網絡,通過 一個遠端接入設備 連入因特網,並運用PPP協議對接入的每個主機進行控制,具有適用 范圍廣、安全性高、計費方便 的特點。
-
PPPoE報文
-
- PPPoE報文是使用Ethernet格式來進行封裝的。
- 特殊字段解釋:
-
- Type:表示協議類型字段,當值為 0x8863 時表示承載的是 PPPoE發現階段的報文。當值為 0x8864 時表示承載的是 PPPoE會話階段的報文。
- VER:表示PPPoE版本號,值為0x01。
- Code:表示PPPoE報文類型,不同取值標識 不同的PPPoE報文類型 。
- PPPoE會話ID,與以太網SMAC和DMAC一起定義了一個PPPoE會話。
- Length:表示PPPoE報文的Payload長度,不包括以太網頭部和PPPoE頭部的長度。
-
PPPoE協議報文
PPPoE通過這五種類型的報文來建立和終結PPPoE會話:
- PADI(PPPoE Active Discovery Initiation)報文:用戶主機發起的PPPoE服務器探測報文,目的MAC地址為廣播地址。
- PADO(PPPoE Active Discovery Offer)報文:PPPoE服務器收到PADI報文之后的回應報文,目的MAC地址為客戶端主機的MAC地址。
- PADR(PPPoE Active Discovery Request)報文:用戶主機收到PPPoE服務器回應的PADO報文后,單播發起的請求報文,目的地址為此用戶選定的那個PPPoE服務器的MAC地址。
- PADS(PPPoE Active Discovery Session Configuration)報文:PPPoE服務器分配一個唯一的會話進程ID,並通過PADS報文發送給主機。
- PADT(PPPoE Active Discovery Terminate)報文:當用戶或者服務器需要終止會話時,可以發送這種PADT報文。
-
PPPoE會話建立過程
PPPoE會話建立過程分為 PPPoE協商 和 PPP協商
- 用戶客戶端向服務器發送一個PADI報文,開始PPPOE接入。(廣播形式)
- 服務器向客戶端發送PADO報文,客戶端可能會收到來自多個服務器的PADO報文。
- 在接收到的所有PADO報文中,PPPoE客戶端選擇最先收到的PADO報文對應的PPPoE服務器,並發送一個PADR報文給這個服務器。
- 服務器產生一個Session ID,通過PADS發給客戶端。
- 客戶端和服務器之間進行PPP的LCP協商,建立鏈路層通信。同時,協商使用CHAP認證方式。
- 服務器通過Challenge報文發送給認證客戶端,提供一個128bit的Challenge。
- 客戶端收到Challenge報文后,並將密碼和Challenge做MD5算法運算后,在Response回應報文中把結果發送給服務器。
- 服務器根據用戶發送的信息判斷用戶是否合法,然后回應認證成功/失敗報文,將認證結果返回給客戶端。
- 進行NCP(如IPCP)協商,通過服務器獲取到規划的IP地址等參數。
PPPoE配置
[RTA]dialer-rule
// 進入Dialer-rule視圖,在該視圖下,可以通過撥號規則來配置發起PPPoE會話的條件 [RTA-dialer-rule]dialer-rule 1 ip permit [RTA-dialer-rule]quit [RTA]interface dialer 1 // 創建並進入Dialer接口 [RTA-Dialer1]dialer user enterprise // 配置對端用戶名,這個用戶名必須與對端服務器上的PPP用戶名相同 [RTA-Dialer1]dialer-group 1 // 將接口置於一個撥號訪問組 [RTA-Dialer1]dialer bundle 1 // 設備通過Dialer bundle將物理接口與撥號接口關聯起來 [RTA-Dialer1]ppp chap user enterprise@huawei // 配置PPP用戶 [RTA-Dialer1]ppp chap password cipher huawei123 [RTA-Dialer1]ip address ppp-negotiate // 配置PPP協商
[RTA]interface GigabitEthernet 0/0/1 [RTA-GigabitEthernet0/0/1]pppoe-client dial-bundle-number 1 on-demand
// 實現Dialer Bundle和物理接口的綁定,用來指定PPPoE會話對應的Dialer Bundle [RTA-GigabitEthernet0/0/1]quit [RTA]ip route-static 0.0.0.0 0 dialer 1
// 允許在路由表中沒有相應匹配表項的流量都能通過撥號接口發起PPPoE會話
<RTA>display interface Dialer 1 Dialer1 current state: UP Line protocol current state: UP (spoofing) Description: HUAWEI, AR Series, Dialer1 Interface Route Port, The Maximum Transmit Unit is 1500, Hold timer is 10(sec) Internet Address is negotiated, 192.168.10.254/32 Link layer protocol is PPP LCP initial Physical is Dialer Bound to Dialer1:0: Dialer1:0 current state : UP Line protocol current state : UP Link layer protocol is PPP LCP opened, IPCP opened
[RTA]display pppoe-client session summary PPPoE Client Session: ID Bundle Dialer Intf Client-MAC Server-MAC State 0 1 1 GE0/0/1 54899876830c 000000000000 IDLE
[RTA]display pppoe-client session summary PPPoE Client Session: ID Bundle Dialer Intf Client-MAC Server-MAC State 1 1 1 GE0/0/1 00e0fc0308f6 00e0fc036781 UP
State表示PPPoE會話的狀態,包括以下四種:
1. IDLE表示當前會話狀態為空閑。
2. PADI表示PPPoE會話處於發現階段,並已經發送PADI報文。
3. PADR表示PPPoE會話處於發現階段,並已經發送PADR報文。
4. UP表示PPPoE會話建立成功。