Point-To-Point Protocol (PPP)

(PPP) Noktadan Noktaya bağlantı Protokolü Data-Link Layer (Layer 2) Protokollerinden birisidir.

İki cihaz arasında noktadan noktaya iletişim veya veri alışverişi yapmak isteyen iki cihaz arasında kullanılan protokoldür. Bu Protokol İki cihaz arasında gerçekleşir cihazlar arasında Layer 2 Addressing yoktur (MAC Adresi) yani iki kişinin kapalı bir odada olduğunu düşünecek olursak bir kişi diğeri ile iletişim kurmak isterse karşı kişinin ismini bilmesine gerek yoktur, direk karşı kişiye hitap eder.

İki adet Router mız olsun birisi diğerine paket göndermek istiyorsa tek yapacağı şey paketi kapsüllemek ve paketi göndermektir. Bir ip bilgisi veya Mac bilgisi eklemesine gerek yoktur. Çünkü karşı tarafta 1 adet Router var.

Fakat iki adet Router mız var ve ikisinin arasında switch olduğunu düşünecek olursak bir router diğer router direkt paket göndermek isterse diğer routerun MAC adresini bilmek zorunda araya switch girdiği için. Eğer karşı tarafın mac adresini bilmiyorsa networkte bulunan tüm cihazlara karşı tarafın mac adresini soran bir ARP isteği göndermelidir.

PPP, RFC 1661 tarafından oluşturulmuştur. Yani cisco ya özgü bir protokol değildir vendor bağımsız olduğu için herkesin kullanabileceği bir protokoldür.

PPP Nasıl Çalışır ?

1- Link Dead: PPP, Cihazın Fiziksel bağlantısının aktif hale gelmesini bekler. Bu zamana Ölü zaman (Link Dead) denir.

2- Link Establishment (LCP): Fiziksel bağlantı aktif hale geldikten sonra iki uç nokta arasındaki ilk bağlantı oluşturma aşamasıdır.

3- Authentication: PPP nin isteğe bağlı bir özelliği olan Kimlik doğrulama aşaması. İki uç nokta arasında bağlantı oluşturulduktan sonra uç noktalar arasında kimlik doğrulama yapılır ve uç noktalar birbirini doğrular.

4- Network Layer Protocol (NCP): NCP'ler, ağ katmanının parametrelerini görüşmek için kullanılır. PPP tarafından desteklenen her yüksek katman protokolü için bir NCP var. Yani NCP, Network Control Protocol isminden de anlaşılacağı gibi ağ kontrol protokolü,
Mesela ip paketlerini noktadan noktaya bir bağlantı üzerinden dinamik olarak taşımak istiyorsak NCP nin IPCP protokol kullanmamız gerekiyor.
NCP nin kullandığı bazı protokoller: 
Internet Protocol Control Protocol (IPCP)
OSI Network Layer Control Protocol (OSINLCP) 
Internetwork Packet Exchange Control Protocol (IPXCP)
DECnet Phase IV Control Protocol (DNCP)
NetBIOS Frames Control Protocol (NBFCP) 
IPv6 Control Protocol (IPV6CP)

5- Link Termination: Bir kimlik doğrulama sorunu ,bir fiziksel bağlantı sorunu gibi bir hata durumunda veya bir yönetici PPP bağlantısını bilerek kapatırsa , bağlantıyı sonlandırmak için kullanılır.

PPP nin bir özelliği kimlik doğrulamadır. Bağlantının diğer ucunda bulunan kişilerin kimliğini doğrulayacağım anlamına gelir. PPP doğru cihazların haberleştiğine emin olabilmek için kimlik denetimi yapar.

PPP hakkında daha fazla bilgi edinmek için https://www.ietf.org/rfc/rfc1661.txt linki ziyaret etmenizde fayda var.

PPP nin kimlik doğrulama yöntemleri:

Password Authentication Protocol (PAP): 
İki adet routerımız olsun iki cihazda haberleşmeden önce karşılıklı olarak birbirlerine kullanıcı bilgilerini gönderir ve iki cihazında bilgiler kayıtlı ise PPP çalışma mantığındaki 3 adım authentication işlemini başarıyla geçilmiş olur.

R1
R1#sh int Serial3/0

Serial3/0 is administratively down, line protocol is down (port kapalı)

 Hardware is M4T

MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255 
Encapsulation HDLC, crc 16, loopback not set (PPP yapmadan önce porttaki konfigurasyon)

R1#conf t

R1(config)#interface serial3/0

R1(config-if)#no sh

R1(config-if)#encapsulation ppp

*Jul 4 14:12:27.683: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial3/0, changed state to down (PPP Protokol configurasyonundan sonra portumuz kapanıyor. Karşı tarafta port konfigurasyonundan sonra up olacaktır.)

R1(config-if)#do sh int ser3/0
Serial3/0 is up, line protocol is down

Hardware is M4T

MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation PPP, LCP REQsent, crc 16, loopback not set

R1(config-if)#ppp pap sent-username R1 password cisco

R2
R2#sh int Serial3/0

R2#conf t
R2(config)#interface serial3/0

R2(config-if)#no sh
R2(config-if)#encapsulation ppp

R2(config)#username R1 password cisco

R2(config)#int s3/0

R2(config-if)#ppp authentication pap

Challenge Handshake Authentication Protocol (CHAP): 
CHAP, PAP ta olduğu gibi iki adet routermız olsun karşılıklı haberleşme sırasında iki router arasındaki kullanıcı bilgileri aynı olmak zorundadır. PAP tarafında kullanıcı biligileri routerlar üzerinde kayıtlı olması yeterlidir. Chap,Pap göre daha güvenlidir, haberleşme esnasında gönderilen paketleri MD5 ile şifreleyerek gönderir ayrıca Pap kimlik doğrulaması yaptıktan sonra tekrar kimlik doğrulaması yapmaz ama CHAP kimlik doğrulamasını belirli aralıklarla yapar.

R1(config)#username R2 password cisco

R1(config)#int ser3/0

R1(config-if)#ppp authentication chap

R1(config-if)#do sh ppp int ser3/0
PPP Serial Context Info

----------------------------
Interface: Se3/0

PPP Serial Handle: 0x4C000099

PPP Handle: 0x99

SSS Handle: 0x1000099

AAA ID: 165

Access IE: 0xF3000097

SHDB Handle: 0x0

State: Up

Last State: Binding

Last Event: LocalTerm

PPP Session Info
----------------------------
Interface: Se3/0

PPP ID: 0x99
Phase: UP
Stage: Local Termination
Peer Name: R2
Peer Address: 0.0.0.0

Control Protocols: LCP[Open] CHAP+ CDPCP[Open]
Session ID: 151

AAA Unique ID: 165
SSS Manager ID: 0x1000099
SIP ID: 0x4C000099

PPP_IN_USE: 0x10
Se3/0 LCP: [Open]
----------------------------
Our Negotiated Options
Se3/0 LCP: AuthProto CHAP (0x0305C22305)

Se3/0 LCP: MagicNumber 0x01B2EFCE (0x050601B2EFCE)

----------------------------
Peer's Negotiated Options

Se3/0 LCP: AuthProto CHAP (0x0305C22305)
Se3/0 LCP: MagicNumber 0x02B6A6EE (0x050602B6A6EE)
Se3/0 CDPCP: [Open]

----------------------------
Our Negotiated Options

NONE
----------------------------
Peer's Negotiated Options
NONE
----------------------------
R2(config)#int ser3/0

R2(config-if)#ppp authentication chap [(R2 diğer konfigurasyonlarını PAP de yapmıştık (R2(config)#username R1 password cisco)].