PPP簡(jiǎn)介
點(diǎn)到點(diǎn)協(xié)議(Point to Point Protocol,PPP)是為在同等單元之間傳輸數(shù)據(jù)包這樣的簡(jiǎn)單鏈路設(shè)計(jì)的鏈路層協(xié)議。[1] 這種鏈路提供全雙工操作,并按照順序傳遞數(shù)據(jù)包。設(shè)計(jì)目的主要是用來(lái)通過(guò)撥號(hào)或?qū)>€方式建立點(diǎn)對(duì)點(diǎn)連接發(fā)送數(shù)據(jù),使其成為各種主機(jī)、網(wǎng)橋和路由器之間簡(jiǎn)單連接的一種共通的解決方案。PPP具有以下功能:
(1)PPP具有動(dòng)態(tài)分配IP地址的能力,允許在連接時(shí)刻協(xié)商IP地址;
(2)PPP支持多種網(wǎng)絡(luò)協(xié)議,比如TCP/IP、NetBEUI、NWLINK等;
(3)PPP具有錯(cuò)誤檢測(cè)能力,但不具備糾錯(cuò)能力,所以ppp是不可靠傳輸協(xié)議;
(4)無(wú)重傳的機(jī)制,網(wǎng)絡(luò)開(kāi)銷(xiāo)小,速度快。
(5)PPP具有身份驗(yàn)證功能。
(6) PPP可以用于多種類(lèi)型的物理介質(zhì)上,包括串口線、電話線、和光纖(例如SDH),PPP也用于Internet接入。
PPP幀格式
PPP的幀格式字段 | 7E | FF | 03 | 協(xié)議 | 信息 | FCS | 7E |
字節(jié) | 1 | 1 | 1 | 2 | x | 2 | 1 |
PPP采用7EH作為一幀的開(kāi)始和結(jié)束標(biāo)志(F);其中地址域(A)和控制域(C)取固定值(A=FFH,C=03H) ;協(xié)議域(兩個(gè)字節(jié))取0021H表示IP分組,取8021H表示網(wǎng)絡(luò)控制數(shù)據(jù),取C021H表示鏈路控制數(shù)據(jù);幀校驗(yàn)域(FCS)也為兩個(gè)字節(jié),它用于對(duì)信息域的校驗(yàn)。若信息域中出現(xiàn)7EH,則轉(zhuǎn)換為(7DH,5EH)兩個(gè)字符。當(dāng)信息域出現(xiàn)7DH時(shí),則轉(zhuǎn)換為(7DH,5DH)。當(dāng)信息流中出現(xiàn)ASCII碼的控制字符(即小于20H),即在該字符前加入一個(gè)7DH字符。
PPP部分組成
封裝:一種封裝多協(xié)議數(shù)據(jù)報(bào)的方法。PPP 封裝提供了不同網(wǎng)絡(luò)層協(xié)議同時(shí)在同一鏈路傳輸?shù)亩嗦窂?fù)用技術(shù)。PPP 封裝精心設(shè)計(jì),能保持對(duì)大多數(shù)常用硬件的兼容性,克服了SLIP不足之處的一種多用途、點(diǎn)到點(diǎn)協(xié)議,它提供的WAN數(shù)據(jù)鏈接封裝服務(wù)類(lèi)似于LAN所提供的封閉服務(wù)。所以,PPP不僅僅提供幀定界,而且提供協(xié)議標(biāo)識(shí)和位級(jí)完整性檢查服務(wù)。
鏈路控制協(xié)議(LCP):一種擴(kuò)展鏈路控制協(xié)議,用于建立、配置、測(cè)試和管理數(shù)據(jù)鏈路連接。
網(wǎng)絡(luò)控制協(xié)議(NCP):協(xié)商該鏈路上所傳輸?shù)臄?shù)據(jù)包格式與類(lèi)型,建立、配置不同的網(wǎng)絡(luò)層協(xié)議;
配置:使用鏈路控制協(xié)議的簡(jiǎn)單和自制機(jī)制。該機(jī)制也應(yīng)用于其它控制協(xié)議,例如:網(wǎng)絡(luò)控制協(xié)議(NCP)。
為了建立點(diǎn)對(duì)點(diǎn)鏈路通信,PPP 鏈路的每一端,必須首先發(fā)送 LCP 包以便設(shè)定和測(cè)試數(shù)據(jù)鏈路。在鏈路建立,LCP 所需的可選功能被選定之后,PPP 必須發(fā)送 NCP 包以便選擇和設(shè)定一個(gè)或更多的網(wǎng)絡(luò)層協(xié)議。一旦每個(gè)被選擇的網(wǎng)絡(luò)層協(xié)議都被設(shè)定好了,來(lái)自每個(gè)網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)報(bào)就能在鏈路上發(fā)送了。
鏈路將保持通信設(shè)定不變,直到有 LCP 和 NCP 數(shù)據(jù)包關(guān)閉鏈路,或者是發(fā)生一些外部事件的時(shí)候(如,休止?fàn)顟B(tài)的定時(shí)器期滿或者網(wǎng)絡(luò)管理員干涉)。
應(yīng) 用:假設(shè)同樣是在Windows 98,并且已經(jīng)創(chuàng)建好“撥號(hào)連接”。那么可以通過(guò)下面的方法來(lái)設(shè)置PPP協(xié)議:首先,打開(kāi)“撥號(hào)連接”屬性,同樣選擇“服務(wù)器類(lèi)型”選項(xiàng)卡;然后,選擇默認(rèn)的“PPP:Internet,Windows NT Server,Windows 98”,在高級(jí)選項(xiàng)中可以設(shè)置該協(xié)議其它功能選項(xiàng);最后,單擊“確定”按鈕即可。
PPP工作流程
話流程
當(dāng)用戶撥號(hào)接入 ISP 時(shí),路由器的調(diào)制解調(diào)器對(duì)撥號(hào)做出確認(rèn),并建立一條物理連接(底層up)。PC 機(jī)向路由器發(fā)送一系列的 LCP 分組(封裝成多個(gè) PPP 幀)。
這些分組及其響應(yīng)選擇一些 PPP 參數(shù),和進(jìn)行網(wǎng)絡(luò)層配置(此前如有PAP或CHAP驗(yàn)證先要通過(guò)驗(yàn)證),NCP 給新接入的 PC機(jī)分配一個(gè)臨時(shí)的 IP 地址,使 PC 機(jī)成為因特網(wǎng)上的一個(gè)主機(jī)。
通信完畢時(shí),NCP 釋放網(wǎng)絡(luò)層連接,收回原來(lái)分配出去的 IP 地址。接著,LCP 釋放數(shù)據(jù)鏈路層連接。最后釋放的是物理層的連接。
PPP特點(diǎn)與認(rèn)證方式
特點(diǎn)
PPP協(xié)議是一種點(diǎn)——點(diǎn)串行通信協(xié)議。PPP具有處理錯(cuò)誤檢測(cè)、支持多個(gè)協(xié)議、允許在連接時(shí)刻協(xié)商IP地址、允許身份認(rèn)證等功能,還有其他。PPP提供了3類(lèi)功能:成幀;鏈路控制協(xié)議LCP;網(wǎng)絡(luò)控制協(xié)議NCP。PPP是面向字符類(lèi)型的協(xié)議。
PPP協(xié)議的幀格式
字段名稱(chēng)表標(biāo)志字段 | 地址字段 | 控制字段 | 協(xié)議 | 信息部 分 | FCS | 標(biāo)志字段 |
PPP是一種多協(xié)議成幀機(jī)制,它適合于調(diào)制解調(diào)器、HDLC位序列線路、SONET和其它的物理層上使用。它支持錯(cuò)誤檢測(cè)、選項(xiàng)協(xié)商、頭部壓縮以及使用HDLC類(lèi)型幀格式(可選)的可靠傳輸。PPP提供了三類(lèi)功能:
1 成幀:他可以毫無(wú)歧義的分割出一幀的起始和結(jié)束。
2 鏈路控制:有一個(gè)稱(chēng)為L(zhǎng)CP的鏈路控制協(xié)議,支持同步和異步線路,也支持面向字節(jié)的和面向位的編碼方式,可用于啟動(dòng)路線、測(cè)試線路、協(xié)商參數(shù)、以及關(guān)閉線路。鏈路控制協(xié)議LCP 建立點(diǎn)對(duì)點(diǎn)鏈路,是 PPP 中實(shí)際工作的部分。LCP 位于物理層的上方,負(fù)責(zé)建立、配置和測(cè)試數(shù)據(jù)鏈路連接。LCP 還負(fù)責(zé)協(xié)商和設(shè)置 WAN 數(shù)據(jù)鏈路上的控制選項(xiàng),這些選項(xiàng)由 NCP 處理。
3 網(wǎng)絡(luò)控制:具有協(xié)商網(wǎng)絡(luò)層選項(xiàng)的方法,并且協(xié)商方法與使用的網(wǎng)絡(luò)層協(xié)議獨(dú)立。PPP允許多個(gè)網(wǎng)絡(luò)協(xié)議共用一個(gè)鏈路,網(wǎng)絡(luò)控制協(xié)議 (NCP) 負(fù)責(zé)連接PPP(第二層)和網(wǎng)絡(luò)協(xié)議 (第三層)。對(duì)于所使用的每個(gè)網(wǎng)絡(luò)層協(xié)議,PPP 都分別使用獨(dú)立的 NCP來(lái)連接。例如,IP 使用 IP 控制協(xié)議 (IPCP),IPX 使用 Novell IPX 控制協(xié)議 (IPXCP)。
認(rèn)證方式
一種是PAP,一種是CHAP。相對(duì)來(lái)說(shuō)PAP的認(rèn)證方式安全性沒(méi)有CHAP高。PAP在傳輸password是明文的,而CHAP在傳輸過(guò)程中不傳輸密碼,取代密碼的是hash(哈希值)。PAP認(rèn)證是通過(guò)兩次握手實(shí)現(xiàn)的,而CHAP則是通過(guò)3次握手實(shí)現(xiàn)的。PAP認(rèn)證是被叫提出連接請(qǐng)求,主叫響應(yīng)。而CHAP則是主叫發(fā)出請(qǐng)求,被叫回復(fù)一個(gè)數(shù)據(jù)包,這個(gè)包里面有主叫發(fā)送的隨機(jī)的哈希值,主叫在數(shù)據(jù)庫(kù)中確認(rèn)無(wú)誤后發(fā)送一個(gè)連接成功的數(shù)據(jù)包連接。
PPP要求
簡(jiǎn)單:因IETF在設(shè)計(jì)因特網(wǎng)體系結(jié)構(gòu)時(shí),把最復(fù)雜的部分放在了TCP協(xié)議中,網(wǎng)際協(xié)議IP相對(duì)比較簡(jiǎn)單,所以對(duì)數(shù)據(jù)鏈路層的幀,不需要糾錯(cuò),不需要序號(hào),也不需要流量控制。簡(jiǎn)單為首要要求
簡(jiǎn)單的設(shè)計(jì)還可以是協(xié)議在實(shí)現(xiàn)時(shí)不容易出錯(cuò),從而不同廠商在協(xié)議的不同實(shí)現(xiàn)上互操作性提高了。
封裝成幀:PPP協(xié)議必須規(guī)定特殊字符作為幀定界符(標(biāo)志一個(gè)幀的開(kāi)始和結(jié)束的字符),以便接收端從收到的比特流中能準(zhǔn)確地找出幀的開(kāi)始和結(jié)束位置。
透明性:PPP協(xié)議必須保證數(shù)據(jù)傳輸?shù)耐该餍浴#慈绻麛?shù)據(jù)中碰巧出現(xiàn)了和幀界定符一樣的比特組合時(shí)要采取有效的措施來(lái)解決這個(gè)問(wèn)題)
多種網(wǎng)絡(luò)層協(xié)議:PPP協(xié)議必須能夠在同一條物理鏈路上同時(shí)支持多種網(wǎng)絡(luò)層協(xié)議(例如IP和IPX等)的運(yùn)行[2] 。
當(dāng)點(diǎn)對(duì)點(diǎn)鏈路所連接的是局域網(wǎng)或路由器時(shí),PPP協(xié)議必須同時(shí)支持在鏈路所連接的局域網(wǎng)或路由器上運(yùn)行的各種網(wǎng)絡(luò)層協(xié)議。
多種類(lèi)型鏈路:除了要支持多種網(wǎng)絡(luò)層協(xié)議外,PPP還必須能夠在多種類(lèi)型的鏈路上運(yùn)行。
差錯(cuò)檢測(cè):PPP協(xié)議必須能夠?qū)邮斩耸盏降膸M(jìn)行檢測(cè),并立即丟棄有差錯(cuò)的幀。
檢測(cè)連接狀態(tài):PPP協(xié)議必須具有一種機(jī)制能夠及時(shí)自動(dòng)檢測(cè)出鏈路是否處于正常工作狀態(tài)。
傳送單元: PPP協(xié)議必須對(duì)每一種類(lèi)型的點(diǎn)對(duì)點(diǎn)鏈路設(shè)置傳送單元MTU的標(biāo)準(zhǔn)默認(rèn)值(至少是1500字節(jié)),如果高層協(xié)議發(fā)送的分組過(guò)長(zhǎng)并超過(guò)MTU的數(shù)值,PPP就要丟棄這樣的幀,并返回差錯(cuò)。MTU是數(shù)據(jù)鏈路層的幀可以載荷的數(shù)據(jù)部分的長(zhǎng)度,而不是幀的總長(zhǎng)度。
網(wǎng)絡(luò)層地址協(xié)商:PPP協(xié)議必須提供一種機(jī)制使通信的兩個(gè)網(wǎng)絡(luò)層(例如兩個(gè)IP層)的實(shí)體能夠通過(guò)協(xié)商知道或能夠配置彼此的網(wǎng)絡(luò)層地址。協(xié)商的算法應(yīng)盡可能的簡(jiǎn)單,且能在所有的情況下得出協(xié)商結(jié)果。
數(shù)據(jù)壓縮協(xié)商:PPP協(xié)議必須提供一種方法來(lái)協(xié)商使用數(shù)據(jù)壓縮算法,但PPP協(xié)議并不要求將數(shù)據(jù)壓縮算法進(jìn)行標(biāo)準(zhǔn)化。在TCP/IP協(xié)議族中,可靠運(yùn)輸由運(yùn)輸層的TCP協(xié)議負(fù)責(zé),因此數(shù)據(jù)鏈路層的PPP協(xié)議不需要進(jìn)行糾錯(cuò),不需要設(shè)置序號(hào),也不需要進(jìn)行流量控制。PPP協(xié)議不支持多點(diǎn)線路(即一個(gè)主站輪流和鏈路上的多個(gè)從站進(jìn)行通信),而只支持點(diǎn)對(duì)點(diǎn)的鏈路通信,此外PPP協(xié)議只支持全雙工鏈路。[3]
PPP配置方法
PPP基本配置
1, 啟用ppp
RouterTest#config terminal
Enter configuration commands,one per line. End with CNTL/Z.
RouterTest(config)#interface serial 0/0
RouterTest(config-if)#encapsulation ppp
RouterTest(config-if)#
2, 地址配置命令
RouterTest(config-if)#ip address 10.1.1.1 255.255.255.0
PAP配置實(shí)例
Router(config)#hostname RouterA
RouterA(config)#RouterB password itsasecret
RouterA(config)#interface Async 0
RouterA(config-if)#encapsulation ppp
RouterA(config-if)#ip address 10.0.0.1 255.255.255.0
RouterA(config-if)#dialer-map ip 10.0.0.2 name RouterB 5551234
RouterA(config-if)#username RouterA password itsasecret2
Router(config)#hostname RouterB
RouterB (config)#RouterA password itsasecret
RouterB (config)#interface Async 0
RouterB (config-if)#encapsulation ppp
RouterB (config-if)#ip address 10.0.0.2 255.255.255.0
RouterB (config-if)#dialer-map ip 10.0.0.1 name RouterA 5551234
RouterB (config-if)#username RouterB password itsasecret2
PPPCHAP配置實(shí)例
Router(config)#hostname RouterA
RouterA(config)#RouterB password itsasecret
RouterA(config)#interface Async 0
RouterA(config-if)dialer in-band
RouterA(config-if)#encapsulation ppp
RouterA(config-if)#ppp authentication chap
RouterA(config-if)#ip address 10.0.0.1 255.255.255.0
RouterA(config-if)#dialer-map ip 10.0.0.2 name RouterB 5551234
RouterA(config-if)#username RouterA password itsasecret2
Router(config)#hostname RouterB
RouterB (config)#RouterA password itsasecret
RouterB (config)#interface Async 0
RouterB(config-if)dialer in-band
RouterB (config-if)#encapsulation ppp
RouterB (config-if)#ppp authentication chap
RouterB (config-if)#ip address 10.0.0.2 255.255.255.0
RouterB (config-if)#dialer-map ip 10.0.0.1 name RouterA 5551234
RouterB (config-if)#username RouterB password itsasecret2
PPPCHAP和PAP
Router(config-if)#ppp authentication chap pap
配置PPP回?fù)?/div>
PPP使用壓縮
cisco支持的壓縮方法:
Predictor:先判斷數(shù)據(jù)是否已經(jīng)被壓縮過(guò)。如果數(shù)據(jù)被壓縮過(guò),則立即將其發(fā)送出去,而不浪費(fèi)時(shí)間對(duì)已經(jīng)壓縮過(guò)的數(shù)據(jù)進(jìn)行壓縮。
Stacker:一種基于Lempel-Ziv(LZ)的壓縮算法,對(duì)每種數(shù)據(jù)類(lèi)型,只發(fā)送一次有關(guān)其在數(shù)據(jù)流中的位置。接收方根據(jù)這些信息重新組織數(shù)據(jù)流。
MPPC:MPPC協(xié)議(RFC2118)讓cisco路由器器能夠與microsoft客戶端交換壓縮后的數(shù)據(jù),它使用一種基于LZ的壓縮算法
TCP報(bào)頭壓縮:也叫Van Jacobson壓縮,只用于壓縮tcp報(bào)頭。
PPP配置壓縮
Router(config)#interface serial2
Router(config-if)#compress {predictor|stac|mppc}
Or
Router(config)#interface async
Router(config-if)#ip tcp header-compression
Or
Router(config)#interface async
Router(config-if)#ip tcp header-compression passive
該命令告訴路由器,僅當(dāng)從對(duì)方那里收到壓縮后的報(bào)頭后,才使用tcp報(bào)頭壓縮。
多鏈路PPP
通過(guò)使用多鏈路PPP,可以將多條連接捆綁成一條虛擬連接。
Router(config-if)#ppp multilink
Router(config-if)#dialer load-threshold load [outbound | inbound | either]
命令dialer load-threshol load在什么情況下將更多的B信道加入到MLP鏈路束中。當(dāng)所有B信道的總負(fù)載超過(guò)的閥值后,撥號(hào)接口(BRI或PRI)將信道加入到多鏈路束中。
同樣,如果總負(fù)載低于閥值,將拆除B信道。
參數(shù)load是接口的平均負(fù)載,其取值為1(沒(méi)有負(fù)載)到255(滿載)。
參數(shù)outbound(默認(rèn)值)計(jì)算負(fù)載時(shí)只考慮出站數(shù)據(jù)流;參數(shù)inbound只考慮入站數(shù)據(jù)流;either計(jì)算負(fù)載時(shí),選擇出站負(fù)載和入站負(fù)載中較大的那個(gè)。
PPP故障排查命令
debug ppp negotiation-確定客戶端是否可以通過(guò)PPP協(xié)商; 這是您檢查地址協(xié)商的時(shí)候。
debug ppp authentication-確定客戶端是否可以通過(guò)驗(yàn)證。如果您在使用Cisco IOS軟件版本11.2之前的一個(gè)版本,請(qǐng)發(fā)出debug ppp chap命令。
debug ppp error - 顯示和PPP連接協(xié)商與操作相關(guān)的協(xié)議錯(cuò)誤以及統(tǒng)計(jì)錯(cuò)誤。
debug aaa authentication-要確定在使用哪個(gè)方法進(jìn)行驗(yàn)證(應(yīng)該是RADIUS,除非RADIUS服務(wù)器發(fā)生故障),以及用戶是否通過(guò)驗(yàn)證。
debug aaa authorization-要確定在使用哪個(gè)方法進(jìn)行驗(yàn)證,并且用戶是否通過(guò)驗(yàn)證。
debug aaa accounting-查看發(fā)送的記錄。
debug radius-查看用戶和服務(wù)器交換的屬性。
相關(guān)搜索relevant search