IMPORTANT: Compte amb la ambigueitat del nom PPP ja que pot fer tant referència a un protocol molt concret com a un conjunt de protocols basats en connexions punt a punt
S'utilitza el concepte Point to Point Protocol per fer referència a qualsevol protocol que realizi connexions punt a punt. Aquestes comunicacions punt a punt poden ser utilitzades normalment de dos formes:
Hi ha infinitut de protocols per a realitzar connexions punt a punt. Consulteu també VPN
Application | FTP | SMTP | HTTP | … | DNS | … |
Transport | TCP | UDP | ||||
Internet | IP | IPv6 | ||||
Network access | PPP | |||||
PPPoE | PPPoA | |||||
Ethernet | ATM |
Point-to-point Protocol (protocol punt a punt) conegut per les seves inicials PPP també és un prototol específic (RFC 1661) associat a TCP/IP
Diversos estandards defineixen el protocol (TODO):
Es tracta d'un protocol de la capa d'enllaç (del mateix nivell que Ethernet) que s'utilitza per transmetres trames IP en línias sèrie. Aquest protocol ha anat evolucionant i han sorgit versions a mesura que també han anat evolucionant els tipus de connexions (mòdem per línies de coure, ADSL, fibra, etc...)
Normalment s'utilitza per tal d'establir la connexió a Internet d'un particular a través del seu proveidor d'accés a Internet (ISP) i permet connectar directament dos dispositius/nodes d'una xarxa TCP/IP (per exemples el router ADSL i la pasarela ATM del operador).
Amb l'aparició de la anomenada banda ampla també s'han utilitzat versions del protocol PPP (com PPPoE o PPPoA).
A més del transport de les dades, PPP ofereix les següents funcionalitats:
En alguns casos també s'utilitza (o les seves variants com PPTP) per tal de connectar remotaments xarxes o treballadors desplaçats a una xarxda privada sent aquest tipus de connexions les primeres VPN que es van utilitzar. Actualment existeixen protocols més avançats i pensats especificament per a crear VPNs (per exemple OpenVPN).
Altres protocols tenen funcionalitats diferents però encara són més àntics i obsolets (p.ex. SLIP).
TODO
Una trama PPP esta basada en HDLC i té com a mínim 6 bytes un màxim indeterminat. La trama HDLC amb PPP és:
Etiqueta | Dirección | Control | Protocolo | Datos | FCS | Etiqueta |
---|---|---|---|---|---|---|
0x7e | 0xFF | 0x03 | 1 o 2 bytes<ref>Como se explica en el punto 2 de RFC 1661 Punto 2</ref> | Longitud variable. Puede llevar relleno. | 2 o 4 bytes | 0x7e |
Nota: 0x7e son 8 bits en notación hexadecimal, ver Hexadecimal para más información.
La dirección siempre es 0xFF que es la dirección de difusión estandar de todos los destinos. En PPP no hay direcciones individuales de cada estación dado que sólo hay dos. El campo control vale 0x03, que corresponde con tramas de usuario no númeradas en HDLC. Estos dos campos se pueden eliminar si se negocia en LCP "Address-and-Control-Field-Compression" (ACFC, compresión de los campos de dirección y control).
Los identificadores de protocolo están especificados en el RFC 1661. Los más importantes son:
El campo FCS (Frame Check Sequence) es una secuencia de comprobación de trama. Se utiliza para detectar errores en la transmisión de la trama. El transmisor calcula el CRC del contenido de la trama y lo coloca en el campo FCS. El receptor calcula el CRC de la trama que recibe y lo compara con el valor que hay en el FCS. Si los valores son distintos, hay bits erróneos en la trama, por lo que se descarta. Si el campo FCS es de 2 bytes se usa un CRC de 16 bits. Si el campo FCS es de 4 bytes, se usa un CRC de 32 bits.
PPP (i tots els (sub)protocols PPP) consta de les següents fases:
IMPORTANT: S'utilitzen les paraules dial out per fer referència al procediment d'establiment de connexió i autenticació.
Overhead dels protocols:
PPTP:
L2TP:
Comparació de protocols com a VPN.
PPTP | L2TP/IPSEC | OpenVPN | |
---|---|---|---|
Resum |
Un protocol molt bàsic basat en PPP i creat per Microsoft. Va ser el primer protocol VPN suportat a Windows. PPTP no ofereix de per si xifratge o autenticació de per si i és basa en ser tunelat per PPP per oferir aquests serveis. |
És un protocol avançat definit com estandard per la IETF (RFC 3193) i és recomanat com a remplçament de PPTP |
OpenVPN és una solució avançada i Open Source creada per la companyia OpenVPN technologies i que és l'estandard de facto VPN en el mon Open Source'. Utilitza SSL/TLS com a protocols de xifratge. |
Xifratge |
PPP utilitza el protocol Microsoft's Point-to-Point Encryption Protocol (MPPE). MPPE implementa el xifratge RSA RC4 amb un maxim de 128 bits en les claus de sessió |
L2TP utilitza IPSec per al xifratge. RFC 4835 permet utilitzar 3DES o AES com algorismes de xifratge. |
OpenVPN utilitza OpenSSL. Suporta múltiples algorismes de xifratge com 3DES, AES, RC5, Blowfish. |
Configuració |
Totes les versions dels sistemes operatius més comuns tenen suport de sèrie per a PPTP (per exemple a Linux el Network-manager porta per defecte suport per a PPTP). També cal tenir en compte que la majoria de plataformes mòbils tenen suport de sèrie per a PPTP. |
També inclòs per defecte en la majoria de sistemes operatius i plataformes mòbils. |
OpenVPN is not included in any operating system release and requires the installation of client software. The software installers are very user friendly and installation typically takes less than 5 minutes. |
Velocitat |
Amb 128 bits la sobrecàrrega per xifratge és més baixa però no és molt determinant. |
Encapsula les dades dos cops i per tant és el menys eficient. |
Si s'utilitza amb UDP és molt ràpid, amb TCP no tant |
ports |
PPTP utilitza els ports 1723 i 47 (GRE) Es pot bloquejar fàcilment bloquejant el port 47. |
Utilitza el port UDP 500 per a l'intercanvi inicial de claus i el portocol 50 per al xifratge IPSec, i el UDP 1701 per a la configuració inicial L2TP i el UDP 4500 per a NAT traversal. |
OpenVPN pot canviar fàcilment el port que utilitza i es pot posar al port 443 amb lo que es fa molt díficil de bloquejar |
Estabilitat/compatibilitat |
PPTP no és un protocol gairé fiable, ja que no es recupera fàcilment en connexions inestables |
L2TP/IPSec és més complexa que OpenVPN i pot ser més complicat de configurar en dispositius amb NAT però per la resta és tant estable com OpenVPN |
Molt estable i perfecte en connexions WIFI, celulars, o altres xarxes que puguin tenir desconnexions.Pot funcionar amb connexions TCP en connexions no fiables ao amb UDP en canals fiables. |
Seguretat
La implementació de Microsoft té vulnerabilitats conegudes. MSCHAP-v2 és vulnerable a atacs de diccionari i Microsoft mateix recomana millors sistemes per a sistemes que requereixen confidencialitat. |
IPSec no té vulnerabilitat conegudes. | OpenVPN no té vulnerabilitat conegudes. |
Són les sigles de PPP sobre Ethernet (Point To Point Protocol over Ethernet).
Recursos:
Són les sigles de PPP sobre ATM (Point To Point Protocol over ATM).
Recursos:
Consulteu PPTP
Consulteu OpenVPN
Consulteu SSTP
Consulteu L2TP
PPPD són les inicials de Point-to-Point Protocol Daemon un dimoni que permet muntar servidors PPP en màquines Linux.
TODO
Recursos:
Permet configurar una connexió ppp mitjançat un assistent semigràfic amb ncurses (sino teniu ncurses l'assistent serà en mode text).
$ sudo pppoeconf
Si no li indiquem cap paràmetre busca a totes les interfícies Ethernet. Li podeu restringir la cerca amb:
$ sudo pppoeconf nom_interficie
Per exemple:
$ sudo pppoeconf eth0
Utilitza l'ordre pppoe-discovery per tal de trobar peers als quals connectar.
Ordre proporcionada pel paquet del mateix nom:
$ dpkg -L pppoeconf /. /usr /usr/share /usr/share/pixmaps /usr/share/pixmaps/pppoeconf.xpm /usr/share/applications /usr/share/doc /usr/share/doc/pppoeconf /usr/share/doc/pppoeconf/README.Debian /usr/share/doc/pppoeconf/copyright /usr/share/doc/pppoeconf/changelog.gz /usr/share/menu /usr/share/menu/pppoeconf /usr/share/man /usr/share/man/man8 /usr/share/man/man8/pppoeconf.8.gz /usr/sbin /usr/sbin/pppoeconf /etc /etc/ppp /etc/ppp/ip-up.d
Vegeu un exemple concret d'ús de pppoeconf a Orange.
Permet iniciar una connexió ppp:
$ pon connexio
On la connexió més habitual és:
$ pon dsl-provider
L'ordre la proporciona:
$ dpkg -S /usr/bin/pon ppp: /usr/bin/pon
Els paràmetres de la connexió ppp els trobeu als fitxers de la carpeta /etc/ppp/peers, per exemple el fitxer:
$ sudo cat /etc/ppp/peers/dsl-provider | grep -v '^#\|^$\|^;' noipdefault usepeerdns defaultroute replacedefaultroute hide-password lcp-echo-interval 20 lcp-echo-failure 3 connect /bin/true noauth persist mtu 1492 noaccomp default-asyncmap plugin rp-pppoe.so eth0 user "[email protected]"
Consulteu un exemple concret a Orange
El fitxer de log al arrancar una connexió és quelcom similar a:
$ sudo tail -f --lines=500 /var/log/syslog | grep ppp May 27 21:13:50 cop pppd[23122]: Plugin rp-pppoe.so loaded. May 27 21:13:50 cop pppd[23122]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5 May 27 21:13:50 cop pppd[23124]: pppd 2.4.5 started by root, uid 0 May 27 21:13:50 cop pppd[23124]: PPP session is 64915 May 27 21:13:50 cop pppd[23124]: Connected to 00:09:b6:8b:66:4a via interface internet1 May 27 21:13:50 cop pppd[23124]: Using interface ppp0 May 27 21:13:50 cop pppd[23124]: Connect: ppp0 <--> internet1 May 27 21:13:52 cop pppd[23124]: PAP authentication succeeded May 27 21:13:52 cop pppd[23124]: peer from calling number 00:09:B6:8B:66:4A authorized May 27 21:13:52 cop pppd[23124]: not replacing existing default route via 79.148.245.193 May 27 21:13:52 cop pppd[23124]: Cannot determine ethernet address for proxy ARP May 27 21:13:52 cop pppd[23124]: local IP address 83.40.223.5 May 27 21:13:52 cop pppd[23124]: remote IP address 192.168.153.1 May 27 21:13:52 cop pppd[23124]: primary DNS address 80.58.61.250 May 27 21:13:52 cop pppd[23124]: secondary DNS address 80.58.61.254
Fixeu-vos que si ja teniu un default gateway per defecte no us el canviarà:
May 27 21:13:52 cop pppd[23124]: not replacing existing default route via 79.148.245.193
Les rutes que et configura són:
$ sudo route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.153.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 ... 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Ho pots comprovar amb traceroute
$ traceroute www.upc.edu traceroute to www.upc.edu (147.83.2.135), 30 hops max, 60 byte packets 1 192.168.153.1 (192.168.153.1) 29.924 ms 31.295 ms 33.314 ms 2 113.Red-81-46-52.staticIP.rima-tde.net (81.46.52.113) 35.469 ms 37.159 ms 38.628 ms 3 rediris-1.espanix.net (193.149.1.26) 52.606 ms 54.137 ms 55.515 ms 4 NAC.XE1-0-0.EB-Barcelona0.red.rediris.es (130.206.250.26) 71.708 ms 73.454 ms 74.865 ms 5 cesca-router.rediris.es (130.206.202.30) 246.379 ms 246.590 ms 246.611 ms 6 upc-anella.cesca.cat (84.88.18.18) 81.398 ms 57.218 ms 58.578 ms 7 * * * 8 * * * 9 * * * 10 cerberuso1.upc.es (147.83.172.180) 71.716 ms 57.634 ms 59.327 ms 11 * * * 12 * * * ...
$ sudo ip route show 192.168.153.1 dev ppp0 proto kernel scope link src 79.159.167.136 ... 10.0.0.0/8 via 192.168.0.46 dev intranet default dev ppp0 scope link
Desconnecta una connexió ppp:
$ sudo poff dsl-provider
L'ordre es proporcionada per:
$ dpkg -S /usr/bin/poff ppp: /usr/bin/poff
Consulteu pon i un exemple complet a Orange.
EL log al tancar una connexió és quelcom similar a:
$ sudo tail -f --lines=500 /var/log/syslog | grep ppp May 27 21:10:14 cop pppd[12672]: Terminating on signal 15 May 27 21:10:14 cop pppd[12672]: Connect time 13.5 minutes. May 27 21:10:14 cop pppd[12672]: Sent 0 bytes, received 872 bytes. May 27 21:10:14 cop pppd[16418]: Terminating on signal 15 May 27 21:10:14 cop pppd[16418]: Exit. May 27 21:10:14 cop pppd[12672]: Connection terminated. May 27 21:10:14 cop pppd[12672]: Exit.
Permet descobrir peers als quals connectar-se. Aquesta ordre l'utilitza per exemple pppoeconf per configurar una connexió ppp.
Vegem un exemple:
$ sudo pppoe-discovery Access-Concentrator: rasresvr1-02 Got a cookie: 0e c9 ad 8c 05 da ec 78 89 78 1a cc fb 83 e4 21 -------------------------------------------------- AC-Ethernet-Address: 00:12:da:e9:35:48
En aquest cas en trobat un concentrador ADSL anomenat rasresvr1-02 amb la MAC 00:12:da:e9:35:48.
Es pot especificar la interfície de xarxa amb:
$ sudo pppoe-discovery -I eth4
{{nota| Sembla ser que dona un error "No such device" si les interfícies de xarxa tenen noms no habituals (com ethx). És a dir si canvieu els noms de les targetes de xarxa /etc/udev/rules.d/70-persistent-net.rules tindreu problemes
NOTA: Un cop configurat pppoe per exemple amb pppoeconf, es possible que el discovery ja no us torni a contestar. Cal apagar el router ADSL i tornar-lo encendre o connectar-se via Telnet i resetejar la línia ADSL o més fàcil, alliberar la línia: $ sudo poff dsl-provider
El que fa aquesta ordre es enviar els paquets PPPoE PADI i PADO. Observeu el resultats de l'ordre tcpdump si l'executeu durant l'execució de pppoe-discovery:
$ sudo tcpcump -i eth0 09:02:57.614685 PPPoE PADI [Service-Name] 09:02:57.655403 PPPoE PADO [Service-Name] [AC-Name "rasresvr1-02"] [AC-Cookie 0x0EC9AD8C05DAEC7889781ACCFB83E421]
On:
L'ordre la proporciona el paquet ppp:
$ whereis pppoe-discovery pppoe-discovery: /usr/sbin/pppoe-discovery /usr/share/man/man8/pppoe-discovery.8.gz $ dpkg -S /usr/sbin/pppoe-discovery ppp: /usr/sbin/pppoe-discovery
Consulteu un exemple complet a Orange.
Permet consultar el log de pppd. El que fa es buscar les últimes línies [[pppd]] al fitxer de log /var/log/syslog:
$ tail -f --lines=500 /var/log/syslog | grep ppp
NOTA: No funciona gaire bé si hi ha altres processos escrivint a syslog
IPCOP té un menú (DIALUP) per configurar modems USB o serial connectats directament a IPCOP. Aquest tipus de modems no són els més aconsellables (és millor tenir un router i connectar IPCOP directament al router amb un connexió Ethernet per la xarxa vermella) però si és l'únic que tenim IPCOp pot ser una solució per compartir de forma segura la connexió a Internet.
Fitxer:IPCOP WANPPP2.jpg Imatge:IPCOP WANPPP1.jpg
Vegeu també ADSL Monolloc i ADSL.
TODO aka MP, Multi-Link PPP, MultiPPP o MLPPP.
Multi-Link Point to Point Protocol (MP, Multi-Link PPP, MultiPPP or MLPPP) is a method of splitting, recombining, and sequencing data across multiple logical data links.
In a situation where we have multiple DSL links a pair of devices, performance by “widening the pipe” between two devices can be increased by using Multi-Link PPP, without going to a newer, more expensive technology.
Large packets are actually split into bits and sent evenly over ALL logical data links. This is done instantaneously with NO loss of bandwidth. It is important to understand that other end of the link needs to use the same protocol to recombine your data.
Multilink is based on an LCP option negotiation that allows to indicate to its peer that it is capable of combining multiple physical links.
Multilink PPP (MP) es suportat pel protocol L2TP per tal de proveir MRRU i també suportat [[[bridging]] en enllaços PPP. ( utilitzant Bridge Control Protocol (BCP) que permet enviar frames Ethernet tal qual a través de enllaços PPP).
D'aquesta forma és possible disposar d'una alternativa a EoIP. Cal tenir en compte que el bridge haurà de tenir una Adreça MAC d'administració o una interfície Ethernet en el bridge ja que els enllaços PPP no tenen adreces MAC.
Recursos: