PPP所提供的LCP功能全面,適用于大多數(shù)環(huán)境。主要用于建立和控制連接,可以簡單來說LCP工作在2.5層。
NCP(網(wǎng)絡控制協(xié)議)
為了建立點到點的鏈路通信,PPP必須先發(fā)送LCP包來建立鏈路,當鏈路創(chuàng)建成功后,PPP必須發(fā)送NCP包以便選擇使用一個或多個網(wǎng)絡層協(xié)議,一旦網(wǎng)絡層協(xié)議選定并協(xié)商之后,來自相應網(wǎng)絡層上的數(shù)據(jù)就能在鏈路由發(fā)送了。所以NCP負責解決物理連接上運行什么網(wǎng)絡協(xié)議,以及解決上層網(wǎng)絡協(xié)議發(fā)生的問題。
下面咱們來看一下PPP會話建立的過程:
PPP 會話的建立
1 鏈路建立
2 驗證階段
3 網(wǎng)路層協(xié)議連接
PPP的鏈路狀態(tài)如圖所示:一個典型的鏈路建立過程分為三個階段;創(chuàng)建階段,驗證階段,和網(wǎng)絡協(xié)商階段。
階段1:創(chuàng)建PPP鏈路:
LCP負責創(chuàng)建鏈路。在這個時候,將對基本的通訊方式進行選擇。鏈路兩端設備通過LCP向?qū)Ψ桨l(fā)送配置信息報文。一旦一個配置成功信息包被發(fā)送縣域被接收,就完成了,進入了LCP開啟狀態(tài)。
應當注意,在鏈路創(chuàng)建階段,只是對驗證協(xié)議進行選擇,用戶驗證的過程將在第2階段完成。
階段2:用戶驗證
在這個階段,客戶端會將自己的身份發(fā)送給遠端的接入服務器。該階段使用一種安全驗證方式避免第三方竊取數(shù)據(jù)或冒充遠程客戶接管與客戶端的連接。在認證完成之前,禁止從驗證階段進行到網(wǎng)絡協(xié)商階段(網(wǎng)絡層協(xié)議階段),如果驗證失敗,則過程終止。
在這一階段里,只有鏈路控制協(xié)議、驗證協(xié)議、鏈路質(zhì)量監(jiān)視的數(shù)據(jù)包是允許的,其他的數(shù)據(jù)包必須靜靜的丟棄。在這里可以選擇使用的兩個認證協(xié)議就是口令驗證協(xié)議PAP和挑戰(zhàn)握手驗證協(xié)議(CHAP)。
階段3:網(wǎng)絡協(xié)商階段(調(diào)用網(wǎng)絡層協(xié)議)
驗證階段完成之后,PPP將調(diào)用鏈路創(chuàng)建階段選擇的各種網(wǎng)絡控制協(xié)議(NCP),選定的NCP解決PPP鏈路之上的高層協(xié)議問題。
這樣,經(jīng)過三個階段之后,一條完整的PPP鏈路就建立起來了。
下面就開始重點介紹PPP的驗證協(xié)議:
PPP定義了兩種驗證協(xié)議:
密碼驗證協(xié)議(the Password Authentication Protocol)和挑戰(zhàn)握手驗證協(xié)議(the Challenge-Handshake Authentication Protocol)也就是說在鏈路建立成功后,在進入網(wǎng)絡層協(xié)議階段之前,PPP必須要提供一個可選擇的驗證階段。默認的,身份驗證不是強制的。如果希望進行鏈路的身份驗證,則實驗者必須在建立階段指明身份驗證協(xié)議配置選項。那么到底PAP與CHAP有什么區(qū)別,我們的首選應該是什么協(xié)議?
我們先來看PAP:
密碼驗證協(xié)議提供了一種簡單的方法,可以使對端使用2次握手建立身份驗證。這個方法僅僅在鏈路初始化時使用。
PAP不是一個健壯的身份驗證方法。密碼在電路上是明文發(fā)送的,并且對回送或者重復驗證和錯誤攻擊沒有保護措施。對端控制著嘗試的頻率和時間。什么意思?我們來看一個圖:
遠程路由器如果希望在中心路由器上得到身份驗證只需要將它的用戶名如dufei,以及它們公有的密碼如DUfei2008,通過網(wǎng)絡傳到中心路由器,中心路由器對用戶名和密碼進行驗證,如果通過就OK!說明此用戶是合法用戶,否則驗證失敗。也就是遠程路由器提出驗證請求,中心路由器進行驗證將結果是允許還是拒絕發(fā)給對方,這是這么簡單的兩次握手就可以完成。需要注意的是遠程路由器的hostname在中心路由器上就是username。
但有一個弊端就是密碼是以明文方式在網(wǎng)絡上傳輸?shù)?,那么如果有黑客希望對網(wǎng)絡進行入侵,他只需要先來監(jiān)聽,抓到明文密碼后就可以冒充遠程用戶來請求身份驗證。并且到底驗證多少次,什么時候驗證完成都掌握在他的手里。中心路由器只能被動的給出驗證的結果。
“杜氏總結”:因此我們可以總結出PAP的特點:兩次握手;明文傳輸;反復驗證。
CHAP:
下面咱們來介紹一下CHAP:
CHAP是一種比PAP更強的驗證方式,因為這種驗證方法中所使用的用戶的真實口令從不在網(wǎng)絡上傳輸。因此兩次握手已經(jīng)不能滿足它的要求,它使用的是三次握手來驗證對端的身份。如圖:
分析:這個圖其實不是一個很完整的圖,沒有開頭的建立連接階段。比較完整的圖大家可以參考下圖這個:
詳細分析:
大家一看這個圖可能會感覺到有點小復雜,為什么要這么復雜呢,主要就是因為CHAP安全了,它不允許密碼出現(xiàn)在網(wǎng)絡上,但又能實現(xiàn)身份驗證怎么辦呢?我們一步步分析:
當遠程路由器dufei來連接訪問服務路由器Cisco時,必須經(jīng)過這么幾個過程:
第一個階段也就是鏈路創(chuàng)建成功以后,雙方都運行PPP,并使用CHAP驗證方法,此時遠程路由器就發(fā)出一個請求挑戰(zhàn)的信息:意思也就是說我想向請求連接,你來詢問我吧!來判斷我是不是合法用戶,能不能連接到你的路由器;那么此時訪問路由器開始發(fā)出挑戰(zhàn)了,也就是開始詢問了,它是怎么詢問的呢,它向?qū)Ψ桨l(fā)出一個數(shù)據(jù)包,數(shù)據(jù)包的大體格式:
那么對方收到后,也就是遠程路由器收到后,會從自己的配置表中找出對方用戶名所對應的密碼,將此密碼和隨機數(shù)以及ID都都經(jīng)過MD5得到一個散列值:如圖所示:
然后遠程路由器又做了一件事:它也給對方發(fā)了一個數(shù)據(jù)包,格式如圖所示:
那么中心路由器收到這個數(shù)據(jù)包后,也做了幾乎同樣的事情:從自己的數(shù)據(jù)庫中查對方的用戶名所對應的密碼、隨機數(shù)以及ID,此時大家就發(fā)現(xiàn)了這個密碼肯定需要一樣,上次所使用的隨機數(shù)以及ID也經(jīng)過一個MD5求出一個散列值,如果和遠程路由器發(fā)過來的一樣,那么就說明對方是個合法用戶,對我所提出的問題做出一個正確的回答;否則是非法用戶。這就是CHAP的驗證過程。
下面咱們通過兩個實驗來結束PPP的學習:
Lab1:PPP的PAP驗證
實驗目的:兩臺路由器中,讓其中的一臺能ping通另一臺并且通過PAP驗證使用其能相互傳遞信息。
實驗設備:兩臺Cisco系列路由器
拓撲圖:
Router1上的配置:
Router>enable
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname RA
RA(config)#username dufei password dufei
RA(config)#interface s2/0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#encapsulation ppp
RA(config-if)#ppp authentication pap
RA(config-if)#clock rate 64000
RA(config-if)#no shutdown
Router2上的配置:
Router>enable
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname RB
RB(config)#interface s2/0
RB(config-if)#ip address 192.168.0.2 255.255.255.0
RB(config-if)#no shutdown
此時我們在RB路由器上嘗試ping RA
這是因為主驗證方開啟PAP驗證,但被驗證方并沒有發(fā)出驗證信息,因為驗證不通過所以通訊失敗!
那么我們在RB上也來開啟PAP驗證。
RB(config-if)#encapsulation ppp
RB(config-if)#ppp pap sent-username dufei password dufei
然后再來測試:
OK,實驗成功!
總結:
主驗證方主要就三個命令:
1 username dufei password dufei 建立對端驗證數(shù)據(jù)庫包括用戶名和密碼。
2 encapsulation ppp 接口封裝成PPP
3 ppp authentication pap 開啟PAP驗證。
被驗證方主要就兩個命令:
1 encapsulation ppp 接口封裝成PPP
2 ppp pap sent-username dufei password dufei 發(fā)送驗證信息
Lab2:PPP的CHAP驗證
實驗目的:兩臺路由器,讓其中一臺能ping通另一臺并且通過CHAP驗證使期能相互傳遞信息。
實驗設備:兩臺Cisco系列路由器
拓撲圖:
Router1的配置:
RA>enable
RA#conf t
RA(config)#username dufei password dufei
RA(config)#interface s2/0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#clock rate 64000
RA(config-if)#no shutdown
Router2不再進行初始化配置,網(wǎng)絡現(xiàn)在已經(jīng)暢通,如圖所示:
現(xiàn)在我們準備來開啟CHAP驗證:
Rouer1上的配置:
RA(config)#username beijing password 123 建立對端驗證數(shù)據(jù)庫包括用戶名和密碼
RA(config)#interface s2/0 進入相應椄口
RA(config-if)#encapsulation ppp 封裝成PPP
RA(config-if)#PPP authentication chap 開啟CHAP驗證
RA(config-if)#ppp chap hostname shanghai 建立本端驗證用戶
RA(config-if)#no shutdown 開啟接口
Router2上的配置:
RB(config)#username shanghai password 123 建立對端的用戶名及密碼
RB(config)#interface s2/0
RB(config-if)#encapsulation ppp
RB(config-if)#ppp chap hostname beijing
RB(config-if)#no shutdown
測試:
實驗成功!
我們可以利用show interface s2/0,顯示驗證信息,如圖所示:
關于PPP協(xié)議的講解就到這兒了,希望對你有幫助!好了,休息,休息一會!