"Hablaré con el corazón abierto en palabra de voluntad
y
razón de sentimiento."
---Si quieres construir un barco, no empieces por buscar madera, cortar tablas o distribuir el trabajo. Evoca primero en los hombres y mujeres el anhelo del mar libre y ancho---

sábado, 3 de mayo de 2008

Conexión automática a la red del trabajo o a la red de casa con linux

Habitualmente utilizo en portátil tanto en casa como en el trabajo, y una de las cosas que siempre me han resultado pesadas ha sido cambiar la configuración de la red cada vez que voy a usar el ordenador en casa y volverla a cambiar para usarlo en el trabajo.

Así que un día que estaba bastante harto de hacer cambios diarios, me puse a configurar el portátil para que se conectara automáticamente a la red de casa o a la del trabajo dependiendo de donde lo conectara.

En casa me conecto por wifi a la red que tiene seguridad wep y en el trabajo por ethernet, así que necesité instalar:

  • ifplugd : monitorea si se establece link en la capa física (por ejemplo si un cable de red es conectado o si existe una asociación wireless activa).
  • guessnet : nos da herramientas para detectar a qué red estamos conectados.

¿Cómo instalarlas? Nada más fácil:

aptitude install ifplugd guessnet

Si tenéis vuestro punto de acceso con seguridad wpa tendréis que instalar también wpagui, que maneja la asociación wireless con un punto de acceso.

Una vez instalados los paquetes, modificamos el fichero /etc/network/interfaces. El mío quedó de la siguiente manera:

# /etc/network/interfaces

auto lo

iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

iface ppp0 inet ppp
provider ppp0

mapping eth?
script guessnet-ifupdown
#map default: trabajo
map timeout: 3
#map verbose: true

iface trabajo inet static
address 192.168.1.2
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1

iface casa inet dhcp
test wireless essid C54APRA

# Si ninguna es encontrada, prueba DHCP
iface none inet dhcp


Veamos paso a paso en fichero de configuración:

auto lo

iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

Las lineas anteriores definen el localhost y lo levantan automáticamente en el inicio.

iface ppp0 inet ppp
provider ppp0

Las dos líneas anteriores definen el interfaz del modem, por si en algún momento decido usarlo.

mapping eth?
script guessnet-ifupdown
map timeout: 3

Las líneas anteriores definen que las interfaces eth? como por ejemplo eth0, eth1 ... van a ser manejadas automáticamente.

iface trabajo inet static
address 192.168.1.2
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1

test peer address 192.168.1.1 mac 02:E0:52:EB:B6:DF

Las líneas anteriores definen que la conexión al trabajo se hace con ip estática. Y que, por decirlo de alguna manera, para determinar que nos estamos conectando a la red del trabajo comprobamos que hay un host (por ejemplo el router) con una IP y una MAC concreta.

iface casa inet dhcp
test wireless essid MICASA

Las dos líneas anteriores determinan que la conexión a la red de casa se hace mediante dhcp y para comprobar que se debe conectar a la red de casa, testeamos que existe una red con wifi con el nombre MICASA.

# Si ninguna es encontrada, prueba DHCP
iface none inet dhcp

Y, por último, las dos líneas anteriores nos sirven para que, si no encontramos la red de casa, ni la del trabajo, se pruebe a conectar por dhcp.