L2TP

**L2TP** (no  — 'otrā līmeņa tunelēšanas protokols') — datortīklos tunelēšanas protokolu izmanto, lai uzturētu privāto virtuālo tīklu. Galvenā L2TP priekšrocība ir tajā, ka tas ļauj izveidot tuneli ne tikai IP tīklos, bet arī tādās kā ATM, X.25 un Frame Relay.

Neskatoties uz to, ka L2TP darbojas kā datu posma slāņu modelis OSI, tas patiesībā ir sesijas slāņu protokols un izmanto reģistrēto 1701 UDP portu.

## Vēsture

* 1996—1997 — konkurence starp protokoliem L2F (Cisco), un PPTP (Microsoft).
* 1997 — vienošanās starp izstrādātājiem, lai kopīgi izstrādātu protokolu L2TP.
* 1999 — publicēts  standarts, kas apraksta L2TP protokolu.

Tiek uzskatīts, ka L2TP protokols ietver sevī labākās īpašības no PPTP un L2F protokoliem.

## Darbības shēma

Attālinātā sistēma ierosina PPP savienojumu ar LAC pa publisko komutējamo telefona tīklu PSTN. Pēc tam LAN veic tuneļa izbūvi priekš PPP savienojuma caur internetu, Frame Relay vai ATM, ar LNS, un tādējādi nodrošina piekļuvi sākotnējam LAN. Autentifikācija, autorizācija un uzskaite var tikt nodoti caur LAN, tā it kā lietotājs būtu tieši saistīts ar tīkla piekļuves serveri NAS.

LAC klients (dators, kas darbina L2TP programmu) var arī piedalīties tunelēšanā uz sākotnējo LAN tīklu, neizmantojot atsevišķu LAC, ja datoram, kurā tiek darbināts LAC klients jau ir savienojums ar internetu. Tiek radīts virtuālais PPP savienojums, un lokālā L2TP LAC programma veido tuneli uz LNS. Tāpat kā iepriekšējā gadījumā, autentifikācija, autorizācija un uzskaite var tikt nodoti caur sākotnējo LAN.

## Protokola apskats

L2TP izmanto divu veidu paketes, kontroles un informācijas ziņojumi. Kontroles ziņojumi tiek izmantoti, lai izveidotu, uzturētu un anulētu tuneļus. Informatīvais ziņojums tiek izmantots, lai iekapsulētu PPP kadrus, kas tiek sūtīti caur tuneli. Kontroles ziņojumi izmanto uzticamu kontroles kanālu L2TP ietvaros, lai garantētu datu piegādi. Informatīvie ziņojumi nozaudēšanas gadījumā netiek nosūtīti atkārtoti..
Kontroles ziņojumam ir kārtas numurs, kas tiek izmantots vadošajā kanālā, lai nodrošinātu drošu piegādi. Informācijas ziņojumi var izmantot kārtas numurus, lai atjaunotu pakešu secību un konstatētu pakešu zudumus. Visi kodi tiek nosūtīti tīklā pieņemtajā kārtībā.

### Kontroles ziņojumu tipi

AVP ziņojuma tips nosaka specifisko nosūtāmā kontroles ziņojuma tipu.

Kontroles savienojuma vadība

* 0 (rezervēts)
* 1 (SCCRQ) Start-Control-Connection-Request 
* 2 (SCCRP) Start-Control-Connection-Reply
* 3 (SCCCN) Start-Control-Connection-Connected
* 4 (StopCCN) Stop-Control-Connection-Notification 
* 5 (rezervēts)
* 6 (HELLO) Hello

Izsaukumu kontrole (Call Management)

* 7 (OCRQ) Outgoing-Call-Request 
* 8 (OCRP) Outgoing-Call-Reply
* 9 (OCCN) Outgoing-Call-Connected
* 10 (ICRQ) Incoming-Call- Request
* 11 (ICRP) Incoming-Call-Reply
* 12 (ICCN) Incoming-Call-Connected
* 13 (rezervēts)
* 14 (CDN), Call-Disconnect-Notify

Kļūdu ziņojumi

* 15 (WEN) WAN-Error-Notify

PPP sesijas vadība

* 16 (SLI) Set-Link-Info
 
### Protokola operācijas

Nepieciešamā procedūra, lai izveidotu PPP-L2TP tuneļu sesiju ietver divas darbības:

* Izveidot kontroles kanālu tunelim;
* Veidot sesiju saskaņā ar ienākošo vai izejošo pieprasījumu.

Tunelim un atbilstošajam kontroles kanālam ir jābūt izveidotam pirms ienākošā vai izejošā savienojuma iniciēšanas. L2TP sesijai ir jābūt īstenotai pirms L2TP spēs sūtīt PPP kadrus caur tuneli. Vienā tunelī var būt vairākas sesijas starp vieniem un tiem pašiem LAC un LNS.

**Vadošais savienojums**

Ir pirmais, kuram jābūt īstenotam starp LAC un LNS pirms sesijas uzsākšanas. Šī savienojuma izveide drošu partneru identifikāciju, kā arī nosaka L2TP versiju, kanāla iespējas, kadru apmaiņu uc.

L2TP sevī ietver vienkāršu, CHAP-veidīgu tuneļa autentifikācijas sistēmu vadošā savienojuma izveides laikā.

**Sesijas izveidošana**

Pēc vadošā savienojuma veiksmīgas izveidošanas var tikt veidotas atsevišķas sesijas. Katra sesija atbilst vienai PPP informācijas plūsmai starp LAC un LNS. Atšķirībā no vadošā savienojuma sesijas izveidošana ir asimetriska starpLAC un LNS. LAC pieprasa no LNS piekļuvi sesijai priekš ienākošajiem pieprasījumiem, bet LNS pieprasa LAC sākt sesiju darbam ar izejošajiem pieprasījumiem.

Kad tunelis ir izveidots, PPP kadri no attālinātās sistēmas, kurus saņem LAC, ir atbrīvoti no CRC, kanāla galvenēm utt, iekapsulēti iekš L2TP, un tiek pāradresēti izmantojot attiecīgo tuneli. LNS saņem L2TP paketes un apstrādā iekapsulētos PPP kadrus tā, it kā tie tika iegūti izmantojot lokālo PPP saskarni.

Ziņas sūtītājs, kas tiek saistīts ar konkrēto sesiju un tuneli, ievieto sesijas un tuneļa ID visu izejošo ziņojumu galvenes attiecīgajos laukos.

**Kārtas numuru izmantošana datu kanālos**

Kārtas numuri ir noteikti L2TP galvenēs,un tiek izmantoti, lai nodrošinātu drošu kontroles ziņojumu transportēšanu. Katrs partneris saglabā atsevišķu numerāciju kontroles pieslēgumam un katrai informācijas sesijai tuneļa ietvaros.

Atšķirībā no L2TP kanāla vadīšanas, L2TP izmanto ziņojuma informāciju nevis atkārtotai ziņojumu sūtīšanai, bet, lai konstatētu pakešu zudumus un/vai atjaunotu sākotnējo pakešu secību, kas izjaukta transportēšanas laikā.

LNS sesijas laikā jebkurā mirklī var iniciēt ziņojumu numurēšanas aizliegumu.

**Keepalive (Hello) mehānisms**

keepalive mehānisms L2TP izmanto, lai atšķirtu tuneļa dīkstāvi un ilgstošu kontroles vai informācijas trūkumu tunelī. Tas tiek darīts, izmantojot kontroles ziņojumus „Hello” pēc noteikta laika posma kopš pēdējā kontroles ziņojuma saņemšanas. Ja „Hello” ziņojums netiek saņemts tiek uzskatīts par nedarbojošos, un sistēma atgriežas sākotnējā stāvoklī. Mehānisms nodrošina, ka savienojuma pārtraukšana starp LNS un LAC tiks konstatēta abos tuneļa galos.

**Sesijas izbeigšana**

Sesijas izbeigšana var tikt iniciēta no LAC vai LNS, un tiek veikta nosūtot CDN kontroles ziņojumu. Pēc tam, kad pēdējā sesija ir pārtraukta, kontroles pieslēgums var tikt izbeigta.

**Kontroles savienojuma pārraušana**

Kontroles pieslēguma pārraušana var tikt ierosināta no LAC vai LNS, un tiek paveikta nosūtot StopCCN kontroles ziņojums.

## L2TP realizācija caur specifisku vidi

L2TP protokols ir pašdokumentējošs, kas strādā virs transportēšanas līmeņa. Tomēr ir nepieciešamas dažas detaļas, lai izveidotu savienojumu vidē un nodrošinātu savietojamību starp dažādām implementācijām.

## Drošības pasākumi

Savā darbībā L2TP saskaras ar vairākām problēmām drošības jautājumos. Zemāk minētas dažas pieejas to risināšanai.

### Drošība tuneļa galā

Tuneļa gali periodiski var veikt viens otra autentificēšanas procedūru. Šai autentificēšanai ir tādi paši drošības atribūtiem kā CHAP, un tai ir saprātīga aizsardzība pret uzbrukumiem un izkropļojumiem tuneļa izveidošanas procesā. Lai īstenotu autentificēšanu LAC un LNS izmanto kopīgu slepenu atslēgu.

### Pakešu līmeņa drošība

L2TP drošības nodrošināšana paredz, ka transporta videi ir jānodrošina pārsūtāmo datu šifrēšana, ziņu viengabalainība un visas L2TP datplūsmas fautentificēšanu. Savukārt, pats L2TP ir atbildīgs par konfidencialitāti, viengabalainību un L2TP pakešu autentificēšanu tunelī.

### L2TP un IPsec

Strādājot virs IP, IPsec (Secure IP) nodrošina drošību pakešu līmenī. Visas L2TP kontroles un informācijas paketes konkrētā tunelī IPsec sistēmai izskatās kā parastas UDP/IP informāciju paketes. Papildus tam, IPsec nosaka darbības režīmu, kas ļauj tunelēt IP paketes, kā arī veic piekļuves kontroli, kas ir nepieciešama lietojumprogrammās, kas atbalsta IPsec. Šie instrumenti ļauj filtrēt paketes, pamatojoties uz tīkla un transporta slāņa īpašībām. L2TP tuneļa modelī līdzīga filtrēšana tiek veikta PPP līmenī vai tīkla līmenī virs L2TP.