martes, 10 de enero de 2017

TCP/IP (10): Direccionamiento IP



Las direcciones IP más comunes son las que se establecen en la versión 4 del protocolo (IPv4). En la versión 6 (IPv6) se introdujo un sistema completamente nuevo para evitar el agotamiento de las direcciones, que veremos en otro artículo. Ambos direccionamientos coexisten actualmente, no sin ciertas dificultades.

Clases de direccionamiento IPv4

Teniendo en cuenta que en Internet coexisten unas pocas redes "gigantescas" con una mayor cantidad de redes "medianas" y multitud de "mini-redes" (una gran variedad de tamaños), no puede existir una forma general de asignar las direcciones a redes tan dispares. Por ello, en los inicios de la red se crearon tres clases principales de direccionamiento.
Hay que diferenciar dentro de la dirección IP dos partes llamadas netid (identificador de red) y hostid (identificador de nodo). Según la parte que se asigne a estos campos, se han establecido tres clases de redes:
Clase A: Son las que tienen gran cantidad de nodos (a partir de 216). Se les asigna siete bits (entre el 1 y el 126) para el netid, y 24 para direccionar cada uno de sus nodos. El primer bit queda fuera, y siempre se deja a cero. Existe la posibilidad, por tanto, de que existan 126 redes de este tipo con 16,4 millones de nodos cada una.
Clase B: Son las de tamaño mediano. Tienen el netid de 14 bits y el hostid de 16 bits. Los dos primeros bits no se usan, y son siempre 10. Por tanto, serán direcciones entre 128.1.x.x al 191.254.x.x Esto da un margen de 16.002 redes, con hasta 64.516 nodos cada una.
Clase C: Los tres primeros bits son 110, y luego van el netid de 21 bits y el hostid de 8 bits. Esto forma direcciones en el rango de 192.1.1.x a 223.254.254.x; es decir, pueden existir unos dos millones de redes con 254 nodos cada una. Estas son las redes de tamaño pequeño, que más abundan.
Existe una clase especial (D) para multidifusión, cuyas direcciones empiezan por 1110; y también la clase E (con los bits 11110) se reservó inicialmente para futuros usos.
Como se puede observar, la forma de asignar las direcciones se hizo de forma que cualquier equipo de la red puede distinguir la clase de una dirección simplemente inspeccionando los primeros bits: 0 (clase A), 10 (clase B), 110 (clase C), 1110 (clase D) y 11110 (clase E).
Esto hace posible detectar rápidamente la clase de red a la que pertenece cada dirección, y se facilita la extracción de los campos netid y hostid. Esta característica es fundamental para lograr un funcionamiento lo más rápido posible de las pasarelas que tienen que encaminar los paquetes.
Este sistema de clases es evidentemente no escalable, y pronto fue patente que no se iba a poder mantener. Por ello en 1993 se desarrolló el Classless Inter-Domain Routing (CIDR), donde las máscaras de subred permiten una mayor granularidad.
Otro problema de escalabilidad se deriva de que,aunque siempre se piense en una red (network) como un conjunto de ordenadores alrededor de un área de no más de varios kilómetros, IP considera una red a cualquier medio de conexión entre ordenadores. Así pues, p.e., una línea punto a punto de larga distancia (de satétite, línea serie, etc.) es considerada como si fuese una red con sólo dos ordenadores (las dos pasarelas de los extremos). Esta red tendrá su propia dirección de dominio (por supuesto de clase C).
Subredes
Las redes muy grandes suelen subdividirse en subredes (subnets). Usan los octetos que tienen asignados para uso interno para ello, siendo esto irrelevante fuera de la propia red.
Por ejemplo, una red de clase B, que usa los dos primeros octetos para identificarse, puede organizarse de manera que use el tercero para localizar en qué Ethernet está cada nodo, constituyendo hasta 254 subredes de 254 nodos cada una. Sin embargo, para los sistemas fuera de la red, esta subdivisión interna no tiene importancia, no tienen necesidad de estar al tanto de ella.
Dentro de una red, las pasarelas tienen entradas para cada una de sus subredes, mientras que las pasarelas fuera de ella sólo tienen una entrada para la red completa. Se puede decir que una red de clase B puede tratar a sus subredes como si fueran de clase C. Igualmente, una red de clase A puede subdividirse internamente en varias de clase B, que a su vez se organizan en otras de clase C. Cada una de estas capas no se ocupa de las inferiores, repartiendo así el trabajo.
La máscara de subred
Una vez se ha decidido la subdivisión de la red, se debe establecer la subdivisión de las direcciones, es decir, qué parte de la dirección IP se usará para la red y las subredes, y qué otra parte se reservará para identificar los nodos individuales.
La máscara de subred es un número que se especifica en cada ordenador como parte de la configuración de su software de red, consistiendo en una máscara binaria de 32 bits, donde se rellena con unos la parte usada por los números de red y subred, y con ceros la parte establecida para las direcciones individuales.
Lo usual es usar los tres primeros octetos para los números de red, como se explicó; por tanto, la máscara más común es 255.255.255.0. No siempre se tendrá que hacer así, dependiendo de las características de la red. En una red donde existan multitud de pequeñas redes, puede necesitarse usar más direcciones de subredes. P.e., podemos usar el primer bit del último octeto para completar las direcciones de red; en ese caso la máscara pasaría a ser 255.255.255.128.
Los números 0 y 255
Como ya se ha dicho, los números 0 y 255 no se usan de manera normal en las direcciones IP.
El 0 se usa para los nodos que no conocen su propia dirección. Sustituyen por ceros las partes de la dirección IP que no conocen. Por ejemplo, el 0.0.0.23 es una máquina que sabe es el nodo 23, pero no sabe de qué red. También se usa el 0 para direccionar de forma generalizada a toda una red, dejando a cero todos los bits del campo hostid. Es decir, se puede decir que los ceros significan esto, en el sentido de "esta red o este nodo".
El 255 es el caso contrario: el nodo no sabe a quién mandar un determinado mensaje. Son mensajes "generales", para todo el que quiera leerlos. Esta técnica se llama difusión (broadcast). Consiste en sustituir uno o varios octetos de la dirección IP por un 255. Por ejemplo, un mensaje con dirección 128.6.4.255 podrá ser leido por cualquier nodo de la subred 128.6.4.x. Un caso típico es cuando una máquina no sabe cuál es su servidor de nombres más cercano. Cuando quiera solicitar una dirección, enviará un mensaje de difusión, para que le conteste el servidor más conveniente.
Por regla general, como lógico mecanismo de seguridad, se limita la difusión al menor número posible de nodos. El mensaje 255.255.255.255 potencialmente podría ser leído por cualquier máquina conectada a Internet; sin embargo, esto no es así por razones obvias. Un mensaje de difusión con semejante dirección sólo tiene valor dentro de su propia red o subred. Esto se llama difusión limitada o de red local. Sin embargo, sí es posible desde una red enviar un paquete de difusión dirigido a todos los nodos de otra red, en lo que se da en llamar difusión dirigida. Es común que la difusión dirigida se use como forma de ataque, así que muchas redes la prohiben por defecto. 
Aunque el sistema de direccionamiento a nivel IP prevé el uso de la difusión, no todas las tecnologías de red lo permiten. Así pues, no está garantizada, y siempre depende de la red física subyacente.
El número 127
El 127 es otro número reservado que no debe aparecer en el primer octeto de las direcciones IP normales. Se utiliza cuando una máquina se direcciona a sí misma, lo que se llama loopback . Concretamente, la dirección 127.0.0.1 u otra parecida es usada para probar el software de red sobre la misma máquina, sin que los paquetes realmente salgan de ella. Tradicionalmente suele asociarse al nombre "localhost".
Resumen de las reglas especiales de direccionamiento:
  • todo ceros: Este nodo
  • todo ceros | hostid: Un nodo de esta red
  • todo unos: Difusión limitada (red local)
  • netid | todo unosDifusión dirigida a otra red
  • 127 | cualquier número: Loopback

No hay comentarios:

Publicar un comentario

Expresa tu opinión respetando a los demás y a unas mínimas reglas del lenguaje castellano.