martes, 25 de marzo de 2014

Trabajo Practico nº 1


Protocolo IPv4

IPv4 es la versión 4 del Protocolo de Internet (Protocolo de Internet versión 4) (IP o Internet Protocolo) y constituye la primera versión de IP que es implementada de forma extensiva. IPv4 es el principal protocolo utilizado en el Nivel de Red del Modelo TCP/IP para Internet. Fue descrito inicialmente en el RFC 791 elaborado por la Fuerza de Trabajo en Ingeniería de Internet (IETF o Internet Engineering Task Force) en Septiembre de 1981, documento que dejó obsoleto al RFC 760 de Enero de 1980.
IPv4 es un protocolo orientado hacia datos que se utiliza para comunicación entre redes a través de interrupciones (switches) de paquetes (por ejemplo a través de Ethernet).
El propósito principal de IP es proveer una dirección única a cada sistema para asegurar que una computadora en Internet pueda identificar a otra.

Direcciones
IPv4 utiliza direcciones de 32 bits (4 bytes) que limita el número de direcciones posibles a utilizar a 4.294.967.295 direcciones únicas. Sin embargo, muchas de estas están reservadas para propósitos especiales como redes privadas, Multidifusión (Multicast), etc. Debido a esto se reduce el número de direcciones IP que realmente se pueden utilizar, es esto mismo lo que ha impulsado la creación de IPv6 como reemplazo eventual para IPv4.
Representación de las direcciones.
Cuando se escribe una dirección IPv4 en cadenas, la notación más común es la decimal con puntos. Hay otras notaciones basadas sobre los valores de los octetos de la dirección IP.
Utilizando como ejemplo: http://www.alcancelibre.org/ que tiene como dirección IP 201.161.1.226 en la notación decimal con puntos:




Notación
Valor
Conversión desde decimal con puntos
Decimal con puntos
201.161.1.226
-
Hexadecimal con Puntos
0xC9.0xA1.0x01.0xE2
Cada octeto de la dirección es convertido individualmente a hexadecimal.
Octal con puntos
0311.0241.0001.0342
Cada octeto es convertido individualmente a octal.
Binario con puntos
11001001.10100001.00000001.11100010
Cada octeto es convertido individualmente a binario
Hexadecimal
0xC9A101E2
Concatenación de los octetos de hexadecimal con puntos.
Decimal
3382772194
La forma hexadecimal convertida a decimal.
Octal
31150200742
La forma hexadecimal convertida a octal.
Binario
11001001101000010000000111100010
La forma hexadecimal convertida a binario.

Teóricamente, todos estos formatos mencionados deberían ser reconocidos por los navegadores (sin combinar). Además, en las formas con puntos, cada octeto puede ser representado en combinación de diferentes bases. Ejemplo: 201.0241.0x01.226.

Anfitrión local (Local host)
Además de las redes privadas, el rango 127.0.0.0 – 127.255.255.255 o 127.0.0.0/8 en la notación CIDR, está reservado para la comunicación del anfitrión local (local host). Ninguna dirección de este rango deberá aparecer en una red, sea pública o privada y cualquier paquete enviado hacia cualquier dirección de este rango deberá regresar como un paquete entrante hacia la misma máquina.
Referencia de sub-redes de IP versión 4.
Algunos segmentos del espacio de direcciones de IP, disponibles para la versión 4, se especifican y asignan a través de documentos RFC (Request For Comments o Solicitud De Comentarios), que son conjuntos de notas técnicas y de organización que se elaboran desde 1969 donde se describen los estándares o recomendaciones de Internet, antes ARPANET. Ejemplos de esto son los usos del Retorno del sistema (loopback, RFC 1643), las redes privadas (RFC 1918) y Zeroconf (RFC 3927) que no están bajo el control de los RIR (Regional Internet Registries o Registros Regionales de Internet).
La máscara de sub-red es utilizada para separar los bits identificados de una red a partir de los bits identificados del anfitrión. Se escribe utilizando el mismo tipo de notación para escribir direcciones IP.


Clases de Direcciones en IPv4
Una dirección IPv4 está compuesta por cuatro elementos numéricos decimales con valores de 0 a 255 separados por un punto.
La versión IPv4 incluye cinco clases de direcciones IP, que van de la A hasta la E. De las mismas, se utilizan generalmente las tres primeras. Las clases establecen que cantidad de elementos se ocupan para la parte de red y que cantidad para la parte de host, con lo que queda definido de esta manera la cantidad de redes y de hosts que permite cada clase.

  • Clase A
Las direcciones de clase A se asignan a las redes que poseen un gran número de hosts. El primer bit de la Clase A comienza con 0. Los siete bits restantes completan la parte de red de la dirección IP. Los tres elementos restantes (24 bits) representan la parte de host de la dirección IP.

Cantidad de redes y hosts en IPv4 clase A
Las redes clase A permiten 126 redes y aproximadamente 17 millones de hosts. Esto se calcula elevando el numero 2 (base de la numeración binaria) a la potencia correspondiente a la cantidad de bits. Hay que tener en cuenta que ni el campo de red, ni el de host pueden estar compuestos por todos unos ni todos ceros, por lo que se debe restar estos dos casos a la cantidad que se obtenga.
Cálculo de la cantidad de redes y hosts (^ indica potencia):
Cantidad de Redes
2^7 = 128
Menos dos prohibidas (-127, -0) = 126

Cantidad de Host
2^24 = 16.777.216 Menos dos prohibidas = 16.777.214

  • Clase B
En la clase B los dos primeros elementos se utilizan para la parte de red, lo que hace que esta clase sea más adecuada para redes de mediano y gran tamaño. Los dos primeros bits de la parte de red siempre son 10. Los 14 bits restantes completan la parte de red, quedando para los host dos elementos completos.

Cantidad de redes y hosts en IPv4 clase B
Las redes Clase B permiten 16.384 redes con aproximadamente 65.000 host por red. El número de redes se calcula elevando 2 a la potencia 14, que son la cantidad de bits variables de la parte de red de la dirección IP, ya que los dos primeros bits son fijos (10). En este caso no hace falta restar 2 porque al comenzar con 10 no habrá forma que todo el elemento esté formado por ceros ni por unos. La parte de host resultará de elevar 2 a la potencia 16 restándole 2 debido a que la dirección de host no podrá ser todos 0 o todos 1.
Cálculo de la cantidad de redes y hosts.
Cantidad de Redes
2^14 = 16.384

Cantidad de Host
2^16 = 65.536 Menos dos prohibidas = 65.534

  • Clase C
Las direcciones de clase C se utilizan para pequeñas redes LAN (redes de pocos equipos). En ellas, los primeros tres bits de la parte de red tienen siempre los valores 110. Los siguientes 21 bits, que completan los primeros tres elementos, conformarán la parte de red de la dirección IP. El elemento restante, es el que representa la parte de host de la dirección.

Cantidad de redes y hosts en IPv4 clase C
Como los tres primeros bits de la parte de red son fijos (110) para calcular la cantidad de redes se eleva 2 a la 21 que da algo más de 2 millones. Para calcular la cantidad de hosts se eleva 2 a la 8 (cantidad de bits que quedan para host) y se resta 2 (todos 0 y todos 1) lo que da sólo 254 hosts.
Cantidad de Redes
2^21 = 2.097.152 Total = 2.097.152

Cantidad de Host
2^8 = 256 Menos dos prohibidas = 254

  • Clases D y E
Estas clases no son utilizadas normalmente. Las direcciones de la clase D comienzan siempre con 1110 y se utilizan para lo que se llama Multicast que se emplea para enviar información a un grupo determinado de hosts que están previamente validados o autorizados para recibirla. Las direcciones de la clase E comienzan con 1111 y no se les ha dado por el momento uso práctico.
Tabla de cantidad de redes y hosts por clase









El formato del paquete IPv4
El protocolo IPv4 tiene un header de longitud variable. El header está formado por una parte obligatoria, de 20 bytes, seguido por una serie de opciones. Debido a limitaciones del header, las opciones deben tener una longitud múltiplo de 4 bytes, pudiendo el header crecer hasta un máximo de 60 bytes (contando parte obligatoria y opcional).



Los headers obligatorios son los siguientes (considerando big endian a los números mencionados)
• Versión (4 bits): Es el número de versión del protocolo IP. Una constante “4”. Permite que otras versiones interactúen en la misma red sin causar conflictos.
• IHL (4 bits): Es la longitud del header IPv4. Puesto que el valor cubre de 0 a 15, la medida usada es bloques de 32 bits. Debe indicar al menos 5.
• Type of service o TOS (8 bits): Es un campo de bits que indica cómo se debe tratar al paquete en cuestión. Usado para priorizar algunos paquetes sobre otros.
• Total length (16 bits): Es la longitud total del paquete, medida en bytes. Esto significa que un paquete IPv4 no puede tener una longitud mayor a 64 KiB.
• Identification, flags y fragment offset: Estos campos son usados en la fragmentación de paquetes IPv4 (a ver en la siguiente clase).
• Time to live, o TTL (8 bits): Es un campo usado para evitar que un paquete quede circulando indefinidamente en la red. Originalmente indicaba la cantidad de segundos que el paquete puede permanecer. Hoy en día indica la cantidad de saltos que puede realizar. Este campo se cambia al pasar por cada router, y el paquete se descarta si este valor llega a 0.
• Protocol (8 bits): Indica cual es el protocolo de la capa superior. Usado para permitir llevar múltiples protocolos sobre IPv4 (similar al ethertype de ethernet).
• Header checksum (8 bits): Es un checksum que protege al header. No brinda mucha protección y no protege a los datos. Si el checksum en un paquete no es correcto, se descarta el mismo. Es principalmente una medida para evitar la propagación innecesaria de paquetes.
• Source address y destination address (32 bits cada una): Indican la dirección de origen y destino del paquete. El origen está incluido para permitir que el receptor sepa a quien debe responder y también asiste en el mantenimiento del estado en protocolos de capas superiores.


Protocolo IPv6

El Internet Protocol versión 6 (IPv6) (en español: Protocolo de Internet versión 6) es una versión del protocolo Internet Protocol (IP), definida en el RFC 2460 y diseñada para reemplazar a Internet Protocol versión 4 (IPv4) RFC 791, que actualmente está implementado en la gran mayoría de dispositivos que acceden a Internet.
Diseñado por Steve Deering de Xerox PARC y Craig Mudge, IPv6 sujeto a todas las normativas que fuera configurado está destinado a sustituir a IPv4, cuyo límite en el número de direcciones de red admisibles está empezando a restringir el crecimiento de Internet y su uso, especialmente en China, India, y otros países asiáticos densamente poblados. El nuevo estándar mejorará el servicio globalmente; por ejemplo, proporcionará a futuras celdas telefónicas y dispositivos móviles sus direcciones propias y permanentes.
IPv4 posibilita 4.294.967.296 (232) direcciones de host diferentes, un número inadecuado para dar una dirección a cada persona del planeta, y mucho menos a cada vehículo, teléfono, PDA, Tablet, etcétera. En cambio, IPv6 admite 340.282.366.920.938.463.463.374.607.431.768.211.456 (2128 o 340 sextillones de direcciones) —cerca de 6,7 × 1017 (670 mil billones) de direcciones por cada milímetro cuadrado de la superficie de La Tierra.
Otra vía para la popularización del protocolo es la adopción de este por parte de instituciones. El gobierno de los Estados Unidos ordenó el despliegue de IPv6 por todas sus agencias federales en el año 2008

Se espera ampliamente que IPv6 sea soportado en conjunto con IPv4 en el futuro cercano. Los nodos solo-IPv4 no son capaces de comunicarse directamente con los nodos IPv6, y necesitarán ayuda de un intermediario.
Cambios y nuevas características
En muchos aspectos, IPv6 es una extensión conservadora de IPv4. La mayoría de los protocolos de transporte -y aplicación- necesitan pocos o ningún cambio para operar sobre IPv6; las excepciones son los protocolos de aplicación que integran direcciones de capa de red, como FTP o NTPv3, NTPv4.
IPv6 especifica un nuevo formato de paquete, diseñado para minimizar el procesamiento del encabezado de paquetes. Debido a que las cabeceras de los paquetes IPv4 e IPv6 son significativamente distintas, los dos protocolos no son interoperables.
Algunos de los cambios de IPv4 a IPv6 más relevantes son:
Capacidad extendida de direccionamiento



Un paquete en IPv6 está compuesto principalmente de dos partes: la cabecera (que tiene una parte fija y otra con las opciones) y la carga útil (los datos).
Cabecera fija
Los primeros 40 bytes (320 bits) son la cabecera del paquete y contiene los siguientes campos:
Offset del Octeto
0
1
2
3
Bit Offset
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
29
30
31
0
0
Versión
Clase de Tráfico
Etiqueta de Flujo
4
32
Longitud del campo de datos
Cabecera Siguiente
Límite de Saltos
8
64
Dirección de Origen
C
96
10
128
14
160
18
192
Dirección de Destino
1C
224
20
256
24
288

direcciones de origen (128 bits)
direcciones de destino (128 bits)
versión del protocolo IP (4 bits)
clase de tráfico (8 bits, Prioridad del Paquete)
Etiqueta de flujo (20 bits, manejo de la Calidad de Servicio),
Longitud del campo de datos (16 bits)
Cabecera siguiente (8 bits)
Límite de saltos (8 bits, Tiempo de Vida).

Hay dos versiones de IPv6 levemente diferentes. La ahora obsoleta versión inicial, descrita en el RFC 1883, difiere de la actual versión propuesta de estándar, descrita en el RFC 2460, en dos campos: hay 4 bits que han sido reasignados desde "etiqueta de flujo" (flow label) a "clase de tráfico" (traffic class). El resto de diferencias son menores.
En IPv6 la fragmentación se realiza sólo en el nodo origen del paquete, al contrario que en IPv4 en donde los routers pueden fragmentar un paquete. En IPv6, las opciones también desaparecen de la cabecera estándar y son especificadas por el campo "Cabecera Siguiente" (Next Header), similar en funcionalidad en IPv4 al campo Protocolo. Un ejemplo: en IPv4 uno añadiría la opción "ruta fijada desde origen" (Strict Source and Record Routing) a la cabecera IPv4 si quiere forzar una cierta ruta para el paquete, pero en IPv6 uno modificaría el campo "Cabecera Siguiente" indicando que viene una cabecera de encaminamiento. La cabecera de encaminamiento podrá entonces especificar la información adicional de encaminamiento para el paquete, e indicar que, por ejemplo, la cabecera TCP será la siguiente. Este procedimiento es análogo al de AH y ESP en IPsec para IPv4 (que aplica a IPv6 de igual modo, por supuesto).

Cabeceras de extensión
El uso de un formato flexible de cabeceras de extensión opcionales es una idea innovadora que permite ir añadiendo funcionalidades de forma paulatina. Este diseño aporta gran eficacia y flexibilidad ya que se pueden definir en cualquier momento a medida que se vayan necesitando entre la cabecera fija y la carga útil.
Hasta el momento, existen 8 tipos de cabeceras de extensión, donde la cabecera fija y las de extensión opcional incluyen el campo de cabecera siguiente que identifica el tipo de cabeceras de extensión que viene a continuación o el identificador del protocolo de nivel superior. Luego las cabeceras de extensión se van encadenando utilizando el campo de cabecera siguiente que aparece tanto en la cabecera fija como en cada una de las citadas cabeceras de extensión. Como resultado de la secuencia anterior, dichas cabeceras de extensión se tienen que procesar en el mismo orden en el que aparecen en el datagrama. La Cabecera principal, tiene a diferencia de la cabecera de la versión IPv4 un tamaño fijo de 40 octetos.      Específica para asignarlos para aplicaciones Multicast intra-dominio o entre-dominios (RFC 3306). En IPv4 era muy difícil para una organización como ésta.
Todas o parte de estas cabeceras de extensión tienen que ubicarse en el datagrama en el orden especificado:
Cabecera de Extensión
Tamaño
Descripción
RFC
Opciones salto a salto (Hop-By-Hop Options)
0
variable
Contiene datos que deben ser examinados por cada nodo a través de la ruta de envío de un paquete.
Enrutamiento (Routing)
43
variable
Métodos para especificar la forma de ro otear un datagrama. (Usado con IPv6 móvil)
Cabecera de fragmentación (Fragment)
44
64 bits
Contiene parámetros para la fragmentación de los datagramas.
Cabecera de autenticación (Authentication Header (AH))
51
variable
Contiene información para verificar la autenticación de la mayor parte de los datos del paquete (Ver IPsec)
Encapsulado de seguridad de la carga útil (Encapsulating Security Payload (ESP))
50
variable
Lleva la información cifrada para comunicación segura (Ver IPsec).
Opciones para el destino (Destination Options)
60
variable
Información que necesita ser examinada solamente por los nodos de destino del paquete.
No Next Header
59
vacío
Indica que no hay más cabeceras

Cada cabecera de extensión debe aparecer como mucho una sola vez, salvo la cabecera de opción destino, que puede aparecer como mucho dos veces, una antes de la cabecera ruteo y otra antes de la cabecera de la capa superior.
Carga útil
La carga útil del paquete puede tener un tamaño de hasta 64 KB en modo estándar, o mayor con una opción de carga jumbo (jumbo payload) en el encabezado opcional Hop-By-Hop.
La fragmentación es manejada solamente en el host que envía la información en IPv6: los routers nunca fragmentan un paquete y los hosts se espera que utilicen el Path MTU discovery.
IPv6 y el sistema de nombres de dominio
Las direcciones IPv6 se representan en el sistema de nombres de dominio (DNS) mediante registros AAAA (también llamados registros de quad-A, por tener una longitud cuatro veces la de los registros A para IPv4)
El concepto de AAAA fue una de las dos propuestas al tiempo que se estaba diseñando la arquitectura IPv6. La otra propuesta utilizaba registros A6 y otras innovaciones como las etiquetas de cadena de bits (bit-string labels) y los registros DNAME.
Mientras que la idea de AAAA es una simple generalización del DNS IPv4, la idea de A6 fue una revisión y puesta a punto del DNS para ser más genérico, y de ahí su complejidad.
La RFC 3363 recomienda utilizar registros AAAA hasta tanto se pruebe y estudie exhaustivamente el uso de registros A6. La RFC 3364 realiza una comparación de las ventajas y desventajas de cada tipo de registro.

Características de IPv6

El protocolo IPv6 tiene las características siguientes:

  • Nuevo formato de encabezado
  • Espacio de direcciones más grande
  • Infraestructura de direcciones y enrutamiento eficaz y jerárquica
  • Configuración de direcciones con y sin estado
  • Seguridad integrada
  • Mejora de la compatibilidad para la calidad de servicio (QoS)
  • Nuevo protocolo para la interacción de nodos vecinos
  • Capacidad de ampliación

Nuevo formato de encabezado
El encabezado IPv6 tiene un nuevo formato que está diseñado para reducir al mínimo la sobrecarga del encabezado. Esto se consigue al mover los campos que no son esenciales y los campos de opciones a encabezados de extensión que se colocan a continuación del encabezado IPv6. La simplificación del encabezado IPv6 permite un procesamiento más eficaz en los enrutadores intermedios.
Los encabezados IPv4 y los encabezados IPv6 no son interoperables y el protocolo IPv6 no es compatible con el protocolo IPv4. Un host o un enrutador debe utilizar simultáneamente una implementación de IPv4 e IPv6 para reconocer y procesar ambos formatos de encabezado. El nuevo encabezado IPv6 sólo tiene el doble de tamaño que el encabezado IPv4, a pesar de que las direcciones IPv6 son cuatro veces mayores que las direcciones IPv4.

Espacio de direcciones más grande
IPv6 utiliza direcciones de origen y destino de 128 bits (16 bytes). Aunque con 128 bits se pueden proporcionar más de 3,4×1038 combinaciones posibles, el amplio espacio de direcciones de IPv6 se ha diseñado para permitir múltiples niveles de división en subredes y asignación de direcciones de la red troncal Internet a las subredes individuales de una organización.
Aunque actualmente sólo un pequeño porcentaje de direcciones posibles se asignan para el uso de hosts, hay disponibles muchas direcciones para su uso en el futuro. Al tener un número mucho mayor de direcciones disponibles, ya no son necesarias las técnicas de conservación de direcciones, como la implementación de NAT.

Infraestructura de direcciones y enrutamiento eficaz y jerárquica
Las direcciones globales de IPv6 que se utilizan en la parte IPv6 de Internet están diseñadas para crear una infraestructura eficaz, jerárquica y que se puede resumir y que tiene en cuenta la existencia de múltiples niveles de proveedores de servicios Internet. En la red Internet IPv6, los enrutadores de red troncal tienen tablas de enrutamiento mucho más pequeñas.

Configuración de direcciones con y sin estado
Para simplificar la configuración de los hosts, IPv6 admite la configuración de direcciones con estado, como la configuración de direcciones con la presencia de un servidor DHCP, y la configuración de direcciones sin estado (configuración de direcciones sin la presencia de un servidor DHCP). Con la configuración de direcciones sin estado, los hosts de un vínculo se configuran automáticamente con direcciones IPv6 para el vínculo (direcciones locales del vínculo) y con direcciones derivadas de prefijos anunciados por los enrutadores locales. Incluso sin la presencia de un enrutador, los hosts del mismo vínculo se pueden configurar automáticamente con direcciones locales del vínculo y comunicarse sin necesidad de configuración manual.

Seguridad integrada
La compatibilidad con IPSec es un requisito del conjunto de protocolos IPv6. Este requisito proporciona una solución basada en estándares para las necesidades de seguridad de red y aumenta la interoperabilidad entre diferentes implementaciones de IPv6.
Mejora de la compatibilidad para la calidad de servicio (QoS)
Los nuevos campos del encabezado IPv6 definen cómo se controla e identifica el tráfico. La identificación del tráfico, mediante un campo Flow Label (etiqueta de flujo) en el encabezado, permite que los enrutadores identifiquen y proporcionen un control especial de los paquetes que pertenecen a un flujo dado. Un flujo es un grupo de paquetes entre un origen y un destino. Dado que el tráfico está identificado en el encabezado IPv6, la compatibilidad con QoS se puede obtener de forma sencilla incluso si la carga del paquete está cifrada con IPSec.
Nuevo protocolo para la interacción de nodos vecinos
El protocolo Descubrimiento de vecinos en IPv6 consiste en un conjunto de mensajes del Protocolo de mensajes de control de Internet para IPv6 (ICMPv6, < i>Internet Control Message Protocol for IPv6</i>) que administran la interacción de nodos vecinos (es decir, nodos que se encuentran en el mismo vínculo). El descubrimiento de vecinos reemplaza los mensajes de Protocolo de resolución de direcciones (ARP, Address Resolution Protocol), Descubrimiento de enrutadores ICMPv4 y Redirección ICMPv4 con mensajes eficaces de multidifusión y unidifusión, y proporciona funciones adicionales.

Capacidad de ampliación
IPv6 se puede ampliar con nuevas características al agregar encabezados de extensión a continuación del encabezado IPv6. A diferencia del encabezado IPv4, que sólo admite 40 bytes de opciones, el tamaño de los encabezados de extensión IPv6 sólo está limitado por el tamaño del paquete IPv6.

No hay comentarios:

Publicar un comentario