sitio personal de Rodrigo Garcia Saenz.

Nodo Chersky LaOtraRed

permalink.

Reseña del primer despliegue del Nodo Chersky en LaOtraRed

Actualizado - 23 July 2023

Esta es una reseña sobre la puesta en marcha experimental del nodo "Chersky" como parte del proyecto LaOtraRed La Paz. En este post podrás revisar fotos, experiencias sobre el montado del nodo, además detalles técnicos de puesta de servicios y configuraciones.

Nota: Este artículo es una referencia histórica por que el nodo Chersky ha evolucionado, aquí la segunda versión.

Nodo Chersky - LaOtraRed

Sobre LaOtraRed

LaOtraRed La Paz es una red libre construida y mantenida enteramente por personas voluntarias. La red le pertenece a toda la comunidad que forma parte de ella y no existe una persona, organización u empresa que sea dueña.

Para que esta sea una red libre se siguen cuatro principios de convivencia fundamentales:

  • Eres libre de utilizar la red para cualquier propósito en tanto no perjudiques el funcionamiento de la propia red ni a la libertad de los demás usuarios.
  • Eres libre de saber cómo es la red, de qué se compone y cómo funciona.
  • Eres libre de emplear la red para cualquier tipo de comunicación y difundir su funcionamiento.
  • Incorporándote a la red, ayudas a extender estas libertades en las mismas condiciones.

Estos principios son extraídos de la licencia procomún inalámbrica version 1.0 derivada (Bolivia).

En La Paz LaOtraRed es principalmente impulsada por el Grupo de estudio de redes libres GEReL, del cual soy parte activa.

El nodo Chersky es el segundo nodo asegurado después del nodo sopocachi I.

¿De qué se trata?

Este nodo es un punto de conexión wifi libre en un barrio de la ciudad de La Paz, si alguién se conecta a la señal wifi puede utilizar una serie de servicios libremente. Además este punto de conexión wifi está preparado para actuar como nodo en la red distribuida de LaOtraRed y se clasifica como un nodo normal por repartir la señal de la red distribuida en 5 Ghz y 2.4 Ghz.

Este un diagrama a grandes rasgos de la infraestructura del nodo que iré detallando más adelante.

Nodo Chersky infraestructura

ubicación

El nodo se encuentra en la ciudad de La Paz, casi llegando al barrio gráfico cerca la plaza Villaroel y el hospital Arco Iris, puedes buscar la señal de wifi por ahí.

Materiales usados

He realizado una inversión considerable en el montado de este nodo, pero esto no quiere decir que esta es la forma óptima de montar un nodo o que el precio de montado es irreducible, como referencia voy a poner los precios de los materiales y equipos comprados:

Equipos de comuptación y redes

  • Computador AMD Atlon (prestado del r00thouse, a este server lo llamamos chipsito)
  • Pila BIOS CR2032 (15 bs)
  • Router Dual Band modelo TLWDR3600 (500 bs)
  • Swtich ethernet (reciclado)

Accesorios redes

  • 2 Cajas de red (30 bs)
  • Conectores hembra y macho jack (10 bs)
  • 5 Conectores rj45 (5bs)
  • 20 metros de cable utp cat5 (50 bs)

Preparado de la antena

  • 6 metros cable coaxial rg58 para hacer antena casera (24 bs)
  • 2 conectores sma macho (28 bs)
  • 1 conector sma hembra (14 bs)
  • Tubo pvc 1.3 m (reciclado)

Montado de la torre

  • 2 amarros de alambre de amarre (20 bs)
  • 2 palos de fierro 10 cm (reciclado)
  • Pedazos de madera pequeños (reciclados de un botadero)

Inversión adquiriendo materiales y equipos : 696 bs

Montado de la "torre"

Para la "torre" he usado básicamente los palos de fierro, las maderas, alambre de amarre y cables de red.

He puesto el router en el techo para disminuir la distancia entre el equipo y la antena así se puede reducir la pérdida en la línea de transmisión coaxial hasta la antena. Y para colocar el router arriba se requiere darle suministro eléctrico, lo que en ciscunstancias normales significa llevar un cable con 220 V AC.

Cajitas de red modificadas para ahorrarse cable de 220 V AC

Para ahorrarse el cable para 220 V AC en el techo y aprovechar que no se necesitan todos los hilos del cable para la conexión ethernet, se ha hecho una modificación usando dos cajitas de red, y dos conectores jack. Esta modificación está mejor descrita aquí, estas son un par de fotos del trabajo hecho.

cajitas abiertas

Construcción de antena casera

Busqué la forma de hacer una antena casera onmidireccional para wifi con ganancia por encima de los 15 DBi, principalmente para ahorrarme dinero al tratar de adquirir una antena. Encontré este diseño de antena hecha con el mismo cable coaxial y como parecía sencilla de hacer la hice.

Pero no obtuve los resultados deseados y probablemente por errores en el proceso de construcción, por ejemplo en las medidas de los trozos o al preparar los conectores, al final la antena medía cerca de 1.4 m y la ganancia era similar a la antena con la que venía el router. De todas formas terminé poníendola en el techo y espero poder realizar una mejor antena. Estaría muy agradecido si me das sugerencias sobre antenas onmidireccionales, hazlo por aquí por favor o escribe al foro de la otra red La Paz muchos te lo agradercerán.

Aquí algunas fotos de lo que hice.

Preparando los pedazos.

p1 p2 p3 p5

Colocando el dentro el tubo pvc como cubierta, a un extremo de la antena puse un conector SMA hembra para que se pueda conectar a otros pigtails de cable coaxial. p6

Conectado al router luego de conectar con un pigtail que hice con el mismo cable coaxial y los conectores SMA macho.

p4

En el techo

Usando estos materiales:

torre materiales

Prepare una base con los dos fierros e "incrusté" un fierro en la base de madera para tener mejor apoyo sobre el techo inclinado.

torre materiales

Luego amarré 3 alambres para sujetar los fierros donde también aseguré la antena con el alambre de amarre, al final la base de la "torre" terminó así:

torre asegurada

Después conecté el cable coaxial de la antena casera a la entrada del router, en la imagen siguiente no esta el cable utp que va de la cajita al router, lo dibuje en la imagen por que después si lo puse o no habría conexión con el servidor.

torre asegurada

Una vez cubierto el router para protegerlo de la interperie y asegurarlo, sólo queda el trabajo al interior y esto es acomodar la computadora y conectar al switch tal y como si fuera una red LAN.

Servidor "chipsito" para dar servicios

Este servidor es del r00thouse y agradezco me lo presten mientras no lo necesiten. La historia que me contarón es que Amos Batto un activista ambientalista y que antes se pasaba por el r00thouse donó el equipo, agradezco a Amos por la donación y aunque chipsito es un equipo muy pesado y para algunos antiguo, funciona muy bien, espero darle el mejor uso en lo que le queda de vida útil.

Chipsito tiene una CPU AMD Athlon, con 784 MB de RAM y 60 GB de disco duro. Luego de comprarle una nueva pila para el BIOS funciona bien. Le instalé Debian GNU/Linux 8 jessie y puse algunos servicios que especificaré a continuación.

Tiene el nombre de Chipsito gracias a Chip el perro de Armin que vive en el r00thouse y te daba la bienvenida con ladridos y golpes con las patas delanteras... es que es muy jugetón e hiperactivo. Además había otro equipo en el r00thouse que llamamos Chip pero tenía características superiores al chipsito. Ni hablar más aquí unas fotos del equipo.

chipsito1 chipsito2

Servicios disponibles

Hasta el momento hay 6 servicios principales.

Más referencia sobre el despliegue de estos servicios https://wiki.lapaz.laotrared.net/guias/indice_servicios.

A parte en el router he tenido que configurar dnsmasq como servidor dns "invasivo" lo que se describirá más adelante.

Arriba una captura de pantalla del los servicios en la página principal del nodo.

Agradecimientos y más

Muchas personas han hecho posible el montado de este nodo y del proyecto LaOtraRed, voy a listar a quienes han tenido especial influencia.

  • Luis Mita: Su ayuda en los aspectos técnicos han sido fundamentales, cuando andaba desubicado me ayudaba a ubicarme de nuevo. Su apoyo moral también ha sido importante además de ser el impulsor principal del proyecto LaOtraRed en La Paz.
  • Donato Aymatha: Ha hecho un gran trabajo consiguiendo contactos y difundiendo el proyecto a distintos sectores y eso me ha ayudado a entender algunas necesidades comunicacionales básicas de muchas personas y que no todo se enfrasca en un mundo de consumismo digital, hay que darle a las personas los medios para generar sus propios contenidos y en una red libre eso es importante.
  • Sergio Guillén: Wonkey como miembro del r00thouse ayudó mucho impulsando el proyecto y haciendo cosas que nadie más se animaba como cuando se animó a configurar VLANS o conseguir routers ganando hackatones. Eso me dío animos para seguir trabajando.
  • Armin Mesa: Como miembro del r00thouse por apoyar en lo que estaba a su alcance animando a seguir con los proyectos, además por permitirme usar el server chipsito para este nodo.
  • Franklin Torres: Dx por su ayuda y apoyo constante en cada problema que surgía cuando yo era parte del r00thouse.
  • Esteban Lima: Tebo de buena gana ayudó a iniciar el proyecto LaOtraRed y a conseguirnos espacios de prueba, también colaboró en Cochabamba donde han estado construyendo LaOtraRed.

Voy a hacer un agradecimiento especial a Philippe Rivière o Fil, que es la persona que realizó una importante donación monetaria cuando empezabamos el proyecto con esa donación pudimos adquirir muchos enrutadores con los que empezamos a probar en serio la creación de una red distribuida y para montar un nodo de pruebas en el r00thouse.

Fil hizo un viaje largo desde Francia a Bolivia y antes de irse hizo el donativo sin anunciarlo a grandes voces ni esperar reconocimiento público, sólo confiando en que su donativo apoyaría al proyecto y así lo hizo ¡Gracias Fil!.

Algo más

Antes de pasar a la parte enteramente técnica me gustaría animar a muchos otros para que monten sus nodos o ayuden a montarlos y expandir una red distribuida y libre.

No es buena idea esperar a que otr@s nos brinden soluciones comunicacionales que probablemente no se ajustarán a nuestras necesidades reales, además se podrían aprovechar de nuestra situación por falta de comunicación para --imponernos tarfias excesivas y un mal servicio, como es el caso del internet en Bolivia.

Si tienes la posibilidad debes tomar acción apoyando la creación de redes libres para los y las ciudadanas, controladas y gestionadas por los mismos.

Rechaza medios de comunicación que te quitan la libertad de comunicarte libremente y anima a otros a hacerlo.

Puedes revisar este post que estoy escribiendo al respecto.

Infraestructura

Este diagrama explica a grandes rasgos la infraestructura del nodo:

Nodo Chersky infraestructura

Como se ve hay un router no solamente reparte wifi para que se conencten varios clientes, también emite y recibe señales wifi (2.4 y 5Ghz) en modo adhoc para unirse a la red distribuida LaOtraRed.

El siguiente diagrama muestra con más detalle la infraestructura del nodo.

Nodo Chersky infraestructura detalle

Sólo hay un aparato enrutador que realiza la conexión a la red distribuida, este aparato también sirve como repartidor de red wifi para clientes, el conmutador de red es opcional y puede servir para conectar equipos adicionales como servidores que tendrán una IP pública (serán visibles por todos los nodos en LaOtraRed).

Configuraciones de aparatos enrutadores

Esta es una configuración experimental de nodo para LaOtraRed y no compromete al proyecto.

En los diagramas de la infraestructura del nodo se puede ver que se conecta a la red distribuida de LaOtraRed por wifi (en 2.4 y 5Ghz) y además a una red local de clientes temporales.

Lo último significa que este nodo puede usar como mejor le convenga un total 30 direcciones IP para equipos que van desde 10.64.3.65 a 10.64.3.94 y estas direcciones serán públicas en todo el espacio de la red distribuida.

TLWDR3600

Este enrutador tiene instalado el S.O. openwrt y sus funciones son:

  • Conectarse a la red distribuida por wifi en 2.4 y 5 Ghz usando el bloque público 10.64.3.64 /27 asignado a este nodo.
  • Crear una red local para clientes en 172.24.1.0 /24.
  • Servir de wifi hotspot en 2.4 Ghz.
  • Servidor dhcp para asignar direcciones IP automáticamente a clientes.
  • Servidor DNS para la red local.
/etc/config/network

Este es el archivo donde se definen las interfaces de red.

Por convenencia se ha definido VLANs para reservar puertos ethernet del aparato de forma ordenada siguiendo: https://wiki.openwrt.org/toh/tp-link/tl-wdr3600#switch_ports_for_vlans, la definición de VLANs no es estricamente necesaria.

Por ejemplo he definido la VLAN 1 que abarca los puertos ethernet 1 y 2 y hace que cualquier dispositivo que se conecte allí pertenezca a una interfaz específica (en este caso "wiredmesh"), la VLAN 2 abarca los puertos ethernet 3 y 4 y cualquier dispositivo que se conecte a estos puertos pertenecerá a la interfaz "mesh", de igual manera con la VLAN 3 pero con la interfaz "wan" y usando el puerto ethernet wan.

Este el archivo de configuración completo:

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config globals 'globals'
    option ula_prefix 'fdec:6a81:414a::/48'
# red mesh para conexiones cableadas (ethernet)
config interface 'wiredmesh'
    option ifname 'eth0.1'            # VLAN 1
    option force_link '1'
    option proto 'static'
    option ipaddr '10.64.3.65'        # IPv4 publica del router
    option netmask '255.255.255.224'  # mascara /27
# red mesh para 2.4 Ghz
config interface 'mesh_2G4'
    option proto 'static'
    option ipaddr '10.64.3.65'        # IPv4 publica del router
    option netmask '255.255.255.224'
    option ip6addr 'fc01:1934:fffe:9493:44d9:e7ff:fe4b:2661/128'
# red mesh para 5 Ghz
config interface 'mesh_5G'
    option proto 'static'
    option ipaddr '10.64.3.65'       # IP publica del router
    option netmask '255.255.255.224'
    option ip6addr 'fc01:1934:fffe:9493:44d9:e7ff:fe4b:2669/128'
# red lan
config interface 'lan'
    option ifname 'eth0.2'           # VLAN 2
    option force_link '1'
    option type 'bridge'
    option proto 'static'
    option ipaddr '172.24.1.1'       # IPv4 del route en la red lan privada
    option netmask '255.255.255.0'   # mascara /24

config interface 'wan6'
    option ifname 'eth0.3'
    option proto 'dhcpv6'
config interface 'wan'
    option ifname 'usb0'
    option proto 'dhcp'
# Definicion de VLANs
config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'
# VLAN 1
config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '0t 2 3'
# VLAN 2
config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '0t 4 5'
# VLAN 3
config switch_vlan
    option device 'switch0'
    option vlan '3'
    option ports '0t 1'
/etc/config/wireless

Como es un router DUAL BAND y este es un nodo normal dentro LaOtraRed se debe expandir la señal de la red distribuida en 2.4 y 5 Ghz, a continuación el archivo de configuración:

# dispositivo 2.4Ghz
config wifi-device 'radio0'
    option type 'mac80211'
    option hwmode '11g'
    option path 'platform/ar934x_wmac'
    option htmode 'HT20'
    option country 'BO'                 # normativa Boliviana
    option channel '7'
    option disabled '0'
    option txpower '19'
    option distance '1000'
# dispositivo 5Ghz
config wifi-device 'radio1'
    option type 'mac80211'
    option txpower '22'
    option country 'BO'                 # normativa Boliviana
    option channel '153'                # Canal comun para LaOtraRed
    option hwmode '11a'
    option path 'pci0000:00/0000:00:00.0'
    option htmode 'HT20'
    option disabled '0'
# 5 Ghz mesh
config wifi-iface
    option device 'radio1'
    option network 'mesh_5G'
    option mode 'adhoc'
    option ssid 'lapaz.laotrared.net'
    option bssid 'BE:BA:CA:FE:BE:BE'    # MAC comun 5Ghz
    option encryption 'none'
# 2.4 Ghz mesh
config wifi-iface
    option device 'radio0'
    option mode 'adhoc'
    option network 'mesh_2G4'
    option ssid 'lapaz.laotrared.net'
    option bssid 'BE:BA:CA:FE:B3:B3'    # MAC comun 2.4Ghz
    option encryption 'none'
# 2.4 Ghz clientes (lan privada)
config wifi-iface
    option device 'radio0'
    option mode 'ap'
    option encryption 'none'            # tambien se puede usar cifrado aqui
    option ssid 'Chersky - LaOtraRed'
    option network 'lan'
/etc/config/firewall

Como se considera la interfaz lan una red privada, todos los dispositivos conectados que quieran ver contenido de equipos públicos dentro LaOtraRed La Paz (bloque 10.64.0.0 /15) lo harán a través de NAT. Esto quiere decir que se usará la IP 10.64.3.65 del router para enviar el tráfico desde la interfaz lan hacia otros nodos en LaOtraRed.

Por eso se agregan las siguientes opciones en el firewall:

config zone
    option input 'ACCEPT'
    option output 'ACCEPT'
    option name 'mesh'
    option forward 'ACCEPT'
    option network 'lan mesh_2G4 mesh_5G wiredmesh'
    option masq '1'           # masquerading (NAT)

config forwarding
    option dest 'lan'
    option src 'mesh'
/etc/config/babeld

Como se trata de una red distribuida, todos los nodos deben colaborar para brindar conexión a otros. Se utiliza el protocolo de enrutamiento dinámico babel.

Hacemos que babeld haga algunas cosas:

  • Diga a los nodos vecinos que el bloque 10.64.3.64 /27 es su dominio y para llegar a ese bloque de direcciones IP lo harán a través de este router.
  • Reciba rutas de otros vecinos dentro el bloque 10.64.0.0 /15 y se las avise a otros vecinos.
  • Sea punto intermedio de conexión entre otros nodos cuando estos lo requieran.
  • Detecta automáticamente otros nodos en la red y estos se unen automáticamente.

La ventaja de este protocolo es que elimina la posibilidad de que se formen bucles de enrutamiento y trabaja en IPv6 e IPv4.

Para utilizarlo se tiene instalado el paquete babeld con:

opkg install babeld

Este es el archivo de configuración:

package babeld
config general
    option 'random_id' 'true'
    option 'ipv6_subtrees' 'true'

##### interfaces en las que babel participa
# (wifi 2.4Ghz adhoc)
config interface
    option 'ifname' 'wlan0'
    option channel '7'
# (wifi 5Ghz adhoc)
config interface
    option 'ifname' 'wlan1'
    option channel '153'

###### filtros para rutas de entrada (anunciadas por los vecinos)
# permitir rutas del bloque 10.64.0.0 /15 (LaOtraRed La Paz - El Alto)
config filter
    option type 'in'
    option ip '10.64.0.0/15'
    option action 'allow'
config filter
    option type 'in'
    option ip 'fc01:1934::/32'
    option 'allow'

###### filtros para rutas internas (kernel)
# anunciar a los vecinos el bloque de este nodo
config filter
    option type 'redistribute'
    option ip '10.64.3.64/27'       # bloque IPv4 de este nodo
    option action 'allow'
config filter
    option type 'redistribute'
    option ip 'fc01:1934:fffe:9493:44d9:e7ff:fe4b:2662/128' # IPv6 (de pruebas)

###### denegar otras rutas no definidas
config filter
    option type 'in'
    option action 'deny'
config filter
    option type 'redistribute'
    option local 'true'
    option action 'deny'

Con estas configuraciones el router funciona como nodo dentro la red distribuida. Si otro nodo tiene configuraciones similares estará haciendo crecer la red distribuida y libre.

Lo que en otro nodo se debería cambiar son las direcciones IP correspondientes a las que tengan asingadas, ver política de asignación de IPs para más información.

dnsmasq

Se usa dnsmasq como servidor DNS y DHCP, no se han hecho cambios al arhivo /etc/config/dhcp pero si en el archivo de configuración global de dnsmasq para que dirija las búsquedas de dominios hacia una dirección IP, en esta caso hacia el servidor chipsito.

Se ha puesto al principio del archivo /etc/dnsmasq.conf la línea:

address=/#/10.64.3.66

Que retornará a 10.64.3.66 cualquier búsqueda no respondida desde /etc/hosts o DHCP y que no haya sido enviada a un servidor DNS upstream, esto funcionará para los dispositivos conectados en a la red lan y están como clientes de este nodo.

En 10.64.3.66 (server chipsito) hay una página de bienvenida que le indica al visitante los serivicios disponibles para este nodo.

/etc/hosts

En este archivo se han agregado entradas para dominios locales en este caso:

127.0.0.1 localhost
10.64.3.66 chersky.lor
10.64.3.66 radio.chersky.lor
10.64.3.66 wikipedia.chersky.lor
10.64.3.66 botadero.chersky.lor
10.64.3.66 fotos.chersky.lor
10.64.3.66 anuncios.chersky.lor
10.64.3.66 extra.chersky.lor

Se usa el Top Level Domain (TLD) .lor que viene de "LaOtraRed".

Observaciones

  • Todos los equipos conectados al wifi para clientes de este nodo, fácilmente podrán usar sus servicios ya que hay una página de bienvenida y dnsmasq los redirije a esta. Sin embargo, no hay una referencia a servidores DNS públicos en LaOtraRed. Mientras no se definan servidores DNS públicos se podría agregar entradas en /etc/hosts para los dominios de otros nodos.
  • Las conexiones en modo ad-hoc por wifi desde esto nodo hacia los demás nodos en la red distribuida, no se están cifrando desde este nodo, esto por que no se tiene aun definida una contraseña pública entre nodos.

Espero te haya servido, me despido con una foto de la Chersky.

Consejo del día

Trata de comprar artículos de tiendas o puestos de mercado familiares, esto por que cuando lo haces apoyas directamente a familias o personas individuales que luchan por subsistir.

En cambio cuando compras de supermercados o cadenas de tiendas grandes, estás dando ganacias adicionales a empresarios o empresarias grandes principalmente.