lunes, 23 de marzo de 2009

Direccionamiento IP

Versión 1.2.3 (c) 2007-2009 Eduardo José Moreira. Este documento está bajo licencia GNU FDL.

Introducción

Para que la red de Internet (Muchas redes TCP/IP conectadas entre sí) funcione, en los años 80 se diseñaron varios protocolos a nivel de red para poder interconectar redes heterogéneas, es decir de distinto tipo y tecnología. Entre ellos uno de los más importantes; el protocolo IP (Internet Protocol), definido en el RFC 791.

Nota: Los RFC (Request for Comments) son ficheros de texto donde se definen los protocolos de TCP/IP, la propia arquitectura TCP/IP, los cambios y mejoras que se les han ido haciendo hasta hoy, etc.

Una de las cosas más importantes definidas en el protocolo IP es el direccionamiento IP.

Las direcciones IP están definidas dentro de la arquitectura de red TCP/IP, en el nivel 3 de la misma, el nivel de Interred o Internet. En concreto forman parte del protocolo IP del que toman su nombre.

Como se ha universalizado el empleo de redes TCP/IP en todo tipo de ordenadores, encontraremos direcciones IP en casi en cualquier equipo.

Existen dos tipos de direcciones IP:
  • Direcciones IP versión 4 (IP v4)
  • Direcciones IP versión 6 (IP v6)

Las direcciones IP v4 son números de 32 bits, mientras que las IP v6 son números de 128 bits. Con las primeras, al ser de 32 bits podemos tener hasta: 4.294.967.296. Con las segundas, al ser de 128 bits, podemos tener muchisimas más.

Las IP v6 se desarrollaron cuando parecía que las IP v4 estaban empezando a agotarse en el mundo. Pero en seguida aparecieron formas de reutilizar direcciones IP v4 definiendo rangos de IP privadas y protocolos como NAT para conectar redes que utilizan esas IP privadas mediante dispositivos como los routers (encaminadores).

En la actualidad el empleo de IP v4 es universal, mientras que IP v6 comienza a utilizarse en ámbitos reducidos.

Direcciones IP v4

Las direcciones IP son números de 32 bits que identifican a cada ordenador en una red TCP/IP. En la práctica se manejan poniendo los 32 bits como 4 bytes y escribiendo cada byte en decimal, separando los bytes con puntos. Un ejemplo de dirección IP es:

Dirección IP (32 bits) en binario: 11000000 10101000 00000000 01110011

Dirección IP (8 bits) en decimal: 192 168 0 115

Separada por puntos: 192.168.0.115

Luego cada IP se escribe como 4 números de 8 bits cada uno, separados por puntos; si lo pensamos las cosas cuadran: se puede expresar un mismo valor como 32 bits en binario, o como 4 bytes (es decir, escribiendo los bytes como 4 números en decimal).

Cuando se diseñó este método, se consideró que esta cantidad era suficiente para el ritmo de crecimiento esperado de Internet. Hoy en día se ha llegado al límite y las direcciones IP se han agotado. Pero hay formas de aliviar esto, sobre todo el uso de direcciones IP reservadas y routers con NAT.

Por otra parte la IP de cada ordenador debe ser única, tanto en una red como entre redes conectadas entre sí (y si están conectadas a Internet, llegamos a que la IP de cada ordenador debe ser distinta a nivel mundial, ya que Internet une redes de todo el mundo).

Esto se consigue mediante una serie de organismos, como el IANA (Internet Assigned Numbers Authority), que se ocupan de asignar IP y grupos de IP a instituciones, empresas proveedoras de servicios de Internet.

Nota: Las empresas de proveedores de servicios de Internet se abrevian como ISP (Internet Service Providers)

Clases de direcciones IP

En una dirección IP podemos distinguir dos partes:
  • Parte de Red, que sirve para identificar la red en la que está un ordenador.
  • Parte de Host (Ordenador), que distingue unos ordenadores de otros dentro de la misma red.

Por ejemplo, en la IP 192.168.0.4 tenemos que la parte de red son los 3 primeros valores empezando por la izquierda, 192.168.0, y la parte de host es el cuarto valor.

¿Por qué en este ejemplo la parte de red son 3 números y la de host 1?

El motivo es que existe una clasificación de las direcciones IP en clases, de la A a la E, donde cada clase tiene una parte de red y una de host distintas, que permiten usar una clase de direcciones u otra en una red de ordenadores según sea el tamaño previsto de la red (el número de ordenadores previsto en ella).

De ahí que existan clases de IP adecuadas para redes grandes (clase A), otras para redes medianas (clase B) y otras para redes pequeñas (clase C), además de algunas otras clases de uso reservado (clases D y E, no se utilizan a la hora de montar redes).

Luego con direcciones de clase A podemos tener pocas redes (1 byte), pero con muchos ordenadores por red (3 bytes).

En redes de clase B podemos tener un número medio de redes (2 bytes) cada uno con un número medio de ordenadores (2 bytes).

Y en las redes de clase C podemos tener un número grande de redes (3 bytes) cada una con un número pequeño de ordenadores (1 byte).

Una manera de memorizar ésto es:

Redes de clase A: Aproximadamente 2 a la 8 redes, cada una con aproximadamente 2 a la 24 hosts.
Redes de clase B: Aproximadamente 2 a la 16 redes, cada una con aproximadamente 2 a la 16 hosts.
Redes de clase C: Aproximadamente 2 a la 24 redes, cada una con aproximadamente 2 a la 8 hosts.

Una regla prática para averiguar a qué clase pertenece una dirección IP es mirar el valor de su primer byte por la izquierda; con ese valor podemos hallar la clase a que pertebece la IP. La regla es:

Si el primer byte está entre 1 y 127, la dirección es de clase A.
Si el primer byte está entre 128 y 191, la dirección es de clase B.
Si el primer byte está entre 192 y 223, la dirección es de clase C.

Máscara de subred y dirección IP de Red

Una forma de saber cuál es la parte de red y de host de la IP es averiguar la clase de esa IP, mirando el primer byte de la izquierda.

Sin embargo existe otra forma de indicar cuál es la parte de red y de host de una IP, que consiste en utilizar las llamadas máscaras de subred.

Nota: En realidad las máscaras de subred sirven para 2 cosas: Saber cuál es la parte de red y de host de una IP, y hallar la IP de red a la que pertenece una IP dada.

La máscara de subred es un número de 32 bits, escrito como 4 bytes separados por puntos (como en una dirección IP) cuyos valores pueden ser 0 (los 8 bits a 0) o bien 255 (los 8 bits a 1). Por ejemplo lo siguiente es una máscara de subred:

Máscaras de subred en binario: 11111111 11111111 11111111 11111111

Máscaras de subred en decimal: 255.255.255.0

Como vemos, las máscaras tienen el mismo aspecto que las direcciones IP; sólo cambia los valores que puede tomar cada byte; 0 ó 255.

Cada clase de direcciones IP tiene asignada una máscara de subred por defecto.

Luego la forma de saber qué parte de la IP y qué parte es de host es consultar la máscara de subred asociada: los bytes 255 indican la parte de red y los bytes a 0 indican la parte de host.

Normalmente cuando se escribe una IP también se indica la máscara de subred que la acompaña: Siempre se da el par IP-máscara, no únicamente la IP.

Una forma más moderna (y más corta) de escribir la máscara de subred es con una barra inclinada /, seguida del número de bits usados como parte de red.

La equivalencia entre las máscaras escritas de forma tradicional y como /xx es la siguiente:

Por ejemplo 172.16.0.4 con máscara 255.255.0.0 se escribiría: 172.16.0.4 / 16. Otro uso interesante de la máscara de subred es determinar cuál es la dirección IP de la red en que se encuentra un ordenador cualquiera.

Para ello basta poner en binario la IP del ordenador y la máscara de subred asociada a esa IP, hacer un AND de los bits de IP y máscara, y el resultado es la dirección IP de la red en que se encuentra el ordenador. Luego la dirección de red es como la del equipo, pero con la parte de host puesta a 0.

Direcciones IP reservadas

Existen una serie de direcciones IP reservadas, que no podemos poner en nuestros equipos al configurar la red manualmente:

0.0.0.0 - Utilizada por los ordenadores cuando arrancan, hasta que se carga del todo el sistema operativo. Es una IP que no se utiliza después, sólo la emplea el software que implementa la pila TCP/IP del sistema operativo al iniciar el ordenador.

127.0.0.1 - Dirección "loopback" (bucle de vuelta o sobre sí mismo). Utilizada para referirnos al propio ordenador, y también para comprobar que la red TCP/IP funciona bien en un ordenador deconectado de la red. Siempre podemos usar esta IP para hacer operaciones de red donde haga falta poner la IP del propio equipo. No interfiere con la IP asignada al equipo bien por nosotros (manualmente) o bien de forma automática mediante DHCP.

Rango de 127.0.0.0 a 127.255.255.255 - Rango de direcciones "loopback". Reservado para los mismos usos que la IP 127.0.0.1.

Direcciones IP con parte de host a 0 - Son direcciones de red, y no las podemos asignar a ningún equipo concreto. La IP que acaba en 255 tampoco podemos usarla en equipos.

Direcciones IP con parte de host a 255 - Son direcciones de broadcast (difusión), y no las podemos asignar a ningún equipo concreto. Se utilizan para enviar datos a todos los equipos de la red simultáneamente.

Rango de 169.254.0.0 a 169.254.255.255 - Son direcciones de "autoconfiguración" de los ordenadores. Son utilizadas por algunos PC y Mac cuando están configurados para usar TCP/IP pero no tienen asignada una IP estática (introducida a mano) y la asignación de una IP dinámica (por DHCP) ha fallado.
Rangos de Direcciones IP Privadas

Son ciertos rangos de direcciones IP reservadas para "usos privados" (Realmente para que las use cualquiera). Estos usos son los siguientes:
  • Redes aisaladas, sin conexión a otras redes.
  • Redes conectadas con otra red o con Internet mediante un dispositivo que realice NAT (Networking Address Translation), como un router . De ésta manera las IP privadas no son "vistas" por la otra red, ya que lo que se verá es la IP externa del router.

Existen IP privadas de clase A, B y C. Los rangos de éstas direcciones IP son:


No hay comentarios: