實驗說明:PPP中的認證方式有pap和chap兩種,這兩種認證既可以單獨使用也可以結合使用。並且既可以進行單向認證也可以進行雙向認證。
pap是通過驗證遠端的用戶名和密碼是否匹配來進行驗證 chap則是發送一個挑戰包,然後遠端通過自己的數據庫的用戶名和密碼利用md5進行計算後返還一個數值,然後在發送方驗證這個數值是否和自己計算出來的數值是否一致進行驗證
基本配置:
R1: ! hostname R1----------------------------------------------------------設置主機名爲“R1”
!
interface Serial1/0
ip address 1.1.1.1 255.255.255.0
encapsulation ppp-------------------------------------------------設置封裝爲ppp
R2: hostname R2
!
interface Serial1/0
ip address 1.1.1.2 255.255.255.0
encapsulationppp
通過上面的配置,在沒有啓用任何認證的情況下,鏈路是通的。
配置步驟:
1. 在兩臺路由器上進行pap認證:
如果我們進行單項認證的話配置應該如下
R1爲認證的服務器端,需要建立本地口令數據庫,並且開始pap認證。
R1(config)#usernameR2 password gairuhe------------------------建立本地口令數據庫
R1(config)#int s1/0
R1(config-if)#pppauthentication pap--------------------------------要求進行PAP認證
在這樣的配置下,我們可以看到鏈路已經down了:
R1(config-if)#
*Aug 23 16:45:12.639: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceSerial1/0, changed state to down
R2爲認證的客戶端,需要發送用戶名和密碼來匹配服務器端的口令數據庫
此時我們在R2上加上如下的配置:
R2(config)#int s1/0
R2(config-if)#ppp papsent-username R2 password gairuhe------發送用戶名和密碼
R2(config-if)#
*Aug 23 16:47:48.635: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceSerial1/0, changed state to up
此時鏈路已經起來,我們僅在R1上做了認證,而在R2上沒有進行認證。這就是pap的單向認證。
Pap的雙向認證:
Pap的雙向認證其實就是將兩端同時都配置爲認證服務器端和認證客戶端。在上面實驗的基礎上,我們只要將R2配置成服務器端,將R1配置成客戶端即可。
R2(config)#username R1 password gairuhe
R2(config)#int s1/0
R2(config-if)#ppp authentication pap
R2(config-if)#
R1(config-if)#int s1/0
R1(config-if)#ppp pap sen
R1(config-if)#ppp pap sent-username R1 password gairuhe
R1(config-if)#
2.在上面實驗的基礎上,將R1改爲chap認證,而R2不變
在R1上進行如下的改變
R1(config-if)#no ppp authentication pap
R1(config-if)#no ppp pap sent-username R1 password gairuhe
R1(config-if)#ppp authentication chap
我們發現,鏈路狀態並沒有改變,而且也沒有任何的debug信息產生。這就是說明了在鏈路已經建立起來後,是無需進行再次的認證的。
我們把R1的是s1/0口shut down 後在no shut down,看看情況
R1(config-if)#shut
R1(config-if)#no shut
此時發現鏈路已經斷開,並且要求需要PPP的認證
3.在兩臺路由器上進行chap認證
首先將R2的pap認證關閉
R2(config-if)#no pppauthen pap
R2(config-if)#no ppp pap sent-username R2 password gairuhe
可以看到chap認證是通過發送一個challenge信息來進行認證。
在R2上啓用chap認證
R2(config)#int s1/0
R2(config-if)#ppp authentication chap
這個時候鏈路就已經通了。