Redes Internet

Direcciones IP, direccionamiento de redes, enrutamiento y reenvío son conceptos relacionados e importantes en redes Internet. Una dirección IP es un identificador para un nodo de red como un PC, un servidor, un enrutador o un puente. El direccionamiento de redes es un sistema usado para asignar estos identificadores en grupos convenientes. El enrutamiento mantiene un registro del lugar en la red donde están ubicados esos grupos. Los resultados del proceso de enrutamiento se guardan en una lista llamada tabla de enrutamiento. El reenvío es la acción de usar la tabla de enrutamiento para mandar un paquete al destino final o al "próximo salto" en la dirección a ese destino.

Direcciones IP

En una red IP1), la dirección es un número de 32 bits, usualmente escrito como 4 números de 8 bits expresados en forma decimal, separados por puntos. Algunos ejemplos de direcciones IP son 10.0.17.1, 192.168.1.1 ó 172.16.5.23.

Direccionamiento de redes

Las redes interconectadas deben ponerse de acuerdo sobre un plan de direccionamiento IP. En Internet, hay comités de personas que asignan las direcciones IP con un método consistente y coherente para garantizar que no se dupliquen las direcciones, y establecen nombres que representan a grupos de direcciones. Esos grupos de direcciones son denominados subredes, o subnets. Grandes subnets pueden ser subdivididas en subnets más pequeñas. Algunas veces un grupo de direcciones relacionadas se denomina espacio de direcciones.

En Internet, ninguna persona u organización posee realmente estos grupos de direcciones porque las direcciones sólo tienen significado si el resto de la comunidad de Internet se pone de acuerdo sobre su uso. Mediante acuerdos, las direcciones son asignadas a organizaciones en relación con sus necesidades y tamaño. Una organización a la cual se le ha asignado un rango de direcciones, puede asignar una porción de ese rango a otra organización como parte de un contrato de servicio. Las direcciones que han sido asignadas de esta manera, comenzando con comités reconocidos internacionalmente, y luego repartidas jerárquicamente por comités nacionales o regionales, son denominadas direcciones IP enrutadas globalmente.

Algunas veces es inconveniente o imposible obtener más de una dirección IP enrutada globalmente para un individuo u organización. En este caso, se puede usar una técnica conocida como Traducción de Direcciones de Red o NAT (Network Address Translation). Un dispositivo NAT es un enrutador con dos puertos de red. El puerto externo utiliza una dirección IP enrutada globalmente, mientras que el puerto interno utiliza una dirección IP de un rango especial conocido como direcciones privadas2). El enrutador NAT permite que una única dirección global sea compartida por todos los usuarios internos, los cuales usan direcciones privadas. A medida que los paquetes pasan por él los convierte de una forma de direccionamiento a otra. Al usuario le parece que está conectado directamente a Internet y que no requieren software o controladores especiales para compartir una única dirección IP enrutada globalmente.

Enrutamiento

Internet está cambiando y creciendo constantemente. Continuamente se agregan nuevas redes, se añaden y remueven enlaces entre redes, que fallan y vuelven a funcionar. El trabajo del enrutamiento es determinar la mejor ruta al destino, y crear una tabla de enrutamiento que liste el mejor camino para todos los diferentes destinos.

Enrutamiento estático es el término utilizado cuando la tabla de enrutamiento es creada por configuración manual. Algunas veces esto es conveniente para redes pequeñas, pero puede transformarse rápidamente en algo muy dificultoso y propenso al error en redes grandes. Peor aún, si la mejor ruta para una red se torna inutilizable por una falla en el equipo u otras razones, el enrutamiento estático no podrá hacer uso de otro camino.

Enrutamiento dinámico es un método en el cual los elementos de la red, en particular los enrutadores, intercambian información acerca de su estado y el estado de sus vecinos en la red, y luego utilizan esta información para automáticamente tomar la mejor ruta y crear la tabla de enrutamiento. Si algo cambia, como un enrutador que falla, o uno nuevo que se pone en servicio, los protocolos de enrutamiento dinámico realizan los ajustes a la tabla de enrutamiento. El sistema de intercambio de paquetes y toma de decisiones es conocido como protocolo de enrutamiento. Hay muchos protocolos de enrutamiento usados en Internet hoy en día, incluyendo OSPF, BGP, RIP, y EIGRP.

Las redes inalámbricas asemejan a las redes cableadas, en el sentido de que necesitan protocolos de enrutamiento dinámicos, pero tienen suficientes diferencias para requerir protocolos de enrutamiento orientados a sus necesidades específicas. En particular, las conexiones de las redes cableadas generalmente funcionan bien o no funcionan (por ejemplo, un cable Ethernet está enchufado o no). Las cosas no son tan claras cuando se trabaja con redes inalámbricas. La comunicación inalámbrica puede ser afectada por objetos en movimiento en el camino de la señal, o por señales que interfieren. Consecuentemente, los enlaces pueden no funcionar bien, o funcionar pobremente, o variar entre los dos extremos. Ya que los protocolos de red existentes no toman en cuenta la calidad de un enlace cuando realizan decisiones de enrutamiento, el comité IEEE 802.11 y el IETF están trabajando en estandarizar protocolos para redes inalámbricas. En la actualidad está poco claro cuándo va a surgir un estándar único que tome en cuenta los enlaces de calidad variable.

Mientras tanto, hay muchos intentos de programación ad hoc que quieren solucionar el problema. Algunos ejemplos incluyen Hazy Sighted Link State (HSLS) 'Visión Borrosa del Estado del Enlace', Ad-hoc On-demand Distance Vector (AODV) 'Vector de Distancia bajo Demanda ad hoc', y Optimized Link State Routing (OLSR) 'Enrutamiento Optimizado según el Estado de la Red'. Otro es el SrcR, una combinación de DSR y ETX implementada por el proyecto Roofnet del MIT. Más adelante en este capítulo vamos a ver ejemplos de cómo implementar una red utilizando OLSR para realizar decisiones de enrutamiento.

Reenvío

El reenvío es mucho más sencillo que el direccionamiento y el enrutamiento. Cada vez que un enrutador recibe un paquete, consulta su tabla de enrutamiento interna. Comenzando con el bit más significativo (de mayor orden), escudriña la tabla de enrutamiento hasta encontrar la entrada que tenga el mayor número de bits coincidentes con la dirección destinataria. A esto se le llama prefijo de la dirección. Si en la tabla se encuentra una entrada que coincide con el prefijo, el campo hop count (cuenta de salto) o TTL (tiempo de vida) se decrementa. Si el resultado es cero, el paquete se descarta y se envía una notificación de error al emisor del mismo. De lo contrario, el paquete se envía al nodo o interfaz especificado en la tabla de enrutamiento. Por ejemplo, si la tabla de enrutamiento contiene estas entradas:

DestinationGatewayGenmaskFlagsMetricIface
10.15.6.00.0.0.0255.255.255.0U0eth1
10.15.6.10810.15.6.7255.255.255.255UG1eth1
216.231.38.00.0.0.0255.255.255.0U0eth0
0.0.0.0216.231.38.10.0.0.0UG0eth0

… y el paquete llega con la dirección de destino 10.15.6.23, el enrutador sería enviado por la interfaz eth1. Si el paquete tiene un destino de 10.15.6.108, sería reenviado al gateway (pasarela) 10.15.6.7 (ya que es más específica y hay más coincidencia de bits de alto orden que la ruta a la red 10.15.6.0.).

El destino 0.0.0.0 es una convención especial denominada gateway por omisión. Si ningún prefijo corresponde a la dirección de destino, el paquete es enviado al gateway por omisión. Por ejemplo, si un destino fuera 72.1.140.203, el enrutador reenviaría el paquete a 216.231.38.1 (que presumiblemente acercaría el paquete a su último destino, y así sucesivamente).

Si un paquete llega y no se encuentra una entrada apropiada (por ej. no se ha definido un gateway por omisión y ningún prefijo corresponde a una ruta conocida), se descarta el paquete y se regresa un paquete de error al emisor inicial.

El campo TTL se utiliza para detectar bucles de enrutamiento. En su ausencia, un paquete podría circular indefinidamente entre dos enrutadores que se listan mutuamente como el mejor próximo salto. Esta clase de bucles puede causar mucho tráfico innecesario en la red y constituye una amenaza a su estabilidad. Usar el campo TTL no soluciona los bucles de enrutamiento, pero ayuda a prevenir la destrucción de una red debido a una mala configuración.

Unificando todo

Una vez que todos los nodos de la red tienen una dirección IP, pueden enviar paquetes de datos a cualquier otro nodo. Mediante el enrutamiento y el reenvío, esos paquetes pueden llegar a nodos en redes que no están conectadas físicamente con el nodo original. Este proceso describe mucho de lo que “sucede” en Internet. Esto es ilustrado en la siguiente figura:

img157.imageshack.us_img157_6720_wndw306yv1.jpg

En este ejemplo se puede ver el camino que toman los paquetes cuando Alicia habla con Bob utilizando un servicio de mensajería instantánea. Cada línea punteada representa un cable Ethernet, un enlace inalámbrico, o cualquier otro tipo de red física. El símbolo de la nube es usado comúnmente para “La Internet”, y representa cualquier número de redes IP involucradas. Ni Alicia ni Bob necesitan preocuparse de cómo operan esas redes, siempre que los enrutadores reenvíen el tráfico IP hasta el destino final. Si no fuera por los protocolos de Internet y la cooperación de todos en la red, este tipo de comunicación sería imposible.

Ahora que hemos visto cómo fluyen los paquetes en las redes IP, vamos a ver un tipo de red IP muy especializada: una red mallada (mesh) OLSR.


1) En este libro vamos a tratar primariamente con IPv4, la versión de este protocolo de mayor uso hoy en día. Aunque IPv6 va a remplazar a IPv4 en algún momento futuro, discutir IPv6 está fuera del alcance de este libro.
2) El término direcciones privadas es definido en RFC 1918, http://www.ietf.org/rfc/rfc1918
manuales/libros/wndw/capitulo_3/internet.txt · Última modificación: 2007/02/03 19:21 (editor externo)
Recent changes RSS feed Creative Commons License Driven by DokuWiki