Indicadores de Logros
En una red TCP/IP, cada computador tiene como identificación una dirección IP única. Esta dirección consta de 32 bits, y suele escribirse como 4 números/bytes separando unos de otros por punto (cada uno es un número entre 0 y 255), por ejemplo 66.35.250.209. Cómo TCP/IP se diseño para interconectar redes, una dirección IP consta de una parte que identifica de forma única la red y otra que identifica de forma única el computador dentro de la red. Una máscara de red determina que parte identifica la red y cuáles computadores en la red puede denotarse con el número de bits del comienzo de la dirección que identifican la red (e.g 16 si los primeros 16 bits identifican la red) o como otra dirección que al hacer la operación lógica y con la dirección IP dará la dirección de red (por ejemplo 255.255.0.0 es una máscara que indica que los primeros 16 bits de una dirección IP son la dirección de red).
Al diseñar una red debe escogerse una dirección de red junto con la máscara de acuerdo al número de computadores, algunas posibilidades son:
16777216 computadores
1048576 computadores
65536 computadores
255 computadores
Además la dirección de red que escoja debe ser única para no producir conflictos con otras redes en caso de conectarse a Internet y puede facilitar la interconexión de diversas redes y el enrutamiento al interior de una organización.
Para facilitar la adopción de redes TCP/IP en organizaciones, el RFC 1918 destinó algunas direcciones de red para usar al interior de organizaciones (no puede haber computadores en Internet con esas direcciones):
máscara /8
máscara /12
máscara /16
Para nuestra plataforma de referencia, recomendamos emplear direcciones entre 192.168.1.1 y 192.168.1.255 con máscara de red /24 o 255.255.255.0. O en caso de contar con más redes en el mismo colegio, la segunda con direcciones entre 192.168.2.1 y 192.168.2.255 y así sucesivamente. Además de usar direcciones privadas, se facilita el crecimiento de la infraestructura de redes y la configuración del enrutamiento entre unas y otras
Como se presentó en la descripción de las capas en redes TCP/IP (ver Redes, protocolos e Internet), el protocolo IP mantiene una tabla de enrutamiento que asocia direcciones de red con compuertas, es decir con computadores conectados a la misma red que pueden retransmitir información a la red destino.
Puede ver la tabla de enrutamiento estático en /proc/net/route o mejor con route o con netstat -r. Entre los campos de cada entrada de esta tabla están: red destino, mascara de la red destino, interfaz por la cual enviar/recibir paquetes con ese destino, compuerta a la cual enviar para retransmisión (o * si se envia a toda la red conectada a la interfaz), opciones entre las que puede aparecer: U enrutamiento funcionando, H destino es un computador, G destino es una compuerta, ! ruta rechazada.
Hay una compuerta por defecto (default) a la se envia todo paquete que no tiene un destino en la tabla de enrutamiento. La compuerta por defecto corresponde a la configurada como gateway de la interfaz de red en el archivo /etc/network/interfaces
De requerirse pueden agregarse compuertas con route add por ejemplo, para agregar una ruta a la red 192.168.2.0/24 usando como compuerta 192.168.1.60 que está en la misma red:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.60
Y pueden elminarse de forma análoga con route del.
Para determinar problemas de enrutamiento o en general de la red, puede emplear algunas herramientas de diagnóstico por ejemplo:
Disponible en el paquete traceroute, presenta las direcciones de los computadores y enrutadores que transmiten un paquete hasta llegar a su destino. Por ejemplo
traceroute 192.168.2.2
Éste presenta estadísticas sobre IP, ICMP y TCP
Que presenta direcciones MAC (debe instalar primero el paquete iproute
Disponible en el paquete tcpdump permite analizar el tráfico de una red TCP/IP. Desde la cuenta root puede usarse este programa para examinar todo el tráfico que circule por una red.
Y para realizar configuraciones a los protocolos IP y TCP:
En este archivo se listan nombres asociados a la dirección IP de algunos computadores, por ejemplo:
127.0.0.1 localhost 192.168.1.1 servidor.micolegio.edu.co servidor
Para configurar algunas variables del kernel relacionadas con redes (ver Configuración del kernel). Los cambios que pueden hacerse con sysctl también se pueden hacer escribiendo en los archivos del directorio /proc/sys/net/ipv4. Algunos son:
El cuál determina el rango de puertos que pueden usarse.
Que habilita reenvio en puertos IP. Esto es indispensable para hacer enmascaramiento y para que el sistema actue como enrutador. También puede establecerse en el archivo /etc/network/options con
ip_forward=yes
Establece el tiempo de vida por defecto de paquetes que salgan.
Para configurar enmascaramiento o un contrafuegos[207].
Suponga que hay dos redes LAN con direcciones privadas que desea interconectar, cada una tiene un concentrador, una tiene direcciones de la forma 192.168.1.x (i.e 192.168.1.0 con netmask 255.255.255.0 o más breve 192.168.1.0/24), y la otra 192.168.2.x.
Para que las dos redes mantengan cada una su concentrador, se requeriría un computador conectado a ambas redes que pueda retransmitir los paquetes a la red apropiada, y se tendría que configurar el enrutamiento en cada red (puede ser en cada computador o en la compuerta por defecto de cada uno), para que envie paquetes dirigidos a la otra red por el computador intermediario.
Para conectarse a ambas redes el computador intermediario debería tener dos tarjetas de red, una conectada a la primera red (digamos eth0 con dirección 192.168.1.200), la otra a la segunda (digamos eth1 con dirección 192.168.2.100) y debe estar configurado para retransmitir paquetes. La interfaz de red para la tarjeta conectada a la red 192.168.1.x, debe configurarse con una dirección en esa red. Por ejemplo la primera tarjeta conectada a la red 192.168.1.x puede asociarse con la interfaz eth0 con dirección 192.168.1.200 con:
ifconfig eth0 192.168.1.200 netmask 255.255.255.0
o podría configurarse en /etc/networks/interfaces con:
iface eth0 inet static address 192.168.1.200 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255
Una vez configuradas las dos tarjetas, podría configurar el enrutamiento primero habilitando reenvio de paquetes IP:
echo 1 > /proc/sys/net/ipv4/ip_forward
o para que la configuración sea tomada durante el arranque en el archivo /etc/network/options (ver Inicialización del sistema):
ip_forward=yes spoofprotect=yes syncookies=no
después puede configurar desde la línea de comandos (o un script durante el arranque del sistema) el enrutamiento de acuerdo a las interfaces:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1
Para que otros computadores de la red 192.168.1.x se puedan comunicar con otros de 192.168.2.x y viceversa, debería configurar en los que se comunicaran o en las computertas de cada red (EN AMBOS) al intermediario. Por ejemplo si 192.168.1.2 se conectará con 192.168.2.2, en el primero debe usar:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.200
y en el segundo
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.100
después de hacer esta configuración en los dos, puede probar por ejemplo desde 192.168.2.2
ping 192.168.1.2
Si tiene problemas en la conexión, puede verificar las tablas de enrutamiento (con route o netstat -r) o puede rastrear la ruta que toman los paquetes con traceroute, por ejemplo desde 192.168.2.2:
traceroute 192.168.1.2
En caso de que cuente con una conexión a Internet en el servidor de su red, bien sea permanente o esporádica (por ejemplo con un modem), le será posible establecer conexiones desde cualquier computador de la red con computadores en Internet empleando enmascaramiento (note que todas las direcciones IP de la red local son privadas y no corresponden a direcciones IP reales, globlamente localizables, así que sin enmascaramiento NO podrían emplear Internet).
El computador que conecte a Internet debe tener al menos dos interfaces de red además de loopback: una tipo ethernet para comunicarse con la red interna y otra para comunicarse con Internet (por ejemplo una interfaz PPP). Cada una de las interfaces tendrá una dirección IP, la de la interfaz conectada a Internet será una dirección IP real, localizable en el mundo entero (digamos 1.2.3.4) y la otra será una dirección privada no utilizable en Internet (digamos 192.168.1.1).
Al emplear enmascaramiento las conexiones iniciadas en un computador de la red privada pasarán por el servidor, el cual cambiará la dirección del computador que inicia la conexión por la del mismo servidor y reenviará la información a Internet. De esta forma el computador que conteste en Internet responderá al servidor, el cual podrá ajustar la dirección de la información que reciba para que llegue al computador dentro de la Intranet.
Para configurar enmascaramiento [208] en Debian instale el paquete ipmasq, el cual instala el script ipmasq, lo ejecuta y prepara el proceso de inicialización para ejecutarlo siempre durante el arranque (vea Inicialización del sistema. ipmasq configura el computador donde se instala para hacer enmascaramiento y como contrafuegos básico (que tras la instalación permite iniciar todo tipo de conexión desde la red interna hacia la externa con un poco de seguridad [209]). El contrafuego puede restringirse agregando reglas para ipchains en archivos del directorio /etc/ipmasq/rules.
En el caso de una conexión a Internet usando ppp, puede crear el archivo /etc/ipmasq/ppp para que las reglas del contrafuegos sean configuradas cuando pppd inicia o termina una conexión.
Net-HOWTO. 5.1.2. IP Addresses, an Explanation. http://linuxdoc.org/HOWTO/Net-HOWTO/c135.html#AEN138
Net-HOWTO. 5.5.1. What"s in a name ? http://linuxdoc.org/HOWTO/Net-HOWTO/x398.html#AEN404
Puede consultar más sobre enmascaramiento después de instalar el paquete ipmasq en el directorio /usr/share/doc/ipmasq y en las página man de ipmasq-rule que indica como agregar reglas al contrafuego.
[207] Contrafuego del inglés firewall
[208] Para emplear enmascaramiento el kernel debe ser compilado con las opciones CONFIG_FIREWALL, CONFIG_IP_FIREWALL, CONFIG_IP_FORWARD, y CONFIG_IP_MASQUERADE (configuraciones ya hechas en los kernels por defecto de Debian).
[209] ipmasq evita algunos ataques que emplean spoofing, es decir suplantación de la IP de un computador.