This is an old revision of the document!


03. [20p] Configurare client de PPPoE pe stația red

Având pornit serverul de PPPoE, putem acum să configurăm clienții de PPPoE. Clienții, adică stațiile de tip client, se vor autentifica la serverul de PPPoE pornit anterior și vor primi o adresă IP.

Pentru configurarea unui client, cel mai simplu este să folosim utilitarul pppoeconf. Acest utilitar prezintă întrebări de configurare utilizatorului și generează informațiile necesare în fișierele de configurare din /etc/ppp/. Fișierele de configurare ce vor fi alterate sunt:

  • /etc/ppp/pap-secrets: configurare pentru autentificare folosind PAP (Password Authentication Protocol)
  • /etc/ppp/chap-secrets: configurare pentru autentificare folosind CHAP (Challenge-Handshake Authentication Protocol)
  • /etc/ppp/peers/dsl-provider: configurare pentru conectarea la serverul PPPoE
  • /etc/network/interfaces: configurare persistentă pentru conexiunea PPPoE

Pentru început vom configura pe stația red un client PPPoE. Vom rula comanda:

root@red:~# pppoeconf

și vom ține cont de următoarele:

  • la username și parolă folosim red (le-am configurat anterior în server)
  • la toate celelalte opțiuni lăsăm valorile implicite

Pentru a valida configurarea corectă, inspectăm mesajele PPPoE folosind comanda plog:

root@red:~# plog
Dec 19 21:11:23 red pppd[670]: Plugin rp-pppoe.so loaded.
Dec 19 21:11:23 red pppd[672]: pppd 2.4.5 started by root, uid 0
Dec 19 21:11:23 red pppd[672]: PPP session is 1
Dec 19 21:11:23 red pppd[672]: Connected to 7e:9e:4a:5a:49:77 via interface eth0
Dec 19 21:11:23 red pppd[672]: Using interface ppp0
Dec 19 21:11:23 red pppd[672]: Connect: ppp0 <--> eth0
Dec 19 21:11:26 red pppd[672]: peer from calling number 7E:9E:4A:5A:49:77 authorized
Dec 19 21:11:26 red pppd[672]: local  IP address 192.168.0.2
Dec 19 21:11:26 red pppd[672]: remote IP address 192.168.0.1

Din output-ul comenzii plog observăm că:

  • stația se conectează la serverul PPPoE prin intermediul interfeței eth0
  • se creează interfața pppp0
  • se atașează interfeței ppp0 adresa 192.168.0.2 (local) pe o legătură punct-la-punct cu interfața de pe server (192.168.0.1).

Observăm crearea interfeței ppp0 și atașarea adresei 192.168.0.2:

root@red:~# ip address show dev ppp0
13: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp
    inet 192.168.0.2 peer 192.168.0.1/32 scope global ppp0

Verificăm conectivitatea la serverul PPPoE folosind comanda ping:

root@red:~# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=1.63 ms
64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=0.270 ms
^C

Observăm că pe stația host a apărut de asemenea o interfață ppp0, perechea interfeței create pe stația red:

root@host:~# ip a s
32: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp 
    inet 192.168.0.1 peer 192.168.0.2/32 scope global ppp0

Interfața ppp0 de pe stația host are adresa 192.168.0.1, adresa aferentă stației host.

O dată configurată, conexiunea PPPoE poate fi pornită folosind comanda pon dsl-provider și oprită folosind poff dsl-provider. Comanda pon dsl-provider este în general rulată în momentul configurării (adică în momentul folosirii comenzii pppoeconf); este ultimul ecran de interogare a utilizatorului furnizat de comanda pppoeconf.

Doar pentru testare, vom opri și vom porni conexiunea PPPoE pe stația red:

root@red:~# ip address show dev ppp0
13: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp
    inet 192.168.0.2 peer 192.168.0.1/32 scope global ppp0
root@red:~# poff dsl-provider
root@red:~# ip address show dev ppp0
Device "ppp0" does not exist.
root@red:~# pon dsl-provider
Plugin rp-pppoe.so loaded.
root@red:~# ip address show dev ppp0
15: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp
    inet 192.168.0.3 peer 192.168.0.1/32 scope global ppp0

Observăm că la a doua rulare am obținut altă adresă IP (192.168.0.3), următoarea din spațiul de adrese expus de serverul de PPPoE. Aceasta se întâmplă pentru că la fiecare conectare la serverul PPPoE se obține următoarea adresă nefolosită. La un număr suficient de mari de rulări ale comenzilor poff dsl-provider și pon dsl-provider se poate reajunge la adresa IP 192.168.0.3.

Ca să vedem cum se realizează conectarea între cele două capete consultăm tabela de rutare:

root@red:~# ip route
default dev ppp0  scope link
192.168.0.1 dev ppp0  proto kernel  scope link  src 192.168.0.3

Observăm că ruta implicită este specificată folosind doar interfața de ieșire (ppp0). Acest lucru este suficient întrucât este o conexiune punct-la-punct și nu un mediu multi-acces cum este Ethernet. Legătura este punct la punct motiv pentru care nu avem mască aferentă rutei către 192.168.0.1. Este vorba de o rută punct la punct. Similar arată tabela de rutare și pe stația host:

root@host:~# ip r s dev ppp0
192.168.0.3  proto kernel  scope link  src 192.168.0.1

Să urmărim conținutul mesajelor PPPoE. Vom captura cadrele Ethernet pe stația host folosind comanda tcpdump pe interfața br0:

root@host:~# tcpdump -n -i br0 -e
[...]

Opțiunea -e a comenzii tcpdump afișează și antetul de nivel 2, adică antetul Ethernet și implicit, antetul PPP.

Pe stația red pornim comanda ping către stația host:

root@red:~# ping 192.168.0.1
[...]

Acum observăm pe stația host rezultatul capturii:

[...]
23:29:20.668204 00:16:3e:8e:84:21 (oui Unknown) > 7e:9e:4a:5a:49:77 (oui Unknown), ethertype PPPoE S (0x8864), length 106: PPPoE  [ses 0x1] IP (0x0021), length 86: 192.168.0.3 > 192.168.0.1: ICMP echo request, id 732, seq 47, length 64
[...]

În cadrul capturat mai sus observăm următoarele:

  • adresa MAC sursă este adresa MAC a interfeței eth0 a stației red: 00:16:3e:8e:84:21;
  • adresa MAC destinație este adresa MAC a interfeței de tip bridge br0 de pe stația host: 7e:9e:4a:5a:49:77;
  • tipul protocolului încapsulat în cadrul Ethernet este PPPoE (0x8864 – faza de sesiune); în mod obișnuit ar fi fost IP (0x0800)1);
  • pachetul PPPoE încasulează la rândul său protocolul IP.
1) tipurile de protocoale încapsulate într-un cadru Ethernet sunt listate în /etc/ethertypes
rl/labs/12/contents/03.1389252951.txt.gz · Last modified: 2014/01/09 09:35 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0