Diferencia entre revisiones de «Capa d'enllaç de dades»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
 
(No se muestran 25 ediciones intermedias del mismo usuario)
Línea 44: Línea 44:
:*http://www.ethermanage.com/ethernet/ethername.html
:*http://www.ethermanage.com/ethernet/ethername.html
:*http://en.wikipedia.org/wiki/Luminiferous_aether --> The Ether
:*http://en.wikipedia.org/wiki/Luminiferous_aether --> The Ether
:*http://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=11&cad=rja&ved=0CFsQtwIwCg&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DM013_1TQ_5g&ei=6JOvUMvyF4yW0QWbh4G4DQ&usg=AFQjCNGH8bXQ5QZTkmuB8eFo6FQSILG3EQ
:*http://www.youtube.com/watch?v=M013_1TQ_5g




Línea 54: Línea 54:
:*Lògica de reenviaments
:*Lògica de reenviaments
:*Control de flux
:*Control de flux
:*Comprovació d'errors
:*Comprovació d'errors.


=== Nivell MAC ===
=== Nivell MAC ===
Línea 79: Línea 79:
==== CSMA/CD ====
==== CSMA/CD ====


http://wiki.mikrotik.com/wiki/Manual:Connection_oriented_communication_%28TCP/IP%29#CSMA.2FCD
CSMA/CD - Carrier Sense Multiple Access with Collision Detection - (Accés múltiple amb escolta de portadora i Detecció de Col·lisions) és un protocol d'accés al medi compartit. El seu ús està especialment estès en xarxes Ethernet on és emprat per millorar les seves prestacions. En CSMA/CD, els dispositius de xarxa escolten el medi abans de transmetre, és a dir, cal determinar si el canal i els seus recursos es troben disponibles per realitzar una transmissió. A més, millora el rendiment de CSMA finalitzant l'enviament quan s'ha detectat una col·lisió.
 
En CSMA/CD, cada host que vol transmetre ha de realitzar una escolta del medi -detecció de portadora- per comprovar si aquest es troba lliure, és a dir, per comprovar que cap altra estació està en aquest instant transmetent un missatge. Si el mitjà es troba lliure llavors té lloc la transmissió. Així, pot ocórrer que diverses estacions tinguin missatges per enviar i que comencin a transmetre una trama al mateix instant. Quan això succeeix, es diu que ha passat una '''col·lisió''' a la xarxa. L'estació que ha detectat la col·lisió procedirà a enviar un missatge de '''jam''' de 32 bits a la resta d'estacions per notificar aquest esdeveniment. Quan totes les estacions han estat notificades, automàticament es paren totes les transmissions i s'executa un algorisme de backoff (o de postergació) que consisteix a esperar un temps aleatori (backoff) abans de tornar a provar transmisión.Durante els 10 primers intents el valor mitjà del temps d'espera es duplica mentre que durant els 6 següents intents addicionals, es mantiene. Tras 16 intents fallits, l'algorisme notifica un error a les capes superiors.
 
[[Archivo:Image2004.gif]]
 
CSMA / CD va ser usat en les-ara obsoletes-variants d'Ethernet 10BASE5 i 10BASE2. Actualment les modernes xarxes Ethernet construïdes amb switches i connexions dúplex el mantenen com a mode de retrocompatibilidad.
 
 
* http://es.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_detection
* http://wiki.mikrotik.com/wiki/Manual:Connection_oriented_communication_%28TCP/IP%29#CSMA.2FCD
 
==== CSMA/CA ====
 
El Carrier Sense Multiple Access With Collission Avoidance (CSMA/CA) és un protocol de control de xarxa utilitzat per evitar col·lisions entre els paquets de dades. S'utilitza normalment en xarxes sense fil, ja que no poden transmetre i rebre alhora.
 
Cada dispositiu indica que vol transmetre abans de fer-ho, d'aquesta manera s'evita que altres dispositius enviin informació i es produeixin col·lisions.
 
*Si el canal és lliure, espera un temps i si continua lliure transmet.
*Si el canal és ocupat, espera que estigui lliure.
 
Aquest protocol té principalment dos problemes:
*Una estació creu que el canal és lliure, però en realitat és ocupat per un altre node el qual no sent.
*Una estació creu que el canal és ocupat, però en realitat és lliure perquè el node que escolta no li interferirà la transmissió.
 
La diferència és que el CSMA/CD detecta totes les col·lisions i les soluciona. El les xarxes sense fils, és possible no detectar els altres nodes perquè estan ocults o perquè no arriba el senyal. CSMA/CA és menys eficient, ja que ha de demanar permís i esperar a confirmar que estiga lliure i esperar la confirmació de recepció.


=== Interfícies de xarxa ===
=== Interfícies de xarxa ===
Línea 87: Línea 112:
GNU/Linux de forma universal distingueix dos tipus de interfícies de xarxa:
GNU/Linux de forma universal distingueix dos tipus de interfícies de xarxa:


:*'''[[physical interfaces]]''': eth0, eth1, eth4, radio0, radio1, wlan0 ... Sempre representen un [[NIC]] o [[WNIC]] existent al ordinador. Tan aviat com el driver ([[mòdul del kernel]]) es carrega, es mostra la interfície.  
:*'''[[physical interfaces]]''': eth0, eth1, eth4, radio0, radio1, wlan0 ... Sempre representen un [[NIC]] o [[WNIC]] existent al ordinador. Tan aviat com el driver ([[mòdul del kernel]]) es carrega, es mostra la interfície. [http://www.cyberciti.biz/faq/howto-linux-rename-ethernet-devices-named-using-udev/]
:*'''[[virtual interfaces]] o [[logical interfaces]]''': lo, eth0:1, eth0.1, vlan2, br0, pppoe-dsl, tun0, imq0, teql0, ... No representen un dispositiu de xarxa real físic, però sempre estan relacionats directa o indirectament amb un dispositiu físic existent( excepte [[lo]]).  
:*'''[[virtual interfaces]] o [[logical interfaces]]''': lo, eth0:1, eth0.1, vlan2, br0, pppoe-dsl, tun0, imq0, teql0, ... No representen un dispositiu de xarxa real físic, però sempre estan relacionats directa o indirectament amb un dispositiu físic existent( excepte [[lo]]).  


Línea 193: Línea 218:
         '''Link detected: yes'''
         '''Link detected: yes'''


===Ordre ethtool===


[http://acacha.org/mediawiki/index.php/Ethtool ethtool].
[http://acacha.org/mediawiki/index.php/Ethtool ethtool].
Línea 230: Línea 254:


===Topologies de xarxa===
===Topologies de xarxa===
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;">


Classificació de les xarxes segons la seva forma:
Classificació de les xarxes segons la seva forma:
Línea 281: Línea 307:
::*Els commutadors només connecten el port emissor amb el port receptor
::*Els commutadors només connecten el port emissor amb el port receptor
::*Topologia lògica: Estrella, punt a punt
::*Topologia lògica: Estrella, punt a punt
</div>


===Protocol ARP===
===Protocol ARP===
[http://acacha.org/mediawiki/index.php/ARP ARP].


===Cables de parells creuats===
El protocol ARP (Address Resolution Protocol) s'encarrega de traduir adreces IP a adreçes MAc al nivell d'enllaç en les xarxes LAN. ARP és un protocol que funciona que utilitza missatges de difusió a tota la xarxa per descobrir quin node de la xarxa té la IP demanada i aconseguir la seva MAC. Un cop aconsegueix la MAC, l'emmagatzema a la taula ARP.
 
Es pot averiguar la nostra taula ARP:
 
$ arp -n
Dirección                TipoHW  DirecciónHW        Indic Máscara        Interfaz
10.20.0.1                ether  00:14:5e:a4:31:5d  C                    eth0
10.20.2.250              ether  00:15:17:ca:3f:9b  C                    eth0
 
 
Per afegir una entrada a la taula ARP:
 
$ sudo arp -s 10.20.2.250 00:15:17:ca:3f:9b
 
Es pot averiguar totes les mac d'una xarxa amb:
 
$ sudo nmap 10.20.0.1-255


Normalment són cables de coure formats per una sèrie de parells de cables creuats entre si. Hi ha cables de 1 parell, 2 parells, 4 i fins a 25 o 100 parells o inclús més. El trenat serveix per mantenir estables les propietats elèctriques al llarg de tota la longitud del cable i redueix les interferències creades pels cables adjacents en els cables format per dos o més parells de cables.
Aquesta comanda busca totes les máquines connectades. Si troba alguna, la taula ARP s'actualitza.


Encara i trenar cables a vegades és necessari cobrir els cables amb un recobriment metàl·lic anomenat pantalla. En alguns casos fins i tot s'apantallen els parells de cables individualment.
En realitat, qualsevol comanda o accés a una IP de la mateixa xarxa consulta en ARP o l'actualitza. Per exemple, ping.


Hi ha 3 tipus de cables de parell trenat:
==== Ús de la comanda ARP ====


*'''UTP''': (Unshielded Twisted Pair) Sense cap tipus de pantalla o recobriment metàl·lic.
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;">
*'''STP''': (Shielded Twisted Pair) Recobriment metàl·lic al voltant de cada parell de cables.
*'''S/STP''': (Screened STP) els parells de cables estan protegits per pantalles i el conjunt de cables també.


====Cables de parells creuats sense protecció electromagnètica (UTP. Unshielded Twisted Pair)====
Permet gestionar la cache ARP


[[Imatge:100utpCW.jpg|thumb|right|Bobina de cable UTP]]
Per consultar la cache:


UTP (de l'anglès: Unshielded Twisted Pair, par trenat sense pantalla metàl·lica) és un tipus de cables utilitzat principalment en comunicacions. La norma que s'encarrega de normalitzar aquests cables és la norma [http://es.wikipedia.org/wiki/TIA/EIA-568-B TIA/EIA-568-B].
$ arp -n


Normalment són cables de coure (un bon conductor de l'electricitat) utilitzats en telecomunicacions i que consta de un o més parells cap del quals té una pantalla de protecció electromagnètica (també els anomenen cables no blindats). Ca parell de cables és un parell de conductors de coure aïllats per un recobriment de plàstic; aquesta parell es trenat (Twisted en angles ) per evitar interferències.
Eliminar entrades de la cache:


La U de UTP significa '''sense blindatge''' o sense pantalla de protecció.  
$ [[sudo]] arp -d 192.168.1.1


'''Avantages''':
Es poden afegir entrades estàtiques amb:
*El cable és més econòmic que el que té pantalla elèctrica de protecció
*És més flexible i fàcil d'instal·lar
*No necessita posta a terra ni manteniment
*Facilitat de creixement i expansió.


'''Inconvenients''':
$ [[sudo]] [[arp]] -s IP MAC
*Presenta menor protecció davant de les interferències (encara que suficient per a la majoria d'instal·lacions)
*És menys segur respecta a possibles escoltes a prop del cable.


S'utilitza en telefònia i xarxes d'ordinadors. Per exemple en xarxes LAN Ethernet 10BASE T o Fast Ethernet (100 BASE TX) i fins i tot ja s'esta utilitzant en xarxes Gigabit.
Per exemple:


Utilitza uns connectors especials anomenats [http://en.wikipedia.org/wiki/Registered_jack | RJ] (Registered Jack) sens els més utilitzats el [[Nivell_d%27interf%C3%ADcie_de_xarxa_TCP/IP#Connectors_RJ-45 | RJ-45]] (de 8 cables, 4 parells ) utilitzant en xarxes LAN o els [[Nivell_d%27interf%C3%ADcie_de_xarxa_TCP/IP#Connectors_RJ-45 | RJ11]] utilitzats en telefonia.
$ sudo arp -s 10.20.2.250 00:15:17:ca:3f:9b


A EE.UU. els cables no blindat són majoria perquè les normatives no admeten cables blindats.
La entrada es pot afegir de forma temporal amb:


'''Recursos''':
$ sudo arp -s 87.111.152.1 00:14:1c:32:af:1a temp
*[http://es.wikipedia.org/wiki/UTP UTP a la wikipedia]
*[http://es.wikipedia.org/wiki/TIA-568B Norma TIA-568B]


===Connectors RJ-45===
Podeu eliminar la entrada amb:


'''Esquema de connexió RJ-45''':
$ sudo arp -d 87.111.152.1


{| border=1 align="center" class="wikitable"
Es pot automatitzar l'acció d'afegir el vostre gateway com a entrada estàtica amb:
|+ Cablejat RJ-45 (T568A/B)
! Pin !! Color T568A !! Color T568B  !! Pins en connectar mascle (femella invertit)
|-
| 1 ||
[[Image:60px-Wire white green stripe.svg.png|60px|Pair 3 Tip]]<br> Blanc/Verd (W-G)
|[[Image:60px-Wire white orange stripe.svg.png|60px|Pair 2 Tip]]<br> Blanc/Taronja (W-O)
| rowspan="8" |<p align="center">  [[Image:Rj45plug-8p8c.png|250px]]
|-
| 2 ||
[[Image:60px-Wire green.svg.png|60px|Pair 3 Ring]]<br> Verd (G)
|[[Image:60px-Wire orange.svg.png|60px|Pair 2 Ring]]<br> Taronja (O)
|-
| 3 ||
[[Image:60px-Wire white orange stripe.svg.png|60px|Pair 2 Tip]]<br> Blanc/Taronja (W-O)
|[[Image:60px-Wire white green stripe.svg.png|60px|Pair 3 Tip]]<br> Blanc/Verd (W-G)
|-
| 4 ||
[[Image:60px-Wire blue.svg.png|60px|Pair 1 Ring]]<br> Blau (BL)
|[[Image:60px-Wire blue.svg.png|60px|Pair 1 Ring]]<br> Blau (BL)
|-
| 5 ||
[[Image:60px-Wire white blue stripe.svg.png|60px|Pair 1 Tip]]<br> Blanc/Blau (W-BL)
|[[Image:60px-Wire white blue stripe.svg.png|60px|Pair 1 Tip]]<br> Blanc/Blau (W-BL)
|-
| 6 ||
[[Image:60px-Wire orange.svg.png|60px|Pair 2 Ring]]<br> Taronja (O)
|[[Image:60px-Wire green.svg.png|60px|Pair 3 Ring]]<br> Verd (G)
|-
| 7 ||
[[Image:60px-Wire white brown stripe.svg.png|60px|Pair 4 Tip]]<br> Blanc/Marró (W-BR)
|[[Image:60px-Wire white brown stripe.svg.png|60px|Pair 4 Tip]]<br> Blanc/Marró (W-BR)
|-
| 8 ||
[[Image:60px-Wire brown.svg.png|60px|Pair 4 Ring]]<br>  Marró (BR)
|[[Image:60px-Wire brown.svg.png|60px|Pair 4 Ring]]<br>  Marró (BR)
|}


Hi han dos esquemes de color possibles el T568A o el T568B. Amb qualsevol dels dos esquemes podem fer tant cables creuats com cables directes tal i com es pot observar als següents esquemes:
$ arp -s $(route -n | awk '/^0.0.0.0/ {print $2}')  $(arp -n | grep `route -n | awk '/^0.0.0.0/ {print $2}'`| awk '{print $3}')


[[Imatge:EthernetRJ45A.gif]]
Es una bona forma d'intentar evitar els atacs de [[ARP Poisoning]] d'eines com [[dsniff]] o [[Ettercap]].


[[Imatge:EthernetRJ45B.gif]]
Si executem:


Els cables directes connecten esquemes de colors idèntics (A-A o B-B) i els cables creuats són combinacions A-B o B-A.
$ sudo tcpdump arp


'''Recursos''':
Podem capturar paquets arp nostres i de altres.
*[http://es.wikipedia.org/wiki/RJ-45 Connectors RJ-45]
</div>


===Connectors RJ-11===
==== ARP Spoofing ====


[[Imatge:180px-Rj11 connector.jpg|thumb|right| Connector RJ-11 utilitzat en telefonia]]
ARP Spoofing (també anomenat ARP Poisoning, enverinament ARP o farsa ARP) és un atac empleat en xarxes Ethernet que permet a un atacant interceptar trames d'una xarxa LAN amb Switch.


Utilitzat en telefonia. És un estàndard mundial tot i que per exemple els anglesos utilitzen un connector lleugerament diferent.
L'atacant pot fer tres tipus d'atac:


    Atac passiu: Les trames interceptades no són modificades i es s'envien als corresponents receptors.
    Atac actiu: Pot modificar les trames injectant dades
    Aturar el tràfic: Atac de denegació de servei.


'''Esquema de connexió''':
Es necessari executar l'atac des de una màquina de dins la xarxa Ethernet i les màquines que es poden atacar han de pertànyer al mateix segment de xarxa


{| border=1 align="center" class="wikitable"
Enviant missatges AR falsos (fake frames). S'envia un arp-reply fals associant la MAC de l'atacat a la IP de l'atacant. Els paquets s'envien a l'atacant en comptes de a l'atacat. L'atacant pot escollir entre ser passiu (un cop llegides les trames les reenviar a l'atacat), actiu (injectar o modificar dades abans de reenviar – Man in the Middle).  
|+
! pin !! RJ25 !! RJ14 !! RJ11 !! Pair !! T/R !! ± !! [[25-pair color code|Color]] !! Old
|-
| 1  || X    ||      ||      || 3    || T || +
| [[Image:60px-Wire white green stripe.svg.png|37px|Pair 4 Wire 1]] white/green


| [[Image:60px-Wire orange.svg.png|37px|Pair 4 Wire 1]] orange
|-
| 2  || X    || X    ||      || 2    || T || +
| [[Image:60px-Wire white orange stripe.svg.png|37px|Pair 2 Wire 1]] white/orange
| [[Image:37px-Wire black.svg.png|37px|Pair 2 Wire 1 Old]] black
|-
| 3  || X    || X    || X    || 1    || R || -
| [[Image:37px-Wire blue white stripe.svg.png|37px|Pair 1 Wire 2]] blue
| [[Image:37px-Wire red.svg.png|37px|Pair 1 Wire 2 Old]] red
|-
| 4  || X    || X    || X    || 1    || T || +
| [[Image:60px-Wire white blue stripe.svg.png|37px|Pair 1 Wire 1]] white/blue
| [[Image:60px-Wire green.svg.png|37px|Pair 1 Wire 1 Old]] green
|-
| 5  || X    || X    ||      || 2    || R || -
| [[Image:37px-Wire orange white stripe.svg.png|37px|Pair 2 Wire 2]] orange
| [[Image:37px-Wire yellow.svg.png|37px|Pair 2 Wire 2 Old]] yellow
|-
| 6  || X    ||      ||      || 3    || R || -
| [[Image:37px-Wire green white stripe.svg.png|37px|Pair 3 Wire 2]] green
| [[Image:60px-Wire blue.svg.png|37px|Pair 3 Wire 2]] blue
|}


'''Recursos''':
[http://acacha.org/mediawiki/index.php/ARP ARP].
*http://en.wikipedia.org/wiki/RJ11%2C_RJ14%2C_RJ25


==Trama Ethernet==
==Trama Ethernet==


[[Imatge:Ethernet frame.png]]
[[Image:Ethernet frame.png]]


:*'''[[Preàmbul]]''': alterna zeros i uns, estabilitza el canal físic
:*'''[[Preàmbul]]''': alterna zeros i uns, estabilitza el canal físic
Línea 437: Línea 408:
Un altre imatge sense el preàmbul ni el SOF:
Un altre imatge sense el preàmbul ni el SOF:


[[Fitxer:Ethernet.png|center]]
[[Image:Ethernet.png|center]]


Les trames amb [[VLAN]]s incorporen informació extra:
Les trames amb [[VLAN]]s incorporen informació extra:


[[Fitxer:davidginovart_frame.png|center|700px]]
[[Image:700px-Davidginovart_frame.png|center|700px]]


Consulteu [[VLAN#Protocol_IEEE_802.1Q._VLAN_Tagging]]
Consulteu [[VLAN#Protocol_IEEE_802.1Q._VLAN_Tagging]]


Vegeu també [[Encapsulament]]
Vegeu també [[Encapsulament]]
Línea 455: Línea 424:
== Maximum Transmission Unit (MTU) ==
== Maximum Transmission Unit (MTU) ==


El [[MTU]] és la mida en [[bytes]] de les dades que es poden enviar a un cert [[nivell OSI]] o [[capa OSI]]. Se sol parlar del MTU per al protocol IP, és a dir que el MTU si no es diu més res sol fer referència al MTU de capa 3 (IP), és a dir és la mida del paquet si se li treu la [[capçalera IP]] (que pot tenir una mida variable d'entre 20bytes i 40bytes). Per difereneciar clarament el MTU al que fem referència, alguns SO de xarxa com [[RouterOS]] parlen de paràmetres com [[L2MTU]] (seria el MTU de capa 2, per exemple el MTU de [[Ethernet]] que seria la mida d'un [[frame]] Ethernet menys la [[capçalera Ethernet]])
El [[MTU]] és la mida en [[bytes]] de les dades que es poden enviar a un cert [[nivell OSI]] o [[capa OSI]]. Se sol parlar del MTU per al protocol IP, és a dir que el MTU si no es diu més res sol fer referència al MTU de capa 3 (IP), és a dir és la mida del paquet si se li treu la [[capçalera IP]] (que pot tenir una mida variable d'entre 20bytes i 40bytes).


Vegeu també:
Vegeu també:
Línea 468: Línea 437:


Amb l'ordre traceroute podem esbrinar quins són els salts (nodes IP) pels que passa (PATH o camí) un paquet per comunicar dos màquines IP.
Amb l'ordre traceroute podem esbrinar quins són els salts (nodes IP) pels que passa (PATH o camí) un paquet per comunicar dos màquines IP.
{{nota|PMTUD is performed by routers in Internet Protocol Version 4 (IPv4),[1] while in IPv6 this function has been delegated to the end points of a communications session.[2]}}


Normalment el que és fa és establir l'opció [[Don't Fragment]] (opció [[DF]]) de la capçalera IP al enviar els paquets cap a la seva destinació. Aleshores qualsevol dispositiu que estigui en el camí i que tingui un MTU menor que la mida del paquet, aleshores eliminarà aquell paquet (DROP) i enviarà de tornada al emissor un paquet [[ICMP]] de nom [[Fragmentation Needed]] (Type 3, Code 4) que contindrà el MTU d'aquell node.
Normalment el que és fa és establir l'opció [[Don't Fragment]] (opció [[DF]]) de la capçalera IP al enviar els paquets cap a la seva destinació. Aleshores qualsevol dispositiu que estigui en el camí i que tingui un MTU menor que la mida del paquet, aleshores eliminarà aquell paquet (DROP) i enviarà de tornada al emissor un paquet [[ICMP]] de nom [[Fragmentation Needed]] (Type 3, Code 4) que contindrà el MTU d'aquell node.
Línea 511: Línea 478:
               Specifies the number of data bytes to be sent.  The default is 56, which translates into 64 ICMP data bytes  when  combined
               Specifies the number of data bytes to be sent.  The default is 56, which translates into 64 ICMP data bytes  when  combined
               with the 8 bytes of ICMP header data.
               with the 8 bytes of ICMP header data.
{{nota|Altres eines de ping com per exemple el ping de routerOS, la mida s'indica incloent la capçalera ICMP, per tant és mida total!}}
[[Fitxer:RouterOSPingMTU.png]]


Per tant amb 1472 tenim que el MTU màxim hauria de der 1500:
Per tant amb 1472 tenim que el MTU màxim hauria de der 1500:
Línea 543: Línea 506:
Oco amb l'opció -s que no indica la mida total del paquet ping, cal sumar-li els 8bytes de ICMP.
Oco amb l'opció -s que no indica la mida total del paquet ping, cal sumar-li els 8bytes de ICMP.


{{nota|Els valors poden canviar segons el tipus de connexió a Internet. Consulteu la següent taula de nombres màgics:}}
Els valors poden canviar segons el tipus de connexió a Internet. Consulteu la següent taula de nombres màgics:


  (TCP, IP, MTU and MSS magic numbers)
  (TCP, IP, MTU and MSS magic numbers)
Línea 605: Línea 568:


Consulteu [[ethtool]]
Consulteu [[ethtool]]
=== mii-diag ===
Consulteu [[mii-diag]]
=== nictools-pci nictools-nopci ===
$ [[sudo]] [[apt-get]] install [[nictools-pci]] [[nictools-nopci]]
=== fing ===
Vegeu [[fing]].
== Bridge ==
Consulteu també:
:*[[Bridge]]
== PPP ==
Protocols [[PPP]].
==Vegeu també==
:*[[Ethernet. Treball d'un alumne]]
== Enllaços externs ==
:*http://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards
dona el Frag needed.
El mateix passa amb Yahoo:
$ ping -s 1452 www.yahoo.es
Però no amb Google.
'''Windows''':
A series of ping tests using the command, ping www.expedient.net -f -l xxxx, where xxxx is the packet size, can be used to determine the optimal MTU for your connection.
$ [[ping]] www.expedient.net -f -l 1492
Note the results above indicate that the packet needs to be fragmented. Lower the size the packet in increments of +/-10 (e.g. 1472, 1462, 1440, 1400) until you have a packet size that does not fragment.
Begin increasing the packet size from this number in small increments until you find the largest size that does not fragment. Add 28 to that number (IP/ICMP headers) to get the optimal MTU setting. For example, if the largest packet size from ping tests is 1462, add 28 to 1462 to get a total of 1490 which is the optimal MTU setting.
Change the MTU using DrTCP or editing the registry. See MTU Settings for further information.
== Eines ==
=== ethtool ===
Consulteu [[ethtool]]
=== mii-diag ===
Consulteu [[mii-diag]]


=== nictools-pci nictools-nopci ===
=== nictools-pci nictools-nopci ===
Línea 681: Línea 585:
== PPP ==
== PPP ==


Protocols [[PPP]].
Protocols [[http://acacha.org/mediawiki/index.php/PPP PPP]].
 
==Vegeu també==
 
:*[[Ethernet. Treball d'un alumne]]


== Enllaços externs ==
== Enllaços externs ==


:*http://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards
*http://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards
 
 
 
 
== Enllaços ==
 
*http://www.ethermanage.com/ethernet/ethernet.html
*http://www.ethermanage.com/ethernet/ethernet.html
*http://acacha.org/mediawiki/index.php/Ethernet (Font de la majoría d'aquest material)
*http://acacha.org/mediawiki/index.php/Ethernet (Font de la majoría d'aquest material)

Revisión actual - 15:20 26 mar 2013

La capa d'enllaç de dades correspon al nivell 2 del model OSI i s'encarrega de respondre a peticions de servei de la Capa de xarxa i d'entregar les peticions a la Capa física.

La capa d'enllaç de dades és la capa encarregada de transferir dades entre nodes de xarxa adjacents en una WAN o entre nodes del mateix segment de LAN. La capa d'enllaç de dades proporciona les funcions i els procediments per a la transmissió de dades entre entitats de xarxa i pot detectar i, fins i tot, corregir errors que poden ocórrer a la capa física. Exemples de protocols d'enllaç de dades són Ethernet per a xarxes d'àrea local i PPP, HDLC i ADCCP per a connexions punt a punt.

L'enllaç de dades proporciona transferència de dades al llarg de l'enllaç físic. Aquesta transferència pot ser o no fiable; molts protocols d'enllaç de dades no disposen de reconeixement de recepció i acceptació de trames amb èxit i, fins i tot, alguns protocols ni tan sols disposen de checksum per tal de comprovar errors en la transmissió. En aquests casos, protocols de més alt nivell han d'encarregar-se de proporcionar control de flux, comprovació d'errors i reconeixement i retransmissió.

Aquesta capa sovint se separa en dues subcapes. La primera subcapa és el Control d'enllaç lògic (o en anglès, Logical Link Control (LLC)). Aquesta subcapa multiplexa protocols funcionant en la capa d'enllaç de dades i, opcionalment, proporciona control de flux, reconeixement i retransmissió.

La segona subcapa és el Control d'Accés al Medi (o en anglès, Media Access Control (MAC)). Aquesta subcapa determina qui té permès accedir al medi en un moment determinat. Generalment hi ha dues formes de control d'accés al medi: distribuït i centralitzat. La subcapa de Control d'accés al medi també determina on acaba una trama de dades i on comença la següent.

Com s'ha dit abans, en les xarxes d'àrea local IEEE 802 la capa d'enllaç de dades se separa en les subcapes MAC i LLC; això vol dir que el protocol IEEE 802.2 LLC pot ser utilitzat amb tots els de la capa IEEE 802 MAC, tal com Ethernet, Token Ring, IEEE 802.11, etc., juntament amb algunes capes diferents a la 802 MAC com la FDDI. Altres protocols de la capa d'enllaç a dades, com el HDLC, inclouen totes dues subcapes, tot i que altres protocols, com el Cisco HDLC, utilitzen l'entramat a baix nivell de l'HDLC com si fos una capa MAC en combinació amb una capa LLC diferent.

Ethernet

Ethernet és el protocol més famós de la Família d'estàndards IEEE 802:

  • 802.2 o Capa LLC (Logical Link Control). Interfície comuna entre el nivell de xarxa i la família de protocols.

La resta de protocols defineixen el nivell físic i el subnivell MAC:

Origen del nom

Dibuix on s'observa l'origen del nom Ethernet


Al 1972 Metcalfe i els seus col·legues de Xerox PARC van crear el primer sistema experimental Ethernet per tal de connectar l'estació de treball Xerox Alto, amb una interfície gràfica d'usuari.

Aquesta interfície experimental s'utilitzava per connectar entre si estacions de treball Alto o connectar-les amb servidors o impressores laser.

S'utilitzava un rellotge sincrón amb un rellotge similar al de la estació de treball Xerox Alto, el resultat era una velocitat de 2.94 Mbps.


400px-Primerethernet.jpg


La primera xarxa experimental de Metcalfe es va anomenar Alto Aloha Network. Al 1973 Metcalfe li va canviar el nom a Ethernet per tal que quedes clar que podia funcionar en qualsevol màquina i que evolucionava abandonant el sistema Aloha. El nom descriu lo essencial que és el medi físic o que també els agradava anomenar ether (de luminiferous ether que en el seu moment es creia que era el que propagava les ones electromagnètiques)


Nivell LLC (Logical Link control)

És un nivell compartit per tots els protocols de la família IEEE 802. S'encarrega de la:

  • Lògica de reenviaments
  • Control de flux
  • Comprovació d'errors.

Nivell MAC

Té les següents funcions:

  • Control d'accés a medi compartits (cables en bus, ràdio, etc.)
  • Adreçament: Adreça MAC: Sistema adreçament de nivell 2 equivalent a les adreces IP al nivell 3
El nivell MAC no s'aplica a xarxes commutades (no hi ha medi compartit)

Protocols MAC

  • CSMA/CD: Utilitzat per Ethernet
  • CSMA/CA: WIFI (existeixen protocols propietaris com Airmax d'Ubiquiti o Nv2 de Mikrotik basats en TDMA)
  • Aloha i Aloha ranurat
  • Token Ring|Token Bus

El nivell físic Ethernet utilitza una Codificació Manchester.

Algorismes MAC

  • Aloha i Aloha Ranurat (desenvolupats per la Universitat de Hawai). S'envia un paquet i si hi ha col·lisió es torna a enviar.
  • CSMA/CD (Carrier sense multiple access with collision detection). Detecta si hi ha senyals utilitzant el medi i té un procediment en cas de col·lisió. Antics sistemes Ethernet funcionaven amb coaxials en bus físic i lògic.
  • Actualment el problema de les col·lisions està més limitat gràcies als switches. Torna a ser un tema candent en xarxes wireless (l'aire és un medi compartit).

CSMA/CD

CSMA/CD - Carrier Sense Multiple Access with Collision Detection - (Accés múltiple amb escolta de portadora i Detecció de Col·lisions) és un protocol d'accés al medi compartit. El seu ús està especialment estès en xarxes Ethernet on és emprat per millorar les seves prestacions. En CSMA/CD, els dispositius de xarxa escolten el medi abans de transmetre, és a dir, cal determinar si el canal i els seus recursos es troben disponibles per realitzar una transmissió. A més, millora el rendiment de CSMA finalitzant l'enviament quan s'ha detectat una col·lisió.

En CSMA/CD, cada host que vol transmetre ha de realitzar una escolta del medi -detecció de portadora- per comprovar si aquest es troba lliure, és a dir, per comprovar que cap altra estació està en aquest instant transmetent un missatge. Si el mitjà es troba lliure llavors té lloc la transmissió. Així, pot ocórrer que diverses estacions tinguin missatges per enviar i que comencin a transmetre una trama al mateix instant. Quan això succeeix, es diu que ha passat una col·lisió a la xarxa. L'estació que ha detectat la col·lisió procedirà a enviar un missatge de jam de 32 bits a la resta d'estacions per notificar aquest esdeveniment. Quan totes les estacions han estat notificades, automàticament es paren totes les transmissions i s'executa un algorisme de backoff (o de postergació) que consisteix a esperar un temps aleatori (backoff) abans de tornar a provar transmisión.Durante els 10 primers intents el valor mitjà del temps d'espera es duplica mentre que durant els 6 següents intents addicionals, es mantiene. Tras 16 intents fallits, l'algorisme notifica un error a les capes superiors.

Image2004.gif

CSMA / CD va ser usat en les-ara obsoletes-variants d'Ethernet 10BASE5 i 10BASE2. Actualment les modernes xarxes Ethernet construïdes amb switches i connexions dúplex el mantenen com a mode de retrocompatibilidad.


CSMA/CA

El Carrier Sense Multiple Access With Collission Avoidance (CSMA/CA) és un protocol de control de xarxa utilitzat per evitar col·lisions entre els paquets de dades. S'utilitza normalment en xarxes sense fil, ja que no poden transmetre i rebre alhora.

Cada dispositiu indica que vol transmetre abans de fer-ho, d'aquesta manera s'evita que altres dispositius enviin informació i es produeixin col·lisions.

  • Si el canal és lliure, espera un temps i si continua lliure transmet.
  • Si el canal és ocupat, espera que estigui lliure.

Aquest protocol té principalment dos problemes:

  • Una estació creu que el canal és lliure, però en realitat és ocupat per un altre node el qual no sent.
  • Una estació creu que el canal és ocupat, però en realitat és lliure perquè el node que escolta no li interferirà la transmissió.

La diferència és que el CSMA/CD detecta totes les col·lisions i les soluciona. El les xarxes sense fils, és possible no detectar els altres nodes perquè estan ocults o perquè no arriba el senyal. CSMA/CA és menys eficient, ja que ha de demanar permís i esperar a confirmar que estiga lliure i esperar la confirmació de recepció.

Interfícies de xarxa

Tipus:

GNU/Linux de forma universal distingueix dos tipus de interfícies de xarxa:

  • physical interfaces: eth0, eth1, eth4, radio0, radio1, wlan0 ... Sempre representen un NIC o WNIC existent al ordinador. Tan aviat com el driver (mòdul del kernel) es carrega, es mostra la interfície. [1]
  • virtual interfaces o logical interfaces: lo, eth0:1, eth0.1, vlan2, br0, pppoe-dsl, tun0, imq0, teql0, ... No representen un dispositiu de xarxa real físic, però sempre estan relacionats directa o indirectament amb un dispositiu físic existent( excepte lo).

Tipus de interfícies virtuals:

  • Aliases o noms IP secundaries: eth4:5, eth4:6, .. Consulteu IP Aliasing
  • VLANS (fins a 4096): eth4.0, eth4.1, eth4.3, vlan0. Cal un dispositiu que suporti vlans (VLAN aware)
  • Bridges: interfícies que són un enllaç o pont entre diferents interfícies físiques o virtuals. Exemples br0, br-lan
  • Túnels: interfícies relacionades amb protocols de tunneling (tunneling protocols): pppoe-dsl, tun0, vpn1, ... Vegeu també tun i tap
  • Bonding o link Aggregation: Dos targetes de xarxa o més es poden unir per simluar una sola targeta de xarxa virtual (aka Channel bonding). Per exemple bond0.
  • Be spawned by some daemon to manipulate incoming packages: imq0, teql4, .. See imq, teql, ..
  • Spawned dependent on the mode a WNICs is currently working in: TODO Exemples: ath0, ath1, ath_monitor

WIFI a més té els següents modes:

La targeta de xarxa. Network Interface Card (NIC)

La targeta de xarxa és el pont d'enllaç entre el sistema operatiu i el accés al medi de transmissió (ja sigui aquest un cable o un sistema sense fils)

  • També anomenada NIC (Network Interface Card) o adaptador de xarxa.
  • Dispositiu que treballa als nivell baixos d'OSI (capa 1 física i capa 2 d'enllaç)
  • Cada interfície de xarxa té una adreça MAC única, com per exemple
00:0D:88:19:D2:A2
  • La MAC permet adreçar i identificar de forma unívoca les targetes de xarxa
  • La MAC és un identificador de 48 bits amb dos parts
  • Id del venedor: 00:0D:88
  • Id de la targeta de xarxa: 19:D2:A2
  • Cal tenir en compte que hi han targetes de xarxa amb més d'una interfície de xarxa (i per tant amb més d'una MAC)

La ranura d'expansió (slot en anglès) és el connector físic a on es connecta la targeta

Tipus de ranures de connexió

  • ISA (Industry Standard Architecture): Creat al 1981. Ja no s'utilitza en sistemes nous
  • PCI (Peripheral Component Interconnect): El més utilitzat actualment
  • PCI-E: Nou bus PCI, necessari per certes velocitats de targetes de xarxa i busos PCI
  • PCMCIA: Utilitzat en ordinadors portàtils
  • USB: Només recomanat si no hi ha un altre opció
  • Actualment moltes targetes estan integrades a la placa mare (però continuen utilitzant un BUS PCI)

Fabricants

  • Novell
  • Intel
  • Realtek

BOOT-ROM La ROM de BOOT porta el programa per arrencar des de la targeta de xarxa un sistema. Moltes targetes o plaques mare la porten integrada a la BIOS. Algunes targetes de xarxa permeten incorporar una targeta CompactFlash. Vegeu també PXE i Arrancada de xarxa.

Paràmetres habituals de la targeta de xarxa

  • IRQ (Interrupt Request): Sol·licitud d'interrupció. Número de la línia d'interrupció que utilitza la NIC per avisar a la CPU que han arribat dades.
  • Adreça d'E/S: Espai de memòria que utilitzen la CPU i la targeta de xarxa per comunicar-se
  • DMA (Direct Memory Access)': S'utilitza poc en targetes modernes
$ ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0D:88:19:D2:A2
         inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
         inet6 addr: fe80::20d:88ff:fe19:d2a2/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:957270 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1254234 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:581767799 (554.8 MiB)  TX bytes:228519990 (217.9 MiB)
         IRQ     Interrupt:11 Base address:0x4000

Vegeu també ifconfig.

Per obtenir més informació sobre el maquinari de xarxa comsulteu les ordres lspci, lsusb i lspcmcia.

La configuració dels paràmetres actualment es fa per programari Abans algunes configuracions es feien utilitzant jumpers

Les targetes de xarxa modernes suporten diferents modes i velocitats.

  • Auto-negociació: permet a targetes amb diferents velocitats i modes poder establir una comunicació Algunes targetes fins i tot

detecten quan un cable esta creuat i permeten treballar amb aquests tipus de cables

  • Link: Índica que la targeta de xarxa esta connectada a un altre dispositiu (switch o targeta de xarxa)
$ sudo ethtool eth0
Settings for eth0:
       Supported ports: [ TP (Twisted Pair) ]
       Supported link modes:   10baseT/Half 10baseT/Full 
                               100baseT/Half 100baseT/Full 
                               1000baseT/Half 1000baseT/Full 
       Supports auto-negotiation: Yes
       Advertised link modes:  10baseT/Half 10baseT/Full 
                               100baseT/Half 100baseT/Full 
                               1000baseT/Half 1000baseT/Full 
       Advertised auto-negotiation: Yes
       Speed: 100Mb/s
       Duplex: Full
       Port: Twisted Pair
       PHYAD: 0
       Transceiver: internal
       Auto-negotiation: on
       Supports Wake-on: pg
       Wake-on: g
       Current message level: 0x00000037 (55)
       Link detected: yes


ethtool.

Wake ON LAN

WOL.


Segments de xarxa i dominis de col·lisió

Un segment de xarxa és una porció de xarxa separada de la resta per un dispositiu de xarxa com:

El segment de xarxa per tant és un concepte físic. Tenim també el concepte lògic:

  • Domini de col·lisió: És un segment lògic de xarxa on els paquets poden col·lisionar al ser enviats a un medi compartit.

Vegeu també VLANs com un exemple de com separar en diferents segments de xarxa virtuals un mateix segment de xarxa físic.

Depenent de si tenim un HUB o un Switch o depenen de la topologia de xarxa tindrem diferents combinacions de segments de xarxa o de Dominis de col·lisió.

Aquest tema està relacionat en gran manera amb la Seguretat en xarxes LAN (Ettercap i Eines de Hacking)

Switched LAN. Hubs i Switchs

Les LANs connectades a switchs o HUBS tenen una topologia física d'estrella.

  • Topologia lògica:
  • HUB: mateix segment de xarxa (bus compartit). Treballa a nivell físic (mecànic). Dispositiu “tonto” (dumb)
  • Switch: s'utilitza una base de dades per recordar les MACs (Ips) de cada port i es connecta de forma directa els ports d'origen i destinació d'una comunicació. reballa a nivell d'enllaç (taula de MACS). Dispositiu intel·ligent.
  • LAN Commutada: Cada PC té el seu propi segment de xarxa no compartit. Els switches són més segurs.

Topologies de xarxa

Classificació de les xarxes segons la seva forma:

Topologies.png
  • Estrella:
  • Tots els nodes es connecten a un node concentrador
  • Exemple: Ethernet amb RJ-45
  • Avantatges
  • Fàcil d'implementar i d'ampliar
  • Instal·lació ràpida
  • Un error en un node o segment de xarxa no influeix a la resta de la xarxa
  • No hi ha problemes de col·lisió de dades
  • Més seguretat
  • Inconvenients
  • Major longitud de cable i nombre de nodes limitat pel concentrador
  • Un error en el concentrador és un error a tota la xarxa
  • Bus:
  • Tots els nodes es connecten a la mateixa línia (bus)
  • Exemple: Ethernet amb cable coaxial
  • Avantatges
  • Fàcil d'instal·lar i requereix de poc cable.
  • Inconvenients
  • El medi de transmissió es compartit. Poden succeir col·lisions i lluites per la utilització del canal de comunicacions
  • Seguretat. Tots els nodes poden accedir a la informació de la resta.
  • Anell
  • Cada node esta connectat al següent i l'últim al primer
  • Cada node té un receptor i un transmissor i fa la funció de repetidor
  • Exemple: Token Ring
  • Avantatges
  • Poca longitud del cable
  • Inconvenients
  • Si un node falla la xarxa sencera falla.
  • No totes les comunicacions són igual de ràpides
  • Seguretat. Els nodes poden interceptar comunicacions

Altres topologies:

  • Malla: Entre els nodes s'estableixen enllaços punt a punt.Exemple: Xarxes WAN
  • Interconnexió total: És una topologia en malla on tots els nodes estan connectats entre si.
  • Arbre: És una extensió de la topologia en bus. Exemple: xarxes de televisió per cable, troncals fibra òptica i branques amb coaxial
  • Mixta: Xarxes amb combinacions de les topologies anteriors

Topologia física vs Topologia Lògica:

  • Físicament podem tenir una topologia concreta però realment esta utilitzant un altre topologia
  • Per exemple la topologia en estrella:
  • HUB
  • És un simple repetidor. La senyal que arribar a un port es torna a enviar a tots els ports del HUB:
  • Topologia lògica: BUS
  • SWITCH
  • Els commutadors només connecten el port emissor amb el port receptor
  • Topologia lògica: Estrella, punt a punt

Protocol ARP

El protocol ARP (Address Resolution Protocol) s'encarrega de traduir adreces IP a adreçes MAc al nivell d'enllaç en les xarxes LAN. ARP és un protocol que funciona que utilitza missatges de difusió a tota la xarxa per descobrir quin node de la xarxa té la IP demanada i aconseguir la seva MAC. Un cop aconsegueix la MAC, l'emmagatzema a la taula ARP.

Es pot averiguar la nostra taula ARP:

$ arp -n
Dirección                TipoHW  DirecciónHW         Indic Máscara         Interfaz
10.20.0.1                ether   00:14:5e:a4:31:5d   C                     eth0
10.20.2.250              ether   00:15:17:ca:3f:9b   C                     eth0


Per afegir una entrada a la taula ARP:

$ sudo arp -s 10.20.2.250 00:15:17:ca:3f:9b

Es pot averiguar totes les mac d'una xarxa amb:

$ sudo nmap 10.20.0.1-255

Aquesta comanda busca totes les máquines connectades. Si troba alguna, la taula ARP s'actualitza.

En realitat, qualsevol comanda o accés a una IP de la mateixa xarxa consulta en ARP o l'actualitza. Per exemple, ping.

Ús de la comanda ARP

Permet gestionar la cache ARP

Per consultar la cache:

$ arp -n

Eliminar entrades de la cache:

$ sudo arp -d 192.168.1.1

Es poden afegir entrades estàtiques amb:

$ sudo arp -s IP MAC

Per exemple:

$ sudo arp -s 10.20.2.250 00:15:17:ca:3f:9b

La entrada es pot afegir de forma temporal amb:

$ sudo arp -s 87.111.152.1 00:14:1c:32:af:1a temp

Podeu eliminar la entrada amb:

$ sudo arp -d 87.111.152.1

Es pot automatitzar l'acció d'afegir el vostre gateway com a entrada estàtica amb:

$ arp -s $(route -n | awk '/^0.0.0.0/ {print $2}')  $(arp -n | grep `route -n | awk '/^0.0.0.0/ {print $2}'`| awk '{print $3}')

Es una bona forma d'intentar evitar els atacs de ARP Poisoning d'eines com dsniff o Ettercap.

Si executem:

$ sudo tcpdump arp 

Podem capturar paquets arp nostres i de altres.

ARP Spoofing

ARP Spoofing (també anomenat ARP Poisoning, enverinament ARP o farsa ARP) és un atac empleat en xarxes Ethernet que permet a un atacant interceptar trames d'una xarxa LAN amb Switch.

L'atacant pot fer tres tipus d'atac:

   Atac passiu: Les trames interceptades no són modificades i es s'envien als corresponents receptors.
   Atac actiu: Pot modificar les trames injectant dades
   Aturar el tràfic: Atac de denegació de servei. 

Es necessari executar l'atac des de una màquina de dins la xarxa Ethernet i les màquines que es poden atacar han de pertànyer al mateix segment de xarxa

Enviant missatges AR falsos (fake frames). S'envia un arp-reply fals associant la MAC de l'atacat a la IP de l'atacant. Els paquets s'envien a l'atacant en comptes de a l'atacat. L'atacant pot escollir entre ser passiu (un cop llegides les trames les reenviar a l'atacat), actiu (injectar o modificar dades abans de reenviar – Man in the Middle).


ARP.

Trama Ethernet

Ethernet frame.png

  • Preàmbul: alterna zeros i uns, estabilitza el canal físic
  • SOF (Start Of Frame): identifica l'inici d'una trama
  • MAC d'Origen: Adreça MAC origen de la trama
  • MAC de Destinació: Adreça MAC destinació de la trama
  • Tipus (Ethertype): Identifica el protocol de nivell superior (IP)
  • Dades, payload o càrrega útil: són les dades reals que s'estan enviant (inclou capçaleres de protocols superiors)
  • Farciment: dades que omplen la trama fins a la mida mínima de 64 bytes
  • FCS (Frame Check Sequence): Codi CRC per comprovar la trama

Un altre imatge sense el preàmbul ni el SOF:

Ethernet.png

Les trames amb VLANs incorporen informació extra:

700px-Davidginovart frame.png

Consulteu VLAN#Protocol_IEEE_802.1Q._VLAN_Tagging

Vegeu també Encapsulament

Trama Ethernet amb VLANs

Consulteu Trama VLAN.

Maximum Transmission Unit (MTU)

El MTU és la mida en bytes de les dades que es poden enviar a un cert nivell OSI o capa OSI. Se sol parlar del MTU per al protocol IP, és a dir que el MTU si no es diu més res sol fer referència al MTU de capa 3 (IP), és a dir és la mida del paquet si se li treu la capçalera IP (que pot tenir una mida variable d'entre 20bytes i 40bytes).

Vegeu també:

Path MTU Discovery

Path MTU Discovery (PMTUD) o PMTUD és una tècnica estandaritzada en xarxes de computadors que permet determinar quina és la mida màxima de MTU que es pot utilitzar entre dos màquines d'Internet (connectades a nivell IP) normalment amb l'objectiu d'evitar la fragmentació de paquets.

Amb l'ordre traceroute podem esbrinar quins són els salts (nodes IP) pels que passa (PATH o camí) un paquet per comunicar dos màquines IP.

Normalment el que és fa és establir l'opció Don't Fragment (opció DF) de la capçalera IP al enviar els paquets cap a la seva destinació. Aleshores qualsevol dispositiu que estigui en el camí i que tingui un MTU menor que la mida del paquet, aleshores eliminarà aquell paquet (DROP) i enviarà de tornada al emissor un paquet ICMP de nom Fragmentation Needed (Type 3, Code 4) que contindrà el MTU d'aquell node.

D'aquesta forma l'origen pot reduir el MTU apropiadament per evitar la fragmentació de paquets..

Normalment el procediment és un procediment de prova i error, es van provant valors fins trobar el valor frontera que permet travessar tot el camí sense fragmentació IP.

Si el Path MTU es modificar després de la connexió i es inferior al MTU anterior el primer paquet més gran que el nou MTU provocarà un missatge d'error ICMP i s'haurà de tornar a esbrinar el nou MTU. El sistema operatiu és l'encarregat de periodicament fer aquestes comprovacions. A Linux normalment el valor de comprovació periòdica és de 10 minuts i es pot modificar a la variable:

$ cat /proc/sys/net/ipv4/route/mtu_expires
600

Amb l'opció -M del ping s'estableix la estratègia a seguir per a Path MTU Discovery. Del manual:

$ man ping
...
-M hint
            Select Path MTU Discovery strategy.  hint may be either do (prohibit fragmentation, even local one), want (do PMTU  discov‐
             ery, fragment locally when packet size is large), or dont (do not set DF flag).

Per exemple:

$ ping -M do -s 1900 www.upc.edu
From sergiBSF.local (192.168.111.2) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From sergiBSF.local (192.168.111.2) icmp_seq=1 Frag needed and DF set (mtu = 1500)
...

En canvi:

$ ping -M do -s 1472 www.upc.edu
PING www.upc.es (147.83.2.135) 1472(1500) bytes of data.
1480 bytes from barcelonatech-upc.eu (147.83.2.135): icmp_req=1 ttl=245 time=80.8 ms
1480 bytes from demoweb.upc.edu (147.83.2.135): icmp_req=2 ttl=245 time=79.0 ms

Fixeu-vos per que el valor 1472. Al manual de l'ordre ping:

$ man ping 
...
-s packetsize
              Specifies the number of data bytes to be sent.  The default is 56, which translates into 64 ICMP data bytes  when  combined
             with the 8 bytes of ICMP header data.

Per tant amb 1472 tenim que el MTU màxim hauria de der 1500:

1472 (mida del ping) + 8 bytes (capçalera ICMP) + 20 bytes (Capçalera IP)

Observeu al següent exemple com s'identifica la màquina 192.168.111.100 com la primera màquina del Path que té un MTU que impedeix enviar el nostre paquet:

$ ping -M do -s 1472  acacha.org
PING acacha.org (87.98.230.185) 1472(1500) bytes of data.
From 192.168.111.100 icmp_seq=1 Frag needed and DF set (mtu = 1460)
From 192.168.111.100 icmp_seq=2 Frag needed and DF set (mtu = 1460)

El MTU d'aquest node és 1460 que és 40 menys de l'habitual 1500, per tant per ajustar el paquet fem proves:

$ ping -M do -s 1433  acacha.org
From sergiBSF.local (192.168.111.2) icmp_seq=1 Frag needed and DF set (mtu = 1460)
...

i

$ ping -M do -s 1432  acacha.org
PING acacha.org (87.98.230.185) 1432(1460) bytes of data.
1440 bytes from acacha.org (87.98.230.185): icmp_req=1 ttl=45 time=108 ms

Veureu que 1932 és 40 bytes més petit i per això aquest paquet passa sense fragmentació.

Oco amb l'opció -s que no indica la mida total del paquet ping, cal sumar-li els 8bytes de ICMP.

Els valors poden canviar segons el tipus de connexió a Internet. Consulteu la següent taula de nombres màgics:

(TCP, IP, MTU and MSS magic numbers)
65535 és la mida màxima d'un paquet IPv4 contant també la capçalera (limitat pels 16 bits dels camp total length)
1500	The biggest-sized IP packet that can normally traverse the Internet without getting fragmented. Typical MTU for non-PPPoE, 
non-VPN connections.
1492	The maximum MTU recommended for Internet PPPoE implementations.
1472	The maximum ping data payload before fragmentation errors are received on non-PPPoE, non-VPN connections.
1460	TCP Data size (MSS) when MTU is 1500 and not using PPPoE.
1464	The maximum ping data payload before fragmentation errors are received when using a PPPoE-connected machine.
1452	TCP Data size (MSS) when MTU is 1492 and using PPPoE.
576	Typically recommended as the MTU for dial-up type applications, leaving 536 bytes of TCP data.
48	The sum of IP, TCP and PPPoE headers.
40     The sum of IP and TCP headers.
28	The sum of IP and ICMP headers.

MTU Ping Test

Linux:

Cal jugar amb el paquet size (opció -s):

 $ ping -s 1472 www.dslreports.com

Provat amb un router mikrotik amb PPPoE i el MSS forçat (normes mangle) a 1440

$ ping -s 1460 acacha.org
PING acacha.org (87.98.230.185) 1460(1488) bytes of data.
From ManensePortatilWifi.iesebre.com (192.168.0.55) icmp_seq=1 Frag needed and DF set (mtu = 1480)
From ManensePortatilWifi.iesebre.com (192.168.0.55) icmp_seq=2 Frag needed and DF set (mtu = 1480)
From ManensePortatilWifi.iesebre.com (192.168.0.55) icmp_seq=3 Frag needed and DF set (mtu = 1480)
From ManensePortatilWifi.iesebre.com (192.168.0.55) icmp_seq=4 Frag needed and DF set (mtu = 1480)

El marge és:

$ ping -s 1453 acacha.org

Per valors menors no dona el Frag needed.

El mateix passa amb Yahoo:

$ ping -s 1452 www.yahoo.es

Però no amb Google.

Windows:

A series of ping tests using the command, ping www.expedient.net -f -l xxxx, where xxxx is the packet size, can be used to determine the optimal MTU for your connection.

$ ping www.expedient.net -f -l 1492

Note the results above indicate that the packet needs to be fragmented. Lower the size the packet in increments of +/-10 (e.g. 1472, 1462, 1440, 1400) until you have a packet size that does not fragment.

Begin increasing the packet size from this number in small increments until you find the largest size that does not fragment. Add 28 to that number (IP/ICMP headers) to get the optimal MTU setting. For example, if the largest packet size from ping tests is 1462, add 28 to 1462 to get a total of 1490 which is the optimal MTU setting.

Change the MTU using DrTCP or editing the registry. See MTU Settings for further information.

Eines

ethtool

Consulteu ethtool

nictools-pci nictools-nopci

$ sudo apt-get install nictools-pci nictools-nopci

fing

Vegeu fing.

Bridge

Consulteu també:

PPP

Protocols [PPP].

Enllaços externs