2. Resolució d’Adreces Locals (ARP/RARP)
5.1 Missatges
5.2 Ping
5.3 Destinación inaccessible
5.4 Traza de la ruta de los datagramas
5.5 Altres tipus
Obviamente necesitamos identificar cada ordenador que se encuentre conectado en la red y que sea aprobado a nivel mundial. De ello se encarga el direccionamiento, un método que otorga a cada ordenador una única y exclusiva dirección, de manera que cualquier ordenador o host se diferencia del resto.
Una de las ventajas más notables es la ocultación de los detalles de la red física, que supone conseguir que la red parezca una única entidad uniforme.
Así, de entre las diversas formas de escoger un identificador para cada uno de los ordenadores: nombres (qué), direcciones (dónde), caminos (cómo), se escoge el formato de direcciones porque interesa "dónde" enviar los datos sin que se produzcan errores en la transmisión.
El direccionamiento es proporcionado por la capa de interfície-red, el cual se encarga el protocolo IP. En dicho protocolo existen las direcciones IP (en su versión 4), que consisten en un entero de 32 bits que sirven para identificar cada uno de los hosts y que tienen asignadas. Por lo que nos da un total de 2 (binario) elevado a 32 direcciones posibles. Por este hecho cabe remarcar que al haber más máquinas que IP´s, se opta por asignar IP´s dinámicas a cada máquina que se conecte a la red porque es evidente que la probabilidad que todas las máquinas puedan conectarse a la vez a la red es muy pequeña.
Esta direccion IP es única dentro de cada internet, por lo que pueden haber varias, así que cuando estas internets pasan a coexistir en Internet, hay un mecanismo que se encarga de hacerlas únicas, debido a que la existencia de dos hosts con igual dirección lógica sería causa de conflictos y mal funcionamiento de la red. Y por lo que respecta a la comunicación con un host se utilizará el identificador que tenga asignado, en este caso asignado dinámicamente.
REPRESENTACIÓN de la dirección IP:
Para la máquina resulta muy fácil manejar los números binarios, pero para las personas existen varias configuraciones para facilitar el manejo agrupándolas en grupos de bits.
Binaria: 32 bits seguidos.
Ex.: 10011110011011010000000000000011
Hexadecimal: 8 dígitos hexadecimales.
Ex.: 9E-8D-1A-10
Dotted quad: 4 bytes en representación decimal y separados por un punto. Es la representación más extendida, dada su fácil legibilidad y entendimiento para pasar a otra representación.
Ex.: 130.207.244.8
Decimal: corresponde al valor decimal del entero representado.
Ex.: 157944897
No obstante, dicha representación por ser numérica resulta incómoda de manejar y difícil de recordar, por ello se introdujo el 'Sistema de nombres de Dominio' DNS (Domain Name System) el cual cambia por una forma textual tipo nombre.dominio el anterior tipo numérico. Ejemplos son: yahoo.com; google.com, etc...
FUNCIONALIDAD de la dirección IP:
1) Identificar de forma única y exclusiva una destinación en la red (Hostld).
2) Contiene información que permite decidir y escoger el camino idóneo que debe seguir un datagrama para llegar a su destino (Netld).
La información contenida en la capa de interconexión de redes se encuentran codificadas en la direccion IP.
Dirección IP: Encaminamiento (Netld) + Identificación (Hostld)
(parte red encaminamiento) (parte máquina para encontrar destino)
Hay que tener presente que una dirección IP no se corresponde a una máquina, sinó a la conexión de red en sí, es decir, la dirección IP se encuentra dentro de la red. El router (máquina conectada a internet) lo que necesita saber es nuestra dirección IP.
Ventajas:
a) Encaminamiento eficiente. b) Identificación de redes. c) Fácil de configurar y de mantener. d) No necesita la participación de los usuarios.
Inconvenientes:
a) Si un host emigra a otra red existe un cambio de dirección. b) Un cambio de dirección de red lo han de realizar todas las máquinas a la vez. c) El camino que cogerán los datagramas depende de la dirección. d) No se comprueba la identidad del usuario, sinó de la máquina.
Fuentes:
Transparencias de la asignatura
[25/04] ()
NetID que es
l'idntificador de la xarxa i HostID que es el host de la xarxa es fixen
uns límits segons una certa divisió de l'espai d'adreces en classes que
segueix el següent esquema:
Classe |
de |
a |
Classe A |
1.0.0.0 |
126.0.0.0 |
Classe B |
128.1.0.0 |
191.255.0.0 |
Classe C |
192.0.1.0 |
223.255.255.0 |
Classe D |
224.0.0.0 |
239.255.255.255 |
Classe E |
240.0.0.0 |
255.255.255.254 |
En total tindrem poques xarxes de tipus A que tindran molts hosts:
27 (128) xarxes |
amb 224 (16M) hosts |
Aquests valors s'obtenen de elevar 2, ja que en cada posició pot
tenir un 0 o un 1, el nombre de bits que ocupa el NetID (que treurem el
nombre de xarxes) i el HostID (que treurem el nombre de hosts).Sabent
això podem extreure de l'esquema classful que hi hauran moltes xarxes
de tamany mig tipus B,
214 (16K) xarxes |
amb 216 (64K) hosts |
i xarxes tipus C,
221 (2M) xarxes |
amb 28 (256) hosts |
Gracies a l'esquema es podrà fer un encaminament molt eficient.
Si
el NetID i el HostID, identificadors de la xarxa, són tot 0's, adreça
de identificació que indica la propia màquina, o 1's, rebrà el nom de
adreça de difusió, tindran una funcionalitat especial.
NetId 0 HostId 0 |
La propia màquina |
NetId 0 HostId 1 |
Broadcast xarxa local |
NetId 1 HostId 1 |
Broadcast limitat |
NetId 0 HostId X |
Adreça a la xarxa local |
NetId X HostId 0 |
Identificador de xarxa |
NetId X HostId 1 |
Broadcast dirigit |
Uns altres tipus d'adreces són les adreces unicast que tenen un únic host/router, les broadcast on tots els router i hosts estan en la mateixa xarxa. També existeixen les adreces multicast
que permeten l’enviament de dades a un conjunt limitat de màquines que
poden estar a qualsevol xarxa de la internet. Si la xarxa física
suporta aquest tipus d'adreces les adreces IP multicast ens seran molt
útils. En l'esquema classful, la classe D és l'ecarregada.
L'assignació en internet d'adreces es bastant anàrquica, ja que podem asignar-les com vulguem. ICANN (Internet Corporation for Assigment of Names and Numbers) s'encarrega d'assignar-les però no tota sensera, es a dir, ICANN asigna NetID o dona autoritat de fer-ho als RIR (registres d'Internet regional)que són RIPE NCC, ARIN, APNIC, LACNIC, AfriNIC. L'administrador de la xarxa asigna HostID.
La
trasmisió de bytes entre aquestes adreces ha de seguir un ordre per a
que tohom estigui d'acord. Hi han dos modes de representació: BigEndian i LittleEndian. El que segueix internet és el BigEndian.
()
Cuales eran los motivos para crear este equema?
El problema del esquema classful era que el espacio de direcciones no se dividia en partes iguales. Se pedian mucho las redes del tipo B, que son bastante grandes, y poco las del tipo C que son pequeñas pero hay numerosas. Por eso en 1993 se introdujo el esquema classless: Una red puede tener mas que un prefijo. Las ventajas que las direcciones de IP son asignadas más economicamente, los prefijos aumentan el nivel de jerarquía y reducen el tamaño de las tablas de encaminamiento.
CIDR - Classless Inter-Domain Routing
Esta tecnica se usa para facilitar el encaminamiento porque bloques de direcciónes IP se agrupan en un elemento de la tabla. Un bloque de direcciones CIDR tiene esta forma:
A.B.C.D / n
El parte antes de la barra es la primera dirección IP del bloque (en la forma dotted quad). El número n tiene un valor entre 0 y 32. La mascara de la red es un número binario de 32 cifras que empieza con n 1s consecutivos y acaba con (32-n) 0s.
Por ejemplo: 128.96.39.0/25
El inicio del bloque CIDR: |
128.96.39.0 |
La mascara: |
11111111 11111111 11111111 10000000 |
La mascara en dotted quad: |
255.255.255.128 |
El final del bloque CIDR: |
128.96.39.127 |
Esto significa que todas las direcciónes en binario, que tengan la misma cabecera de 25 bits que la dirección del inicio, partenecen a este bloque. Como se ve en la mascara, son 7 bits. Por lo tanto el bloque tiene 2^7= 128 elementos.
Las classes A, B y C del esquema classfull son analogos a los bloques /8, /16 y /24.
Fuentes:
http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
transparencias de la asingatura
[20/04] ()
Este modo de direccionamiento fue diseñado por Steve Deering de Xerox PARC y Craig Module, está destinado a sustituir a IPv4.
La razón para sustituirlo es que el crecimiento de internet y de su uso hace que la cantidad de direcciones que se pueden asignar con IPv4 sean insuficientes, IPv6 tiene 128 bits (16 bytes) y por eso soporta 1024 direcciones por metro quadrado de superfície terrestre.
Las direcciones tienen 128 bits, que corresponde a 32 dígitos hexadecimales. Se puede pensar que las direcciones que permiten 128 bits son demasiadas, pero no se ha escogido ese número sólo por la cantidad de direcciones, sino también para asegurar que el encaminamiento sea efectivo y que tenga un esquema jerárquico que mantenga el espacio de direcciones sin fragmentar.
Notación de IPv6:
Se escriben en 8 grupos de 4 dígitos hexadecimales separados por ':'.
68E6:8C64:FFFF:FFFF:0:1180:96A:FFFF |
Se puede reducir la notación de la IP si hay grupos nulos, es decir, si todo el grupo está formado por ceros, por ejemplo:
2001:0db8:85a3:0000:1319:8a2e:0370:7344 |
es la misma dirección que:
2001:0db8:85a3::1319:8a2e:0370:7344 |
Si más de dos grupos consecutivos son nulos, pueden comprimirse como '::'. Si la dirección tiene más de una serie de grupos nulos consecutivos la compresión solo en uno de ellos. Así:
2001:0DB8:0000:0000:0000:0000:1428:57ab |
2001:0DB8:0000:0000:0000::1428:57ab |
2001:0DB8:0:0:0:0:1428:57ab |
2001:0DB8:0::0:1428:57ab |
2001:0DB8::1428:57ab |
Los números de IPv4 se pueden transformar en números de IPv6:
a las direcciones IPv4 con el formato IPv6 se les llama IP camuflada,
Se tiene que dejar un prefijo en IPv6 pequeño para direccionar las direcciones de IPv4. Este prefijo son 80 ceros seguidos de 16 0's, si el nodo también tiene una direccion IPv6, o 1's si no la tiene.
Sólo se tienen que cambiar los últimos 32 bits.
Se pueden escribir en base decimal -> ::ffff:192.168.89.9, o en base hexadecimal -> ::ffff:c0a8:5909
IPv6 extiende la notación CIDR (o notación de barra) para definir bloques:
12AB::CD30:0:0:0:0/60 |
Fuentes:
http://es.wikipedia.org/wiki/Ipv6
transparencias de la asingatura
()
ARP (Protocolo de Asociación de Direcciones)
Las direcciónes IP sirven para asignar direcciónes virtuales a las maquinas que estan conecatadas a una internet. Pero para la comunicación entre dos ordenadores se necesita la dirección física de la otra maquina. El protocolo ARP de bajo nivel se dedica a asignar direcciones de forma dinámica y traducir las direcciones IP a direcciones físicas. Asi es posible que programas de un nivel más alto trabajen sólo con direcciónes IP de nivel alto.
El problema mencionado se llama problema de asociación de direcciones. Para resolverlo existen varios estrategias. Se pueden usar tablas de encaminimiento. También se puede codificar la dirección física dentro de la direcció IP. O se aplica un protocolo específico para encontrar direcciones correspondientes. Se usa dentro del conjunto de protocolos TCP/IP.
Las direcciones físicas pueden ser configurables. Pero se usan pocas veces. Mucho más comun son direcciones fijos. Para solicionar el problema de asociación de direcciones el ARP aplica dos algoritmos depende de si la red dispone de difusión:
Escenario difusión (broadcast)
Este escenario se aplica en Ethernet. La rázon es que las direcciones físicas tienen 48 bits y por eso no se pueden codificar en los 32 bits de la dirección IP.
Todos los ordenadores conocen su dirección física F_x (corresponde a la placa) y la dirección IP I_x (el administrador se les ha asignado). Si un ordenador A quiere establecer una comunicación con el ordenador B, passará esto:
A conoce I_b dado por el usuario, pero todavia le falta F_b.
A envia a todos las maquinas un paquete especial utilizando difusión. En este paquete se pregunta la dirección física F_b de B:
Petición |
F_a |
I_a |
¿F_b? |
I_b |
Solamente B contesta renviando F_b:
Respuesta |
F_a |
I_a |
¡F_b! |
I_b |
Ahora A puede comunicar con B.
Escenario sin difusión
Se usa en redes con la tecnología ATM.
Un ordenador A que quiere comunicar con otro ordenador B tiene que estar conectado con B por un circuito virtual. En lugar de difusión hay un servidor S con una tabla que contiene las direcciones IP (I_x) y ATM (ATM_x). Todos los ordenadores conocen la dirección ATM_s del servidor.
El algoritmo en este caso es el siguiente:
A envia una petición al servidor S.
Petición |
ATM_a |
I_a |
¿ATM_b? |
I_b |
S contesta dandole la dirección ATM de B:
Respuesta |
ATM_a |
I_a |
¡ATM_b! |
I_b |
Ahora A puede comunicar con B.
Fuentes:
Internetworking with TCP/IP, Comer
transparencias de la asignatura
índex
Hay dos versiones independientes de este párrafo (2.1.) debido a un malentendido entre los miembros del grupo.
()
Amb adreçament IP veiem una única xarxa virtual, que utilitza adreces IP per a enviar i rebre datagrames. D'altra banda, per a poder comunicar dues màquines a la xarxa real necessitem l'adreça física
El mecanisme de traducció d'adreces depèn de la xarxa física:
Independent de la xarxa física |
Interconnexió de xarxes |
Dependent de la xarxa física |
Traducció d'adreçes |
Xarxa real |
Aquestes traduccions es fan a una xarxa local, però afecta igualment a cada salt que fa un datagrama desde l'origen fins a la destinació, perquè per comunicar amb el gateway tenim la IP però he d'aconseguir l'adreça per arribar a ell a la xarxa on estem connectats.
Aquest problema s'anomena address resolution problem, o problema de resolució d'adreces.
Hi ha diverses solucions per a resoldre aquest problema:
Taules de correspondències d'adreces IP a adreces físiques. Molt costoses de mantenir a xarxes grans, i cada vegada que canvïa una tarja de xarxa hem de modificar-la.
Adreça física codificada dins l'adreça IP.
Protocol específic per a resoldre la correspondència d'adreces. Aquesta és la solució utilitzada a TCP/IP (IPv4).
Hi ha dos tipus d'adreces físiques:
Configurables: En xarxes amb aquest tipus d'adreces podem fer que l'adreça física estigui codificada a la IP. És poc freqüent.
Fixes: Les normals. Hi ha dos casos a considerar:
Xarxes que admeten difusió (broadcast) (e.g. Ethernet)
Xarxes que no admeten difusió directa (e.g. ATM).
Cas model de xarxa amb broadcast, Ethernet:
Canviant la tarja de xarca tenim una adreça diferent.
48 bits d'adreça ethernet no poden ser codificats en 32 bits (A IPv6 sí serà possible!).
Necessitem poder afegir nous elements sense fer cap procediment especial.
No podem basar-nos en una base de dades centralitzada.
Utilitzem un protocol de baix nivell anomenat ARP (Address Resolution Protocol, [RCF 826]), que és eficient i fàcil de mantenir. El seu funcionament és molt simple:
En el cas que A vol enviar quelcom a B:
A coneix la seva IP i la IP a la qual vol contactar i la seva adreça física. Només li cal saber l'adreça física de B.
A envia a tothom (difusió, broadcast, ethernet ho permet) un paquet especial preguntant quina adreça física té la IP de B.
B respon amb la seva adreça física. Ara A ja pot enviar a B.
Petició de ARP enviada:
Petició |
FA |
IA |
F? |
IB |
Tothom rep aquesta trama. Només B contesta amb:
Resposta |
FA |
IA |
FB |
IB |
Cas model de xarxa sense broadcast, ATM: En el mateix cas d'abans, A i B han d'estar connectats a través d'un circuit virtual (ATMA-ATMB) per a poder comunicar-se. En aquest cas tenim un servidor ARP, S, que conté una taula amb informació adreça IP - adreça física. Tots els elements de la xarxa han de conèixer l'adreça física del servidor 'S'. L'esquema queda modificat d'aquesta manera:
A envia una petició d'adreça física de B a S a traves d'un circuit virtual establert entre tots dos. Això és possible ja que A coneix l'adreça física d'S.
S respon a A amb l'adreça física de B.
A ja pot enviar el datagrama a B perque ja coneix la seva adreça física.
Petició de ARP enviada:
Petició |
ATMA |
IA |
ATM? |
IB |
S rep aquesta trama i B contesta amb:
Resposta |
ATMA |
IA |
ATMB |
IB |
Tant en el cas de xarxes amb difusió com sense, s'utilitzen els mateixos missatges ARP.
El format d'aquests missatges és una mica més complicat que el mostrat aquí, ja que admet diferents tipus d'adreces físiques i de protocol. Ara seguit ho veurem.
Fuentes:
Transparencias de la asingatura
índex
FORMATO DE LOS MENSAJES ARP
A continuación se muestra el formato de los menajes ARP, y es el mismo tanto para redes en que se adimite difusión, como para redes en las que no se admite:
Campos más importantes:
Tipo de hardware: especifica el tipo de red local, por ejemplo el código 1 identifica Ethernet.
Tipo de protocolo: especifica el protocolo de red utilizado. Se emplean los mismos códigos que en el Ethertype (por ejemplo x0800 en el caso de IP).
Long. Dirección hardware: se especifica en bytes. Por ejemplo en el caso de direcciones MAC la longitud es de seis bytes.
Long. Dirección red: también en bytes, por ejemplo cuatro en el caso de IP.
Código operación: vale 1 en el caso de una pregunta ARP (¿quién tiene la dirección IP tal?) y 2 en el de una respuesta.
TERMINOS A TENER EN CUENTA EN UN DISEÑO ARP
Conceptualmente ARP puede ser dividido en tres partes, una sección de salida, una de entrada y un administrador de cache. Cuando un datagrama es enviado, el software de interfaz de red llama la sección de salida para enlazar una dirección de algún protocolo de alto nivel (por ejemplo IP) a su correspondiente dirección de hardware. Los procedimientos de la sección de salida regresan el enlace, el cual es usado por las rutinas de interfaz de red para encapsular y transmitir el paquete. La sección de entrada maneja los paquetes de ARP que llegan de la red. Los procedimientos de la sección de entrada actualizan el cache de ARP agregando nuevos enlaces. El administrador del cache implanta las políticas de remplazo. Examina las entradas en el cache y las retira cuando han cumplido un tiempo determinado.
Al construir software de ARP se debe de tener cuidado en implantar todos los aspectos del protocolo, ya que algunas aplicaciones pueden dar enlaces incorrectos debido a que eliminan el temporizador del cache con el fin de dar mayor eficiencia. Algunos parámetros que se deben de tener en cuenta cuando se desarrolla un software de ARP son los siguientes:
Tamaño del cache de ARP
Intervalo de tiempo que el cliente esperará una respuesta de ARP
Número de veces que un cliente volverá a intentar una petición.
Intervalo de tiempo entre intentos.
Tiempo de vida de una entrada en el cache
Tamaño de la cola de retransmisión de paquetes.
Fuentes:
Transparencias de la asignatura
[21/04] ()
A vegades es planteja el
problema invers a ARP, trobar la direcció IP a partir d'una determinada
direcció de xarxa local. Com exemple si es dona una situació d'una
estació de treball sense disc (diskless), aquesta xarxa ha de
carregar el seu sistema operatiu des d'un altre ordenador, normalment
situal a la mateixa LAN però amb desconeixement de tot el relacionat
amb la configuració de la xarxa. L'únic que l'estació coneix es la seva
direcció MAC que es troba en la seva tarja de xarxa.Per tant no poden
comunicarnos mitjançant TCP/IP fins que no tinguem la adreça IP.
En aquests casos es va inventar RARP (Reverse Address Resolution Protocol) i te la funcionalitat següent:
Una màquina sense IP envia la petició broadcast a una llista de direccions físiques.
El server RARP respon i enia la IP que te emmagatzemada en la taula
la màquina rep la IP i ja te la capacitat de comunicació amb les altres de la xarxa.
Aquest proces es realitaza normalment a través de TFTP enviant una imatge del boot a la màquina.
El format de RARP es el mateix que d'ARP pero amb una direfencia. La
direferencia és que s'usen els codis de les operacions 3 i 4 per a la
pregunta i la resposta respectivament.
Actualment s'utlitzen altres protocols com són BOOTP i DHCP.
Fonts:
Trasparencies de l'assignatura
índex
[20/04] ()
El protocolo ARP es susceptible de diversos ataques. La seguridad no era uno de sus requisitos de diseño.
ARP Spoofing (poisoning): Se pueden enviar datagramas ARP con una direccion fuente MAC falsa para "envenenar" las tablas ARP confundiendo a los dispositivos de red (los switch por ejemplo, que, como resultado, pueden enviar los paquetes erroneamente a otra máquina). Se pueden hacer varios tipos de ataques utilizando el ARP Spoofing, por ejemplo:
Denial of Service (Denegación del servcio): Para el trafico en de red, modificando la tabla de tal manera que la maquina quede aislada y no pueda recibir datagramas.
Man in the Middle (Persona en el medio): Se pueden interceptar todos los datagramas que se intercanvian dos hosts de manera imperceptible. El tráfico es reenviado a través de un host que también use el ARP Spoofing y analice, por ejemplo, los passwords y otra información eviada en los datagramas.
MAC Flooding (Inundación de direcciones): Vonsiste en convertir el switch en un hub para poder analizar todo el trafico de la red que pasa por allí.
No se pueden evitar totalmente los ataques, pero hay algunas soluciones y mediadas para minimizar los efectos, por ejemplo:
Entradas MAC/IP estáticas en la caché: Fijar los routers, o todos los hosts si la red es pequeña.
Función Port Security eb algunos switch: algunos conmutadores solo permiten una dirección MAC.
Monitorización de la red: Monitorizar la red en busca de comportamientos extraños y detectar los creadores del "envenenamiento".
Monitorizar la caché ARP: Usar herramientas para monitorizar la caché ARP local y notificar al administrador si se detecta cualquier comportamiento extraño.
También se puede hacer un uso legítimo del ARP spoofing, por ejemplo, las herramientas de registro en red pueden redirigir hosts no registrados a una pagina de registrarse antes de darle acceso completo a la red.
Fuentes:
http://en.wikipedia.org/wiki/ARP_poisoning
transparencias de la asingatura
[25/04] ()
L'objectiu del protocol
d'internet es poder proporcionar a l'usuari una abstracció de les
xarxes fisiques (es el que deiu en les trasparencies " un servei de
baix nivell que accepta datagrames i els entrega).
La
interconexió d'aquestes xarxes mitjançant IP es realitza gracies a que
IP proporciona un servei sense conexió d'entrada de dades. Gracies a
això IP s'ha convertit en la base de tota comunicació d'Internet. L'arquitectura
d'aquesta Internet es basa en 3 serveis independets entre si, es a dir,
que es poden modificar un sense que els altres s'hagis de modificar
també:
Servei de capa d'aplicació: S'ofereix a
l'usuari i no a altres capes. Aquest servei identifica els
interlocutors de la comunicació, sap si hi han recursos suficients per
establir la comunicació, sincronitza aplicacions i estableix acords
sobre els procediments per controlar la integritat de les dades.
La capa d'aplicació te la responsabilitat de soportar les aplicacions (procesos d'usuari que cooperen amb un altre que esta situat en una altra màquina)de la xarxa.
Servei de transport fiable
Servei d'entrega de datagrames sense connexió: Aquest servei es caracteritza per estar definit com:
no fiable: L'entrega de les dades no esta garantitzada.
Del millor intent: Se suposa que no pot fallar, que el procés funcionara correctament. Solament pot fallar si no tenim recursos suficients per realtizar la comunicació o si la propia xarxa falla.
Sense connexió: cada paquet serà tractat de manera independent. Això implica que els paquets que contenen fragments del mateix datagrama no tenen que pasar per el mateix lloc.
La IP és considera la unitat bàsica per a la trasmisió de dades en
Internet. També es qui gestiona la funció d'enrutament, es a dir,
escullirà els camins per on pasaran les dades, i és qui s'encarrega de
definir les regles de l'entrega no fiable. En aquesta entrega podem
considerar accions com processar dades, que datagrames son acceptats i quins no, quan llançar els missatges d'error, entre altres.
La unitat en que s'envien les dades que la IP s'encarrega de direccionar s'anomena datagrama.
Fonts:
http://dis.eafit.edu.co/cursos/st716/material/Introduccion.ppt
Trasparencies de l'assignatura
índex
()
Un datagrama es un fragment de paquet que s'envia amb la suficient informació per que la xarxa pugui encaminar el fragment cap al destinatari de manera independent als fragments restants. Això pot provocar una recomposició barrejada o incomplerta del paquet al destino.
L'estructura d'un datagrama és: capçalera i dades.
Dos protocols basats en datagrames son IPX i UDP.
Els datagrames per si sols com una unitat d'informació que pot completar una tasca sencera sols tenen cabuda als serveis de xarxa no orientats a connexió (ConnectionLess). Es serveis que orientats connexió necessitaran de varis datagrames per connectar, desconnectar, hadshaking dels processos i dades en sí.
A IP només existeix una unitat de dades, a diferència de X.25 en que teniem 5 de diferents. A més IP no especifica el format de les dades. Aquest datagrama serà transportat en una trama Ethernet, per exemple.
Capçaleres |
Dades |
será tranemès com:
Preamble |
Física Orígen |
Física Destí |
IP |
Capçaleres |
Dades |
CRC |
Datagrama IP (no depèn del hardware):
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28...31 |
Versió |
Long. Capç. |
Tipus de servei |
Longitud Total | |||||||||||||||||||||||||
Identificació |
Flags |
Offset de Frag. | ||||||||||||||||||||||||||
Temps de vida (TTL) |
Protocol |
Checksum de la capçalera | ||||||||||||||||||||||||||
Adreça IP d'origen | ||||||||||||||||||||||||||||
Adreça IP de destí | ||||||||||||||||||||||||||||
Opcions IP (si n'hi ha) |
Padding | |||||||||||||||||||||||||||
Dades |
Versió: 4 bits per indicar la versió del protocol que s'ha utilitzat per crear el datagrama. Abans de processar el datagrama és obligat comprovar aquesta versió. La versió que veiem és la 4 (IPv4).
Longitud capçalera: 4 bits per indicar la mida de la capçalera, en número de paraules de 32 bits. La longitud més habitual (quan les opcions i el no hi són) és de 20 bytes, per tant 5 paraules.
Longitud Total: Longitud del datagrama IP sencer, contant capçaleres i dades, en bytes. La longitud de les dades s'obté restant-li la longitud de la capçalera. La longitud màxima d'un datagrama IP és doncs de 216, 65535 bytes. La longitud màxima per a les dades quan tenim
totes les opcions possibles és de 216 − (24*4) = 65471 bytes.
Tipus de Servei: Normalment aquest camp s'anomena TOS (Type of Service) i indica cóm s'ha de tractar el datagrama. Té 8 bits. Hi ha dos possibles interpretacions:
Original:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Precedència |
Retard |
Capacitat |
Fiabilitat |
No usat |
IETF (final dels anys 90):
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Codepoint dels serveis diferenciats (DSCP) |
No usat |
Consideracions:
No tots els routers interpreten el TOS.
És important poder disposar d'un mecanisme de precedència.
El tipus de servei només és una preferència ja que no sempre es pot garantitzar.
Fonts:[[BR]]
http://www.wikipedia.org
Apunts de clase.
()
La fragmentació és el procés de divisió dels datagrames en troços o fragments donat que cada xarxa física nomes pot portar una certa quantitat de dades en un mateix paquet.
Els datagrames poden atravessar moltes xarxes diferents, cada una amb un valor límit de quantitat de dades que pot portar un paquet. Aquest valor es coneix com MTU (Maximun Transfer Unit o Unitat Màxima de Transferència).
Un datagrama pot arribar a tenir fins a 64Kb però la majoria de xarxes físiques no poden transportar trames tan grans. El que interessa és que cada datagrama vagi en una única trama per aconseguir una major eficiència en la comunicació. Aqui es planteja la problemàtica de escollir una longitud de datagrama que sigui prou gran per a ser eficient, i suficientment petita per no haver d’utilitzar més d’un paquet per transportar el datagrama. Un fet que complica aquesta elecció és el desconeixement a priori del MTU mínima de les xarxes que atravessara el datagrama.
La solució que adopta TCP/IP és la de pendre una longitud inicial per defecte que es consideri adient i, si ens trobem amb una xarxa que no accepta aquesta longitud, fragmentarem el datagrama. Aquesta fragmentació en torços més petits esdevindran cada un d’ells nous datagrames més petits, amb capçaleres molt similars a les del datagrama original.
La posterior desfragmentació es produeix en la destinació. Això comporta uns certs avantatges, però també implica alguns problemes:
Aventatges:
Els datagrames son encaminats de manera independent.
Els routers pels que passa el datagrama no s’han de preocupar de guardar ni desfragmentar els datagrames.
Desaventatges:
Pèrdua d’eficiencia en la comunicació si els datagrames fragmentats circulen per xarxes amb un MTU molt més gran.
Es més probable que es perdin fragments de datagrames pel camí, fent impossible la reconstrucció.
Per dur a terme la fragmentació, IP utilitza una sèrie de camps a la seva capçalera. Els descriurem breument:
Identificació: Indica els fragments que pertanyen a un mateix datagrama original. Aquests fragments comparteixen una mateixa identificació.
Offset del fragment: Es tracta d’un múltiple de 8 bytes que indica quina part de dades del datagrama original conté el fragment en questió. Aquest camp permet, posteriorment, desfragmentar els paquets i reconstruir el datagrama original.
Flags: Està composat per 3 bits, dos dels quals s’utilitzen per la fragmentació.
- Bit de no fragmentació: S’utilitza, de manera excepcional, per a fer tests sobre la fragmentació. Si està activat indica que la fragmentació no s’ha de efectuar.
- Bit de més fragments: Informa, en el cas que estigui activat, que encara existeixen més fragments provinents del mateix datagrama original. L’últim fragment el porta desactivat, indicant el final del datagrama original.
Fonts:
Apunts de clase
[20/04] ()
La cabecera del datagrama de IP está formada por varios campos:
Versión (4 bits): Informa de la versión del protocolo IP, 4 (0100) para la IPv4 y 6 (0110) para IPv6.
Longitud de la cabecera (4 bits): En este campo se guarda la longitud de la cabecera en palabras de 32 bits (4 bytes), por lo tanto el número de bytes de la cabecera tiene que ser un múltiplo de 4. Y también por ser de 4 bytes el tamaño de la cabecera se limita a 60 (15*4) porque 15 es el número máximo que se puede expresar con 4 dígitos binarios. Por defecto las cabeceras IP son de 20 bytes, y por lo tanto este campo contiene un 5.
Tipo de servicio (8 bits): Se usa para dar un trato especial al paquete. Este campo normalmente no se implementa.
Longitud total del paquete (16 bits): Contiene la longitud del paquete en bytes. Como el campo es de 16 bits, los paquetes tienen que ser de 65.535 bytes (216 - 1) como máximo.
Identificador del paquete (16 bits): Contiene un identificador que es diferente para cada paquete que genera la esta estación.
Flags de fragmento (3 bits): Son para gestionar la fragmentación del paquete.
Tiempo de vida o TTL (Time To Live) (8 bits): Antes contenía el tiempo máximo de vida en segundos del paquete en internet. Ahora es el número máximo de Routers por los que puede pasar el datagrama, cada Router resta 1 al TTL + el tiempo que se ha estad (en los routers actuales ese tiempo es nulo y el TTL es igual al número de saltos máximo). Cuando el router le ha restado 1 al TTL evalua si es igual a cero, si lo es el datagrama es descartado y se le envía un mensaje de error al origen. ESte campo se utiliza para que un paquete no esté dando vueltas infinitamente en la red en el caso de que haya habido algún problema al entregarlo.
Protocolo (8 bits): Identifica el protocolo de transporte que se va a utilizar, es importante que sea estandard. Los más utilizados son: TCP (6), UDP (17), ICMP (1).
Checksum (16 bits): Se usa para asegurar la integridad de la cabecera, es una suma de los campos en complemento a 1 y el complemento a 1 del resultado. El responsable de los errores en el campo de los datos del datagrama es el usuario, no la cabecera.
Direccion de origen IP (32 bits): es la IP de la máquina que ha generado el paquete, este valor nunca cambia, aunque pase por un router (o n) la direccion de origen siempre será la de la máquina que ha creado el paquete.
Direccion de destino IP (32 bits): es la IP de la máquina a la que va destinado el paquete, este valor nunca cambia (igual que la de origen).
Opciones IP (0 <= x <= n*32 ; n<= 10): Este campo no es necesario y está limitado a 40bytes. Cada opción tiene un byte de código de opción, y 0 o más bytes de datos. El byte de código consta de un bit de copia (si la opción es copiada o no a todos los fragmentos), 2 bits de la clase de la opción (Control de datagrama o de red, o, debugging i medidas), 5 bits para un campo número que es un campo específico para cada clase de opción. Ejemplos de opciones importantes:
Opción de registro de camino (Trace): Se deja un espacio para que todos los routers vayan guardando allí su IP.
Opción de enrutamiento de origen: Desde el origen se indican todas las direcciones que tiene que seguir el datagrama hasta su destino, puede ser estrico (si el camino se da entero) o no estricto (si el camino real que se sigue incluye el camino indicado pero no es exactamente el indicado).
Opción timestamp: Es igual que la opción de registro de camino pero guardando tiempos y no IP's.
Problemas prácticos: Algunas opciones son interesantes, pero en general no se usan. Por ejemplo, la opcion timestamp sería útil para calcular la velocidad de internet, pero en la práctica, las optimitzaciones de los routers hacen que no sea útil, ya que generalmente los routers dividen los datagramas según la longitud de les cabeceras para hacer un tratamiento especial en caso de tener opciones y la velocitat medida no sería real.
Como curiosidad, en clase vimos una página de paquetes extraños ( Museum of Broken Packets ), como por ejemplo uno que no tiene cabecera, y uno en concreto de un paquete que enviaba hotmail en el que el campo TTL la cabecera de la cabecera es igual a 1, lo que es casi imposible que se produzca por casualidad varias veces enviandose desde el mismo servidor, así que esto significa que la máquina que ha enviado el paquete ya sabía de antemano el número de routers por los que iba a pasar el paquete, habiendo hecho previamente una traza y consiguiendo información de la red dónde se encuentra el host del usuario.
+ TCP 0x14 64.4.14.250:80 -> 193.0.67.34:62990 ttl=1 off=0x0 id=0x7529 tos=0x0 len=40 phys=46 |
Fuentes:
http://www.uoc.edu/masters/cat/img/922.pdf
Museum of Broken Packets
transparencias de la asingatura
El encaminamiento IP permite a un datagrama Ip llegar de un origen a un destino pasando por distintas redes físicas. Este encaminamiento puede ser denominado IP forwading o routing. A diferencia de otros protocolos que funcionan en un solo tipo de red física, IP tiene que hacer la elección de distintos caminos, es ahi donde aparece el encaminamiento.
Es preciso entender con claridad el concepto de Interficie de red para comprender el de encaminamiento. Una interficie sería el punto de acceso de un host a una red. Una interficie contiene información sobre la red ( tipo, dirección física, MTU) y sobre el acceso (Dirección IP, Mascara de red, estadísticas etc) y ofrece los distintos servicios para acceder a ella. Es decir un host puede tener distintas interficies de red cada una conectada a una red distinta.
Existe un tipo de interficie que nos permite la comunicación reflexiva con el propio host. Es decir, podemos establecer conexiones de red dentro de una misma maquina. Esta interficie se llama loopback y nos permite hacer pruebas con Ip ademas de utilizar aplicaciones orientadas a red o servicios en una sola maquina aislada de cualquier red.
Fuentes:
Transparencias de la asignatura
[21/04] ()
El direccionamiento lo realizan los hosts y los routers.
Hay dos tipos de encaminamiento:
Entrega directa: La transmisión del datagrama se hace entre un host y otro de la misma red física, directamente, sin pasar por ningun router.
Entrega indirecta: El destino del paquete no está conectado en la misma red física, por lo tanto hace falta que el datagrama pase a través deun router.
Entrega directa
Para
enviar un datagrama por entrega directa, lo primero que hay que hacer
es obtener la dirección física del destino mediante ARP y se envía la
trama físicamene. Esta trama se envía directamente, no necesita routers, porque el destino está dentro de la misma red física.
Algoritmo de entrega directa:
Encontrar la dirección física real FB a partir de la IP IB (mediante ARP).
Enviar el datagrama B a través de la red física.grama a B a través de la xarxa física.
Entrega indirecta
La
entrega indirecta se realiza cuando la dirección del destino no se
encuentra en la mísma red física. El Host que envía el datagrama lo
entrega a un router, y este router se encarga de direccionarlo a otro
hasta que llegue a la red física en la que se encuentra el destino, una
vez allí elrouter realiza una entrega directa. Internet está formada
por una red de routers interconectados y cooperando para que los
datagramas pasen de router a router hasta llegar a la red de su
destino.
Algoritmo de entrega indirecta:
Encontrar la dirección IP del router R.
Encontrar la dirección física real del router FR a partir de la IP IR (mediante ARP).
Enviar el datagrama a R a través de la red física.
si B está en la misma red física entonces Entrega directa a B
sino entrega directa (otra vez)
En general el algoritmo de enrutamiento para un host y un router será:
Ruta Datagrama(Datagrama)
{
Extrae de la Cabecera de Datagrama la dirección de destino D;
Extrae de D el prefijo de Red N;
Si N corresponde a cualquier dirección directamente conectada Entonces
Envía el Datagrama a D sobre la Red N; (Entrega directa)
Sino
Si hay una ruta especifica para D Entonces
Envía Datagrama al salto siguiente especificado; (Entrega indirecta)
Sino
Si hay una ruta para la red N Entonces
Envía Datagrama al salto siguiente especificado; (Entrega indirecta)
Sino
Si hay una ruta por defecto Entonces
Envía el Datagrama a la dirección por defecto; (Entrega indirecta)
Sino
Declarar Fallo de Enrutamiento;
Fsi
Fsi
Fsi
Fsi
}
FUENTES:
http://www.monografias.com/trabajos7/protoip/protoip.shtml#ESS
http://www.uoc.edu/masters/cat/img/922.pdf
Transparencias de la asignatura.
()
Cuando un host o un router de una red quiere enviar un paquete, consulta su tabla de rutas. Esta tabla administra la información sobre las direcciónes de maquinas conecidas.
Las entradas de la tabla tienen el formato siguiente:
(red destinataria R, router/dirección final ADDR, interfaz I)
es decir: Para cada red R contiene la dirección ADDR del router siguiente o la dirección destinataria (para enviar directamente) y el interfaz I a usar.
Una vez encontrado el router siguiente el datagrama se envia a este. Es importante mencionar que la dirección destinataria dentro del datagramo no se cambia durante todo el camino ya que tenemos los routers que se hacen cargo del encaminamiento.
Esto significa que el router no conoce todo el camino, solamente el proximo destinatario (también se llama next hop). Este hecho, junto con el sistema de prefijos de IP (vease el párrafo 1.4.), hace que las tablas de rutas queden pequeñas, los detalles del encaminamiento sean transparentes y en consecuencia el encaminamiento sea eficiente.
Las tablas de rutas pueden tener entradas especiales:
Camino por defecto:
La
entrada contiene el router por defecto (default). Los datagramas, para
cuyos direcciones IP no se podían encontrar entradas en la tabla, se
envian todos a aquel router.
Caminos a hosts concretos:
Estas entradas sirven para especificar un camino fijo para una dirección IP.
Fuentes:
transparencias de la asignatura
Internetworking with TCP/IP, Comer
()
Aqui tenim algunes consideracions necesàries en quan a l'encaminament de datagrames basat en taules de routing: Normalment, el tràfic dirigit cap a una mateixa xarxa seguirà sempre el mateix camí, sense importar quin sigui l'estat de la xarxa (hi hagi o no congestió), sense discriminar el tipus de tràfic.
Si el tràfic destinat a aquesta xarxa pot utilitzar més d'un camí per arribar la seva destinació, només utilitzarà un únic camí, evitant utilitzar més d'un camí de manera concurrent.
Els datagrames enviats s'entreguen o es descarten només en la destinació (últim router). En el cas de que siguin descartats, s'ha d'activar algun mecanisme que informi a l'origen de l'error.
Els camins d'anada que segueixen els datagrames no té perquè coincidir amb els camins de tornada, donat que cada router encamina el tràfic de manera independent.
Pel que fa a IP, a l'arribada d'un datagrama, l'interfície de xarxa li pasa aquest datagrama al mòdul d'IP, i comprova que la seva adreça i la de destinació coincideixin. En aquest cas s'accepta el datagrama i es pasa a la capa superior. S'ha de tenir en compte que poden existir vàries interfícies de xarxa amb adreces ip diferents, aixi com també s'han de tenir en compte les adreces de broadcast.
En el cas de que el datagrama no sigui acceptat (la adreça d'origen i destí no coincideixen), si el receptor es un host, el datagrama es descarta (error per mala configuració, no s'ha de reencaminarja que causaria tràfic innecessari). Si el receptor és un router, el datagrama es reenviat (fowarding: aplicació de l'algorisme d'encamminament si al decrementar ttl no és 0).
Fonts:
Apunts de clase
[21/04] ()
El protocolo de internet (IP) necesita un mecanismo de envío de mensajes de propósito específico, ya que, como hemos visto, IP es un servicio que no es fiable, y se algo falla no tiene forma de notificar lo que ha pasado (por ejemplo, que el host destino no esté conectado, que el TTL haya llegado a 0, que un ruter esté congestionado, etc.)
El protocolo de mensajes de control de internet (Internet Control Message Protocol, ICMP) sirve para comunicar ruters i hostst para intercanviar información de conrol y de error. Este protocolo es una parte requerida del protocolo IP y tiene que estar en todas las implementaciones.
Hay discusión si el ICMP es realmente un protocolo o si es sólo una herramienta que utiliza IP para notificar errores porque lso mensajes ICMP viajan dentro de los paquetes IP (al contrario que los ARP), pero en general, se considera que los dos protocolos están al mismo nivel, primero porque ICMP es una parte requerida para IP, y segundo, porque ICMP comparte el datagrama IP únicamente para tener un solo tipo de mensaje en la capa de red.
Al no dispooner del camino que sigue un datagrama, los mensajes de ICMP solo pueden ser enviados al host de origen, no a los elementos intermedios.
Como se colocan los mensajes ICMP dentro de los datagramas IP?
En el campo de identificador de protocolo se pone el valor 1.
Después va la cabecera del ICMP.
Y seguidamente los datos del ICMP.
Formato de los mensajes
En la imagen superior se muestran los campos de la cabecera y la forma en la que viajan los mensajes en el datagrama IP.
Todos los mensajes ICMP tienen un formato diferente pero todos comparten el mismo modelo de cabecera, que tiene tres campos, el tipo, el código y el Checksum. Además los mensajes de error siempre llevan la cabecera y seguidamente los primeros 64 bits del datagrama IP que ha causado el error.
Campos de la cabecera:
Tipo (8 bits): Identifica el tipo de mensaje.
Código (8 bits): Contiene más información sobre el tipo de mensaje.
Checksum (16 bits): ICMP utiliza el mismo algoritmo de checksum que IP, pero calculado solamente sobre el mensaje.
Hay trece tipos de mensajes ICMP actualmente en uso, y hay unos 30 subtipos identificados con el campo código, en la siguiente tabla se muestran los 13 tipos:
Tipo |
Código |
Descripción |
Clase |
0 |
0 |
Respuesta de eco (echo reply) |
Petición |
8 |
0 |
Petición de eco (echo request) |
Petición |
3 |
0-15 |
Destino inalcanzable (unreachable destination) |
Error |
4 |
0 |
Petición de control de flujo (source quench) |
Error |
5 |
0-3 |
Redireccionamiento |
Error |
9 |
0 |
Publicación de rutas |
Petición |
10 |
0 |
Petición de rutas |
Petición |
11 |
0-1 |
El tiempo de vida ha expirado (time exceeded) |
Error |
12 |
0-1 |
Cabecera IP incorrecta |
Error |
13 |
0 |
Petición de hora |
Petición |
14 |
0 |
Respuesta de hora (en milisegundos desde la medianoche) |
Petición |
17 |
0 |
Petición de la máscara de la subred |
Petición |
18 |
0 |
Respuesta de la máscara de la subred |
Petición |
Que pasa si uno de estos mensajes ICMP genera un error?
Antes de nada aclarar que sí que pueden fallar, porque de hecho los datagramas ICMP son iguales que los IP, pero en cambio, aunque cualquier datagrama IP puede generar un mensaje de error no todos los mensajes ICMP generan un mensaje de error al fallar, los mensajes de error son una excepción, porque pueden provocar respuestas en cascada que pueden afectar gravemente a la red, por eso es importante remarcar la diferencia entre los mensajes ICMP que son de error y los que son de petición (como se ve en la tabla de más arriba).
Igualmente, como aclaración, también hay un grupo de paquetes o mensajes IP que no generan mensaje de error: los paquetes IP destinados a unadirección broadcast, los fragmentos que no sean el primero y si la dirección de origen no identifica una única estación (por ejemplo, la dirección de origen válida 0.0.0.0 o la dirección de origen no válida 255.255.255.255).
Parches
No todas las
implementaciones IP han tenido en cuenta la generación de mensajes de
error, y algunos usuarios se han aprovechado estos problemas para
bloquear sistemas y redes remotas, y de vez en cuando se descubren
nuevas excepciones que pueden afectar a los sistemas.
Por
eso los fabricantes de sistemas operativos publican parches
regularmente para solucionar las vulnerabilidades que se van
descubriendo.
Fuentes: http://www.uoc.edu/masters/cat/img/922.pdf
Transparencias de la asignatura.
[21/04] ()
És una utilitat que
comprova l'estat de la conexó amb diferent nombre d'equips remots per
mitjà de l'eviament de paquets d'eco de solicitud (echo request)i de resposta (echo reply)que estan definits en el protocol de la xarxa ICMP i són necessaris per un servei bàsic de comprovació en bon funcionament. El missatge d'eco ha de seguir aquest format:
per detectar errors en xarxes o en routers IP.
Per saber el temps que triguen en comunicar-se dos punts remots.
Fonts:
http://es.wikipedia.org/wiki/Ping
Trasparencies de l'assignatura
índex
[23/04] ()
El mensaje ICMP de 'Destinación inaccessible' (Host unreachable) es un mensaje que se genera cuando un router no sabe encaminar un paquete. Este mensaje no se genera si el datagrama que provoca el error es un datagrama enviado a una dirección 'multicast' (varios destinatarios agrupados) o es otro datagrama de error.
La razón para que se genera puede ser tanto fallos físicos en las conexiones, el host no existe, el puerto o el protocolo de destino no está activo o los datos llegan fragmentados pero tienen activado el 'flag' de 'no fragmentación'.
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
10 |
11 |
12 |
13 |
14 |
15 |
Tipo (=3) |
Código (0-12) | ||||||||||||||
CRC | |||||||||||||||
No usado (ceros) | |||||||||||||||
MTU siguiente salto | |||||||||||||||
Cabecera IP y primeros 64 bits del datagrama |
El campo de código se usa para especificar el tipo de error:
0: Red inaccesible.
1: Host inaccesible.
2: Protocolo inaccesible; el protocolo de transporte designado no está soportado.
3: Puerto inaccesible.
4: El datagrama es demasiado grande. Se requiere fragmentación pero el flag de 'no fragmentación' (DF) está activado.
5: fallo en la ruta de origen.
6: Error desconocido en la red de destino.
7: Error desconocido en el host de destino.
8: Error aislado en el host de origen (solo uso militar).
9: La red de destino está prohibida por el administrador.
10: El host remoto está prohibido por el administrador.
11: La red es inaccesible para el tipo de servicio.
12: El host es inaccesible para el tipo de servicio.
13: Comunicación prohibida por el administrador (paquetes filtrados).
14:
Violación de la precedencia de hosts (indica que la precedencia
requerida no está permitida para la combinación de host o red y puerto.
15: Paquete eliminado
por normas de prioridad (la prioridad del datagrama está por debajo del
nivel establecido por los administradores de red.
El campo de 'MTU siguiente salto' (bits 48-63) contiene el MTU del siguiente salto si un error de tipo 4 ocurre.
La cabecera IP y los 64 bits del paquete que generó el eror se usan
para que el host que recibe el error pueda comprobar el datagrama que
lo generó.
Fuentes:
Transparéncias de clase
http://www.saulo.net/pub/tcpip/
http://www.wikipedia.org
[24/04] ()
Para encontrar el camino aproximado que siguen los datagramas hasta llegar al destino solicitado se puede utilizar el mecanismo de traza de ruta (traceroute).
Implementación
Traceroute funciona incrementando el TTL de cada paquete enviado
consecutivamente, de manera que el 1er paquete tiene el uno, el segundo
el dos y así consecutivamente.
Como
hemos visto anteriormente, cuando un paquete pasa por un host se
decrementa su TTL y, si es mayor que 0 se reenvía al siguiente salto.
Si el TTL llega a 0 el host devuelve un ICMP de error del tipo 11,
'time exceed'.
Este
ICMP de error lo utiliza traceroute para ir descubriendo los hosts que
los generan, y por lo tanto, los hosts por los que pasa ese datagrama.
Pero
esto significa únicamente que obtenemos la traza de los hosts por los
que pasan esos datagramas en concreto; no tenemos ninguna grantía de
que los siguientes datagramas pasen también por ahí, todo y que es muy
probable debido a la estaticidad de las redes, que no suelen variar en
cada instante, sino que suelen mantener las rutas fijas.
El host final devolverá normalmente un ICMP de error del tipo 3, 'puerto inaccesible'.
En los sistemas operativos UNIX y Linux modernos 'traceroute' usa
por defecto un datagrama UDP con un puerto de destino igual o superior
al 33434. Existe también la opción de hacerlo funcionar con datagramas
ICMP 'echo reply' (tipo 8), que es el comportamiento por defecto de la
misma utilidad de los sistemas operativos Windows.
Existen también implementaciones que usan paquetes TCP, como puede ser 'tcptraceroute'
En ocasiones al hacer un traceroute nos encontramos que algunas
líneas nos salen como '*'. Esto es debido a que aunque el paquete no
llega al destino no nos llega el ICMP de error. El motivo puede ser:
- Errores en la configuración de la red.
- Filtrado del los ICMPs entrantes a nuestra red, sería si todas las líneas nos salen como '*'.
- Paquete perdido por un error fortuito en la red. En este caso otros intentos darán la información correcta.
-
Filtrado de ICMPs salientes de la red que tiene que enviarnos el error.
Suele ser lo mas común cuando todos los intentos salen como '*'.
-
Error de implementación de ICMPs en un host, puede ser otro motivo para
que se de el caso anterior en el que todos los intentos dan '*'. - TTLs bajos en la respuesta. -
Filtrado total de ICMPs, que elimina cualquier ICMP que pase por el
host o filtrado de UDPs. Ocurre esto cuando a partir de un host todos
salen como '*'.
Autores
Extraído de la página man del traceroute de Linux:
AUTHOR
Implemented by Van Jacobson from
a suggestion by Steve Deering. Debugged by a cast of thousands with
particularly cogent suggestions or fixes from C. Philip Wood, Tim
Seaver and Ken Adelman.
Ejemplo de ejecución
K7LINUX ~ # traceroute www.gmail.com
traceroute: Warning: www.gmail.com has multiple addresses; using 72.14.205.83
traceroute to 72.14.205.83 (72.14.205.83), 30 hops max, 40 byte packets
1 192.168.123.254 (192.168.123.254) 0.931 ms 0.699 ms 0.225 ms
2 192.168.1.1 (192.168.1.1) 4.150 ms 1.022 ms 0.960 ms
3 10.8.254.33 (10.8.254.33) 94.606 ms 49.863 ms 84.513 ms
4 66.Red-80-58-123.staticIP.rima-tde.net (80.58.123.66) 84.313 ms 119.681 ms 124.844 ms
5 37.Red-81-46-5.staticIP.rima-tde.net (81.46.5.37) 123.479 ms 74.100 ms 55.798 ms
6 * * *
7 GE4-0-0-0-grtmadrr1.red.telefonica-wholesale.net (213.140.51.9) 70.738 ms 82.140 ms 55.708 ms
8 So1-0-0-0-grtmadpe1.red.telefonica-wholesale.net (213.140.36.190) 61.369 ms 57.823 ms 65.109 ms
9 P10-0-grtlontl2.red.telefonica-wholesale.net (213.140.36.226) 85.568 ms 91.223 ms 88.142 ms
10 72.14.198.9 (72.14.198.9) 95.589 ms 87.513 ms 101.410 ms
11 72.14.236.216 (72.14.236.216) 158.116 ms 165.794 ms 155.979 ms
12 72.14.236.213 (72.14.236.213) 155.237 ms 155.689 ms 198.203 ms
13 72.14.233.113 (72.14.233.113) 173.366 ms 179.084 ms 165.902 ms
14 66.249.94.96 (66.249.94.96) 160.700 ms 255.496 ms 66.249.94.92 (66.249.94.92) 166.167 ms
15 72.14.232.66 (72.14.232.66) 163.927 ms 224.468 ms 162.844 ms
16 72.14.205.83 (72.14.205.83) 173.411 ms 169.369 ms 167.984 ms
- En la 2a línea se nos informa que gmail tiene múltiples IPs y nos informa de la que usará para trazar la ruta.
-
En la 6a línea observamos que hay un host del que no se puede sacar la
información. Esto suele ser debido a un filtrado de ICMPs que hace
aquella red para que su host no retorne nada o un error de
implementación en ese host.
Existen también implementaciones gráficas. Como ejemplo, el xtraceroute:
Fuentes:
Transparéncias de clase
Linux: 'man traceroute'.
Linux: 'xtraceroute'.
http://www.wikipedia.org
()
Tipus 3:
Codi 0 = net unreachable;
Codi 1 = host unreachable;
Codi 2 = protocol unreachable;
Codi 3 = port unreachable;
Codi 4 = fragmentation needed and DF set.
Tipus 5. Canvi de router: Permet optimitzar les taules d'encaminament enviant un missatge si hi ha una ruta més directa.
Tipus 11. Detecció de rutes llargues / circulars. Aquest és el missatge que s’envia si el TTL d’un datagrama arriba a zero.
Codi 0 = time to live exceeded in transit;
Codi 1 = fragment reassembly time exceeded.
Tipus 12:
Codi 0 = problem with option.
Tipus 17 (petició) i 18 (resposta). Demanar submàscara de xarxa: Serveix per a obtenir de manera remota la subxarxa a la que es pertany.
Fonts:
Transparèncias de clase
http://www.rfc-es.org/rfc/rfc0792-es.txt
http://www.faqs.org/rfcs/rfc777.html