PPP

From Teknologisk videncenter
Jump to: navigation, search

PPP – point to point protokollen – som er en standard RFC1331. Kan hentes fra for eksempel http://www.rfc-editor.org/


PPP gør det muligt at overføre flere forskellige protokoller over serielle linier. PPP er væsentligt mere kompleks end SLIP, og har i modsætning til denne implementeret et stort antal muligheder med hensyn til fejlkorrektion, tildeling af netværksadresser samt sikkerhed.


Grundlæggende består PPP af tre komponenter


  1. Indkapsling af datapakker
  2. LCP – Link Control Protokol – til opbygning og opretholdelse af dataforbindelser.
  3. NCP – Network Control Protocols - Forskellige netværkskontrol protokoller til konfiguration af de forskellige netværksprotokoller. (TCP/IP, IPX, SNA….)
HDLC Frame

PPP indkapsling

PPP indkapsler de datapakker der skal overføres i HDLC format – Highlevel Data Link Control (Standard ISO 3309-1979).


Da HDLC både kan bruges ved synkron og asynkron seriel overførsel, vil startbit, stopbit samt eventuelle paritetsbit ved asynkron overførsel ikke blive medtaget i disse eksempler.


Opbygningen af en PPP HDLC pakke

Startflag

Indikerer starten på en HDLC pakke og indeholder den binære værdi 01111110.

Adressefelt

Adressefeltet ved PPP sættes 11111111 binært, i HDLC protokollen er dette All-Stations – altså broadcast.

Kontrolfelt

Kontrolfeltet indeholder værdien 00000011 binært, i HDLC protokollen er dette Unnumbered-Information.

Protokolfeltet

Indeholder hvilken protokol PPP er i gang med at overføre. Se Tabel 1


FCS – Frame Check Sequence

Kontrolfelt (CRC-kode) som bruges til at afgøre om der er sket transmissionsfejl

Slutflag

Slutflaget viser afslutningen på en HDLC-pakke, og indeholder som startflaget 01111110


Protokol feltet

Tabel 1 Eksempler på protol feltkoder i PPP

Kode
Protokol
0001
Padding Protokol
0021
Internet Protokol
0023
OSI Network Layer
0025
Xerox NS IDP
0027
DECnet Phase IV
0029
AppleTalk
002B
Novell IPX
002D
Van Jakobsen – Compressed TCP/IP
002F
Van Jakobsen – Uncompressed TCP/IP
0031
Bridging PDU’er
0033
Stream Protokol
0035
Banyan Vines
0039
AppleTalk EDDP
003B
AppleTalk smart buffered
003D
Multi-link
00CF
PPP NLPID
00FD
1 valg af kompressionsalgoritme
0201
802.1d hello pakker
0203
IBM Source Routing Bridge PDU’er
8021
Internet Protocol Control Protocol - IPCP
8023
OSI Network Layer Control Protocol
8025
Xerox NS IDP Control Protocol
8027
DECnet Phase IV control Protocol
8029
AppleTalk Control Protocol
802B
Novell IPX Control Protocol
8031
Bridging NCP
8033
Stream Protocol Control Protocol
8035
Banyan Vines Control Protocol
803D
Multi-Link Control Protocol
80FD
Compression Control Protocol
C021
LCP – Link Control Protocol
C023
PAP – Password Authentication Protocol
C025
CHAP – Challenge Handshake Authentication Protocol


LCP – Link Control Protocol

LCP protokollen har til opgave at opbygge, konfigurere, overvåge og nedbryde den serielle punkt-til-punkt forbindelse. Herudover er det LCP’s opgave at kalde de forskellige netværks kontrol protokoller. For eksempel Internet Protocol Control Protocol, Se Tabel 1.


De to LCP lag på de opkoblede maskiner kan sende til hinanden ved at sætte HDLC protokolfeltet til C021 hexadecimalt. Se Tabel 1.


LCP laget går igennem følgende faser ved en opkobling:


  1. Opkobling og konfigurations fase
    1. LCP pakker udveksles mellem de 2 maskiners LCP lag. Protokolfeltet = C021. Konfiguration mellem de 2 maskiners LCP lag aftales. Der kan for eksempel aftales pakkestørrelser, kompression af PPP felter og hvilken sikkerhedsprocedure der anvendes. Se fase 3. (Bemærk: Det er kun linien der er åben på nuværende tidspunkt)
  2. Linie kvalitet check
    1. Denne fase er valgbar. PPP har ikke indbygget mekanismer for at bestemme liniens kvalitet, men har indbygget forskellige primitive værktøjer. For eksempel echo (ping lignende)
  3. Authentication – login validering
    1. Denne fase er valgbar. Hver maskine validerer sig selv overfor den anden maskine, med valideringsmetoden som blev aftalt under fase 1. For eksempel PAP eller CHAP. (Se senere)
  4. Netværkslag protokol konfiguration
    1. Efter succesfuld validering vil den ønskede protokols NCP – for eksempel IP’s Control Protokol, IPCP, se Tabel 1 – forhandle og sætte den ønskede konfiguration op. For eksempel opkald til en ISP – Internet Service Provider – via modem, vil sætte de nødvendige IP parametre op, for at komme på internettet. I denne forbindelse kan Van Jakobsens Compressed TCP/IP nævnes. Denne bruges til at komprimere IP og TCP headerne fra 40 til 4 byte for maskiner der udveksler mere end en pakke med hinanden. Kontrollen kan nu overgives til den ønskede protokol. For eksempel TCP/IP. PPP passer således ind i OSI modellen. Se Figur 3.
  5. Forbindelsen afsluttes
    1. LCP kan afslutte forbindelsen når som helst, men kan være op til brugeren, eller en fastsat tid uden aktivitet
Figur 3 PPP funktionsområde i OSI 7 lagsmodellen


PAP – Password Authentication Protocol

PAP er en ret simpel, og ikke ret sikker, metode til at sikre sikkerheden mellem to opkoblede maskiner. Maskinerne sender brugernavn og password gentagne gange til hinanden, indtil det lykkes at logge ind, eller forbindelsen afbrydes. Både brugernavn og password sendes i klar tekst, hvorfor disse relativt nemt kan opsnappes. Da brugernavn og password kun bruges ved opkobling af linien, er det muligt at overtage en allerede åben forbindelse.


Der er heller ingen begrænsning på det antal forsøg, man kan anvende før det lykkes at blive logget ind. Derfor kan servere der bruger PAP som valideringsmetode blive hacket af trial-and-error programmer. Det vil sige programmer der bliver ved med at logge ind med forskellige navne og passwords.


CHAP – Challenge Handshake Authentication Protocol

CHAP er brugt til periodisk at validere brugernavn og password. Og er dermed bedre sikret mod overtagelse af linien end PAP. Herudover kan man ikke bare sende brugernavn og password, idet hele princippet i CHAP bygger på udfordringer. Heraf Challenge Handshake Authentication Protocol. Det er tilladt hver maskine at sikre sig hvem den anden er ved at sende en Challenge, hvorefter den anden maskine skal svare med et svar som er beregnet for gang til gang.