El caso es que yo tenia tres pc’s y mi router solo dos puertos ethernet. Y claro, con dos puertos, no puedo conectar tres pc’s. (logico, no? vaya cosas digo a veces…) Y como debian es debian (porque esto en windows no se puede hacer, al menos no como tal), pues decidi interconectarlos, y tener mi propia red local, haciendo funcionar uno de los pcs como router, entre otras cosas (servidor de datos, mula y torrent, equipo de musica, navegador habitual -encender el otro me da pereza- etc)

Porque hacer que funcione como router solamente es muy simple, hay varias distros especificas para ello. Pero conseguir un pc al uso, con el que puedes hacer todo, y que ademas que funcione como router, pues…. eso requiere configurarlo. Que nadie se asuste, no es especialmente complicado. Y aviso: si alguien lo necesita para otra distro que avise: se puede hacer con todas. La unica diferencia radica en la situacion de los ficheros.

*nota: no voy a poner configuracion ni de DHCP ni de DNS (usare los de openDNS). Si alguno va a tener ua red con un numero variable de pcs (como una red publica), o simplemente, los que se vayan a conectar a ella no tienen ni idea, deberia considerar instalar el srevidor de dhcp, o configurar el todas las maquinas que se conecten.

vamos a ello.

1. configuracion del servidor:
esta es la unica parte dificililla. vamos a mostrar primero la configuracion de hardware.
-red local (conexion entre pc’s) eth1, eth2… (1 pc por tarjeta). para ver el nombre de vuestras tarjetas: ifconfig -a

-conexion al mundo exterior (al router dedicado, es decir, a internet): eth0

ahora defino las subredes:
-192.168.0.x: externa (la del router dedicado, eth0)

-192.168.2.x: local (la del pc-router)

*nota: estas redes admiten hasta 255 equipos cada una. si alguno necesita mas….. bueno, no creo que ningun pc admita tantas tarjetas de red. XD en todo caso, habria que usar una ip diferente (ahora no tengo ganas de buscarlo, si alguien lo necesitase, que avise)

- activamos el nat (para que el pc-router pase el trafico a los pc’s de la subred local)
nano /etc/sysctl.conf
localizamos esto: net.ipv4.ip_forward = 0 y sustituimos el 0 por un 1

-establecemos las reglas para el routing:

nano /etc/network/if-up.d/00-firewall (podeis ponerle el nombre que querais pero que empiece por 00-)

escribimos esto dentro

#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

#
# delete all existing rules.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT

# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 state --state ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# Masquerade.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Don't forward from the outside to the inside.
iptables -A FORWARD -i eth0 -o eth0 -j REJECT

# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

*nota: para las siguientes tarjetas (eth2..) copiar de nuevo las lineas en las que aparezca eth1, sustituyendolo por eth2

creamos la configuracion de las interfaces (en realidad de la red local): nano /etc/network/interfaces

sale algo como esto:

# We always want the loopback interface.
#
auto lo
iface lo inet loopback

# An example ethernet card setup: (#broadcast and gateway are optional)

auto eth0
iface eth0 inet static
address 192.168.0.42
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

(tambien puede salir solo como iface eth0 inet dhcp)

esa es la configuracion de la red externa (la que sale del router dedicado y va al pc-router). ahora definimos la de la red local: (aƱadir esto al final)

iface eth1 inet static
address 192.168.2.X
network 192.168.2.0
nettmask 255.255.255.0
broadcast 192.168.2.255

*nota: para las siguientes tarjetas (eth2,…) se copia de nuevo lo mismo, cambiando uncamente eth1 por eth2

*nota 2: la ip de address sera la ip del PC-router en la red local. la X cada cual que ponga la que quiera.

y hasta aqui la configuracion del servidor.

vamos con la del cliente:

-configuramos la red:
nano /etc/network/interfaces

iface eth0 inet static
address 192.168.2.X'
network 192.168.2.0
nettmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.2.X #(la ip del pc-router)
dns-nameservers 208.67.222.222 #(tambien puedes poner la de tu operadora)
dns-search lan

*nota: X’ es otra ip de la misma subred. que nadie ponga la misma que antes a ver si se va a volver loco esto. lo logico es, que si la primera era 100, esta sea 101.

y en teoria, ya esta todo. Para comprobar, yo recomiendo lo siguiente:

1. hacer un ping al pc-router
2. hacer un ping a google.

si funcionan los dos, ya esta. Si funciona solo el primero, revisar la configuracion del dns (nano /etc/resolv.conf, borrar todo y poner unicamente nameserver 208.67.222.222 )., y volver a comprobar.

si no funciona ningun ping, comprobar todo, lo mas seguro es que se nos haya ido alguna tecla (recuerdo que yo escribi mal “address”, y no habia manera). comprobar tambien que desde el pc-router hace ping, y si fallase, comprobar que el cable y las tarjetas de red funcionan (que a mi se me han muerto varias, y asi no hay manera de que conecte)

*nota: en breve habra otro tutorial para hacer la red local por wifi (porque esto funcionaba hasta que murieron las tarjetas de red…. y creo que a la larga voy a ahorrar mas si lo hago via wifi. )