domingo, 10 de abril de 2016

Configurar IP estática en Raspbian Jessie

Para usar una Raspberry como servidor casero y acceder a él desde el exterior, resulta conveniente que tenga una IP estática para redireccionar las peticiones que llegan a nuestro router.

Con Raspbian Jessie, el método tradicional para configurar una IP (modificando /etc/network/interfaces) no funciona. Sin embargo, bastan un par de pasos para tener una IP estática:

1. Obteniendo la información necesaria

Necesitamos obtener al menos tres direcciones: la IP estática que queremos en la Raspberry, que debe estar en la misma subred, la dirección del router y la dirección (o direcciones) de los DNS. Para obtenerlas escribimos:

$: ifconfig

Obtendremos algo similar a la siguente imagen:


En el recuadro rojo podemos ver nuestra IP actual, en mi caso 192.168.1.100. En el recuadro verde podemos ver nuestra máscara de subred (255.255.255.0). Estos dos datos nos indican que nuestra subred es 192.168.1.X, donde X será un valor entre 0 y 255. Es decir, todos los equipos de nuestra red doméstica tendrán una IP local con el formato 192.168.1.X. En este ejemplo, voy a usar 192.168.1.100 como IP estática para mi Raspberry.

Sólo nos queda averiguar la IP del router. Para ello podemos escribir:

$: route -ne


Nos interesa fijarnos en la puerta de enlace (Gateway) que esté en la fila donde Destination es 0.0.0.0 (recuadro verde). En mi caso, la dirección es 192.168.1.1 (recuadro rojo). Básicamente lo que nos dice esa línea es que, en nuestra red local, todo el tráfico que tenga como destino Internet (0.0.0.0) se redirecciona al dispositivo con IP 192.168.1.1, es decir, nuestro router.

Ya que tenemos esos dos datos apuntados, podemos configurar nuestra IP estática.

2. Configurando la IP estática

Para establecer la IP estática en nuestra Raspberry, vamos a añadir la información anterior al fichero /etc/dhcpcd.conf. Es necesario editarlo como root, por lo que no olvidéis usar sudo:

$sudo nano /etc/dhcpcd.conf

Sólo es necesario añadir algunas líneas al final del fichero, sin modificar nada más:




En la línea que comienza por interface establecemos la interfaz de red que vamos a configurar. En mi caso es eth0 (cableada), pero podéis usar wlan0 o similar si os conectáis por wifi (con ifconfig podéis ver la interfaz que os interesa configurar)

En la siguiente línea (static ip_address) escribimos la IP estática que podemos establecer. El /24 no es necesario, pero no está de más ponerlo si vuestra máscara de subred (ver paso 1) era 255.255.255.0.

En la línea static routers, escribimos la IP de nuestro router (el gateway que obtuvimos al final del paso 1)

Por último, en la línea static domain_name_servers escribimos la IP (o IPs, separadas por un espacio) de los servidores DNS. Como mi router proporciona las DNS de mi proveedor de Internet, he optado por poner la dirección de mi router. También podríais poner otras DNS, como las de Google, sustituyendo esa última línea por algo como:

static domain_name_servers=8.8.8.8 8.8.4.4

Ya sólo queda guardar el fichero (Ctrl+X) y reiniciar con un:

$: sudo reboot

Y comprobar que nuestra IP es la que queríamos.


Nota: Si el router tiene habilitado el DHCP, cosa muy común, asignará automáticamente direcciones IP a los distintos dispositivos que se conecten a él. Nos interesa que no asigne automáticamente nuestra IP estática (192.168.1.100) a otro dispositivo, para evitar un conflicto IP, que seguramente nos dejaría sin conexión a Internet en la Raspberry. Esto se puede solucionar de dos maneras:

1. Muchos routers tienen la posibilidad de reservar una IP a un dispositivo dada su dirección MAC (que podéis encontrar con el comando ifconfig)

2. Podéis configurar el servidor DNS para que empiece a repartir direcciones IP automáticas en un rango, así que otra posibilidad es restringir ese rango y asignar nuestra IP estática fuera de ese rango. Por ejemplo, en mi caso tengo configurado el servidor DNS para que reparta IPs desde 192.168.1.128 a 192.168.1.255, por lo que si mi IP estática es 192.168.1.100 no habrá problemas de conflictos IP.

2 comentarios:

  1. Que grande si señor!! me has solucionado la vida muchas gracias por esta entrada, completa, simple y fácil. lo recomiendo 100%

    ResponderEliminar
  2. Entonces en Raspian jessie el fichero /etc/network/interfaces ¿Ni tocarlo no? que me quedo con la duda

    ResponderEliminar