PPPoE

**PPPoE** () - tīkla protokols, kas nodrošina PPP kadru nodošanu caur Ethernet tīklu. To galvenokārt izmanto xDSL pakalpojumiem. Sniedz papildu iespējas (autentificēšana, datu kompresēšana, šifrēšana).

PPPoE - tuneļa protokols, kas ļauj iestatīt (vai iekapsulēt) IP, vai citus protokolus, kas tiek iestatīti uz PPP caur Ethernet savienojumu, bet ar PPP programmatūras iespējām, un tādēļ tas tiek izmantots priekš virtuālajiem "zvaniem" uz blakus esošo Ethernet datoru, lai izveidotu „punkts uz punktu” (Point-to-point) savienojumu, kas tiek izmantots, lai nosūtītu IP paketes, kas strādā ar PPP iespējām.

Tas ļauj pielietot tradicionālo PPP orientēto programmatūru savienojuma iestatīšanai, kas izmanto nevis seriālo kanālu, bet pakešu orientēto tīklu (piemēram, Ethernet), lai organizētu klasisko savienojumu ar lietotājvārdu un paroli Internet savienojumam. Tāpat arī IP adrese otrajā pusē tiek piešķirta tikai tad, kad PPPoE savienojums ir atvērts, ļaujot IP adreses dinamisko pārsūtīšanu.

PPPoE protokolu izstrādāja UUNET, Redback Networks un RouterWare. Protokols ir aprakstīts 2516 RFC.

Ir vērts atzīmēt, ka daži aparatūras piegādātāji (piemēram Cisco un Juniper)lietot terminu PPPoEoE (PPPoE over Ethernet), kas nozīmē, ka PPPoE darbojas tieši caur Ethernet vai citu IEEE 802.3 tīklu, kā arī PPPoE, kas strādā Ethernet savienotā (Ethernet bridged over) ATM tīklā, lai atšķirtu to no PPPoEoA (PPPoE over ATM), kas darbojas ATM virtual circuit pēc  specifikācijas un SNAP iekapsulējot PPPoE. PPPoEoA - tas nav tas pats kas Point-to-Point protokols caur ATM (PPPoA), jo tas neizmanto SNAP.

## PPPoE darbība

PPPoE darbojas šādi:
Ir Ethernet vide, kur ir vairākas saistītas tīkla iekārtas, kas tiek adresētas ar MAC adresēm. Ethernet kadru galvenes satur kadru sūtītāja adresi, saņēmēja adresi un kadra tipu. Viena no kartēm klausās PPPoE serveri. Klients nosūta apraidē Ethernet kadru, uz kuru ir jāatbild PPPoE serverim (sūtītāja adrese, sava MAC adrese, kadra saņēmēja adrese - FF: FF: FF: FF: FF: FF un kadra tips - PPPoE Active Discovery Initiation). PPPoE serveris sūta klientam atbildi (kadra sūtītāja adresi - tā MAC adresi, kadra saņēmēja adresi – klienta MAC adresi un kadra tipu - PPPoE Active Discovery Offer). Ja tīklā ir vairāki PPPoE serveri, tad tie visi nosūta atbildi. Klients izvēlas atbilstošo serveri un nosūta tam savienojuma pieprasījumu. Serveris nosūta klientam apstiprinājumu ar unikālu sesijas identifikatoru, visi turpmākie kadri saturēs šo sesijas ID. Šādā veidā starp serveri un klientu tiek izveidots virtuāls kanāls, kas tiek identificēts ar sesijas ID un klienta un servera MAC adresi. Pēc tam šajā kanālā tiek izveidots PPP savienojums un jau pēc tam PPP paketēs tiek ietērpta IP datplūsma.

## PPPoE Discovery (PPPoED)

### PADI

**PADI** - PPPoE Active Discovery Initiation.

Ja lietotājs vēlas izveidot savienojumu caur internetu izmantojot DSL, vispirms datoram ir jāatrod piekļuves koncentrators (DSL access concentrator vai DSL-AC) pakalpojuma piegādātāja pusē. Mijiedarbība caur Ethernet ir iespējama tikai caur MAC adresēm. Ja dators nezina DSL-AC MAC adresi, tas nosūta apraidē PADI paketi caur Ethernet tīklu (MAC: ff: ff: ff: ff: ff: ff). Šī PADI pakete satur sūtītāja datora MAC adresi.

PADI-paketes piemērs:

 Frame 1 (44 bytes on wire, 44 bytes captured)
 Ethernet II, Src: 00:50:da:42:d7:df, Dst: ff:ff:ff:ff:ff:ff 
 PPP-over-Ethernet Discovery
  Version: 1 
  Type 1
  Code Active Discovery Initiation (PADI)
  Session ID: 0000
  Payload Length: 24
 PPPoE Tags
  Tag: Service-Name 
  Tag: Host-Uniq
    Binary Data: (16 bytes)

Src. (= Source) ir PADI paketes sūtītāja datora MAC adrese.

DST. (= Galamērķis) ir Ethernet apraides adrese.

PADI-paketi var saņemt vairāk kā viens DSL-AC. 

### PADO

**PADO** - PPPoE Active Discovery Offer.
Tiklīdz lietotāja dators nosūta PADI paketi, DSL-AC reaģē, nosūtot PADO paketi, izmantojot MAC adresi, kura saņemta ar PADI paketi. PADO pakete satur DSL-AC MAC adresi un tā nosaukumu (piemēram LEIX11-erx koncentratoram T-Com DSL-AC, kas atrodas Leipcigā) un pakalpojuma nosaukumu. Ja uz lietotāja PADI paketi atbild vairāk nekā viens DSL-AC, lietotājs izvēlas konkrētu DSL-AC POP, izmantojot saņemtos vārdus vai pakalpojumu nosaukumus.

Piemērs PADO paketei:

 Frame 2 (60 bytes on wire, 60 bytes captured)
 Ethernet II, Src: 00:0e:40:7b:f3:8a, Dst: 00:50:da:42:d7:df 
 PPP-over-Ethernet Discovery
  Version: 1 
  Type 1
  Code Active Discovery Offer (PADO)
  Session ID: 0000 Payload Length: 36
 PPPoE Tags
  Tag: Service-Name 
  Tag: AC-Name
    String Data: IpzbrOOl 
  Tag: Host-Uniq
    Binary Data: (16 bytes)

AC-Name - String Data ir AC virknes vārds, šajā gadījumā «Ipzbr001» (Arcor DSL-AC Leipcigā).

Src. ir DSL-AC MAC adrese.

MAC-adresi DSL-AC arī identificē ražotāju (šajā gadījumā, Nortel Networks).

### PADR

**PADR** tiek atšifrēts kā PPPoE Active Discovery Reques.

Kā minēts iepriekš lietotāja datoram jāizvēlas POP (Piekļuves punktu) - tas tiek darīts izmantojot PADR paketi, kas tiek nosūtīts uz izvēlētā DSL-AC MAC adresi.

### PADS

**PADS**— PPPoE Active Discovery Session-confirmation. 
PADR paketi apstiprina koncentrators pārsūtot PADR paketi, kurā tiek nosūtīts arī sesijas ID. savienojums ar DSL-AC šim piekļuves punktam tagad ir pilnībā izveidots. 

### PADT

**PADT**— PPPoE Active Discovery Termination.
Šī pakete pārtrauc savienojumu ar POP. Tā var tikt nosūtīt gan no lietotāja puses, gan no DSL-AC puses. 

## Shēmas priekšrocības

* IP galvenes Ethernet vidē tiek ignorētas. Tas nozīmē, ka lietotājs var piešķirt IP adresi savai tīkla kartei, bet tas neradīs tīkla "sabrukumu" (teorētiski, darbā ar tīkla centrmezglu nebūtu jānotiek tīkla "sabrukumam" pat tad, ja lietotājs maina savu MAC adresi uz servera adresi, bet strādājot ar tīkla komutatoru, tas viss ir atkarīgs no komutatora konstrukcijas).
* Katrs savienojums ir nošķirts no citiem (katrs darbojas savā kanālā).
* Iestatījumi (IPadrese, vārtejas adrese, DNS serveru adreses) var nodot serveris.
* PPP savienojums viegli autentificējas (piemēram, izmantojot RADIUS).
* PPP savienojumu var šifrēt. Piemēram, darbā ar tīkla centrmezglu (kad uz katras tīkla kartes var redzēt visu Ethernet noslodzi) nolasīt kāda cita IP datu plūsmas ir ļoti grūti.