Ruteo
De XTech Capacitacion
Tabla de contenidos |
Conceptos previos
TCP/IP
Es un conjunto de protocolos de red, que implementa la pila de protocolos en la que se basa Internet y que permiten la transmisión de datos entre redes de computadoras, independientemente del sistema operativo o la arquitectura de estas.
En ocasiones se la denomina conjunto de protocolos TCP/IP, en referencia a los dos protocolos más importantes que la componen: Protocolo de Control de Transmisión (TCP) y Protocolo de Internet (IP), que fueron los dos primeros en definirse, y que son los más utilizados de la familia.
Existen tantos protocolos en este conjunto que llegan a ser más de 100 diferentes, entre ellos se encuentra el popular HTTP (HyperText Transfer Protocol), que es el que se utiliza para acceder a las páginas web, además de otros como el ARP para la resolución de direcciones, el FTP para tranferencia de archivos, y el SMTP y el POP para correo electrónico, entre otros.
Direcciones IPv4
En esta versión, una dirección IP se representa mediante un número binario de 32 bits. Las direcciones IP se expresan como números de notación decimal: se dividen los 32 bits de la dirección en cuatro octetos. El valor decimal máximo de cada octeto es 255 (el número binario de 8 bits más alto es 11111111, y esos bits, de derecha a izquierda, tienen valores decimales de 1, 2, 4, 8, 16, 32, 64 y 128, lo que suma 255 en total).
Hay tres clases de direcciones IP que una organización puede recibir de parte de Internet Assigned Numbers Authority (IANA): clase A, clase B y clase C.
En la actualidad, IANA reserva las direcciones de clase A para los gobiernos de todo el mundo (aunque en el pasado se le hayan otorgado a empresas de gran envergadura como, por ejemplo, Hewlett Packard) y las direcciones de clase B para las empresas medianas. A su vez, se otorgan direcciones de clase C para todos los demás solicitantes.
Cada clase de red permite una cantidad fija de equipos (hosts).
En una red de clase A, se asigna el primer octeto a la dirección de red, reservando los tres últimos octetos para que sean asignados a los hosts.
En una red de clase B, se asignan los dos primeros octetos a la dirección de red, reservando los dos octetos finales para que sean asignados a los hosts.
En una red de clase C, se asignan los tres primeros octetos a la dirección de red, reservando el octeto final para que sea asignado a los hosts.
Hay ciertas direcciones en cada clase de dirección IP que no están asignadas y que se denominan "direcciones privadas". Las direcciones privadas pueden ser utilizadas por los hosts que usan traducción de dirección de red (NAT), o un servidor proxy, para conectarse a una red pública o por los hosts que no se conectan a Internet.
A partir de 1993, ante la previsible futura escasez de direcciones IPv4 debido al crecimiento exponencial de hosts en Internet, se empezó a introducir el sistema CIDR, que pretende en líneas generales establecer una distribución de direcciones más fina y granulada, calculando las direcciones necesarias y "desperdiciando" las mínimas posibles, para rodear el problema que las distribución por clases había estado gestando. Este sistema es, de hecho, el empleado actualmente para la delegación de direcciones.
Muchas aplicaciones requieren conectividad dentro de una sola red y no necesitan conectividad externa. En las redes de gran tamaño, a menudo se usa TCP/IP, aunque la conectividad de capa de red no sea necesaria fuera de la red. Los bancos son buenos ejemplos; pueden utilizar TCP/IP para conectar los cajeros automáticos (ATM). Estas máquinas no se conectan a la red pública, de manera que las direcciones privadas son ideales para ellas. Las direcciones privadas también se pueden utilizar en una red en la que no hay suficientes direcciones públicas disponibles.
Las direcciones privadas se pueden utilizar junto con un servidor de traducción de direcciones de red (NAT) o servidor proxy para suministrar conectividad a todos los hosts de una red que tiene relativamente pocas direcciones públicas disponibles. Según lo acordado, cualquier tráfico que posea una dirección destino dentro de uno de los intervalos de direcciones privadas NO se enrutará a través de Internet.
La expresión de direcciones IPv4 es decimal, y se separa cada octeto por un carácter ".". Cada uno de estos octetos puede estar comprendido entre 0 y 255, salvo algunas excepciones. Los ceros iniciales, si los hubiera, se pueden obviar.
- Ejemplo de representación de dirección IPv4: 164.12.123.65
Rangos especiales
Algunos rangos de direcciones reservadas para usos especiales. Regulado por la RFC 3300.
| Direcciones | Equivalente CIDR | Propósito | RFC | Clase | Direcciones posibles |
|---|---|---|---|---|---|
| 0.0.0.0 - 0.255.255.255 | 0.0.0.0/8 | Dirección Cero | RFC 1700 | A | 16,777,216 |
| 10.0.0.0 - 10.255.255.255 | 10.0.0.0/8 | Direcciones IP privadas | RFC 1918 | A | 16,777,216 |
| 127.0.0.0 - 127.255.255.255 | 127.0.0.0/8 | Dirección Localhost Loopback | RFC 1700 | A | 16,777,216 |
| 169.254.0.0 - 169.254.255.255 | 169.254.0.0/16 | Zeroconf | RFC 3330 | B | 65,536 |
| 172.16.0.0 - 172.31.255.255 | 172.16.0.0/12 | Direcciones IP privadas | RFC 1918 | B | 1,048,576 |
| 192.0.2.0 - 192.0.2.255 | 192.0.2.0/24 | Documentación y ejemplos | RFC 3330 | C | 256 |
| 192.88.99.0 - 192.88.99.255 | 192.88.99.0/24 | IPv6 to IPv4 relay Anycast | RFC 3068 | C | 256 |
| 192.168.0.0 - 192.168.255.255 | 192.168.0.0/16 | Direcciones IP privadas | RFC 1918 | C | 65,536 |
| 198.18.0.0 - 198.19.255.255 | 198.18.0.0/15 | Network Device Benchmark | RFC 2544 | C | 131,072 |
| 224.0.0.0 - 239.255.255.255 | 224.0.0.0/4 | Multicast | RFC 3171 | D | 268,435,456 |
| 240.0.0.0 - 255.255.255.255 | 240.0.0.0/4 | Reservado | RFC 1700 | E | 268,435,456 |
Direcciones IPv6
La función de la dirección IPv6 es exactamente la misma, pero dentro del protocolo IPv6. Está compuesta por 8 segmentos de 2 bytes (16 bits) cada uno, que suman un total de 128 bits (8 x 16 bits), el equivalente a unos 3.4x1038 hosts direccionables. La ventaja con respecto a la dirección IPv4 es obvia en cuanto a su capacidad de direccionamiento.
Su representación es hexadecimal y para la separación de cada par de octetos se emplea el símbolo ":". Un bloque abarca desde 0000 hasta FFFF. Algunas reglas acerca de la representación de direcciones IPv6 son:
- Los ceros iniciales, como en IPv4, se pueden obviar.
Ejemplo: 2001:0123:0004:00ab:0cde:3403:0001:0063 -> 2001:123:4:ab:cde:3403:1:63
- Los bloques contiguos de ceros se pueden comprimir empleando "::". Esta operación sólo se puede hacer UNA vez.
Ejemplo: 2001:0:0:0:0:0:0:4 -> 2001::4
Ejemplo NO válido: 2001:0:0:0:2:0:0:1 -> 2001::2::1 (debería ser 2001::2:0:0:1 ó 2001:0:0:0:2::1).
Router y Gateway
El router (enrutador o encaminador) es un dispositivo hardware o software de interconexión de redes de ordenadores/computadoras que opera en la capa 3 (nivel de red) del modelo OSI. Este dispositivo interconecta segmentos de red o redes enteras. Hace pasar paquetes de datos entre redes tomando como base la información de la capa de red.
El router toma decisiones lógicas con respecto a la mejor ruta para el envío de datos a través de una red interconectada y luego dirige los paquetes hacia el segmento y el puerto de salida adecuados. Sus decisiones se basan en diversos parametros. Una de las más importantes es decidir la dirección de la red hacia la que va destinado el paquete (En el caso del protocolo IP esta sería la dirección IP). Otras decisiones son la carga de tráfico de red en las distintos interfaces de red del router y establecer la velocidad de cada una de ellas, dependiendo del protocolo que se utilice.
Generalmente los términos router y gateway se emplean indistintamente para referirse de forma general a los sistemas encargados del encaminamiento de datos en Internet.
Firewall
Un cortafuegos (o firewall en inglés), es un elemento de hardware o software utilizado en las redes para prevenir algunos tipos de comunicaciones prohibidas por las políticas de red, las cuales se fundamentan en las necesidades del usuario.
La configuración correcta de cortafuegos se basa en conocimientos considerables de los protocolos de red y de la seguridad de la computadora. Errores pequeños pueden dejar a un cortafuego sin valor como herramienta de seguridad.
DMZ - Zona desmilitarizada
Es una área de una red de computadoras que está entre la red interior de una organización y una red exterior, generalmente la Internet. La zona desmilitarizada permite que, servidores interiores provean la red exterior de servicios, mientras protege la red interior de intromisiones. En términos más simples, es como una calle de sentido único.
La red interior se permite iniciar conexiones a la exterior, pero no viceversa.
Proxy
El término proxy (en inglés «apoderado» o «delegado») hace referencia a un programa o dispositivo que realiza una acción en representación de otro. La finalidad más habitual de esa representación es la de permitir el acceso a Internet a todos los equipos de una organización cuando sólo se puede disponer de un único equipo conectado, esto es, una única dirección IP.
Un proxy permite a otros equipos conectarse a una red de forma indirecta a través de él. Cuando un equipo de la red desea acceder a una información o recurso, es realmente el proxy quien realiza la comunicación y a continuación traslada el resultado al equipo inicial. En unos casos esto se hace así porque no es posible la comunicación directa y en otros casos porque el proxy añade una funcionalidad adicional, como puede ser la de mantener los resultados obtenidos en una cache que permita acelerar sucesivas consultas coincidentes o también la de gestionar los contenidos que se quieran permitir acceder desde la red interna.
Enmascaramiento de IP
La traducción de direcciones de red (NAT, Network Address Translation) también es conocida como enmascaramiento de IPs. Es una técnica mediante la cual las direcciones fuente y/o destino de los paquetes IP son reescritas, sustituidas por otras (de ahí el "enmascaramiento").
Esto es lo que ocurre cuando varios usuarios comparten una única conexión a Internet. Se dispone de una única dirección IP pública, que tiene que ser compartida.
Dentro de la red de LAN, los equipos emplean direcciones IP privadas y será el proxy el encargado de traducir las direcciones privadas a esa única dirección pública para realizar las peticiones, así como de distribuir las páginas recibidas a aquel usuario interno que la solicitó.
Esta situación es muy común en empresas y domicilios con varias computadoras en red y un acceso externo a Internet.
Introducción
Routeo (routing) es el procedimiento mediante el cual un paquete TCP/IP conoce el camino para llegar desde el nodo A hasta el nodo B. Esa definición esconde, sin embargo, un problema complejo.
Ya conocemos que cada nodo de una red TCP/IP está identificado por un número IP, y que una red es un grupo de números IP. Estas redes están conectadas unas con otras mediante gateways como podemos ver en este gráfico.
Cuando consideramos el problema del routing, no sólo es importante el lugar de destino, sino el lugar de partida de los paquetes.
Por ejemplo, un paquete que sale desde 192.168.1.2 con destino 192.168.3.2 no sigue el mismo camino que uno que sale desde 182.168.3.1 aunque vaya al mismo destino.
La solución adoptada en redes TCP/IP al problema del routing es tener, en cada computadora, la suficiente información para encontrar el camino hasta la salida de su propia red y manejarse paso a paso hasta llegar a destino.
Esta solución es práctica, ya que requiere poca configuración en la mayoría de los casos, pero involucra un planeamiento minucioso en el caso de redes complejas.
Routing entre dos redes
Examinemos como sería la configuración de routeo de los nodos del gráfico 1. Conciderando la red de color violeta. Recordemos primero, que la dirección IP se le asigna a una interfaz y no a una máquina, por lo que una máquina puede ser receptora de más de una dirección IP.
La interfaz 192.168.1.2 tiene configurada como red local la 192.168.1.0/255.255.255.0 (o en su forma simplificada: 192.168.1.0/24) y como default gateway (puerta de enlace predeterminada) la interfaz 192.168.1.1.
De esa manera, para acceder a cualquier IP dentro de la red 192.168.1.0, todo lo que debe hacer es ponerlo en la misma y funciona. Para cualquier otro IP, el paquete será entregado al gateway (que está en la red local) y este se encargará de distribuirlo de allí en adelante.
El gateway tiene dos interfaces de red, 192.168.1.1 y 192.168.2.1. Por lo tanto es miembro de las redes 192.168.1.0 y 192.168.2.0, sabiendo como comunicarse con cualquier máquina en dichas redes.
Si 192.168.1.1 se configura para reenviar (forward) los paquetes entre sus interfaces de red, entonces al recibir un paquete desde 192.168.1.2 dirigido hacia 192.168.2.2, dicho paquete se pone en la interfaz 192.168.2.1, con destino 192.168.2.2 y llega a dicha dirección.
Reenvío de IP
Para habilitar reenvío:
echo 1 >/proc/sys/net/ipv4/ip_forward
Para deshabilitarlo:
echo 0 >/proc/sys/net/ipv4/ip_forward
- Importante: no olvide hacer esto en un script de arranque si desea que sea permanente.
La configuración de 192.168.2.2 es análoga a la de 192.168.1.2, con gateway por defecto 192.168.2.1
En resumen: hasta ahora tenemos dos redes conectadas entre sí, que es el caso más sencillo de routing.
Ruteo entre tres redes con acceso a internet
Acá la cosa tiende a complicarse, aunque veremos que no tanto. Usaremos para la explicación el mismo gráfico 1.
Como podemos ver tenemos cuatro redes interconectadas:
- La de color violeta -
192.168.1.0/24(la llamaremos red 1) - La de color rojo -
192.168.2.0/24(la llamaremos red 2) - La de color verde -
192.168.3.0/24(la llamaremos red 3) - La de color azul, representando Internet
En el caso anterior, teníamos un Default Gateway que servía de puente entre las redes 192.168.1.0 y 192.168.2.0. Por lo que cada máquina "sabía" que si tenía que enviar un paquete a otra de su misma red, solo lo enviaba. Y si la máquina de destino era de una red distinta se lo mandaba al "Default gateway", que él sabría que hacer con ese paquete.
Ahora supongamos que la máquina 192.168.1.2, quiere enviarle un paquete a la máquina 192.168.3.2. Si lo manda al Default gateway entre las redes 1 y 2, éste no tiene alcance a la máquina 192.168.3.2. Por lo que no lo podrá entregar.
- Aclaración: Default Gateway no es lo mismo que Gateway. Puesto que al primero van todas las conexiones con redes desconocidas y al segundo, solo las redes que las máquinas conocen que sirve de puerta de enlace.
La solución es que la red 192.168.2.0 tenga otro Gateway aparte del 192.168.2.1... Por lo que le ponemos como Gateway (a esa máquina) la placa 192.168.2.3, que pertenece a otra máquina que sí será Default gateway de la red 192.168.3.0. De forma recíproca, le ponemos como Gateway a la máquina con la placa 192.168.2.3, la placa 192.168.2.1. De esta manera, lo que cada una reciba de las redes 1 y 3, (y que no sea para la red 2) lo mandarán a la otra.
Entonces el viaje de nuestro paquete sería el siguiente: La máquina 192.168.1.2 tiene que enviar un paquete que no va a la red de la cual pertenece, por lo que se lo entrega al Default gateway 1. Éste recibe el paquete y nota que no es para la red a la cual pertence (la 192.168.2.0), por lo que se lo envía al Gateway 2, la placa 192.168.2.3. Cuando esta máquina recibe ese paquete, nota que va dirigido a una de las máquinas de la red 192.168.3.0, de la cual es también Default gateway, así que lo entrega.
Si esta máquina (la 192.168.3.2) tiene que responder este paquete al remintente, entonces se lo manda a 192.168.3.1, que, a través de 192.168.2.3 lo manda a 192.168.2.1; que, a su vez, lo reenvía por su otra placa de red (192.168.1.1) al host 192.168.1.2... Y todos felices de que la comunicación haya resultado!
Otra ruta que deberán tener las máquinas 192.168.2.1 y 192.168.2.3, es la que orienta el tráfico a Internet. Osea que reconocerán que si les llega un paquete que no corresponde a ninguna de las tres redes internas, lo mandarán a la máquina 192.168.2.10 que ese sí será el Default Gateway de la red 2.
Sistema de Información de Red (NIS)
Cuando se usa una red de área local, la meta final suele ser proporcionar un entorno que haga la red transparente a los usuarios. Un paso importante, es mantener los datos vitales, como la información de las cuentas de usuario, sincronizados en todas las máquinas.
Esto proporciona a los usuarios la libertad de moverse de máquina en máquina sin el inconveniente de tener que recordar contraseñas diferentes y copiar datos de una a otra.
Los datos que están almacenados centralmente no necesitan ser replicados mientras exista un medio de acceder a ellos desde un nodo conectado a la red.
Al almacenar centralmente la información administrativa importante, se consigue asegurar la consistencia de esos datos, aumentar la flexibilidad a los usuarios (permitiéndoles moverse de nodo a nodo de manera transparente) y hacerle la vida mucho más fácil al administrador (al tener que mantener sólo una copia de la información).
Anteriormente hemos discutido un ejemplo importante de este concepto que se utiliza en Internet—el Sistema de Nombres de Dominio (DNS). DNS sirve un rango limitado de información, siendo la más importante la correspondencia al nombre de nodo y la dirección IP. Para otros tipos de información, no existe un servicio especializado así. Por otra parte, si usted sólo administra una pequeña LAN sin conectividad a Internet, no parece que valga la pena configurar un DNS.
Ésta es la razón por la que Sun desarrolló el Sistema de Información de Red (NIS). NIS proporciona prestaciones de acceso a bases de datos genéricas que pueden utilizarse para distribuír, por ejemplo, la información contenida en los archivos passwd y groups a todos los nodos de su red. Esto hace que la red parezca un sistema individual, con las mismas cuentas en todos los nodos. De manera similar, usted puede usar NIS para distribuír la información de nombres de nodo, contenida en /etc/hosts a todas las máquinas de la red.
NIS está basado en RPC (protocolo que permite a los programas llamar a subrutinas que se ejecutarán en un sistema remoto) y consta de un servidor, una biblioteca de la parte cliente, y varias herramientas de administración.
Originalmente NIS se llamaba Páginas Amarillas (Yellow Pages), o YP, que todavía se utiliza para referirse a él. Desafortunadamente, ese nombre es una marca registrada de British Telecom, que exigió a Sun abandonar ese nombre. Al pasar el tiempo, algunos nombres se aferran en la mente de la gente, y así YP permanece como prefijo en los nombres de la mayoría de laso órdenes relacionadas con NIS, como ypserv y ypbind.
Hoy NIS está disponible prácticamente en todos los Unixes e incluso existen implementaciones libres. El código de la biblioteca de la parte cliente de esta versión existe en la libc de Linux desde hace mucho tiempo.
Peter Eriksson ha desarrollado una implementación nueva llamada NYS. Soporta tanto NIS básico como la versión mejorada de Sun NIS+. NYS no sólo proporciona una serie de herramientas NIS y un servidor, sino que también añade un completo juego nuevo de funciones de biblioteca que necesita compilar en su libc si quiere utilizarlas. Esto incluye un esquema nuevo de configuración para la resolución de nombres de nodo que sustituye al esquema actual que usa el fichero host.conf.
Bibliografía
- http://es.wikipedia.org/wiki/TCP/IP
- http://es.wikipedia.org/wiki/IPv4
- http://es.wikipedia.org/wiki/IPv6
- http://es.wikipedia.org/wiki/Router
- http://es.wikipedia.org/wiki/Puerta_de_enlace
- http://www.monografias.com/trabajos5/datint/datint.shtml
- http://www.monografias.com/trabajos13/modosi/modosi.shtml#ROUTER
- http://es.wikipedia.org/wiki/Firewall
- http://compnetworking.about.com/cs/networksecurity/g/bldef_dmz.htm
- http://es.wikipedia.org/wiki/Proxy
- http://es.tldp.org/Manuales-LuCAS/GARL2/garl2/


