"Después del juego es antes del juego"
Sepp Herberger

Mostrando entradas con la etiqueta dd-wrt. Mostrar todas las entradas
Mostrando entradas con la etiqueta dd-wrt. Mostrar todas las entradas

miércoles, 14 de octubre de 2020

Apagado de las redes wifi en puntos DLink con DD-WRT

Con la nueva red "educarex" de escuelas conectadas ya no necesitamos los antiguos puntos wifi DLink DIR-860L. Si los dejamos encendidos saturan el espacio radioeléctrico y ralentizan previsiblemente nuestra red.

Para evitar esto es conveniente apagar sus dos tarjetas de red, la de la red normal de 2.4Ghz y la de la red 5Ghz (no confundir con el 5G del coronavirus y el chís que nos quieren meter con la vacuna). Desde el interface web podemos apagarlas, pero no sé por que motivo a veces se encienden de nuevo y me encuentro que están emitiendo. Así que lo mejor es apagarlas por comandos, entrando por ssh al punto wifi y tecleando:
# nvram set rc_startup="ifconfig ra0 down; ifconfig ba0 down"
# nvram set cron_enable=1
# nvram set cron_jobs="00 * * * *    root   ifconfig ba0 down
00 * * * *    root   ifconfig ra0 down"
# nvram commit
Lo que hacemos es:
  • Apagar ra0 y ba0 (las 2 tarjetas de red) en cada reinicio del sistema.
  • Apagar ra0 y ba0 a cada hora en punto usando un crontab.
Creo que de esta manera lo tenemos todo apagado y si se levanta...caerá en una hora. Habrá que hacer algo útil con todos estos puntos Dlink sin uso cuando los retiremos definitivamente. Lo primero meter un OpenWRT.
El pasado septiembre la Starship SN6 hizo su segundo salto, esta vez de 150 metros de altura:



Que tiempos aquellos en que los inconscientes se reian de ese deposito de agua cilíndrico que explotaba en las pruebas de estrés de presión. Esa maravilla ha ascendido y bajado con un único motor Raptor desviado del eje de simetría de la nave (vamos, "torcido"). El software que controla ese motor para mantener el cohete en equilibrio debe ser bestial.

martes, 28 de noviembre de 2017

Reinicio periódico en DLink DIR-860L con dd-wrt

Es muy conveniente reiniciar algunos sistemas de forma periódica. En el caso de nuestros puntos de acceso DLink DIR-860L es casi obligatorio ya que cuanto mas tiempo pasan en funcionamiento mas empiezan a fallar ciertos aspectos, lo cual nos obliga al final a hacer un reset manual.

Mis compañeros Paco y Noemí me descubrieron que el propio dd-wrt incorpora un mecanismo de reinicio periódico, sin necesidad de configurar a mano crontab. Aunque se puede definir usando el interface web, buscando la opción "Administracion->Keep alive" entre sus pestañas nosotros lo vamos a hacer por comando. Consiste en entrar por ssh y ejecutar en cada punto de acceso los siguientes comandos:
nvram set schedule_enable=1
nvram set schedule_hour_time=2
nvram set schedule_weekdays=*
nvram set schedule_hours=7
nvram set schedule_minutes=0
nvram set schedule_time=3600
nvram set ntp_enable=1
nvram set ntp_server=..ip servidor centro..
nvram set ntp_mode=auto
nvram commit
reboot
Comentemos:
  • schedule_enable: puesto a 1 habilita el reinicio programado.
  • schedule_hour_time: puesto a 1 activa el reinicio cada X segundos, puesto a 2 el reinicio a dias/horas determinados.
  • schedule_weekdays, schedule_hours, schedule_minutes: días y hora donde se realiza el reinicio. En mi caso, todos los dias a las 7:00 de la mañana.
  • schedule_time: segundos entre reinicio si schedule_hour_time=1.
  • ntp_enable: puesto a 1 habilita la sincronización de hora por ntp.
  • ntp_mode: con valor auto se realiza una sincronización automática.
  • ntp_server: IP del servidor ntp de nuestra red. Normalmente es el servidor principal del centro.
El servidor ntp se configura para que el punto de acceso se ponga en hora y haga los reinicios en el momento correcto, ya que si no se piensa que estamos en 1970 y a una hora intempestiva del día. Una vez arrancado el punto de acceso tarda un rato en sincronizar la hora, parece ser que no le corre prisa eso, pero si somos pacientes al final coge la hora y fecha correcta.

Gracias a estos reinicios nuestros puntos de acceso serán mucho mas estables y se portarán mejor. Nada como un buen reinicio para limpiar un sistema.

lunes, 12 de junio de 2017

Listar MACs de los dispositivos asociados a un punto de acceso con dd-wrt

Una duda más que plantéo hace poco un compañero sobre DD-WRT: como sacar un listado de las MAC address de los equipos asociados por wifi en un momento dado a un punto de acceso DLink DIR-860L. El comando "oficial" es:
# wl assoclist
Por desgracia, eso no funcionaba en nuestros Dlink DIR-860L. Tras buscar un rato al final aparece el comando:
# wl_rt2880 ra0 assoclist
Muestra una lista de MACs asociadas al dispositivo wifi "ra0". Ojo, que al final de la lista aparece una MAC "extra" que no sé de donde sale y que va cambiando en cada llamada al comando. Lo mejor es ignorarla.

El sufijo "_rt2880" puede deberse a que estos puntos de acceso trabajan con chips Ralink. De igual manera, al parecer hay un "wl_atheros" para chipsets Atheros. Mirando el código fuente vemos que el comando tiene además dos parámetros mas: noise y rssi. El compañero Joaquín me cuenta que se usan con esta sintaxis:
# wl_rt2880 noise ..MAC..
# wl_rt2880 rssi ..MAC..
pero que devuelven siempre el mismo valor. Cosas de los Ralink.

Nos vemos en breve para seguir los Proxmox.

viernes, 19 de mayo de 2017

Listar wifis detectadas por un punto de acceso con dd-wrt

Esto ha salido por la pregunta de un compañero, me apunto la chuleta: sacar un listado de las wifis colindantes detectadas por uno de nuestros puntos de acceso que corren dd-wrt. En principio lo normal en Linux/Openwrt es usar "iwlist ra0 scan" para hacer un escaneo de redes, pero en este caso daba un error de que la tarjeta de red no soporta escaneo. No sé si es algo general de dd-wrt o bien es problema del hardware de ese punto de acceso. Buscando un rato encontré esto.
# ifconfig ra0 up
# site_survey
Salen los datos formateados, pero luego con awk o cut podemos coger las columnas que queramos para nuestros propósitos.

martes, 28 de marzo de 2017

Hacer WOL desde el DLink DIR-860L

En la entrada anterior usábamos el punto de acceso DLink DIR-860L para hacer NAT y aislar el aula de la red del centro.

Después de hacerlo funcionar me dí cuenta de que había un problema: es tradicional que los ordenadores de los profesores se enciendan automáticamente mediante un WOL (Wake On Lan) a primera hora de la mañana, de manera que puedan iniciarse las clases sin contratiempos ni esperas. Este WOL se realiza mediante un script que utiliza el comando etherwake/wakeonlan y se ejecuta desde el servidor principal del IES con un crontab. Al aislar todo el aula en una red interna el ordenador del profesor quedaba fuera del alcance de esos paquetes WOL (hasta ahora, como el PC del profesor hacía el NAT tenia un pie en la red interna y otro en la del centro, por lo que si le llegaban los paquetes de WOL) y no despertaba como estamos acostumbrados. Que no cunda el pánco.

La primera opción es permitir al tráfico WOL traspasar el punto de acceso hacia la red interna del aula, haciendo un port forwarding . En teoría se puede, pero yo no lo he logrado.

La segunda opción es delegar en el DLink el despertar el PC del profesor de su aula. El comando en el sistema operativo DD-WRT para despertar por WOL es (ojo, hay que ponerlo con el path completo, si no se ejecuta otra cosa):
# /sbin/wol  -i 192.168.0.255  50:65:F3:1F:A7:AA
Siendo 192.168.0.255 la dirección de red de la red interna del aula (así sabrá el DD-WRT por que interface -lan o wan- debe enviar el paquete WOL) y 50:65:F3:1F:A7:AA la MAC del PC a despertar. Este comando debemos programarlo en el crontab del DD-WRT, usando su interface web, en la opción Administration/Management/Cron:



La línea que despierta el PC del profesor cada día lectivo a las 8:00 es:
00 8 * * 1-5 root   /usr/sbin/wol -i 192.168.0.255 50:65:f3:1f:a7:aa
Tampoco debemos olvidar poner en hora correcta el DLink activando el cliente NTP en la pestaña Setup del interfaz Web de configuración y poniendo como server NTP la IP del servidor principal del centro, que ofrece esa funcionalidad.

Para asegurarnos de que todo está en orden vamos a la querida línea de comandos del DD-WRT:
# nvram show | grep cron
cron_jobs=00 8 * * 1-5 root   /usr/sbin/wol -i 192.168.0.255 50:65:f3:1f:a7:aa
cron_enable=1

# nvram show | grep ntp
ntp_enable=1
ntp_server=172.55.213.2
ntp_mode=auto
Pues nada, ya tendremos a nuestro D-Link despertando al PC del profesor de buena mañana. De igual manera podemos meter mas líneas en el crontab para que despierte otras cosas tanto hacia la red del aula como hacia la red del centro, faltaría mas.

Hasta la próxima.

lunes, 27 de marzo de 2017

Uso de DLink DIR-860L para hacer NAT dentro del aula.

Normalmente por facilidad de gestión de los ordenadores de los alumnos y por no malgastar direcciones IP, dentro de las aulas tenemos una VLAN con un direccionamiento IP privado dentro del rango 192.168.0.X.

Los puestos de los alumnos reciben ip 192.168.0.201, .202, ... (si damos de alta el puesto del alumno en la rama DHCP Config del servidor ldap podemos incluso hacer que el PC del alumno reciba siempre una IP fija, lo cual facilita aún mas su gestión) y el puesto del profesor tiene la IP fija 192.168.0.254.

Es el PC del profesor con sus dos tarjetas de red el que hace la NAT entre la red del centro y la del aula.

Con la llegada de los puntos de acceso de DLink DIR-860L tenemos un elemento nuevo dentro del aula. Normalmente lo usaremos como punto de acceso wifi para portátiles y dispositivos móviles desde su dirección 192.168.0.1, pero al disponer de un puerto WAN y un switch con 4 puertos LAN podemos usarlo para liberar al PC del profesor de hacer NAT. Además, debemos tener en cuenta que los PC para los infolab que nos han mandado solo tienen una tarjeta de red que para más inri da bastantes problemas para hacer el NAT ya que su driver no soporta muy bien (por decirlo de foma suave) el tráfico del aula.

El punto Dlink lo estoy guardando en la mesa del profesor, dentro del cajón donde está el PC. El esquema del cableado que hacemos es el siguiente:

  1. Toma de 100Mb del suelo de la mesa del profesor. Está conectada directamente a la red del centro en el patch panel. La conectamos al puerto WAN (amarillo) del punto de acceso.
  2. El puerto LAN4 del punto de acceso se conecta con un cable directo a la única tarjeta de red del PC del profesor, la que trae en la placa base.
  3. Toma de 1Gb del suelo (etiquetada normalmente como "enlace profesor"). Va conectada a un puerto de switch el patch panel, incluido dentro de la VLAN interna del aula. Se conectará al puerto LAN1 del punto de acceso.
Antes de seguir con la configuración de red debemos aclarar que hay dos enfoques para este escenario, determinados por quién hace de servidor DHCP dentro del aula.
  • Si queremos que el mismo punto de acceso haga de servidor DHCP y gestione las IP que se van dando a los PC de los alumnos.
  • Si queremos que siga siendo el PC de profesor el servidor DHCP dentro de la red del aula.
En el primer caso, las ventajas son dos: el PC del profesor queda liberado de esa tarea y cada cosa sigue con la IP que hemos tenido hasta ahora: el PC del profesor con 192.168.0.254, el punto de acceso con 192.168.0.1 y los PC de los alumnos con 192.168.0.2XX. La desventaja es que los PC de los alumnos no podrán recibir IP fijas configuradas en el servidor ldap.

En el segundo caso la ventaja es que los PC de los alumnos reciben las IP fijas definidas en ldap (lo cual facilita su gestión e identificación desde Aulalinex, Squid, Sarg, etc). Otra ventaja es que si el PC del profesor está apagado, nadie da IP en la subred y los alumnos no podrán navegar. La desventaja es que hay que cambiar las IP de punto de acceso y PC del profesor para que funcione la cosa.

Yo me he decantado por el segundo caso, ya que estoy acostumbrado a tener los alumnos con IP fija y me parece un paso atrás renunciar a eso. Para configurar la red entramos en el punto de acceso por su interfaz web (https://192.168.0.1) y lo quedamos así:


El puerto WAN del router se configura con una IP 172.XX.YY.ZZ de la red del centro, poniendo la máscara, puerta de enlace y DNS como siempre. El puerto LAN tiene originalmente 192.168.0.1 pero como vemos la hemos cambiado a 192.168.0.254. La causa es que los PC de los alumnos están configurados para usar como gateway de su subred la IP 192.168.0.254, que es donde se hace NAT (recordemos que es el DLink el que hace el NAT ahora), y es mas fácil eso que cambiar la configuración DHCP de los clientes en ldap para usar un nuevo gateway. 

En el PC del profesor, cambiamos la IP fija que tiene en 192.168.0.254 por otra, por ejemplo 192.168.0.100, ya que él ahora no hace el NAT y esa IP está cogida por el DLink. No hay que olvidar cambiar la configuración de los clientes aulalinex de los alumnos para decirles que el profesor tiene ahora una nueva IP, lo cual por puppet es una tarea sencilla de realizar. Por último, el servidor DHCP se deja desactivado en la configuración Web del DLink. La configuración de red del profesor sería:
~# cat /etc/network/interfaces
auto lo eth0
iface lo inet loopback

iface eth0 inet static
        address 192.168.0.100
        gateway 192.168.0.254
        dns-nameservers 172.19.231.3
        dns-search vguadalupe
        netmask 255.255.255.0
        broadcast 192.168.0.255
Si tenemos algún script o servicio de NAT, como /etc/init.d/enable-nat o /etc/init.d/activa-nat habría que desinstalarlo, ya que no procede. En cuanto a aulalinex en el puesto del profesor:
~# cat /var/lib/aulalinex-profesor/aulalinex-profesor.conf
.....
[Profesor]
mesa profesor=192.168.0.100
.....
[Servidor]
IP=192.168.0.254
.....
[Punto Acceso]
IP=192.168.0.254
.....
Y en los alumnos:
~# cat /etc/aulalinex-red.conf
.....
[Profesor]
IP Profesor=192.168.0.100
.....
En el caso de querer optar por la primera opción propuesta activaríamos el servidor DHCP indicando un rango para repartir IP, el puerto LAN del punto de acceso se quedaría con 192.168.0.1 y el PC del profesor con IP 192.168.0.254. Adicionalmente habria que apagar el servicio DHCP del PC del profesor, para evitar que haya dos servidores DHCP en competencia en la red interna del aula. 

Sea cual sea la opción elegida, con esto tenemos el DLink haciendo NAT. 

Si además queremos controlar su wifi desde el PC del profesor podemos usar la aplicación controlwifi que hace que sea trivial para el profesor encender y apagar la wifi, así como indicar la clave a los alumnos.

Venga, nos vamos.

Añadido 30/05/2017. Tras varias pruebas con mi compañera Montse, ampliaré un poco algunos puntos que habían quedado sin tocar o poco claros.

Como el punto de acceso enruta entre 2 redes, debe permitir conexiones tanto https como ssh desde ambas. El tener activado por defecto el firewall es un problema aquí, por eso es conveniente detenerlo:


Luego, hay que activar el servicio ssh para permitir la conexión manual o de aplicaciones como controlwifi:




Por último, la gestión remota quedará así:



Para conectar por ssh al ordenador del profesor desde fuera hay que hacerlo pasando por el punto de acceso, en dos saltos:

~$ ssh root@aulax-ap
root@aulax-ap's password: 
==========================================================
 
     ___  ___     _      _____  ______       ____  ___ 
    / _ \/ _ \___| | /| / / _ \/_  __/ _  __|_  / / _ \
   / // / // /___/ |/ |/ / , _/ / /   | |/ //_ <_/ // /
  /____/____/    |__/|__/_/|_| /_/    |___/____(_)___/ 
                                                     
                       DD-WRT v3.0
                   http://www.dd-wrt.com
 
==========================================================


BusyBox v1.24.1 (2016-02-23 13:45:33 CET) built-in shell (ash)

root@AULAX-AP:~# ssh root@192.168.0.100
root@192.168.0.100's password: 
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.19.0-73-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

0 packages can be updated.
0 updates are security updates.

Last login: Mon May 29 10:51:05 2017 from 192.168.0.254
root@A0X-PRO:~# 


Bueno, creo que ahora queda mas claro.