Obelisco/Docs

Documentación

Características de Obelisco

Para ver un breve listado de las características y funcionalidades principales de Obelisco, junto con el software que incluye instalado, ver /Características.

Instalación

Obtener el firmware

  1. Bajar el firmware correspondiente a tu equipo de la sección de descarga.

Verificar el firmware

  1. Para asegurarse que el archivo se descargó correctamente y garantizar su instalación, verificar el mismo con la utilidad MD5SUM.
  2. Utilizar el comando md5sum en GNU/Linux o md5sum.exe en M$ Windoors.

  3. Ejemplo:
    • md5sum -c md5sums-YYYYMMDD.txt
    • Reemplazar YYYMMDD por la versión correspondiente.

Preparación antes de la instalación

  1. Se asume que lo instalarás sobre un router nuevo, que aún tiene instalado el firmware original, y que tenés una computadora con M$ Windoors o GNU/Linux desde la cual realizarás la instalación.

Documentación

  1. Antes de avanzar deberías leer toda la documentación para tener una idea general de los pasos que realizarás.
  2. Además te puede ser de gran utilidad leer la documentación original que viene con tu equipo, ya sea impresa o en un CD.

Planificación

  1. Es MUY recomendable escribir en papel la configuración pretendida para ahorrarse tiempo y dudas.

Defaults

  1. Volver el equipo a la configuración original/inicial (Resetear defaults).
    • Es MUY recomendable para no dejar residuos de viejas configuraciones que podrían entorpecer el funcionamiento de Obelisco

    • Esto generalmente se puede realizar desde la web de administración del router o con el botón de reset.
  2. Configurar una dirección IP apropiada en tu máquina para poder conectarse con el router.
    • Esta dirección IP tiene que ser acorde a la asignada por defecto al equipo (luego de resetearlo para obtener la configuración inicial cómo se mencionó en el punto anterior).
    • Por ejemplo: 192.168.1.2 para Linksys o 192.168.10.2 para Motorola (Dado que las IPs por defecto de estos routers son 192.168.1.1 y 192.168.10.1 respectivamente).

Instalación

Interface WEB

  • Para instalar Obelisco mediante la Interface WEB del firmware original, seguí estos pasos:

    1. Ingresar a la interfaz web de administración de tu equipo.
    2. Ingresar a la opción administrativa dónde te permite actualizar el firmware, según corresponda a tu equipo.
    3. Seleccionar el firmware de Obelisco que bajaste previamente.
    4. Iniciar la actualización.
      • No detener el proceso. No apagar el router !!.

      • Este proceso puede demorar 1 minuto.
    5. El router se reiniciará cuando finalice con la actualización.
    6. Continuar con la configuración cómo se detalla en la sección siguiente.

TFTP

  • Si querés instalar Obelisco mediante TFTP, seguí estos pasos:

    1. Habilitar el boot_wait según tu equipo.

    2. Conectar un cable de red desde tu máquina hasta el puerto 1 del switch del router.
    3. Preparar el cliente TFTP en tu máquina.
      • M$ Windoors XP tiene un cliente incorporado, en GNU/Linux tenés algunos clientes para elegir.
        • Para más opciones e información sobre la utilización del método TFTP ver TFTP en OpenWRT.org.

      • Tenés que ejecutar el cliente TFTP desde el directorio dónde se encuentra el firmware que descargaste.
      • Desde el cliente TFTP en GNU/Linux escribí los siguientes comandos, pero no ejecutes el último (todavía):
        • tftp> verbose
          tftp> trace
          tftp> binary
          tftp> rexmt 1
          tftp> timeout 60
          tftp> put obelisco-xxxx-xxxx.bin
      • Obviamente en el último debés utilizar el nombre del firmware que estás subiendo.
    4. Reinicar el router.
    5. Apenas encienda el router, o unos segundos antes debés iniciar la transferencia mediante TFTP.

      • Esto implica que desde el cliente TFTP tenés que ejecutar el último comando descripto anteriormente.
      • La transferencia del firmware puede tomar entre 30 y 50 segundos.
    6. Una vez terminada la transferencia se inicia realmente la instalación del firmware. NO apagar el router !!.

      • Esperar al menos 1 minuto para dar tiempo al router a que instale el nuevo firmware.
      • Luego, esperar al menos otro minuto para dar tiempo al firmware a crear por primera vez el filesystem de lectura-escritura, etc.
    7. Continuar con la configuración cómo se detalla en la sección correspondiente.

Linksys WRT54G v5/v6

  • Para instalar Obelisco en estos equipos se debe seguir un procedimiento distinto.

  • Tener en cuenta que la versión de Obelisco para los Linksys WRT54G v5/v6 cuenta con menos funcionalidades (no tiene OLSR ni las wireless-tools!) y se debería tener en cuenta la modificación con MMC/SD para darle un mejor uso a esos equipos.

Configuración inicial

Asignar password y activar SSH

  1. Ingresar al equipo con telnet.

    • Ej: telnet 192.168.1.1 para Linksys o telnet 192.168.10.1 para Motorola.

      • Esas direcciones IP serían las que utiliza cada router por defecto.
    • Cuando inicia Obelisco y no detecta una dirección IP configurada (podría suceder durante la instalación), utilizará por defecto la dirección IP 10.4.0.1 con máscara de subred 255.255.255.224. Intentá ingresar a esta dirección IP si no tenés suerte con las dos anteriores.
    • El servicio telnet debería quedar habilitado sólo para realizar la configuración inicial.
      • En consecuencia, notarás que no te solicita usuario y contraseña para ingresar.
  2. Generar la contraseña del usuario root mediante el comando:
    • passwd
    • Te pedirá que ingreses una contraseña y que luego la repitas, a modo de confirmación.
    • En cuánto se genera la contraseña del usuario root, el servicio telnet se desactiva y se activa en su lugar el SSH.
  3. Ahora podrás acceder por SSH al router.

    • Se tomará unos cuántos segundos en habilitar el SSH por primera vez. Paciencia.
      • Por si no lo conocés, SSH (Secure SHell) es similar al telnet, pero la comunicación es segura, está cifrada.
      • Aplicación cliente sugerida para M$ Windoors: PuTTY.

Configuración inicial

SES (Cisco) Button

  1. Si estás utilizando un router Linksys que tiene un botón debajo del logo Cisco que está en el panel frontal del mismo, simplemente podés presionar ese botón hasta que se encienda de color ámbar (Quizás debas presionarlo por unos 2 segundos).
    • El router ejecutará automáticamente por vos el asistente de configuración BALConfig para asignar valores predeterminados de configuración, similar a lo que se describe en la sección a continuación para la configuración Automática.

      • Este proceso de configuración puede tomar unos 40 segundos.
    • Luego se reiniciará el router automáticamente con la nueva configuración aplicada y verás que el botón con el logo Cisco parpadea en color ámbar.
    • Tu equipo utilizará la siguiente configuración por defecto:

      • Dirección IP: 10.4.0.1
      • Máscara de red: 255.255.255.224
      • ESSID: <obelisco AT ARROBA buenosaireslibre.org>

      • Canal: 6
      • Modo/Participación: AP-Aislado

      • DHCP Server: Habilitado (Asignará direcciones IP entre 10.4.0.20 y 10.4.0.30)
      • DNS Server: Habilitado
      • Protocolo de enrutamiento dinámico OLSR: Habilitado
      • Puerto WAN (Para acceso a Internet ?): DHCP
      • PortalCautivo: Habilitado

    • Si no lo hiciste antes, sólo te quedaría pendiente asignarle una contraseña al usuario root cómo se describe en la sección Activar SSH.

Automática

  1. Ingresar al equipo por telnet o SSH.
    • Ej: ssh rootARROBA192.168.1.1 para Linksys

  2. Configurar Obelisco con el comando:

    • balconfig defaults
    • El equipo quedará configurado con valores por defecto y se reiniciará al finalizar la configuración para que la misma sea aplicada.
      • El proceso de configuración automática puede tomar unos 40 segundos.
    • Configuración por defecto que será utilizada:

      • Dirección IP: 10.4.0.1
      • Máscara de red: 255.255.255.224
      • ESSID: <obelisco AT ARROBA buenosaireslibre.org>

      • Canal: 6
      • Modo/Participación: AP-Aislado

      • DHCP Server: Habilitado (Asignará direcciones IP entre 10.4.0.20 y 10.4.0.30)
      • DNS Server: Habilitado
      • Protocolo de enrutamiento dinámico OLSR: Habilitado
      • Puerto WAN (Para acceso a Internet ?): DHCP
      • PortalCautivo: Habilitado

    • Si no lo hiciste antes, sólo te quedaría pendiente asignarle una contraseña al usuario root cómo se describe en la sección Activar SSH.

Manual

  1. Ingresar al equipo por telnet o SSH.
  2. Configurar Obelisco con el comando balconfig, respondiendo correctamente a todas las preguntas que realiza el script.

    • Si completaste la plantilla de configuración mencionada anteriormente, deberías utilizar los datos que escribiste allí.
    • El asistente de configuración Obelisco/BALConfig intenta ser lo más sencillo y liviano posible, y por lo tanto no tiene todas las validaciones ideales sobre la información que ingreses.

      • Entonces, completá los datos a conciencia ya que si querés jugar a hacerte el hacker, lo que se arruinaría es tu router.
    • Tener en cuenta que al ejecutar el asistente seguramente se modifiquen las direcciones IPs, las cuales deberás utilizar al conectarte nuevamente por SSH después de reiniciar el equipo.
  3. El asistente te realizará una última pregunta, para aplicar y guardar definitivamente la configuración.
    • Tener en cuenta que para ello el router se reiniciará.

Usando Obelisco

Usando Obelisco por primera vez

  1. Ya estás en condiciones de usar Obelisco según la configuración que le hayas aplicado.

    • No deberías volver a modificar la configuración salvo que necesites una especial para tu caso.
  2. Para probarlo, podés conectar una PC/Laptop en algún puerto del switch y te asignará una dirección IP automáticamente.
  3. De la misma forma, podés conectar una PC/Laptop en forma inalámbrica (al nombre de red ESSID que hayas elegido) y te asignará una dirección IP automáticamente.
  4. Es recomendable que hagas un backup cómo se explica en otra sección a continuación.
    • Este proceso guardará tu configuración personalizada, cualquier archivo que hayas modificado e información de la NVRAM y CFE, que te serán muy útiles si algún día tenés que recuperar tu router de algún error que hayas cometido.
  5. Si sos un felíz usuario de Obelisco lo podrías hacer saber en la lista de correo general y compartir tu experiencia.

  6. Si tuviste algún problema, avisanos que te daremos una mano. Ver Cómo obtener ayuda

Pasos a seguir

  1. Ya tenés tu router con Obelisco instalado y configurado. Un problema menos !

  2. Preocupate por conseguir Clientes para tu Nodo/AP y/o de enlazarte con otros Nodos/APs de la zona !!
  3. Los routers deberían ser configurados una vez y quedar funcionando de esa manera.
  4. No es la idea que estés probando instalarle mil aplicaciones, probar cien configuraciones distintas, etc.
  5. Si querés hacer esto último, prestá atención a la siguiente sección (RTFM).

RTFM

  1. Seguí leyendo TODA la documentación de Obelisco antes de preguntar cómo hacer algo !!!

    • Incluídos todos los links a páginas externas e inclusive a los que te puedan llevar ellas.

Botón y LED Cisco

  1. En los routers Linksys que tienen un logo Cisco con un LED en el panel frontal, el mismo puede:
    • estar apagado: Seguramente no ejecutaste Obelisco/BALConfig hasta el momento.

    • titilar en color ámbar: Indica que el router está configurado mediante Obelisco/BALConfig con los valores por defecto.

    • titilar en color blanco: Indica que el router está configurado mediante Obelisco/BALConfig con valores personalizados.

  2. Si el botón está habilitado (ver más abajo), al presionarlo podés configurar tu router con valores por defecto, cómo se describe en este documento para la configuración SES (Cisco) Button.

  3. Podés desactivar el uso del botón y el LED mediante los comandos:
    • nvram set obelisco_button_enable=false
      nvram commit
      reboot
    • El router se reiniciará con el botón y el LED deshabilitados.
  4. Podés volver a habilitarlo con los comandos:
    • nvram set obelisco_button_enable=true
      nvram commit
      reboot
    • Nuevamente se reiniciará, pero ahora con el botón y el LED habilitados.

Botón Reset

  1. En los routers que posean un botón reset en el panel posterior, podrán presionarlo para reiniciar el equipo en caso de querer hacerlo.

Editar archivos

  1. Si bien Obelisco pretende simplificarte la configuración de un Nodo/AP para la RedBAL, evitando la utilización de comandos y/o edición de archivos, puede haber casos particulares dónde no tengas más remedio que hacerlo.

    • Cómo siempre, te recomendamos leer bien la documentación e informarte sobre lo que querés hacer y así evitar perder el tiempo corrigiendo los errores cometidos.
  2. El editor de textos que viene con Obelisco es el vi.

  3. Ahora, si te resistís a utlizar el vi, hay algunas alternativas:

    • Para agregar un texto simple al final de un archivo ya existente:
      • echo "TEXTO QUE QUIERO AGREGAR" >> /directorio/nombrearchivo1
  4. Para agregar un texto más complejo al final de un archivo ya existente:
    • Notar que se debe terminar con una línea conteniendo sólo EOF

      • cat >> /directorio/nombrearchivo2 <<EOF
        ESTE TEXTO ES MAS COMPLEJO
          PORQUE TIENE ESPACIOS Y
             SALTOS DE LINEA
        EOF
  5. Siempre podrás verificar el contenido de un archivo con el comando cat.

    • Ejemplo:
      • cat /directorio/nombrearchivo2
    • Que siguiendo una relación con el ejemplo anterior, devolvería:
      • ESTE TEXTO ES MAS COMPLEJO
          PORQUE TIENE ESPACIOS Y
             SALTOS DE LINEA

Hacer un Backup

  1. Es recomendable hacer un backup cuando termines de configurar tu equipo o antes de actualizar Obelisco.
  2. Para iniciar el backup, desde el router, ejecutar el comando:
    • obelisco backup
  3. Se generará un archivo .tar.gz en el directorio /tmp

    • Ese archivo tendrá un nombre compuesto por el nombre del equipo (hostname) y la fecha en la que se está realizando el backup.
    • Ejemplo:
      • /tmp/fiumicino-bkp-20060710.tar.gz
  4. Copiar el archivo a una PC/Laptop mediante scp.

    • En M$ Windoors, si instalaste el PuTTY, tendrás la utilidad pscp que es similar.

    • Ejemplo, para bajar el archivo a un PC con GNU/Linux, desde la PC ejecutar (te pedirá la contraseña que le asignaste al equipo):
      • scp root@fiumicino:/tmp/fiumicino.tar.gz .
  5. El archivo generado tiene una copia del sistema de archivos de lectura/escritura, incluyendo:
    1. Todos los archivos modificados/generados por el usuario.
    2. Tres archivos en el directorio /tmp/misc conteniendo información de NVRAM y CFE.
      • Ejemplo:
        • /tmp/misc/fiumicino-nvram-20060710.txt
          /tmp/misc/fiumicino-cfe-20060710.bin
          /tmp/misc/fiumicino-cfe-20060710.txt
      • Los archivos CFE pueden ser utilizados con un cable JTAG para recuperar el router cómo se describe en la sección de troubleshooting de OpenWrt.

Actualizar la versión de Obelisco

  • Para todas las opciones, tené en cuenta que una vez que actualices el firmware, deberás volver a seguir todos los pasos que correspondan, previamente descriptos en la sección de Configuración inicial.

Métodos de actualización

tftp

  1. Para actualizar Obelisco simplemente tenés que volver a instalarlo utilizando el método TFTP, cómo si fuese una instalación nueva (Ver la sección Instalación).

    • Se supone que luego de utilizar Obelisco ya tenés activado el boot_wait y por lo tanto el TFTP en el equipo.

    • Obviamente, deberás instalar el nuevo firmware disponible.
  2. Es recomendable que primero realices un backup de tu equipo cómo se describe en la sección anterior.

obelisco upgrade

  1. Esta opción es para ofrecer una alternativa más sencilla al método por TFTP, pero siempre será recomendado actualizarlo por TFTP cómo se describió en la opción anterior.

  2. Es recomendable que antes hagas un backup cómo se describe en la sección anterior.
  3. Simplemente desde Obelisco ejecutá el comando:

    • obelisco upgrade
  4. Si tu equipo tiene acceso a Internet y hay una nueva versión disponible, la bajará y la instalará.
    • El proceso puede demorar 1 minuto y luego se reiniciará el router con el nuevo firmware instalado.
  5. Si tu equipo no tiene acceso a Internet o no hay una nueva versión disponible, simplemente te dirá que no se puede actualizar.
  6. Si sólo querés verificar si hay una nueva versión, podés ejecutar el comando obelisco y éste te lo indicará.

wget

  1. Esta opción es para ofrecer una alternativa más sencilla al método por TFTP, pero siempre será recomendado actualizarlo por TFTP cómo se describió en la opción anterior.

  2. Es recomendable que antes hagas un backup cómo se describe en la sección anterior.
  3. Es necesario tener acceso a Internet desde el equipo.
  4. Esta opción es básicamente lo mismo que hace obelisco upgrade.

  5. Luego ejecutar los siguientes comandos, para actualizar a la versión YYYYMMDD (cambiar según corresponda):
    • wget http://www.buenosaireslibre.org/obelisco/mips/obelisco-brcm-YYYYMMDD.trx -O /tmp/upgrade.trx
      mtd -r write /tmp/upgrade.trx linux
      • Reemplazar YYYMMDD por la versión correspondiente.
  6. Esta operación puede tomar 1 minuto.
  7. Una vez terminado, se reiniciará el router con la nueva versión instalada.

ssh

  1. Esta opción es para ofrecer una alternativa más sencilla al método por TFTP, pero siempre será recomendado actualizarlo por TFTP cómo se describió en la opción anterior.

  2. Es recomendable que antes hagas un backup cómo se describe en la sección anterior.
  3. Esta opción es similar a obelisco upgrade y wget, y consiste en realizar remotamente (mediante ssh) los pasos necesarios.

  4. Para simplificarte la vida, podrás encontrar un script ya preparado con todos los pasos necesarios.
  5. También tenés que descargar el archivo de firmware obelisco-brcm-YYYYMMDD.trx de la sección de descargas.

    • Reemplazar YYYMMDD por la versión correspondiente.
  6. Guardá el firmware y el script en el mismo directorio.
  7. Luego, desde tu PC con GNU/Linux, ejecutar:
    • Cambiá 10.4.0.1 por la dirección IP de tu equipo.
      • ./obelisco-mips_upgrade.sh 10.4.0.1
  8. El script te solicitará varias veces la contraseña del equipo antes de avanzar en cada paso.
    • El script creará un backup del Obelisco y te lo bajará en el mismo directorio dónde te encuentres.

      • Este paso puede fallar con versiones anteriores de Obelisco. En ese caso hacelo a mano cómo se explica en la sección correspondiente.

    • Luego subirá el firmware (que tiene que estar también en el mismo directorio).
    • Y finalmente lo instalará/flasheará.
    • Todo el proceso puede tomar unos minutos.
    • Una vez terminado, el equipo se reiniciará con el nuevo firmware instalado.

Ingresar a Obelisco luego de actualizar el firmware

Luego de actualizar el firmware deberás ingresar por telnet y asignar una password para desactivar telnet e ingresar nuevamente por ssh.

  • Cambiá 10.4.0.1 por la dirección IP de tu equipo.

# telnet 10.4.0.1
# passwd

Volver a configurar Obelisco después de actualizar el firmware

balconfig.cfg

  • Si seguiste todos los pasos, antes de actualizar el firmware debiste crear un backup, el cuál contiene el archivo balconfig.cfg generado por Obelisco/BALConfig con la configuración de tu AP/Nodo.

    • Simplemente podés volver a subir ese archivo a tu nueva versión de Obelisco, al directorio /etc y ejecutás balconfig auto.

      • El AP/Nodo se volverá a configurar según lo indicado por balconfig.cfg y se reiniciará para aplicar los cambios.

      • El archivo lo podés subir mediante la utilidad scp.

nvram

  • A partir de la versión 20070204, existe una varible nvram llamada obelisco_nvram_defaults, que si contiene un valor true (verificar con el comando nvram get obelisco_nvram_defaults) obligará a BALConfig a tomar la configuración actual almacenada en la NVRAM, que quedó persistente aunque hayas actualizado el firmware.

    • Esto implica que con sólo volver a ejecutar balconfig, Obelisco recordará tu configuración previa sin necesidad que subas el archivo balconfig.cfg.

    • Para ello no tiene que existir ningún archivo balconfig.cfg porque éste tiene prioridad para asignar valores por defecto.

archivos anteriores

  • Si bien la actualizacion deja operativo el router con los valores anteriores, si editaste manualmente los archivos hosts, hosts.inet, ethers y servers.list deberás copiarlos desde el backup que deberías realizar antes de actualizar Obelisco.

    • Cambiá 10.4.0.1 por la dirección IP de tu equipo.

~/jffs/etc$ scp hosts root@10.4.0.1:/etc
~/jffs/etc$ scp hosts.inet root@10.4.0.1:/etc
~/jffs/etc$ scp ethers root@10.4.0.1:/etc
~/jffs/etc$ scp servers.list  root@10.4.0.1:/etc

Instalar software u otras acciones

  1. Si vas a instalar software adicional o realizar otras acciones complejas en el Nodo/AP, se supone que sabés lo que estás haciendo.
  2. Dado que Obelisco está basado en OpenWrt, leé la documentación de este último sobre las acciones que quieras realizar y que no encuentres aquí.

  3. Nuevamente, informate antes de hacer algo.
  4. Luego, si crees que lo que hiciste puede ser útil para otros miembros del proyecto, podrías contribuír con una página wiki detallando los pasos a seguir para repetirlo.

Resolución de problemas

  1. ¿ Configuré todo bien y sin errores, y parece funcionar como corresponde, salvo cuando quiero navegar por Internet, que sin importar la página a la que quiera acceder siempre me aparece una página con información de mi equipo ?, ¿ Qué pasa ?
  2. No puedo entrar por telnet al router después de instalar Obelisco. ¿ Qué puede ser ?
    • Verificar las direcciones IPs. Si cambiaste la IP del router antes de cambiar el firmware, la IP se mantiene y tendrás que usar esa en vez de la IP default del router.
    • Si le asignaste una contraseña al usuario root, el servicio telnet se desactiva para que sólo accedas por SSH.
  3. Si por alguna razón decidís desinstalar Obelisco, y volverlo al firmware original, deberías realizar los mismos pasos que se mencionan en la sección de Instalación con el método TFTP, pero utilizando el firmware del fabricante de tu equipo.

  4. Cualquier otra consulta, duda, problema, etc, después de leer todo este Wiki, dirigila a la lista de correo técnica dónde muchas personas intentarán ayudarte.

    • Antes de consultar, leete toda la documentación en este wiki, y las páginas vinculadas.
    • Tratá de entender bien lo que necesitás y cómo formular tu consulta con la mayor información posible para que se pueda entender tu problemática.
    • Ver ListasDeCorreo

Configuración de Obelisco en detalle

A partir de aquí la documentación intenta ser más específica y técnica.

Tipo de Nodo

  • Las opciones de configuración de tipo de Nodo son: Cliente, AP-Aislado, AP-Conectado, Nodo.
  • Corresponde a los roles descriptos en RedBAL/Participaciones.

  • Cliente:

    • El tipo Cliente configura todos los puertos del switch (incluído WAN), junto a la interfaz inalámbrica, en un mismo bridge (br0), lo que implica que todos los puertos del switch funcionan cómo una misma interfaz.
    • Los distintos puertos del switch son las fichas de red que podés ver en la parte de atrás del equipo.
    • Respecto a la interfaz inalámbrica, el tipo Cliente corresponde al modo bridged client, dónde deja pasar hacia la red ethernet todo lo que hay en el lado wireless y viceversa.

    • En este modo quedan desactivados el DHCP server, el Portal Cautivo, el HTTP server y el protocolo de enrutamiento OLSR.

  • AP-Aislado:

    • El tipo AP-Aislado configura los puertos 1,2,3 y 4 del switch, junto a la interfaz inalámbrica, en un mismo bridge (br0).
    • Los distintos puertos del switch son las fichas de red que podés ver en la parte de atrás del equipo.
    • El puerto WAN queda separado para poder configurar un acceso a Internet.
    • En este modo quedan activos el DHCP server, el Portal Cautivo (si así se especifica mediante Obelisco/BALConfig), el HTTP server y el protocolo de enrutamiento OLSR.

  • AP-Conectado:

    • El tipo AP-Conectado configura los puertos 1,3 y 4 del switch, junto a la interfaz inalámbrica, en un mismo bridge (br0).
    • Los distintos puertos del switch son las fichas de red que podés ver en la parte de atrás del equipo.
    • El puerto 2 del switch se configura como una interfaz independiente (con su propia dirección IP) para que allí se pueda conectar otro equipo (quizás otro WRT54G ?) que seguramente hará de Cliente de otro AP/Nodo.
    • El puerto WAN queda separado para poder configurar un acceso a Internet.
    • En este modo quedan activos el DHCP server, el Portal Cautivo (si así se especifica mediante Obelisco/BALConfig), el HTTP server y el protocolo de enrutamiento OLSR.

  • Nodo:

    • El tipo Nodo configura los puertos 1 y 4 del switch, junto a la interfaz inalámbrica, en un mismo bridge (br0).
    • Los distintos puertos del switch son las fichas de red que podés ver en la parte de atrás del equipo.
    • El puerto 2 del switch se configura como una interfaz independiente (con su propia dirección IP) para que allí se pueda conectar otro equipo (quizás otro WRT54G ?) que seguramente hará de cliente de otro AP/Nodo.
    • El puerto 3 del switch también se configura como una interfaz independiente (con su propia dirección IP) para que allí se pueda conectar otro equipo (quizás otro WRT54G más ?) que seguramente hará de cliente de un tercer AP/Nodo.
    • El puerto WAN queda separado para configurar un acceso a Internet.
    • En este modo quedan activos el DHCP server, el Portal Cautivo (si así se especifica mediante Obelisco/BALConfig), el HTTP server y el protocolo de enrutamiento OLSR.

Puertos del switch

  • http://www.buenosaireslibre.org/images/obelisco/wrt54gl_ports.jpg

  • Los distintos puertos del switch son los conectores de red (RJ45 hembra) que podés ver en la parte de atrás del equipo.
  • Descripción general de la utilización de los puertos (físicos) del switch:
    • Port 1:
      • Este puerto queda unido a la interfaz inalámbrica mediante un bridge (br0).
      • Corresponde a lo que se denomina LAN en Obelisco/BALConfig.

    • Port 2:
      • Es utilizado en el modo AP-Conectado cuando se configura el router con Obelisco/BALConfig.

      • A este port se le asigna una dirección IP estática y se le puede conectar otro AP en modo Cliente para conectarse a un Nodo/AP remoto.
    • Port 3:
      • Es utilizado junto al Port 2 en el modo Nodo cuando se configura el router con Obelisco/BALConfig.

      • A cada port se le asigna una dirección IP estática y se les puede conectar otro AP en modo Cliente para conectarse a otros Nodos/AP remotos.
    • Port 4:
      • Se une al bridge de LAN cuando se realiza la configuración mediante Obelisco/BALConfig.

      • Queda libre para ser utilizado según necesidades particulares.
    • Port WAN:
      • Se utiliza para la conexión a Internet.
      • Este port se debería conectar al dispositivo que brinda acceso a Internet, cómo podría ser un módem de ADSL o Cable.
      • Se realiza NAT con todo el tráfico que sale por este puerto.

Selección de antena

  • Los routers (por ejemplo los Linksys WRT54G/S y/o los Motorola WR850G v2) suelen tener dos antenas para ser utilizadas con Diversity.

    • En el caso de los Motorola WR850G v2, una tiene conector para antena externa y la segunda está en el interior del equipo.
  • Cuando sólo utilizás una antena conectada al equipo (ejemplo, una antena parabólica conectada al Nodo/AP), te puede mejorar considerablemente el enlace desactivar la antena que no se está utilizando.
  • Esta selección se puede realizar mediante Obelisco/BALConfig extra, dónde:

    • Se define como antena main a la que está junto al botón reset en los equipos Linksys WRT54G/S y la que tiene el conector de antena externa para los Motorola WR850G v2.

    • Se define como antena aux a la otra.

Rdate

  • Este software permite actualizar el reloj interno (la hora interna) del equipo.
  • Cada vez que se levanta una interface con un default gateway, se intenta actualizar la hora del equipo mediante el uso del rdate.

  • Para actualizar la hora, por defecto utiliza el servicio ofrecido por time.nist.gov, por lo que sólo funcionará si se tiene acceso a Internet.

Syslog

  • Los logs del router se pueden leer con el comando:
    • logread
  • También se pueden redirigir los logs hacia otra máquina que tenga configurado el servicio de syslog correctamente (con la opción -r).
  • Obelisco/BALConfig te permite especificar la dirección IP del syslog remoto.

cron daemon

  • Gestiona las tareas del sistema programadas en el tiempo.
  • Se incluye un script para realizar la función de run-parts y ejecutar todas las tareas que se encuentre en los directorios /etc/cron.5min y /etc/cron.30min.
    • Están programadas las tareas necesarias para ejecutar las tareas cada 5 minutos y 30 minutos respectivamente.
  • Se pueden ver las tareas actuales con el comando:
    • crontab -l

DHCP Server (dnsmasq)

  • Este servicio es el encargado de asignar direcciones IP de forma automática a los clientes del AP/Nodo.
  • El servidor DHCP esta habilitado por defecto y configurado para asignar las últimas 10 direcciones IP de la subred utilizada.
  • Calcula la subred de la dirección IP que se configuró para LAN en Obelisco/BALConfig.

  • Se puede verificar si está habilitado (true) con el comando:
    • nvram get obelisco_dhcpd_enable
  • Para ver un how-to sobre como hacer un filtro por MAC usando dhcp (para evitar que te roben internet por ejemplo) ir a /DhcpMacFilter (LucasCollino).

DNS Server (dnsmasq)

  • Este servicio es el encargado de resolver nombres de dominio, es decir, convertir nombres de máquinas a direcciones IP.
  • El servidor DNS puede resolver tanto direcciones locales, como de Nodos/AP remotos y de Internet.
  • Para la resolución local utiliza el archivo /etc/hosts, dónde se deben especificar el hostname y la IP correspondiente a los distintos equipos de la red local.

  • Para la resolución local o de Internet, puede reenviar todas las peticiones, que no pueda resolver por sí mismo, al DNS Server que se haya especificado como LAN DNS Server durante la configuración con Obelisco/BALConfig.

  • No modificar a mano los archivos /etc/resolv.conf, ni /tmp/resolv.conf, ni /tmp/resolv.conf.auto, salvo que sepas lo que estás haciendo.

olsrd

  • OLSR es el protocolo de enrutamiento dinámico elegido para la RedBAL.

  • Obelisco/BALConfig configura OLSR para publicar la subred utilizada por el Nodo/AP.

  • Obtiene la subred de la dirección IP configurada para LAN en Obelisco/BALConfig.

  • Se puede verificar si está habilitado (true) con el comando:
    • nvram get obelisco_olsrd_enable
  • Se puede verificar la tabla de enrutamiento con el comando:
    • route -n
  • OLSR (v0.4.10) está configurado para utilizar la extensión Link Quality y el algoritmo Fish Eye.
  • Para más información de OLSR, ver http://www.olsr.org/.

HTTP Server

  • Obelisco incluye un web server muy simple y liviano (Es el que forma parte del cojunto de utilidades BusyBox).

  • Se utiliza principalmente para mostrar información básica del Nodo/AP, con la funcionalidad de Portal Cautivo.

  • Se puede verificar si está habilitado (true) con el comando:
    • nvram get obelisco_httpd_enable
  • No soporta HTTPS.

Portal Cautivo

  • Esta funcionalidad puede mostrar información del Nodo/AP (y de contacto), a los clientes del mismo.
  • También muestra un listado de los Nodos/AP a los que se encuentra conectados, cómo así también un listado de los servicios disponibles en la red (servicios ofrecidos por éste y otros Nodos/APs).
  • Ver Obelisco/Docs/PortalCautivo.

Publicar Servicios

  • Obelisco posee una funcionalidad para mostrar los servicios de red diponibles mediante el Obelisco/Docs/PortalCautivo.

  • Los servicios mostrados y listados pueden estar disponibles en el Nodo/AP que estás configurando o en otros a los que esté enlazado, ya que cada Nodo/AP publica los suyos.
  • Para la realización de esta funcionalidad se evaluó primero la utilización de Zeroconf (Avahi, howl, Bonjour, mdns, etc) pero se descartó principalmente por el espacio en flash requerido y por falta de buena información en las utilidades disponibles.
    • De todos modos, la idea resultante y el formato utilizado para publicar los servicios está inspirado en lo anterior.

  • Para publicar un servicio, se debe agregar la información del mismo en el archivo /etc/servers.list, con el siguiente formato:

    • _server._hostname._port._uri._path._comments

    • Dónde:
      • _server._: Debe estar siempre presente al comienzo de cada servicio a publicar.

        • Respetar las minúsculas.
      • _hostname._: Se debe reemplazar por el hostname del equipo de tu red local que posee el servicio a publicar.

        • Tiene que existir una entrada asociada en el archivo /etc/hosts que indique la dirección IP correspondiente al hostname publicado.

        • Utilizar minúsculas.
        • Ejemplo: Si tenés un servidor FTP en una máquina llamada bigfoot, reemplazarás _hostname._ por _bigfoot._.

      • _port._: Corresponde al número de puerto (TCP o UDP) que utiliza el servicio publicado.

        • Si el puerto es el utilizado por defecto para ese tipo de servicios, o utiliza demasiados puertos que también son los utilizados por defecto, allí se puede especificar el puerto 0.

        • Ejemplo: Siguiendo el ejemplo del servidor FTP, se debería reemplazar _port._ por _21._, pero dado que ese puerto es el utilizado por defecto por los servidores FTP, se puede omitir el mismo reemplazando _port._ por _0._ cómo se describió antes.

      • _uri._: Es el protocolo/esquema a utilizar en el Obelisco/Docs/PortalCautivo para crear un hipervínculo hacia el servicio.

        • En caso de no querer crear un hipervínculo, o de no existir un protocolo/esquema apropiado para el servicio, se debe indicar none.

        • Algunos protocolos/esquemas reconocidos por los browsers en los hipervínculos: http (Para servidores Web), ftp (Para servidores FTP), file (Para archivos locales o servidores SMB/CIFS/Recursos compartidos de M$ Windoors).
        • Ejemplo: Siguiendo el ejemplo del servidor FTP, se debería reemplazar _uri._ por _ftp._ si se desea que el Obelisco/Docs/PortalCautivo cree un hipervínculo, o se podría reemplazar _uri._ por _none._.

      • _path._: Corresponde al path a utilizar en el hipervínculo hacia el servicio publicado. Útil para http y ftp si se quiere que accedan a un directorio predeterminado.

        • Si no se desea utilizar un path, se debe reemplazar por none.

        • Ejemplo: Siguiendo el ejemplo del servidor FTP, si quisiera que accedar al directorio FotosBAL, se debería reemplazar _path._ por _FotosBAL._, se de lo contrario se podría reemplazar _path._ por _none._ para no utilizar un path.

      • comments: Corresponde a un texto MUY breve y descriptivo que se presentará en el Obelisco/Docs/PortalCautivo para describir el servicio publicado.

        • En caso de querer separar palabras con espacios, reemplzar el espacio por el caracter #.
        • Ejemplo: Siguiendo el ejemplo del servidor FTP, la descripción del servicio podría ser Servidor de archivos FTP, y por lo tanto se debería reemplazar _comments por _Servidor#de#archivos#FTP.

    • Ejemplo integrador:
      • Siguiendo el ejemplo del servidor FTP, para publicarlo se debería agregar en /etc/servers.list:
        • _server._bigfoot._21._ftp._FotosBAL._Servidor#de#archivos#FTP
      • Si no quisiera especificar un path y obviar el puerto (ya que es el utilizado por defecto por el servicio FTP):
        • _server._bigfoot._0._ftp._none._Servidor#de#archivos#FTP

BALLS Update

  • Esta funcionalidad permite notificar al sistema BALLS los Nodos/APs que se encuentran online.

  • Luego, BALLS o el Mapa utilizarán esta notificación para resaltar dichos Nodos/APs y llevar una estadística real de los que se encuentran activos.

  • Existe una tarea programada que se ejecuta cada 30 minutos, encargada de notificar a BALLS la MAC Address del Nodo/AP para que actualice su estado.

    • El script que se ejecuta es /etc/cron.30min/10-balls-update
      • para ejecutarlo manualmente:
        . /etc/cron.30min/10-balls-update <enter>
    • La MAC Address que reportará es la correspondiente a la interface inalámbrica del router.
      • La MAC Address debe estar cargada en el sistema BALLS para el Nodo/AP. Para saber la mac address de tu Nodo:

        ifconfig eth1 <enter>

ahi va a aparecer en la primer linea :HWaddr xx:xx:xx:xx:xx:xx (donde x es numero hexadecimal). Esos 17 caracteres incluidos los ":" son los q se agregan en el sistema BALLS

  • Cuando se configura un Nodo/AP mediante Obelisco/BALConfig como AP-Aislado, AP-Conectado o Nodo, se activa la funcionalidad, y se desactiva en modo Cliente.

    • Se puede ver si está habilitado o no con el comando:
      • nvram get obelisco_balls_update_enable <enter>

WDS

  • Mediante Obelisco/BALConfig (extra) se pueden configurar enlaces WDS (Wireless Distribution System) entre Nodos/APs.

  • Para enlazar con otro Nodo/AP utilizando WDS, se debe conocer la MAC Address de la interfaz inalámbrica del Nodo/AP remoto.
  • Por cada enlace WDS se crea una nueva interfaz inalámbrica wds0.xxxx (xxxx es un número a partir de 49153) que se une automáticamente al bridge br1.
  • El bridge br1 es la interfaz a la cuál se le asigna una dirección IP mediante Obelisco/BALConfig.

    • Utilizar direcciones IP de la subred asignada en el rango 172.16.x.x.

OpenVPN

  • Software que permite realizar túneles sobre otras redes. Estos túnes pueden ser cifrados (para mayor seguridad) o no.
  • Se podría utilizar para hacer vínculos por Internet entre Nodos/AP, especialmente con aquellos que no estén conectados al resto de BAL.
  • Se incluye pre-configurado pero desactivado. Ver Obelisco/BALConfig.

  • Puede consumir mucha CPU si se lo utiliza para los clientes del router vía wireless o ethernet.
  • Ver ejemplos de configuración en: Obelisco/Docs/OpenVPN

Acceso a Internet

  • Acceso a Internet. Si bien no es necesario para el proyecto, muchos integrantes lo utilizarían para configurar el acceso a su ISP.
  • Utiliza el Port WAN del switch.
  • El default gatway especificado como LAN Default Gateway durante la configuración con Obelisco/BALConfig, debería corresponder con la dirección IP del equipo (router, etc) que brinde el acceso a Internet, o a cualquier red desconocida.

  • Mediante Obelisco/BALConfig se puede configurar el acceso como DHCP, PPPOE o STATIC, dónde en este último, se especifican las direcciones IP, etc.

MMC/SD Mod

  • Obelisco incluye el driver necesario para poder utilizar una memoria MMC/SD como extensión del filesystem.

  • Además incluye los scripts necesarios para montar las particiones durante el inicio.
  • Mediante Obelisco/BALConfig se habilita o deshabilita el soporte MMC/SD.

    • Si se habilita, cargará al inicio el módulo MMC/SD correspondiente a la versión de Linksys WRT54G que estés utilizando e intentará montar las particiones.
  • Para que esta modificación sea de real utilidad, especialmente en los Linksys WRT54G v5/6, se definió una estructura para el filesystem de la MMC/SD:
    • Partición 1, squashfs: Utilidades y módulos adicionales.
    • Partición 2, swap: Para mejorar el rendimiento, especialmente en los Linksys WRT54G v5/6.
    • Partición 3, ext3: Espacio de lectura/escritura.
  • COMPLETAR INFORMACIÓN DE LA ESTRUCTURA MMC Y LAS UTILIDADES NECESARIAS PARA CREARLO.
  • Para mayor información ver http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/MMC

  • En mi caso usando el WRT54GL v1.1, el cual carece de GPIO 5 y usa el GPIO 2 me encontré que usando balconfig extra y habilitando la MMC el sistema se moría, esto es debido a que el archivo /etc/init.d/S20mmc no configura el gpiomask en forma correcta para esta versión de hard, así que voy a detallar los pasos que realice para montar la SD como una partición FAT.
    • Una vez realizada la conexión de hard a los GPIO correctos prendemos el router y usamos los siguientes comandos:
      • echo "0x9c"> /proc/diag/gpiomask insmod mmc-gpio2.o

    • Si todos esta correctamente soldado y conectado usando el comando dmesg vemos que detecte la memoria:
      • dmesg mmc Hardware init mmc Card init mmc Card init *1* mmc Card init *2* Size = 125440, hardsectsize = 512, sectors = 250880 Partition check: mmca: p1
    • Esto nos dice que esta andando OK, caso contrario revisar las conexiones. Si se te congela el router, le pifiaste al gpiomask.
    • Como voy a usar FAT, tengo que instalar el paquete:
      • ipkg install kmod-vfat
    • Para no tener que rebootear levantamos los modulos:
      • insmod fat insmod vfat
    • Ahora ya podemos montar la partición, en mi caso utilice como punto de montaje: /mnt/mmc/
      • mount /dev/mmc/disc0/part1 /mnt/mmc/ vfat defaults 0 0
    • Corroboramos que este montado ok:
      • df –h /dev/mmc/disc0/part1 122.5M 0M 119.4M 0% /mnt/mmc
    • Ya podemos usar la mmc, para que esto se corra automáticamente en el inicio hice:
      • echo "/dev/mmc/disc0/part1 /mnt/mmc/ vfat defaults 0 0" >> /etc/fstab vi S20mmc

    • Borré todo y coloqué:
      • #!/bin/sh

        echo "0x9C">/proc/diag/gpiomask insmod /lib/modules/mmc-gpio2.o mount /dev/mmc/disc0/part1

BALConfig

Como configurar todas las interfaces en el mismo bridge en modo AP-Conectado

  • Entrar por SSH al Obelisco
  • Ejecutar los siguientes comandos:
    • nvram set ifup_interfaces="lan wifi"
    • nvram set vlan0ports="0 1 2 3 4 5*"
    • nvram unset vlan1hwname
    • nvram set vlan1ports="0 5"
    • nvram commit
    • reboot
  • Luego del reinicio todas las interfaces quedarán en el mismo bridge, hay que ejecutarlo nuevamente en el caso de que se reconfigure el router por medio de balconfig.

Más información

Equipos probados

Ver la tabla de /Hardware

Changelog

Ver los distintos cambios realizados durante el desarrollo en: /Changelog.

Licencia

Obelisco esta disponible bajo la licencia GPL2, pueden leer su original Aquí o su traducción al castellano Aquí


Wiki: Obelisco/Docs/MIPS (last edited 2011-10-02 12:26:52 by Pique)

USLA