bclose

Configurando una IP estatica

Preparando un acceso remoto a nuestra raspberry

Configurando una IP estaáica

 

 

    • Queremos establecer un acceso remoto a nuestra Raspberry.
    • Esto tiene muchas ventajas, y no la menor, que no necesitamos un teclado y ratón para trabajar con nuestra Raspberry Pi 3.
    • Veremos como configurar una IP estática.
    • Inciaremos  una sesión remota a través del SSH.
 

Material requerido.

Vista lateral Una Raspberry Pi 3, aunque valen la 2 y la 1

 


vista frontal
Una micro SD de al menos 4Gb y preferiblemente de 8Gb16 Gb o 32 Gb.

 

Vista lateral

 

Una fuente de alimentación externa tipo teléfono móvil con micro USB
video para raspberry pi
Un cable HDMI

Acceso remoto

 

En las sesiones previas, hemos ido preparando el terreno para dejar nuestra Raspberry Pi lista y configurada para nuestro idioma y teclado en español, además de conectar a la red y todas esas cosas que hacen que la vida sea más sencilla y agradable, y hemos avanzado bastante.

Pero hay un tema en el que no hemos reparado y que aunque no es imprescindible, suele ser bastante molesto. Nuestra Raspberry es un PC completo y por tanto requiere un teclado y ratón conectados y como por regla general en la mesa ya tenemos un PC anterior, nuestra mesa de trabajo, ya de por sí bastante desordenada y saturada, empeore aun más si cabe.

Hay soluciones del tipo de compartidores electrónicos de teclado/ratón pero son relativamente caros y extravagantes y teniendo en cuenta que nuestra Raspberry es un completo PC vamos a proponer una solución, mucho más elegante y barata (Gratis, mi marca favorita): Crear un acceso remoto.

La idea es sencilla, podemos montar un servicio de acceso remoto a nuestra Raspi, de modo que no necesitemos ponerle teclado y ratón propios sino que usemos los de nuestro PC habitual, para hacer el control remoto como si estuviéramos en local.

Veréis enseguida que la solución es cómoda y elegante (De las que nos gustan) y muy fácil de instalar. Tan fácil que una, viene instalada de serie y lista para usar, si no habéis cambiado la configuración por defecto. Se llama SSL. Pero antes necesitamos resolver otro problema previo, conocer nuestra dirección IP.

Esto es algo que y aprendimos como resolver en una de las sesiones previas mediante ifconfig, pero hay un problema adicional. Cada vez que re arrancamos nuestra Raspberry esa dirección puede cambiar, lo que daría al traste con nuestro acceso remoto (Porque no sabríamos que dirección tiene).

Así que necesitamos saber porque puede cambiar esa IP y como impedirlo para poder acceder a una dirección fija con seguridad, y para eso tengo que dar de nuevo, un pequeño rodeo, y hablaros del servicio de DHCP.

 

El servidor DHCP

 

Ya habíamos hablado en la parte de Arduinos del DHCP, pero por si acaso acabas de llegar directamente a la Raspberry vale la pena hacer aquí una pequeña introducción y asegurarnos de que tenemos claros los principios básicos.

Para conectarte a una red TCP/IP necesitas algunos datos imprescindibles:

 
  • Una dirección IP.
  • Una máscara de red.
  • Un Gateway o router por defecto.
  • Un DNS.  

La dirección IP es algo así como una matrícula para circular por las líneas. Te identifica de modo univoco y exclusivo, de forma que los servicios de transporte subyacentes puedan prestarte su servicio sin posibilidad de error y por eso esta dirección IP es imperativo que sea única.

Pero hay todo un universo de posibilidades en las direcciones IP válidas y para conectarte a tu red tienes que estar de acuerdo con el resto de nodos de tu red y eso es lo que haces mediante la combinación de dirección IP, en la forma de A.B.C.D dentro de un rango de direcciones posible y la elección de una máscara de red del tipo FF.FF.FF.0

En buena parte de las redes domésticas estas direcciones serán algo así como:

            Dirección IP:             192.168.1.xx
            Mascara de red:           255.255.255.0

Es costumbre asignar direcciones del rango descrito porque no son enrutables y en combinación con la máscara significa, que hay casi 255 nodos disponibles en nuestra subred con los que podemos comunicarnos (Algo claramente sobrado en redes domésticas, pero no tanto en las redes de empresa)

Además necesitamos un Router que envié nuestras peticiones a Internet si es necesario y también un DNS (Domain Name Server) que traduzca nuestras conocidas direcciones como google.es o amazon.com a direcciones IP estándard.

 
  • El servicio de DNS es el responsable de cambiar las direcciones que escribimos de texto en el navegador y reemplazarlas por las direcciones IP del servidor de destino que son mucho mas difíciles para recordar para nosotros. 

¿Pero cómo sabes cuál de estas direcciones elegir? Más aun ¿Si me voy con WIFI a otra red, como hago para saber cuáles son los valores adecuados? ¿Tengo que preguntar a los informáticos?

Como es bien sabido, los informáticos son gente de mal carácter, además de insociables y este tipo de preguntas suelen acabar en ladridos amenazadores por lo que es conveniente evitarlo y para eso se desarrollaron los servidores DHCP.

La idea es que cuando tu PC despierta y va a buscar su configuración de red podamos decirle que pida la vez como en la panadería y pregunte ¿El ultimo, por favor? EL servidor DHCP (Dinamic Host Control Protocol) dá la vez y te asigna una dirección IP única, y una máscara de red para definir tu subred y además te proporciona el valor de un Router local y un servicio de DNS, con lo que ya puedes navegar tranquilamente.

Si no existieran los DHCP sería una lata cambiar de red y entonces sí que se mosquearían los informáticos (Buenos son) pero teniendo uno activado en la red las cosas son mucho más sencillas.

Pero como no hay felicidad completa, según como tengas configurado el DHCP, puede dar las direcciones al ritmo de quien las solicite…. Y darte otra distinta mañana, con lo que no podrás acceder en remoto porque tu IP puede cambiar cada vez que apagas tu Raspberry Pi y vuelves a arrancarla.

¿Y cómo arreglar este problema entonces? Pues fácil. Tenemos que decirle a nuestra Raspi que no recurra al DHCP (Que viene programado por defecto) y que en su lugar use siempre una dirección dada. La que queramos, pero siempre la misma, es decir, lo que en la jerga se llama usar una dirección IP estática (Suena bien, ¿Verdad? Parece mucho más profesional que decir que siempre es la misma)

 
  • Si tu Raspberry está en tu red doméstica, te toca ser el administrador, enhorabuena, y por tanto es poco probable que nadie te chille si pones una dirección IP rara. Como mucho que no funciones.
  • Pero si estas en una red corporativa, ten mucho cuidado, porque si elijes mal tu IP estática puedes conseguir con cierta facilidad que baje engorilado algún memo del departamento de informática dando gritos.
  • También es fácil que encontréis por Internet escrito, que esta opción se desaconseja encarecidamente dado que podéis provocar no sé qué líos… en las empresas, pero no hagas mucho caso si como es habitual, etas configurando tu Raspberry Pi 3 en casa. 

La idea es fácil ¿No? Y llevarlo a cabo no es mucho más complicado, pero hay que hacer alguna operación un poco más extravagante.

 

Fijando nuestra dirección IP como estática

 

Aunque parezca de Perogrullo, para poner una IP estática a nuestro interfaz de red, necesitamos saber que IP vamos a elegir (Una decisión importante porque vamos a verla a diario) y a veces puede no ser tan sencillo por diferentes razones, así que convendría tener en cuenta algunas consideraciones previas.

Empieza por usar ifconfig para saber cuál es tu IP actual y anota tu IP y tú mascara de red:

ifconfig

Si hasta ahora esta dirección IP te la entregaba el DHCP, no podrás mantenerla, porque si el DHCP se la entrega a otro equipo cuando tú la estés usando (Y él no se haya enterado) tendrás un conflicto de direcciones y la policía IP os echará a los dos al arcén impidiéndoos continuar circulando (Es por este motivo que el memo de informática baja dando gritos)

Así que para mí, yo elegiría algo así como la 192.168.1.100 con mascara 255.255.255.0 (la misma de arriba) que me consta que en mi red está libre y disponible, en la tuya es buena política elegir una dirección a partir de esta que pueda estar libre, pero no puede sugerirte mucho mas.

Necesitamos ahora saber el router por defecto de mi red:

Route –ne
route -ne

De donde sacamos que mi Gateway es 192.168.1.1 y ya sabemos entonces todos los datos precisos para definir la IP estática y solo nos falta editar el fichero de configuración de la red de nuestra Raspberry Pi.

 
  • Pronto os iréis acostumbrando a que en Linux todo se configura editando ficheros de texto que contienen las descripciones de lo que sea. 

El fichero que buscamos se llama por su nombre completo

/etc/network/interfaces

Y aunque aún no hemos hablado del sistema de organización de ficheros de Linux/Rasbian, quiere decir que a partir del directorio raíz, tenemos que buscar otro directorio llamado etc y dentro del otro que se llama network, donde encontraremos un fichero que se llama interfaces con la descripción de las redes disponibles.

Si queréis que veamos su contenido basta con que hagas

cat /etc/network/interfaces
auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Bueno que no cunda el pánico, que no es para tanto. Este fichero refleja las definiciones de adaptadores de red disponibles y en ella podéis ver como el wlan0 pone que debe configurarse por DHCP:

iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

La segunda línea guarda ciertas configuraciones de la conexión como el nombre de la red WIFI, o SSID,  a conectar y la contraseña

En mi caso quiero fijar una dirección estática para mi WIFI en wlan0. Enseguida veremos cómo, pero antes conviene que tomes una cierta precaución antes de hacer cambios en este fichero, (Porque cualquier error os dejaría fuera de la red y no es probable que no pudierais restaurar la configuración original).Vamos a hacer una copia del fichero actual:

cd /etc/network
sudo cp interfaces interfaces.bak
ls
copiando el fichero original

La primera instrucción nos lleva al directorio /etc/network y después hacemos una copia del fichero de configuración de la red, con cp,  por si acaso. La última línea, ls, muestra los ficheros disponibles en el directorio para que veamos que se ha efectuado la copia a interfaces.bak

Ahora ya estamos en condiciones de modificar este fichero para fijar una dirección IP estática. Es bastante fácil, basta con editar el fichero con el editor nano:

nano /etc/network/interfaces
 
  • Nano es un editor ligeramente rarito para los que habéis nacido con ventanitas a la tecnología, pero creadme que es de lo mas sencillo que hay en este mundo Linux.
  • Te mueves con los cursores y puedes borrar lo que sea y reemplazar lo que quieras. 

Y ahora tenemos que modificar la línea donde dice:

iface wlan0 inet dhcp

Por esta otra

iface wlan0 inet static

Donde le informamos a Raspbian que vamos a usar una dirección IP estática y a continuación poner los valores de IP, Gateway y Router por defecto de los que hemos hablado previamente, En mi caso tiene que quedar asi

iface wlan0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Este es por supuesto para mi red con mis propios datos, y en vuestro caso deberéis adaptarlo a vuestra red y para eso hemos estado antes mirando que valores podéis emplear.

Para guardar los cambios teneis que hacer :

[CTRL] + O // O sea la tecla control mas la tecla O.

Os preguntará el nombre del fichero, dadle intro directamente y ahora para salir:

[CTRL] + x
 
  • Hemos configurado una IP estática en la tarjeta WIFI porque probablemente es la que la mayoría usáis para conectar a la red. Pero sería exactamente igual hacerlo para la Ethernet sin más que hacer lo mismo en la sección eth0.
  • Basta con que os conectéis el cable al adaptador Ethernet y el DHCP os escribirá una nueva sección similar en el fichero interfaces, que podéis modificar del mismo modo.
  • Este fichero puede ser diferenete si tu Raspberry no es la 3, o si no has actualizado recientemente tu sistema operativo Raspbian. 

Si ahora reiniciáis la Raspberry, con por ejemplo (Si. Hay comandos para todo. Ni te imaginas):

sudo shutdown –r now

Cuando esta reinicie ya tendréis fija la dirección IP estática que hayas definido en la configuración. (Si no funciona, hay que recuperar la antigua configuración copiando con cp el interfaces.bak contra el interfaces, es decir justo lo contrario de antes y vuelta a arrancar)

cd /etc/network
sudo cp interfaces.bak interfaces
ls

Ahora rearranca y deberíamos estar como al principio.

 

Accediendo en remoto

 

Aunque probablemente se os haya olvidado ya, todo este asunto ha sido para fijar una IP estática que nos permita conectar en remoto a nuestra Raspberry sin necesidad de teclado /ratón, y una vez listo el tema de la IP podemos acceder ya con una utilidad configurada por defecto en vuestra Raspberry que se llama SSH (O Secure Shell).

En los tiempos en los que los dinosaurios dominaban la tierra, los entornos gráficos dormían aun el sueño de los justos, y los aguerridos administradores  de Unix, necesitaban acceder en remoto a servidores más o menos lejanos usando los infames módems telefónicos, de velocidades vertiginosas como 9.600 baudios o quizás,si tenías mucha suerte, podías pillar una línea muy rápida a 19.200 baud.

Aunque esta velocidad os parezca de risa, es lo que había disponible, y por ese motivo había que usar los interpretes de comandos, que prácticamente no requieren ancho de banda, aunque si memorizar interminables listas de comandos con miles de opciones.

Por ese motivo pronto surgieron programas para comandar sistemas Linux en remoto, y aunque SSH no fue el primero sí que se estableció con rapidez porque, es sencillo y seguro (Encripta la conversación para que el enemigo no se cuele) y además muy práctico si conoces los comandos básicos del Shell Bash que es con los que os machaco de continuo en estas sesiones.

Aprenderte todos estos comandos llevan su tiempo, pero son prácticos cuando necesitas conectarte en remosto, y hacerlo desde nuestro PC principal para conectar con la Raspberry es muy sencillo porque viene de serie configurado.

Además Linux y MacOSX tiene un programa SSH incluido, pero (Sorpresa) Windows no podía dejar de dar la nota y no incluye uno. Pero tenemos un viejo conocido que si soporta el protocolo SSH que se llama Putty.

Si no tenéis Putty podéis encontrarlo enseguida en cuanto busques en internet, y es el programa que voy a usar aquí para los ejemplos, pero si estáis en Mac o Linux el tema es muy similar y no creo que os de guerra.

Cuando arranquéis Putty os saldrá algo así:

pantalla de inicio

Elegid SSH en el tipo de conexión, y en el host usad la dirección IP de vuestro servidor Raspbian. Cuando deis Open, os conectará a vuestra Raspberry y os pedirá un usuario y contraseña.

Recordad que si no habéis cambiado el usuario por defecto será:

pi
raspberry

Y enseguida veréis un intérprete de comandos como este:

pantalla de bienvenida

Y desde aquí es exactamente igual que si hubierais abierto una consola en el entorno gráfico de Raspbian, y funcionan todos los comandos que conocéis (O por lo menos los que no hayáis olvidado)

Por ejemplo veamos la configuración de la red con ifconfig:

detalle de adaptadores

¿No está mal, nooo? Podemos poner en marcha cualquier comando… ¿Qué? ¿Que queréis conectar al modo gráfico y no al modo comandos? Nunca estáis contentos, sois insaciables.

Vale, pues ese será el tema de la próxima sesión, ver cómo hacemos lo mismo, pero abriendo una sesión remoto del tipo grafico, desde un PC externo.

 

Resumen de la sesión

 

 

    • Hemos visto lo que es el DHCP y porque no nos conviene usarlo para obtener una IP si queremos acceder en remoto.
    • Vimos como modificar el fichero de definicion de la red para establecer una IP estatica.
    • Hemos visto como usar Putty para conectarnos en remoto mediante un interprete de comandos.