Capa d'enllaç de dades

De castillowiki
Saltar a: navegación, buscar

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