HCNA Routing&Switching之PPPoE協議

1874發表於2021-08-24

  前文我們瞭解了廣域網中的HDLC和PPP協議相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15174240.html;今天我們來聊一聊PPPoE協議相關話題;

  數字使用者線路DSL(Digital Subscriber Line)是以電話線為傳輸介質的傳輸技術,我們通常把所有的DSL技術統稱為xDSL,x代表不同種類的數字使用者線路技術;目前比較流行的寬頻接入方式是ADSL,ADSL是非對稱DSL技術,使用的是PPPoE(PPP over Ethernet)協議;PPPoE協議通過在乙太網上提供點到點的連線,建立PPP會話,使得乙太網中的主機能夠連線到遠端的寬頻接入伺服器。PPPoE具有使用範圍廣、安全性高、計費方便等特點;

  DSL技術應用場景

  提示:BRAS是運營商的寬頻接入裝置;DSLAM是Digital Subscriber Line Access Multiplexer的簡稱,中文稱呼數字使用者線路接入複用器。DSLAM是各種DSL系統的局端裝置,屬於最後一公里接入裝置(the last mile),其功能是接納所有的DSL線路,匯聚流量,相當於一個二層交換機。

  PPPoE在DSL中的應用

  提示:在企業內部,我們通過PPPoE客戶端通過網線和Modem連線;Modem的作用就是將數字訊號轉換為模擬訊號,它有兩個種介面,一種是連線PPPoE客戶端的網口,一種是連線DSLAM的電話口;運營商希望通過一臺接入裝置來連線遠端的多個主機,同時接入裝置能夠提供訪問控制和計費功能;在眾多的接入技術中,把多個主機連線到接入裝置的最經濟的方法就是乙太網,而PPP協議可以提供良好的訪問控制和計費功能,於是產生了在乙太網上傳輸的PPP報文技術,即PPPoE;PPPoE利用乙太網將大量主機組成網路,通過一個遠端接入裝置連線因特網,並運用PPP協議對接入的每個主機進行控制,具有使用範圍廣,安全性高,計費放備案的特點;PPPoE解決了使用者上網收費等實際應用問題,得到了寬頻接入運營商店認可並被廣泛應用;

  PPPoE報文格式

  提示:PPPoE報文是使用Ethernet格式進行封裝,所以PPPoE是乙太網的上層協議;在封裝過程中首先要先封裝乙太網首部,隨後才是PPPoE首部;乙太網首部中的Type是用來表示上層協議的型別;當Type的值為0x8863時,就表示承載的是PPPoE發現階段的報文;當type的值為0x8864時就表示承載的是PPPoE會話階段的報文;

  PPPoE會話建立過程

  提示:PPPoE建立會話的過程主要要經過上述二個階段,發現階段和會話階段;其中發現階段主要是發現PPPoE伺服器,獲取對方乙太網地址;會話階段主要是PPP協議的各種協商;經過上述兩個階段以後,一個PPPoE會話就建立好了,後續使用者就可以通過PPPoE會話進行上網,資料傳輸;會話終結階段是使用者側傳送PPPoE終止報文,隨後PPPoE會話終止;

  PPPoE資料包型別

  提示:PPPoE會話建立和終止過程中主要有以上5中型別的報文;PADI是PPPoE發現初始報文,主要使用者尋找PPPoE服務端;當PPPoE服務端收到PPPoE客戶端傳送的PADI報文後,對應服務端會向客戶端傳送PADO,該型別報文主要是告訴PPPoE客戶端對應服務端能夠滿足客戶端的請求;當客戶端收到服務端傳送的PADO時(可能會有多個服務端傳送PADO),它會選擇最早收到的PADO對應的服務端傳送PADR;PADR是客戶端向服務端請求建立會話,同時也拒絕其他服務端傳送的PADO報文;服務端收到客戶端傳送的PADR後,會回覆一個PADS報文,該型別報文主要作用是告訴客戶端會話id等資訊;當客戶端或服務端需要斷開連線時,客戶端或服務端會向對端傳送PADT,表示終止連線,該型別報文的主要作用是通知對端PPPoE會話結束;對端收到該型別報文,會話會立即斷開;

  PPPoE工作流程

  提示:客戶端通過廣播傳送PADI報文來傳送接入伺服器;類似DHCP中的DHCP discover包;

  提示:當伺服器收到客戶端傳送的PADI報文後,將客戶端請求的服務於自己能夠提供的服務進行比較,如果可以提供,則單播恢復PADO報文;類似DHCP中的DHCP offer包;

  提示:PPPoE客戶端會根據自己收到的PADO選擇最優的PADO報文對應的伺服器,並單播傳送一個PADR報文;PADR報文有兩層作用,一層是向對應服務端請求建立會話等資訊,二是拒絕其他服務端的PADO;類似DHCP中的DHCP Request包;

  提示:PPPoE服務端收到客戶端的PADR報文後,服務端會生成一個唯一的PPPoE session ID,並通過傳送PADS報文給客戶端,表示會話建立成功;類似DHCP中的DHCP ack包;

  提示:當PPPoE會話建立成功以後,後續就是PPP引數協商;ppp引數協商和串列埠鏈路上的PPP引數協商過程一樣;主要分LCP和NCP協商;如果有認證,還需要進行認證;當PPP引數協商成功以後,對應客戶端會通過服務端獲取到一個規劃的ip地址等引數,後續客戶端就可以通過這個ip地址等進行上網,資料傳輸;

  PPPoE會話建立全過程

  提示:只有PPP中NCP協商完成以後,對應客戶端才會獲取到ip地址,後續的通訊客戶端會通過這個ip地址來進行資料傳輸;

  PPPoE會話終止過程

  提示:當PPPoE客戶端或者服務端需要關閉連線時,可以向服務端或者客服端傳送PADT報文;表示關閉連線;在PADT報文中,目的mac地址為單播地址,session id為希望關閉的session id;一旦收到一個PADT報文後,對應會話會隨即關閉;

  PPPoE配置

  實驗:如下拓撲,配置PPPoE客戶端和服務端

  服務端配置

  1、在服務端上建立用於認證的使用者名稱和密碼

  2、建立用於分配ip地址等資訊的地址池

  提示:地址池中可以新增閘道器、dns、排除地址等等資訊;

  3、建立虛擬模板介面

  提示:虛擬模板介面裡主要配置ppp認證模式,以及關聯地址池,和本端的ip地址;

  4、將物理介面和虛擬模板介面關聯

  服務端全部配置

HCNA Routing&Switching之PPPoE協議
sys
sys server
aaa
local-user qiuhom password cipher admin123.com
local-user qiuhom server ppp
q
ip pool PPPoE
net 100.1.1.0 mask 255.255.255.252
q
int virtual-template 1
ppp authentication-mode chap
remote address pool PPPoE
ip add 100.1.1.1 30
q
int g0/0/0
pppoe-server bind virtual-template 1
View Code

  客戶端配置

  1、建立撥號規則

  提示:上述命令表示允許所有ip協議的報文進行撥號;

  2、建立撥號介面,並在介面下配置ppp認證,並繫結撥號規則

  提示:dialer user xxx 中的使用者名稱稱它只用於標識和繫結dialer的作用,不用於ppp認證,所以這裡的使用者名稱可以是任意的;

  3、將物理介面和撥號介面做繫結

  驗證:看看對應撥號介面是否獲取到ip地址?

  提示:可以看到對應撥號介面已經正常獲取到ip地址;說明我們的配置沒有問題;

  4、配置預設路由,將出介面指向對應的撥號介面

  提示:配置好預設路由以後,對應客戶端就可以通過pppoe的會話鏈路進行上網;

  客戶端全部配置

HCNA Routing&Switching之PPPoE協議
sys 
sys client
dialer-rule
dialer-rule 1 ip permit
q
int dialer 1
dialer user xxx
dialer bundle 1
ppp chap user qiuhom
ppp chap password ci admin123.com
ip add ppp-negotiate
int g0/0/0
pppoe-client dial-bundle-number 1
q
ip route-s 0.0.0.0 0 dialer 1
View Code

  在客戶端驗證PPPoE會話資訊

  在服務端驗證PPPoE會話資訊

  在客戶端驗證對應撥號介面

  提示:可以看到對應撥號介面使用的是PPP協議,對應LCP和IPCP都是opened,並且對應介面也通過ppp協商獲取到100.1.1.2地址;

相關文章