針對鏈路控制協定,本文將詳細說明LCP協定的用途,並且指出LCP協定在PPP協定中的重要性,然後也將說明與PPP協定相關的知識,以及講解其運作方式以及如何設定。
KC406是主機名稱的設定範例,指令關鍵字是hostname,一般而言,設定主機名稱主要是為了方便管理,而這個名稱一旦設定之後,此名稱就會顯示在提示符號之前,以便管理員辨識目前是在哪一台設備的CLI中。
但是,對於PPP協定的認證而言,這個主機名稱已經不再是方便管理這樣的簡單,而是會被拿來當作認證的帳號名稱,也就是username。請注意,這裡所設定的主機名稱,大小寫視為相異。
設定遠端路由器的主機名稱與密碼
接下來,設定遠端Cisco路由器的認證帳號名稱與密碼,用下面這個指令來完成:
上面這個指令範例是設定遠端的路由器,其主機名稱為LOLO,而密碼是1120,對於Cisco路由器而言,這個密碼對於雙方路由器而言,必須是相同的。而在Cisco IOS版本11.2以前,這個密碼是加密過的,但是從Cisco IOS版本11.2開始,這個密碼就不再是加密過,而是用明文的方式,如果想把密碼加密,則必須執行下面這個指令:
設定認證協定種類
接下來,當然就是要設定PPP協定認證的種類,如同大家所知,有兩種認證協定可以選擇,就是PAP協定和CHAP協定。其設定的指令如下所示:
上面的指令範例是代表採用CHAP認證協定,指令的關鍵字是ppp authentication,若要採用PAP認證協定,則只要將chap改成pap即可,指令如下所示:
當然,無論是設定成PAP認證協定,還是設定成CHAP認證協定,都代表所有透過這個介面進來的PPP連線要求都會使用所設定的認證協定來要求認證。這裡要注意的是,一旦某一台Cisco路由器設定成某一種認證協定,假設使用CHAP認證協定,那所有其他想要與這台路由器建立PPP連線的Cisco路由器都必須使用CHAP認證協定才行,否則將無法通過認證動作。
如果覺得這種強迫一定要使用同一種認證協定的作法太沒有彈性的話,其實也可以一次指定兩種認證協定,例如:
上面這個指令範例就會先試著採用PAP認證,如果連進來的PPP連線並不是使用PAP認證協定,則會再改用CHAP認證協定。
小標檢視PPP協定的設定值
由於PPP協定的設定值,是設定在「介面」之上,所以PPP協定的設定值也在介面上,因此檢視PPP協定的設定值指令為:
指令關鍵字為Show interface。執行結果範例如下:
以上就是查看使用PPP協定的部分介面資料,大部分的資訊都過於複雜,這邊就一些重點的部分解釋一下。由於PPP協定是網路第二層的協定,所以在第一行看到line protocol is up就代表PPP協定已經是運作的狀態了。另外,可以看到下面這一行:
由於使用HDLC協定和使用PPP協定,其介面資料可能都很相似,因此可以透過上面這一行來辨識目前所使用的是哪一個廣域網路協定。這邊顯示Encapsulation PPP,所以很明顯地就是正在使用PPP協定。另外,從上面也能夠看到LCP Open的字眼,可以確保一切如同所預期地執行著。
連線偵錯技巧
最後來看看如果在設定的過程中發生一些問題的時候,應該要如何執行偵錯。
debug ppp是一個很有用的偵錯指令。debug ppp後面要接上authentication或是negotiation參數以便得知更詳細的資訊。接authentication參數的指令格式如下所示:
上面這個指令可以用來顯示PPP驗證階段的相關資訊,包含CHAP驗證協定和PAP驗證協定所使用的封包交換資訊。
另外,接negotiation參數的指令格式如下所示:
以上指令可以用來顯示PPP連線過程的資訊,其中包含LCP相關資料、驗證過程的資料以及NCP相關資料等等。當然,一個成功的PPP連線當中,對於這三者的先後順序為:先LCP狀態→接著做驗證動作→最後進行NCP。
最後,如果有人發現PPP協定有出現任何的問題,可以透過下面這個指令來查看相關的疑難排解:
如同其指令名稱,這個指令就是用來顯示PPP連線過程所有可能的錯誤資訊,當錯誤發生時,這個指令將會相當有用。
結語
這篇文章主要介紹鏈路控制協定,也就是LCP協定的用途以及LCP協定在PPP協定中的重要地位。同時也說明了PPP協定的重要背景知識、運作方式以及設定過程。在這篇文章中,應該就可以清楚並且快速了解到LCP和PPP協定最重要的細節。
<本文作者:胡凱智,目前在Solera Holdings Inc.擔任亞太區首席技術長,曾於美商Mozilla擔任全球技術專案總監,並在趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者交流建議:https://www.facebook.com/khu.page>