Home router/es

Éste documento detalla cómo convertir una vieja máquina Gentoo en un router para conectar una red casera a Internet

Introducción
Construir un router personal con partes viejas de repuesto tiene muchas ventajas sobre comprar un router pre-fabricado de grandes compañias (Linksys, D-Link, Netgear, etc.). La mayor ventaja por mucho es el control sobre la conexión. Las otras ventajas pueden dejarse a la imaginación del usuario; casi cualquier cosa puede ser hecha en este escenario, es simplememente una cuestión de necesidades.

Esta guía proporciona instrucciones en cómo configurar Traducción de Direcciones de Red (NAT) en un router personalizado (núcleo e iptables), añadir y configurar servicios comunes (Sistema de nombres de dominios (DNS) mediante, DHCP mediante , ADSL mediante ), y concluir con algunas cosas elaboradas y divertidas que los routers personalizados pueden hacer (reenvío de puertos, modelado de tráfico, proxies/cache, etc...).

Antes de iniciar, por favor revisa la lista de requerimientos básicos:
 * 1) Una computadora que tenga al menos 2 tarjetas de red (NICs) instaladas.
 * 2) Los parámetros de configuración para la conexión de Internet (podría incluir cosas como IP/DNS/Gateway/nombre de usuario/contraseña).
 * 3) (Opcional) una tarjeta Wi-Fi que soporte el modo maestro (master mode). El modo maestro es recomendado para evitar interfaces de red (NICs) con característica bypass ya que algunas interfaces de red (NICs) requieren controladores propietarios. Sin acceso a los controladores propietarios la tarjeta se mantendría en modo bypass permanentemente y no sería usable.
 * 4) Un poco de tiempo libre y amor a Gentoo para seguir esta guía e implementar un buen router casero funcional.

Las convenciones usadas en esta guía son:


 * eth0 - Tarjeta de red conectada a la red local (LAN) o puente de red consistiendo de varias tarjetas de red
 * eth1 - Tarjeta de red conectada a la red de área amplia (WAN)
 * LAN utiliza el segmento de red privado 192.168.0.xxx
 * La dirección IP del router está en código duro a 192.168.0.1
 * La máquina router está corriendo Linux 2.4 o 2.6; otras versiones del núcleo no están soportadas por esta guía.

Configuración del núcleo (lo primero a hacer)
El núcleo necesita tener los controladores instalados para ambas tarjetas de red en el sistema. Para ver si las tarjetas están ya configuradas usa el comando. La salida podría diferir ligeramente del siguiente ejemplo. Lo que importa es que las interfaces se muestren.

Si solo una (o ninguna) de las dos tarjetas se muestra intenta correr.

Una vez que se han obtenido el fabricante y modelo de las tarjetas de red, configura el núcleo con soporte para los controladores correctos. Para más información en la configuración del núcleo ve Guía de configuración del kernel.

Los siga es soporte para Iptables y NAT (y modelado de paquetes si se desea). La siguiente lista esta separada en siempre requerido (*), requerido solo para ADSL mediante PPPoE (a), sugerido para todos (x), y solo para características de modelado (s). No importa si las características están compiladas en el núcleo o como módulos ya que cuando se necesita una característica, se carga el módulo o módulos. Para más información sobre la carga de módulos vea la guía sobre los módulos del núcleo.

Cuando se usa un núcleo 2.4.x, se debe habilitar lo siguiente para DHCP

Introducción
Hay "muchas" formas de conectarse a Internet, sin embargo hay generalmente solo un par de maneras que son usadas por la mayoría del público. ADSL (PPPoE) y módems por cable (estático/dinámico) son los dos métodos más comunes que proporcionan los Proveedores de servicios de Internet (ISP). Si hay otros métodos disponibles, siéntete libre de añadirlos a esta artículo de la wiki. Omite cualquiera de las siguientes secciones en este capítulo que no sean aplicables a tus necesidades. Este capítulo trata de cómo lograr conectar el router a Internet mediante eth1.

ADSL y PPPoE
Todo el elegante software PPPoE que solía ser proporcionado por rp-pppoe (Roaring Penguin) ha sido integrado en el paquete estándar PPP. Simplemente ejecuta para instalar PPPoE. ¿Recuerdas cómo el nombre de usuario y contraseña era un requerimiento listado anteriormente? Abre el archivo en tu editor de texto favorito y configuralo respectivamente.

Reemplaza  y   en el siguiente ejemplo con el username y password requeridos:

Cable y/o IP dinámica/estática
Si una IP estática es necesaria entonces detalles de configuración adicionales serán necesarios. Los usuarios de IP estática necesitarán añadir la dirección IP, dirección de gateway, y las direcciones de servidores DNS.

Usuarios de IP dinámica:

Usuarios de IP estática:

Configuración dinámica y estática:

Después de trabajar a través de los cambios anteriores el sistema debería estar listo para continuar.

Abraza la LAN (traer algunos amigos)
Este paso es una brisa comparado con el anterior. Para usar "más" de dos dispositivos (más que uno para LAN y otro para WAN), un Network bridge (puente de red) se necesitará configurar entre todas las tarjetas de red usando la LAN. Esto permitirá múltiples tarjetas de red ser alcanzadas por la misma dirección IP.

Si un puente de red es necesario, sigue las instrucciones para configurar un puente de red. El nombre del puente (por defecto br0) reemplazará eth0 para el dispositivo LAN en los pasos de esta wiki. Si hay un número grande de dispositivos en el router casero, considera renombrarlos vía udev para hacer más fácil la administración. Configurar un puente y renombrar los dispositivos es completamente opcional pero recomendado para redes caseras grandes.

Cuando crees un punto de acceso Wi-Fi asegúrate que la tarjeta Wi-Fi soporta el modo maestro (master mode) y configura Hostapd.

Servidor DHCP
Sería bueno si todos en la casa pudieran conectar sus computadoras en la red y las cosas simplemente funcionaran. Sin tener que recordar detalles que nublan la mente o hacerlos mirar fijamente pantallas de configuración confusas! La vida sería grandiosa, ¿no? Introduciendo el Protocolo de Configuración Dinámica de Host (DHCP) y por qué todo el mundo debe interesarse.

DHCP es exactamente lo que su nombre implica: un protocolo que permite configuración dinámica de los equipos automáticamente. Corre un servidor DHCP en el router, dale toda la información acerca de la red (IP´s validas, servidores DNS, gateways, etc...), entonces cuando un equipo inicia, pueden correr un "cliente" DHCP para configurarse a sí mismos. Sin problemas, sin despeinarse! Para más información acerca de DHCP, visita el artículo DHCP de Wikipedia.

Esta sección usará el paquete el cual proporciona ambos servicios DHCP y DNS. Por ahora enfoquémonos en el aspecto de DHCP. Nota: para correr un servidor DHCP diferente, otro ejemplo puede ser encontrado en la sección de "Cosas divertidas" más abajo. También, para jugar con las opciones del servidor DHCP lee los comentarios en el archivo.

Es muy importante configurar el interfaz. Si se utilizan los ajustes por defecto dnsmasq se abrirá el enrutador a ataques de amplificación DNS que podrían crear correos electrónicos sospechosos desde el ISP que ofrece la conexión. Comprobar que el enrutador no permite ataques de amplificación DNS utilizando.

Ahora el pequeño enrutador es un genuino servidor DHCP. ¡Conecte los equipos y vea cómo trabajan!. Utilizando un sistema Windows navegue a las y seleccione las opciones  y. En algunas ocasiones los cambios no son instantáneos, de modo que podría ser necesario abrir un intérprete de órdenes y lanzar e. Ya es bastante en lo que Windows se refiere, ¡Es el momento de volver al nuestro pingüino favorito!

Servidor DNS
Cuando la gente quiere visitar lugares en el Internet, ellos recuerdan nombres, no una serie de números complejos. Después de todo, ¿qué es más fácil recordar, eBay.com o 66.135.192.87? Aquí es donde el DNS entra. Los servidores DNS corren por todo el Internet, y cuando alguien quiere visitar eBay.com, estos servidores convierten el texto "eBay.com" (lo que nosotros entendemos) en una dirección IP "66.135.192.87" (lo que las computadoras entienden). Para más información acerca de los DNS visita la Wikipedia.

Desde que dnsmasq está siendo usado para el servidor DHCP, e incluye un servidor DNS, no hay nada más que hacer aquí!. El pequeño router ya está proporcionando DNS a sus clientes DHCP. ¿No debería ser todo así de fácil?

Es posible elegir otros servidores DNS si son más cómodos de configurar. dnsmasq es usado en este artículo porque fue diseñado para hacer exactamente lo que esta guía requería. Es un pequeño servidor DNS con caching/forwarding para redes locales. El enfoque de esta guía no es proveer DNS para un dominio; sino proveer servicios sencillos de DNS a cada usuario de la red hogareña.

NAT (enmascaramiento de IP)
Hasta este punto, la gente en la red puede hablarse entre ella y resolver nombres de máquinas vía DNS, pero todavía no pueden conectarse a Internet. Mientras que el administrador de la red (la persona leyendo esto) podría pensar que es grandioso (más ancho de banda para el administrador!), los otros usuarios probablemente no están muy felices sin una conexión a Internet.

Aquí es donde NAT (traducción de direcciones de red) entra en acción. NAT es una forma de conectar múltiples computadoras en una LAN a la Internet cuando un pequeño número de IP's públicas están disponibles. Normalmente a un usuario casero de Internet el proveedor de Internet (ISP) le proporciona solo una dirección IP pública para la casa completa. NAT es la mágia que hace esto posible. Para más información acerca de NAT, por favor, visita Wikipedia.

Después de que IPtables está instalado, limpia las reglas actuales:

Configura las políticas por defecto para manejar tráfico que no encaja:

Copia y pega lo siguiente:

El siguiente paso bloquea los servicios para que solo funcionen desde la LAN:

(Opcional)Permite el acceso al servidor SSH desde la WAN:

Descarta paquetes TCP / UDP a puertos privilegiados:

Finalmente agrega las reglas para NAT:

Informa al núcleo que el reenvío IP está permitido:

Instruye al demonio de IPtables para que guarde los cambios a las reglas, luego añade IPtables al nivel de ejecución default

Para internet dinámico la siguiente configuración debería ser activada:

Una vez que el texto anterior ha sido introducido el resto de los usuarios de la red deberían ser capaces de usar el Internet como si estuvieran conectados directamente ellos mismos.

La opción  es útil para sistemas "marcar bajo demanda" o cuando el proveedor de Internet (ISP) da direcciones dinámicas. Esto soluciona el problema cuando se intenta una conexión antes de que la interfaz de Internet esté completamente configurada. Esto proporciona una experiencia de red más "suave" para los usuarios detrás del ruteador.

Introducción
Lo creas o no, está hecho! De aquí en adelante, otros temas comunes que podrían interesar serán cubiertos. Todo en las siguientes secciones es completamente opcional.

Reenvío de puertos
A veces los usuarios necesitan ser capaces de hospedar servicios en una computadora detrás del ruteador, o necesitan ser capaces de conectarse remotamente a una computadora detrás del ruteador. Quizá un servidor FTP, HTTP, SSH o VNC se necesita en una o más máquinas detrás del ruteador y usuarios externos necesitan conectarse a ellos. El único detalle con el Reenvío de puertos es que solo una combinación de máquina/servicio puede ser establecida por puerto. Por ejemplo, no hay forma práctica de configurar tres servidores FTP detrás del ruteador y conectarse a ellos a través del puerto 21; solo un sistema puede estar en el puerto 21 mientras que los otros necesitarán estar en otros puertos (el puerto 123 y puerto 567 serían buenas opciones).

Todas las reglas de reenvío de puertos son de la forma. Desafortunadamente, iptables no acepta nombres de equipos cuando se hace reenvío de puertos. Cuando se reenvíe un puerto externo a el mismo puerto en la máquina interna omite el puerto de destino. Ve la página del manual de iptables(8) para más información.

Reenvía el puerto 2 a ssh en una máquina interna:

Reenvío de FTP a un equipo interno:

Reenvío de HTTP a un equipo interno:

Reenvío de VNC para equipos internos:

Reenvío de SAMBA a un equipo interno (puertos de acceso para cubrir Windows)

Reenvío de Bittorrent:

Reenvío de eDonkey/eMule:

Soporte para Game Cube Warp Pipe:

Soporte en línea para Playstation 2:

Para Xbox Live:

Identd (para IRC)
IRC (Internet Relay Chat) utiliza el servicio "ident" muy intensamente. Ahora que los clientes IRC estan detrás del ruteador, una manera de hospedar el servicio ident para ambos ruteador y clientes es necesaria. Un servidor ha sido creado para este propósito. Es llamado.

Hay otros servidores ident en el árbol de Portage. Otras opciones viables son y.

Servidor de tiempo
Mantener la hora del sistema es esencial para mantener un sistema saludable. Una de los más maneras más comunes de cumplir esto es con el Protocolo de Tiempo de Red (NTP) y el paquete (el cuál proporciona implementaciones para ambos servidor y cliente).

Muchos usuarios corren clientes ntp en sus computadoras. Obviamente, mientras más clientes en el mundo, más grande la carga para los servidores ntp. En ambientes como las redes caseras un servidor NTP puede ser instalado localmente para ayudar a mantener la carga baja en los servidores públicos mientras aún se proporciona el tiempo correcto a los sistemas locales. Como un bono añadido, las actualizaciones privadas serán mucho más rápidas para los clientes locales! La configuración es sencilla: corre un servidor NTP en el ruteador que se sincronice a sí mismo con el servidor público de internet mientras, al mismo tiempo, proporciona el tiempo al resto de las computadoras de la red. Para iniciar, simplemente, en el ruteador y edita  a tus preferencias.

Esto solo permitirá clientes NTP con una dirección IP en el rango de 192.168.0.xxx usar el servidor NTP.

Ahora, en los clientes, ejecuta. Correr la configuración del cliente NTP es mucho más sencillo.

En, cambia el servidor  en la variable   a

Servidor Rsync
Para aquellos que corren múltiples máquinas con Gentoo en la misma LAN, es sabio prevenir que cada máquina corra con los servidores remotos. Configurando un servidor rsync "local", ahorra el ancho de banda personal y también el ancho de banda de los servidores rsync de Gentoo. El proceso es relativamente sencillo.

Desde que cada máquina con Gentoo requiere rsync, no hay necesidad de instalarlo (emerge). Edita el archivo de configuración por defecto, descomenta la sección , y asegúrate de añadir una opción de   (dirección). Todo lo demás ya debería estar configurado correctamente.

El servicio entonces necesita ser iniciado(de nuevo, los valores por defecto están bien)

La única cosa pendiente es configurar a los clientes para que se sincronicen con el router. Edita el archivo de configuración. Si este archivo no existe, haz un directorio debajo de llamado  y copia el archivo  a este directorio. Entonces actualiza este archivo respectivamente - no olvides fijar  para que coincida con la dirección del servidor (el router casero).

Servidor de correo electrónico
A veces es bueno correr un servidor SMTP (protocolo sencillo de transferencia de correo) en el ruteador. Cada usuario podría tener sus propias razones para hacerlo, sin embargo, una ventaja de correr el servidor SMTP en el ruteador es que los usuarios ven el correo como si fuera enviado instantáneamente y el trabajo de reintentar/ruteo se le deja al servidor de correo. Algunos ISP's no permiten la retransmisión de correos para cuentas que no son partes de su red (como Verizon). También, la limitación de la entrega del correo podría ser necesaria así los adjuntos grandes no retrasarán la conexión a Internet.

Asegúrate de que la salida del comando es correcta:

Edita y añade una entrada en la sección allow:

Cuando se configure el correo electrónico en las máquinas de la red, diles que el servidor SMTP está en 192.168.0.1. Visita la página de inicio de netqmail para más documentación en el uso de netqmail.

Servidor DHCP completo
Anteriormente dnsmasq fue usado para proporcionar servicios DHCP a todos los clientes DHCP. Para la mayoría de la gente con una sencilla y pequeña LAN esto es perfecto, sin embargo, podría necesitarse algo con más características. Así que un servidor con todas las características DHCP es proporcionado por los compañeros de ISC para los usuarios que piden lo máximo.

En fija   a "eth0".

Esta es la configuración mínima requerida para reemplazar la funcionalidad DHCP de dnsmasq usada anteriormente. ¿Las características DHCP en dnsmasq deberían ser desactivadas? Si no, desactiva la configuración  en  y reinicia el servicio.

Conectar otra LAN (o dos o tres)
A veces el ruteador debe ser conectado a otra LAN. Esto puede ser hecho para conectar un grupo de amigos temporalmente o para una sección fuera de diferentes grupos de computadoras. Cualquiera que sea la razón, extender el ruteador a otras redes LAN debería ser directo. En los siguientes ejemplos, este artículo asume que la "nueva" red es conectada vía una tercera tarjeta ethernet, llamada.

Primero configura la interfaz. Toma las instrucciones en esta sección y reemplaza  por.

Ajusta dnsmasq para servir a la nueva interfaz. Edita el archivo de nuevo y agrega   a  ; usar -i múltiples veces está bien. Después edita y añade otra línea como la línea dhcp-range en esta sección, reemplazando   con   y reemplaza   con. Tener múltiples líneas de dhcp-range e interface está bien también.

Finalmente, vea las reglas en esta sección y duplica las reglas que tienen  dentro de ellas. Otra variable podría ser necesaria, digamos, para hacer las cosas más sencillas.

Herramientas útiles
Cuando tengas problemas haciendo que las computadoras se comuniquen intenta las siguientes herramientas (todas pueden ser encontradas en la categoria de Portage net-analyzer):

DHCP no inicia
Cuando se inicia el script init.d para dhcp por primera vez, podría fallar en arrancar pero se niega a proveer cualquier información útil.

El truco es saber donde dhcpd está enviando su salida. Busca en y lee los archivos de registros. Desde que el archivo exacto de registro depende del paquete usado para syslog, intenta correr para reducir las posibilidades. Hay posibilidad de que un error tipográfico fuera hecho en el archivo de configuración. Otro comando para probar: (atajo para debug / foreground). Esto ayuda a depurar los errores basándose en la salida.

Valor MTU incorrecto
Si se experimentan errores extraños (como no ser capaz de acceder a algunas páginas web mientras otras cargan bien), podría ser un problema de descubrimiento de ruta MTU. La manera más rápida de probar si esta es la causa es correr el siguiente comando de iptables:

Esto afectará toda las conexiones nuevas; recarga el sitio web problemático para probar la solución. En caso de que ayude, el valor estándar de MTU para una conexión ethernet de 100mbits es ; esta valor también aplica a PPPoA. Para conexiones PPPoE es. Para más información, lee el capítulo 15 de Guía de Linux de ruteo avanzado y control de tráfico (Linux Advanced Routing & Traffic Control).

Si el comando anterior no funciona, considera poner la regla en la tabla mangle. Simplemente añade  al comando.

Incapaz de conectar dos máquinas directamente
Si (por cualquier razón) es necesario conectar dos máquinas directamente sin un concentrador o switch, un cable de ethernet regular probablemente no funcione, a menos que un adaptador de red con Auto MDI/MDI-X (auto detección) esté disponible. Un cable diferente llamado crossover será necesario para las conexiones NIC a NIC. Esta página de Wikipedia explica los detalles a bajo nivel.

Notas finales
No hay otras notas finales. Si tienes problemas con esta guía actualiza este artículo con la información correcta o deja un breve mensaje en la pagina de plática de este artículo con un resumen de lo que no funciona. Eventualmente alguien debería ser capaz de corregir cualquier detalle(s). También es posible hacer un reporte de fallo en el Sitio web de seguimiento de fallos de Gentoo. Si hay cualquier otra cosa interesante que pudiera mejorar esta guía, por todos los medios incluyela! Lo peor que pudiera suceder es que sean removidas.