Bueno tenía un 740 haciendo de AP de casa y cliente del vecinio, y el WDR-3500 metido en una ziploc.
Quería hacer mi tarea y sembrar una red libre. Le instalé LibreMesh al 3500 en un 2 por 3.

OpenWRT

El 740 corre un OpenWRT Attitude Adjustment v..

No podía instalarle LibreMesh a este último porque no está dentro de los routers soportados.
Habría que ver incluso si tiene memoria suficiente para todos los paquetes que libremesh usa.

Más bien, partiendo de un OpenWRT puro, intentaré habilitarlo para participar en la malla.
Así también entiendo como funciona, no automágicamente…
Suerte de ingeniería inversa, compararé las listas de paquetes de ambos:

Saco la lista de cada router

$ ssh root@openwrt
root@OpenWrt:~# opkg list-installed > /tmp/paquetesOpenWRT
root@OpenWrt:~# scp numerico@mi-pc:/tmp/paquetesOWRT
($ exit)
$ ssh root@LiMe
root@LiMe:~# opkg list-installed > /tmp/paquetesLiMe
root@LiMe:~# scp numerico@mi-pc:/tmp/paquetesLiMe

y los comparo

$ cd /tmp
$ diff -y paquetesLiMe paquetesOWRT | less

Aquí pueden ver el resultado [[link archivo]]

Ahora, lo que me interesa son los paquetes que LiMe tiene pero OpenWRT no.
Los más importantes me parecieran ser:

kmod-batman-adv
alfred
batctl

bmx6
bmx6-auto-gw-mode

lime-proto-batadv
lime-proto-bmx6

luci-app-batman-adv
luci-app-bmx6

BATMAN, su mayordomo Alfred, batctl (batman control), los recuerdo de DeltaLibre.

B.A.T.M.A.N

BATMAN es el protocolo de ruteo en malla…
Como opera en capa 2, en OpenWRT existe como módulo del kernel, kmod-batman-adv

10.9.1

Por ente intenté instalar este primero pero no está disponible:

root@OpenWrt:~# opkg install kmod-batman-adv
Unknown package 'kmod-batman-adv'.
Collected errors:
 * opkg_install_cmd: Cannot install package kmod-batman-adv.

10.9

De partida no tenía repositorio >>

$ less /etc/opkg.conf
src/gz attitude_adjustment http://downloads.openwrt.org/attitude_adjustment/12.09.1/ar71xx/generic/packages

el cual no existe; sí existe 12.09. así que:

root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/attitude_adjustment.

–force-depends

Ahora sí

root@OpenWrt:~# opkg install kmod-batman-adv
Installing kmod-batman-adv (3.3.8+2012.3.0-3) to root...
Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/kmod-batman-adv_3.3.8+2012.3.0-3_ar71xx.ipk.
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-batman-adv:
 * 	kernel (= 3.3.8-1-d6597ebf6203328d3519ea3c3371a493) * 	kernel (= 3.3.8-1-d6597ebf6203328d3519ea3c3371a493) * 
 * opkg_install_cmd: Cannot install package kmod-batman-adv.

¡casi! las versiones del kernel son extremadamente cercanas

root@OpenWrt:~# opkg info kernel
Package: kernel
Version: 3.3.8-1-885e86ca159438f43cfb97a4fac81c6d

..así que lo fuerzo no más.

root@OpenWrt:~# opkg --force-depends install kmod-batman-adv

y queda instalado.

Con sólo ésto intenté la configuración de acá http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide

ad-hoc up

¡y LiMe registra una feble actividad en la interfaz ad-hoc!
FOTO
un examen de consola

root@millsmess:~# iw dev
	Interface wlan0_adhoc
		ifindex 13
		wdev 0x2
		addr c0:4a:00:fc:65:66
		ssid einworb.lime
		type IBSS
		channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
root@millsmess:~# iw dev wlan0_adhoc link
Joined IBSS ca:fe:00:c0:ff:ee (on wlan0_adhoc)
	SSID: einworb.lime
	freq: 2462

pero al intentar añadir interfaces a BATMAN con

root@OpenWRT:~# batctl if add wlan0

(o eth0, o wwan…)

v.??

Finalmente era por haber forzado la instalación de kmod-batman-adv pese a la dependencia incumplida.
Tuve que reflashear con la versión de OpenWRT, la cual tenía la versión del kernel , que es la que pide exactamente.

UNA VEZ HECHO ESTO, PUDE PASARLE INTERFACES A BATCTL

root@OpenWrt:~# batctl if add wlan0-1
root@OpenWrt:~# batctl if
wlan0-1: active

originators

luego, a pesar que estaban ambos asociados en ad-hoc, y con BATMAN corriendo, no se veían:

estan asociados pero no se reconocen:

root@OpenWrt:~# batctl p C0:4A:00:FC:65:66
PING C0:4A:00:FC:65:66 (c0:4a:00:fc:65:66) 20(48) bytes of data
From C0:4A:00:FC:65:66: Destination Host Unreachable (icmp_seq 1)
^C--- C0:4A:00:FC:65:66 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss

porque no toman sus respectivos originators:

root@OpenWrt:~# batctl o
[B.A.T.M.A.N. adv 2012.3.0, MainIF/MAC: wlan0-1/b2:48:7a:97:9c:a7 (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:   Potential nexthops ...
No batman nodes in range ...

A este punto dos alternativas:

  1. conectarme a la red ad-hoc y sniffearla con wireshark para ver la diferencia entre los originators
  2. compilar un openwrt con la version exacta y simbolos de debug para batman: una paja, teniendo en cuenta lo de la versión del kernel…

Debian en modo Ad-Hoc

¿como me conecto con mi pc a una red adhoc?

root@mi-pc:/home/nn# iwconfig wlan0 channel 11 essid allaMniK.lime mode ad-hoc
root@mi-pc:/home/nn# ifconfig wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill

como vemos no funcionó, no queda asociado:

# iwconfig
lo        no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"allaMniK.lime"  
          Mode:Ad-Hoc  Frequency:2.462 GHz  Cell: Not-Associated   
          Tx-Power=off   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

ésto se debe a que mi antena viene soft-blocked* para conectarse en ad-hoc (!)

# rfkill list
0: asus-wlan: Wireless LAN
	Soft blocked: yes
	Hard blocked: no

simplemente bajo el desbloqueador rfkill

# rfkill unblock wifi
# rfkill list
0: asus-wlan: Wireless LAN
	Soft blocked: no
	Hard blocked: no
# reboot
# iwconfig
wlan0     IEEE 802.11bgn  ESSID:"allaMniK.lime"  
          Mode:Ad-Hoc  Frequency:2.462 GHz  Cell: CA:FE:00:C0:FF:EE   
          Tx-Power=16 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

wireshark

ahora podemos sniffear con wireshark, y efectivamente vemos que ambos router estan usando la red, pero parecieran hablar lenguajes distintos:
el batman del openwrt envia este tipo de paquetes:

5	3.939280000	b2:48:7a:97:9c:a7	Broadcast	BATADV_BATMAN	40	Seq=2473358473

y el de libremesh este:

272	259.673410000	c0:4a:00:fc:65:66	Broadcast	BATADV_???	42	

(libremesh ademas establece una conexion udp en el puerto 6240 por ip6… esto sugiere que quizás está intentando otro tipo de conextión, ej. bmx6?)

incluso un par de veces dice:

469	93.300794000	c0:4a:00:fc:65:66	Broadcast	BATADV_BATMAN	78	Unsupported 

BATMAN PROTOCOL VERSION

todo me hace pensar que simplemente tienen versiones de batman incompatibles
aja, el faq lo dice http://www.open-mesh.org/projects/batman-adv/wiki/Troubleshooting

If ‘batctl o’ does not show the neighbor you expect to see you should verify whether or not all nodes runt he same batman-adv version. Having the same version on all nodes is the safest way to be sure that the versions are compatible. A new release might change the compatibility number to avoid problems when incompatible versions run in the same mesh. Incompatible nodes will simply ignore each other. Consult our compatibility table to find out which release(s) carry which compatibility number.

las versiones son:

root@OpenWrt:~# batctl -v
batctl 2012.3.0 [batman-adv: 2012.3.0] -> COMPAT_VERSION 14
root@millsmess:~# batctl -v
batctl 2014.4.0 [batman-adv: 2014.4.0] -> COMPAT_VERSION 15

ALTERMESH

mi única posibilidad sería usar altermesh en vez de libremesh, si es que usa una versión más antigua, veamos:

root@c04a00fc6566:/# batctl -v
batctl 2012.4.0 [batman-adv: 2012.4.0] -> COMPAT_VERSION 14!!!

altermesh por defecto venía en el canal 1, así que me confundí, pero
con solo cambiar el canal de la antena de millsmess a 11, el que uso en openwrt:

root@OpenWrt:~# batctl o
[B.A.T.M.A.N. adv 2012.3.0, MainIF/MAC: wlan0-1/b2:48:7a:97:9c:a7 (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:   Potential nexthops ...
c2:4a:00:fc:65:67    0.790s   (248) c2:4a:00:fc:65:67 [   wlan0-1]: c2:4a:00:fc:65:67 (248)
root@millsmess:~# batctl o
[B.A.T.M.A.N. adv 2012.4.0, MainIF/MAC: wlan0-1/c2:4a:00:fc:65:67 (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:   Potential nexthops ...
b2:48:7a:97:9c:a7    0.450s   (201) b2:48:7a:97:9c:a7 [   wlan0-1]: b2:48:7a:97:9c:a7 (201)

DHCP – capa 3

Ahora tengo que ver que hago con el ruteo, o sea la capa 3

gateway

Un gateway es un nodo con salida a internet http://www.open-mesh.org/projects/batman-adv/wiki/Gateways.

entry point

pero antes me parece tengo que definir cuales son los entry points, es decir conexiones de la mesh con otros equipos que no estan en modo ad-hoc, o algo así.

bridge

Hay que definir un bridge (puente) entre bat0 y las interfaces a los que se conectan. En este caso serian los AP de una red libre.
Definiremos entonces esta interfaz puente, y es ésta la que se encargara del ruteo, ya no wlan0 ni bat0 siquiera.

interfaces

en mi caso tengo las interfaces

  • mesh (bat0)
  • lan (eth0 y wlan0) – es un bridge
  • wan (eth1) – no se usa
  • wwan (cliente) – sale a internet por 192.168.1.1

lan está forwardeado a wan y wwan, por donde sale

lan es 192.168.2.1 – como es una máscara debe definirse en otro segmento de red que el cliente

bat0 – lan

bat0 debiera asignar dinamicamente este segmento (192.168.2.x/24?)

pero en cierta parte * dice que para hacer entry points hay que definir un puente, y es a este el que asignara, ya no bat0

lan ya es un bridge entre eth0s y wlan0; y es es la red local, que da dhcps 192.168.2.x/24

por ende necesito un bridge entre bat0 y lan.

entre bat0 y wlan0 primero, ojala entre los tres, eth0s tambien.

¿cómo?

tantiemos

root@OpenWrt:~# brctl addbr puente-malla
root@OpenWrt:~# brctl addif puente-malla br-lan
brctl: bridge puente-malla: Too many levels of symbolic links

solo 2 niveles, bat0 a br-lan y br-lan a eth0/wlan0

así que solo se puede un nivel

necesitare dos bridges por lo menos, para:

  1. bat0 y wlan0
  2. y wwan (no eth0 necesariamente, sino que es él, lan, que está actualmente forwardeado a wan, que incluye wwan, la salida)

la teoria es que al estar ambos linkeados BATMAN los hará funcionar como una sola interfaz, que usará el segmento …2.x/24 – y después le podré incluir eth0 incluso, pelando el cable…

/etc/network/interfaces

le agregué bat0 al bridge lan

root@OpenWrt:~# brctl show
bridge name	bridge id		STP enabled	interfaces
br-lan		8000.b0487a979ca5	no		eth0
							wlan0
							bat0

lo hice en /etc/network/interfaces agregándole el ifname bat0 a la interface lan

config interface 'lan'
	option ifname 'eth0 bat0'
	option type 'bridge'
	option proto 'static'
	option netmask '255.255.255.0'
	option ipaddr '192.168.2.1'

gateway

lo voy a declarar gateway no más, quizas así el otro nodo le pida ip?
en effet:

root@OpenWRT:# batctl gw_mode server
root@OpenWRT:# ping millsmess
PING millsmess.lan (10.254.31.243) 56(84) bytes of data.
64 bytes from millsmess.lan (10.254.31.243): icmp_req=1 ttl=64 time=37.2 ms

CONECTADO A OPENWRT, A VER AL REVES?

root@millsmess:# ping openwrt
PING openwrt.lan (10.254.31.1) 56(84) bytes of data.
64 bytes from OpenWrt.lan (10.254.31.1): icmp_req=1 ttl=64 time=22.7 ms

NÓTESE QUE LOS PUSE EN EL MISMO SEGMENTO DE RED, NO SE SI ESTO ERA NECESARIO
PERO DE QUE TENGO CONEXION EN CAPA 2 LA TENGO, Y SALIDA A INTERNET DEDE LA MESH.

TAREA FINALIZADA.


RESULTADO



BONUS

¿QUÉ TENGO QUE MEJORAR?:

  1. en openwrt a cada reboot debo redeclarar
    batctl ifadd wlan0-1
    batctl gwmode server
    
  2. en millsmess a cada vez me sobrescribe el essid de la mesh,
    probablement por un script de altermesh

añadir interfaz a BATMAN permanentemente

para no tener que darle `batcl if add..` a cada boot:

root@OpenWRt:# vi /etc/config/batman-adv
config 'mesh' 'bat0'
        option interfaces 'wlan0-1'
..

setear gw_mode server permanentemente

tambien se puede setear en /etc/config/batman-adv

config 'mesh' 'bat0'
        option 'interfaces' 'mesh wlan0-1'
        option 'gw_mode' 'server'

14 de Mayo del 2015

Comentar

mi única salida de la velatropa es por puerto usb
si logro darle internet al wdr3500 que rescaté de la 31, pongo un ruso a apostar bitcoins.

tethering
recibir señal internet por puerto USB (x ej. celulares) luego distribuirla por wi-fi, lan, etc.

primero tengo que ver que mi altermesh tenga soporte para usb

kmod-usb-core ok
kmod-usb-ohci no
kmod-usb-uhci no
kmod-usb2     ok

(estos tres son especificos segun el puerto usb del wdr3500)

kmod-ledtrig-usbdev ok (leds)
usbutils      no

o sea que debiera estar bien, ya que el puerto del wdr3500 es usb2

proxy

ahora instalamos los paquetes para tethering, pero como estoy en la fadu necesito usar opkg a traves del proxy
link a la documentación

root@velatropa:~# vi /etc/opkg.conf
option http_proxy http://proxy.fadu.uba.ar:8080/

y ahora funciona

root@velatropa:~# opkg update
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/altermundi...

y ahora http://wiki.openwrt.org/doc/howto/usb.tethering

root@velatropa:~# opkg install kmod-usb-net kmod-usb-net-rndis kmod-usb-net-cdc-ether usbutils udev
Installing kmod-usb-net (3.8.3-1) to root...
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx/packages/kmod-usb-net_3.8.3-1_ar71xx.ipk.
Installing kmod-usb-net-rndis (3.8.3-1) to root...
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx/packages/kmod-usb-net-rndis_3.8.3-1_ar71xx.ipk.
Installing kmod-usb-net-cdc-ether (3.8.3-1) to root...
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx/packages/kmod-usb-net-cdc-ether_3.8.3-1_ar71xx.ipk.
Package kmod-usb-net-cdc-ether (3.8.3-1) installed in root is up to date.
Installing usbutils (006-1) to root...
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx.vanilla/packages/usbutils_006-1_ar71xx.ipk.
Installing libusb-1.0 (1.0.9-1) to root...
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx.vanilla/packages/libusb-1.0_1.0.9-1_ar71xx.ipk.
Installing zlib (1.2.7-1) to root...
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx.vanilla/packages/zlib_1.2.7-1_ar71xx.ipk.
Installing udev (173-1) to root...
Downloading http://chef.mesh.altermundi.net/downloads/ib/r36140/ar71xx.vanilla/packages/udev_173-1_ar71xx.ipk.
Configuring libusb-1.0.
Configuring zlib.
Configuring usbutils.
Configuring kmod-usb-net.
Configuring kmod-usb-net-cdc-ether.
Configuring kmod-usb-net-rndis.
Configuring udev.

Con éso y el teléfono del Duende funcionó el LOpoCUpuTOpoRIpiOpo.
Un par de veces se armó cola en la aldea.
Al darnos cuenta que habíamos traído,
dentro del portal, la marca de la f.

- cambio y fuera

7 de Mayo del 2015

Comentar

Para borrar todo desde donde está el cursar en Vi
Esc + d + Shift + g

16 de Febrero del 2015

Etiquetas:,

2 Comentarios

examinando la configuración por defecto de AlterMesh en un WDR-3500

root@brownie:~# uci show wireless
  # las dos antenas físicas
  wireless.radio0=wifi-device
  wireless.radio0.type=mac80211
  wireless.radio0.hwmode=11ng
  wireless.radio0.path=platform/ar934x_wmac
  wireless.radio0.htmode=HT20
  wireless.radio0.ht_capab=LDPC SHORT-GI-20 SHORT-GI-40 TX-STBC RX-STBC1 DSSS_CCK-40
  wireless.radio0.phy=phy0
  wireless.radio0.channel=1
  wireless.radio0.disabled=0
  wireless.radio0.distance=5000
  #
  wireless.radio1=wifi-device
  wireless.radio1.type=mac80211
  wireless.radio1.hwmode=11na # modo 5GHz
  wireless.radio1.path=pci0000:00/0000:00:00.0
  wireless.radio1.htmode=HT20
  wireless.radio1.ht_capab=LDPC SHORT-GI-20 SHORT-GI-40 TX-STBC RX-STBC1 DSSS_CCK-40
  wireless.radio1.phy=phy1
  wireless.radio1.channel=40
  wireless.radio1.disabled=0
  wireless.radio1.distance=5000

salta a la vista que en la antena de 2.4GHz hay definidas 3 interfaces:

  # radio0 es a la vez AP y nodo
  wireless.@wifi-iface[0]=wifi-iface
  wireless.@wifi-iface[0].device=radio0
  wireless.@wifi-iface[0].encryption=none
  wireless.@wifi-iface[0].network=mesh0
  wireless.@wifi-iface[0].mode=adhoc
  wireless.@wifi-iface[0].bssid=02:0a:8e:7c:96:66
  wireless.@wifi-iface[0].mcast_rate=36000
  wireless.@wifi-iface[0].ssid=einworb.lime
  #  
  wireless.@wifi-iface[1]=wifi-iface
  wireless.@wifi-iface[1].device=radio0
  wireless.@wifi-iface[1].encryption=none
  wireless.@wifi-iface[1].network=lan
  wireless.@wifi-iface[1].mode=ap
  wireless.@wifi-iface[1].ssid=ayllu
  #  
  wireless.@wifi-iface[2]=wifi-iface
  wireless.@wifi-iface[2].device=radio1
  wireless.@wifi-iface[2].encryption=none
  wireless.@wifi-iface[2].network=mesh1
  wireless.@wifi-iface[2].mode=adhoc
  wireless.@wifi-iface[2].bssid=02:0a:8e:7c:96:66
  wireless.@wifi-iface[2].mcast_rate=24000
  wireless.@wifi-iface[2].ssid=einworb.lime

ésto se debe a que la de 2.4GHz opera a la vez en modo AP (para que los clientes se conecten) y Ad-Hoc (para tejer la malla con los otros nodos)

¿significaría ésto que cualquier antena se puede usar a la vez de cliente de otra red (modo STA) y de acceso para los clientes (modo AP)?

See what the Linux 802.11 driver for your hardware can and cannot do. Some drivers support only one mode: STA (also called station, client or managed mode) other drivers support multiple modes, some even simultaneously >>

De ser así se podría usar el mismo WDR-3500, que actualmente tiene conectado en el WAN al 740 con openwrt >>, para salir a internet. El 740 también podría ser cliente y AP en teoría, o sea que se independizarían

Como decíamos, la antena a 2.4GHz ya está en modo Ad-Hoc y AP, así que sólo cambiaremos Ad-Hoc por STA:

root@brownie:~# vim /etc/config/wireless
config wifi-iface                            
        option device 'radio0'               
        option network 'wwan'                
        option bssid '00:26:ED:85:3A:1C'     
        option ssid 'xxxXXXxxx'      
        option encryption 'wep-open'         
        option mode 'sta'                    
        option key1 'P¡¡zZzzzZAa!!'        
        option key '1'

y definimos la interfaz de salida

root@brownie:~# vim /etc/config/network
config interface 'wwan'          
        option proto 'dhcp'
root@brownie:~# reboot

volvió, hay internet, preparamos un café, desconectamos el cable y… no funciona.

Sin embargo, estoy conectado al AP

root@brownie:~# iw dev wlan0-1 link
Connected to 00:26:ed:85:3a:1c (on wlan0-1)
	SSID: xxxXXXxxx
	freq: 2462
	RX: 42631 bytes (681 packets)
	TX: 102 bytes (2 packets)
	signal: -73 dBm
	tx bitrate: 1.0 MBit/s

	bss flags:	short-slot-time
	dtim period:	0
	beacon int:	100

y éste está conectado a la otra red

root@brownie:~# ping google.com
PING google.com (173.194.42.197): 56 data bytes
64 bytes from 173.194.42.197: seq=0 ttl=57 time=23.031 ms

pero no me da la salida a mí

numerico@mipc:~$ ping google.com
PING google.com (173.194.42.206) 56(84) bytes of data.
From brownie.lan (10.254.31.177) icmp_seq=1 Destination Port Unreachable

esto sugiere que el problema es de firewall

root@brownie:~# /etc/init.d/firewall stop
Warning: Unable to locate ipset utility, disabling ipset support
 * Flushing IPv4 filter table
 * Flushing IPv4 nat table
 * Flushing IPv4 mangle table
 * Flushing IPv4 raw table
 * Flushing IPv6 filter table
 * Flushing IPv6 mangle table
 * Flushing IPv6 raw table
 * Flushing conntrack table ...

y ping ya no da el error, pero tampoco llega hasta afuera, no responde.

Ésta fue el dato clave

Zones are also used to configure masquerading also known as NAT (network-address-translation)
Usually however, forwarding is done between lan and wan interfaces, with the router serving as ‘edge’ gateway to the internet >>

en /etc/config/firewall vemos que el forwarding se define de lan a wan

config forwarding
        option src 'lan'
        option dest 'wan'

éstos son los nombres de las zonas
wan está marcado como masqueraded, y dice que la opción network es una lista de interfaces, así es que bastaría con añadirle nuestra wwan

config zone
        option name 'wan'
        option network 'wan wwan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'

¡y funciona!


Ojo que el último OpenWRT Attitude Adjustment ya tenía incluída una interfaz wwan ahí, así que no fue necesario este paso

option network 'wan wan6 wwan'

8 de Septiembre del 2014

Etiquetas:,

Comentar

explorando los potenciales de mi nueva consola (WDR-3500, recomendado por AlterMesh); quería saber si se pueden usar ambas antenas en 2.4GHz – en el fondo 5GHz no lo veo tan útil con un solo nodo y un PC que no puede captar esa señal.

dos antenas en cambio me pueden ser útiles ya que actualmente uso la de 2.4GHz en modos AP y STA a la vez - if you know w’I mean…

la forma mas facil de verificar si pueda cambiar la segunda antena de frecuencia es tratar que emita otro access point que mi pc detecte

entonces cambio radio1 a 11ng

config wifi-device 'radio1'
	option type 'mac80211'
	option hwmode '11ng'
	option path 'pci0000:00/0000:00:00.0'
	option htmode 'HT20'
	list ht_capab 'LDPC'
	list ht_capab 'SHORT-GI-20'
	list ht_capab 'SHORT-GI-40'
	list ht_capab 'TX-STBC'
	list ht_capab 'RX-STBC1'
	list ht_capab 'DSSS_CCK-40'
	option phy 'phy1'
	option channel '1'
	option disabled '0'
	option distance '5000'

y declaro el access point

config wifi-iface
	option device 'radio1'
	option mode 'ap'
	option ssid 'ayllu2'
	option network 'lan'
	option encryption 'none'

reboot y… no funciona.

probé borrar la interfaz ad-hoc (aunque sí puede ser AP y AD-HOC simultáneamente, pues así estaba en radio0); y enlazarlo a otra red ‘lan2’… pero no parece haber cambiado de frecuencia

# iw dev
phy#1
	Interface wlan1
		ifindex 9
		wdev 0x100000002
		addr c0:4a:00:fc:65:67
		type managed
		channel 36 (5180 MHz), width: 20 MHz (no HT), center1: 5180 MHz

en definitiva, no se puede

Sep  6 06:06:20 brownie daemon.warn hostapd: wlan1: IEEE 802.11 Hardware does not support configured mode (1) (hw_mode in hostapd.conf)
Sep  6 06:06:20 brownie kern.info kernel: [   30.460000] device wlan1 left promiscuous mode
Sep  6 06:06:20 brownie kern.info kernel: [   30.470000] br-lan: port 3(wlan1) entered disabled state
Sep  6 06:06:20 brownie user.info sysinit: Configuration file: /var/run/hostapd-phy1.conf
Sep  6 06:06:20 brownie user.info sysinit: Hardware does not support configured mode
Sep  6 06:06:20 brownie user.info sysinit: wlan1: IEEE 802.11 Hardware does not support configured mode (1) (hw_mode in hostapd.conf)
Sep  6 06:06:20 brownie user.info sysinit: Could not select hw_mode and channel. (-2)
Sep  6 06:06:20 brownie user.info sysinit: wlan1: Unable to setup interface.
Sep  6 06:06:20 brownie user.info sysinit: Failed to start hostapd for phy1

¿se podra en los otros tp-link con varias antenas?

6 de Septiembre del 2014

Etiquetas:,

Comentar

como si el objetivo del juego fuera plantar bandera en el libremap tras la cordillera presentamos

stgo_libre

lo puse en plena plaza de la libertad de prensa, al centro del centro…

stgo_libre

pero es todo chamuyo: las coordenadas se las puse a mano

root@brownie:~# vim /etc/config/libremap
config plugin 'location'
        option enabled '1'
        option elev '0'

        option latitude '-33.44573'
        option longitude '-70.665907'

porque no aparecía, me dí cuenta que podía hacer

root@brownie:~# libremap-agent
error: submission to http://libremap.net/api failed (see syslog)

con

root@brownie:~# logread
Aug 25 01:25:21 brownie user.err libremap-agent[2569]: submission to http://libremap.net/api failed
Aug 25 01:25:21 brownie user.err libremap-agent[2569]: error creating/updating router document at URL http://libremap.net/api/router/; {"error":"forbidden","reason":"key lat expected"}

¿debe haber una manera que cada router las obtenga automáticamente?

25 de Agosto del 2014

Etiquetas:

Comentar

tlwr740

me reciclé un TP-Link TL740N

¿cómo usarlo en modo robin hood?
o sea, para alguien re-colgado, pero del wi-fly del barrio;
¿puede invertirse el flujo de datos en un router?

es decir, en vez de que los PCs se conecten por la antena y salgan por el cable de red (WAN) a la tela, que el router se conecte a una red wi-fi vecina – como su humilde servidor que las abre con aircrack-ng, y los homies con las claves en papel – y use sus puertos LAN (más conocidos como los hoyitos 1, 2, 3 y 4) para “dar” internet.

en router con dos antenas tal vez se podría hacer ésto con una y dar un punto de acceso (AP) inalámbrico con la otra en vez de los cables LAN. si ésto se hace en malla (con altermesh o similar) podríamos compartir todas las redes abiertas y optimizar el tráfico con roaming. una red libre y pirata

OpenWRT

ésto sí es posible, gracias al software libre siempre. openwrt es un firmware (OS para routers) basado en linux.

en realidad primero intenté flashear el tl-740 con altermesh, pero me dio primero un error –

Error code: 18001
Upgrade unsuccessfully because the length of the upgraded file is incorrect. Please check the file name.

y luego otro cuando traté de usar una imágen para otros modelos que eran más livianos

Error code: 108005 
Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name.

que se supone que es porque el firmware de fábrica checkea el nombre del archivo, razón por qué tiene que llamarse -factory.bin.

como en realidad el tl-740 no está en la lista de hardware soportado por altermesh, seguí con openwrt que parecía sí soportarlo >> (el sitio no es muy claro). hasta intenté cambiarle unos bits que supuestamente también valida >> y que hay un programa para windows en chino que sabe arreglar – rarísimo…

tl-740 v2.4 sí soporta Attitude Adjustment

es importante la versión del router, según la tabla le correspondía la revisión (svn) r28314 que es un Barrier Breaker, i.e. una versión antigua de OpenWTRT.

lo compilé etc pero no funcionó… a punto de desesperanzar leí

The trunk WR740n hardware v1 image works unmodified and it can be flashed through the stock TP-Link web interface (another file exists for version 3). The v1 file was also successfully tested on hardware version 2.5

y si funcionó para 2.5, ¿para 2.4 también? ¡Sí! – lo debiera reportar a esa wiki…

openwrt_attitude_adjustment

modo cliente

buscando “wireless bridging” encontré indicios que lo que pensaba no era tan descabellado, y que se llama modo estación o cliente.

hay un seudo-estándar para interconectar wi-fis, WDR, pero se implementa distinto en cada hardware, por lo que implica control sobre todos los dispositivos, que ojalá corran el mismo software, etc.

modo enmascarado

WDR funciona como una sola red, pero también se puede hacer de manera ruteada, es decir jugando con sub-segmentos de red, lo cual es genérico y funciona con cualquier hard/soft-ware.

hay dos formas de hacerlo:

masqueraded >>
conectamos un segmento de red detrás del AP al que nos conectamos. no necesita acceder a éste (no podemos…) pero los que se conecten a él no podrán ver a los dispositivos detrás de nuestro router (…mejor)
routed
todos los clientes se pueden ver, pero requiere entrar al AP para setearle una ruta estática

paso a paso

entonces, primero tenemos que poner la tarjeta de red en modo cliente, o station

uci del wireless.@wifi-device[0].disabled
uci del wireless.@wifi-iface[0].network
uci set wireless.@wifi-iface[0].mode=sta
uci commit wireless
wifi

con estos comandos:

  • borramos wi-fi disabled de la config de wireless, o sea lo habilitamos
  • borramos la red wi-fi…
  • ponemos la interfaz en modo station
  • grabamos
  • iniciamos el wifi

con este último comando me salía

command failed: Device or resource busy (-16)
Successfully initialized wpa_supplicant

pero después de calentarme la cabeza un rato sospeché que estaba funcionando igual :)

tampoco me funcionaba iwlist scan

iwlist scan
-ash: iwlist: not found

pero resultó ser porque estaba deprecado, y de hecho sí podía ver las redes inalámbricas desde LuCI, la interfaz gráfica

wifis
el comando ahora es >>

iw dev wlan0 scan

Join Network

Bueno, de hecho el resto del paso a paso no me sirvió, pero sí lo hizo darle al botón Join Network que pueden ver en la foto de arriba, que hace lo mismo automágicamente con sólo poner la clave crackeada

join_network

Así es que solamente copio los archivos relevantes como quedaron configurados:

/etc/config/wireless
config wifi-device 'radio0'
	option type 'mac80211'
	option channel '11'
	option hwmode '11ng'
	option path 'pci0000:00/0000:00:00.0'
	option htmode 'HT20'
	list ht_capab 'SHORT-GI-40'
	list ht_capab 'TX-STBC'
	list ht_capab 'RX-STBC1'
	list ht_capab 'DSSS_CCK-40'
	option disabled '0'
	option txpower '30'
	option country 'US'

config wifi-iface
	option network 'wwan'
	option bssid '00:H6:88:FF:G8:C4'
	option ssid 'el vecino'
	option encryption 'wep-open'
	option device 'radio0'
	option mode 'sta'
	option key1 'la-clave-crackeada'
	option key '1'
/etc/config/network
config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'lan'
	option ifname 'eth0'
	option type 'bridge'
	option proto 'static'
	option netmask '255.255.255.0'
	option ipaddr '192.168.2.1'

config interface 'wan'
	option ifname 'eth1'
	option proto 'dhcp'

config switch
	option name 'eth0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'eth0'
	option vlan '1'
	option ports '0 1 2 3 4'

config interface 'wwan'
	option proto 'dhcp'

en negrita vemos que es lo mismo que las instrucciones del tutorial

nótese que aquí se crea una nueva interfaz wwan, en vez de editar la existente wan.

cambiar la ip del router

por último, si el router al que nos conectamos también usa la ip 192.168.1.1, habrá que cambiársela al nuestro para que use otro segmento de red (ver opción ipaddr arriba).

yo lo hice también a través de LuCI en Network > Interfaces > LAN

net-seg

y listo, ya podemos hacer un ping desde openwrt o desde nuestra máquina

root@OpenWrt:~# ping numerica.cl
PING numerica.cl (190.196.62.160): 56 data bytes
64 bytes from 190.196.62.160: seq=0 ttl=56 time=35.241 ms
root@OpenWrt:~# exit
Connection to 192.168.2.1 closed.
usuario@PC:~$ ping numerica.cl
PING numerica.cl (190.196.62.160) 56(84) bytes of data.
64 bytes from 190.196.62.160: icmp_req=1 ttl=55 time=33.9 ms

15 de Agosto del 2014

Etiquetas:,

Comentar

deltalibre_logo

El Delta mismo es una red a la que se accede por terminal fluvial, intersecta con puentes automovilísticos, conecta con trenes (Retiro – Tigre + colectivos, ej. 60, el cual viene de tan lejos como Constitución).

Las calles son de agua en el Delta del Tigre, que está a las puertas de la región de los esteros semi-sólidos – ‘la Isla’ en jerga local, en el mapa en una desembocadura del Paraná de las Palmas, un dedo del Paraná Mini que nace con el Paraná y el Paraguay al norte para acá confluir con el Uruguay en el Plata, justo antes de mezclarse al mar océano.

red libre

Charly acaba de colgar con un vecino con quien estuvo -calculo- una hora (son las tantas de la noche) haciendo un ping – tienen telefonía gratis entre sí (¿y Lorea?) – a través de la red, pero no de Internet, sino las más de cincuenta antenas OMNI de doble frecuencia conversando todas con todas en malla, conectándose con la contraseña ‘gratis’ quien quiera intentarlo dentro del área de cobertura.

gratis

DeltaLibre es una red comunitaria, no un servicio proveedor.

Uno a la vista de otro, en los pilares de los muelles, los techos de las casas, o cañas clavadas en la rivera, a través de la luz que abren los arroyos, o por encima de las copas de los árboles, entre barrios lejanos; la comunidad isleña se organizan para mantener operativos una cincuentna de nodos intercomunicados entre sí. Gracias a ésto pueden compartir Internet, como también proveerse servicios internos de chat, mail, etc.

Llama la atención que cada vecino mete mano, cablea, configura, y es que más allá de tener facilidad para la informática

-“hay una cuestión filosófica detrás…”

En estos términos me lo expresó Rober, a quien le pasé en el muelle un router con su caja estanca para armar (y autoajustante térmico) que vino a buscar hace unas horas:

- “…yo por ejemplo uso Ubuntu. ¿De qué vale estar en una red libre si no uso software libre también?”, agrega.

no es el primero que me lo dice: se organiza la comunidad no sólo a través de la red sino a causa de ella.

nodos

caja estanca con esténcil

routers, simplemente, embutidos en una caja estanca, para que no les entre agua, puestos en modo ad-hoc.

router en caja estanca
placaA veces se saca de su esqueleto original y se deja sólo su placa y antena.

Usan dos antenas de wi-fi a 2,4 y 5 GHz de ondas microonda (no fríe). Los modelos más antiguos añaden esta antena con una placa USB (2,4 GHz), los más nuevos la tienen incorporada. También se le han añadido otras mejoras*, fruto de la experiencia.

zona wi-fi de nodo

Cada nodo ilumina un área con wi-fi, al que uno puede conectarse en DeltaLibre.org.ar

Malla (Mesh)

Los nodos se comunican entre sí y coordinan el tráfico hacia dentro y fuera de la red.

enlaces

Lo particular es que en lugar de comunicarse todos a través de un proveedor como una red comercial centralizada, los nodos se comunican directamente entre sí, repartiéndose el tráfico entre todos – como los hippie.

Supongamos que Charly quiere entregarle una carta a Mike. En un servicio de Internet comercial, va a tener que pasársela a su empresa proveedora de Internet (ISP) quien, tras un largo recorrido, se la irá a entregar a Mike. En una red en malla, en cambio, Charly se la pasaría directamente, de su computador a la de él, sin intermediarios.

Sin contar con que en ese largo recorrido – que en todo LatinoAmérica pasa por Miami – la carta sea abierta, copiada, leída por el gran Ojo militar-corporativo…

libre vs isp

 

Si lo viéramos desde arriba, en lugar de formar una mano con dedos en torno a la empresa, formaría una malla:

mesh

Éste tipo de red es conocida como Mesh, que significa malla en inglés.

Es más rápido, no tiene un punto único de fallo – partes de la red pueden caer sin que el resto deje de fucionar. Es entonces una red paralela a Internet, independiente de éste – de hecho de los proveedores, ya que actualmente usa tres salidas a la red de redes, con distintos ISP, por lo que tienen mayor independencia aún, aunque la red siguiría en pié aún sin Internet.

AlterMesh

¿Cómo es ésto posible? Gracias a que lo han hecho muy fácil.

AlterMesh, el firmware que usan los nodos, está programado para funcionar todo automágico.

Basta darle corriente al nodo y éste se encuentra con otros nodos y comienza a formar parte de la malla y a emitir la señal.

Está basado en OpenWRT, es decir en un S.O. para routers de tipo Linux (por ende GNU/GPL), o sea libre: programable, tiene su propio package manager, y permite usar funciones del router que no usan los ISP ni sus programas, liberando así todo su potencial.

Lo desarrolla la fundación AlterMundi, y se utiliza en muchas otras redes libres en Argentina y el mundo.

AlterMundi

DeltaLibre como organización asiste la mantención y coordina la expansión de nuevos nodos, los que tienen un costo inferior a $1000 cada uno y que, en la mayoría de los casos, son financiados por un grupo de vecinos beneficiados.

También recauda algo con una cuota pagable en los muelles, a cambio de un código que simbólicamente da derecho a no pasar por el portal verde de más arriba cada tanto. Ésta sirve para la mantención de la infraestructura, como las torres con antenas que conectan arroyos distantes entre sí (algunas de más de 50m) – …


nuevas interrogantes

1 de Junio del 2014

Etiquetas:

3 Comentarios

En AlterMap

mapa de redes libres en latino américa

mapa de redes libres en latino américa

Hay un par en el Gran Buenos Aires

deltalibre en bs.as.

Si enfocamos en el Delta del Tigreroberlandia

¡DeltaLibre!

LibreMap muestra los enlaces en tiempo real

deltalibre en tiempo real

cada línea es el enlace entre dos nodos, el grosor indica intensidad

los números son clusters de varios nodos, que se pueden hacer zoom


Hoy ví a lo lejos e-lipe, porque es una antena sobre una torre de 30m que ilumina todo el Arroyo Angostura

e-lipe

incluso hasta dónde me estoy conectando ahora, por roaming desde mi nueva iCanoa

paseando en iCanoa

>> más redes libres

25 de Mayo del 2014

Etiquetas:

Comentar

MiniMaxi es el tipo de red que estoy usando ahora mismo – el máximo resultado con el mínimo de recursos es el lema, como esta conexión  perfecta a través de estas cajitas con una gallineta con  antena a lo largo del arroyo corriendo AlterMesh, que es el firmware desarrollado por AlterMundi para despliegue de redes comunitarias libres.

No requiere configuración, con solo instalarlo se busca con otros nodos para ponerse en red, usando las salidas a Internet que estos tengan, automágicamente. Éstos operan como Gateways.

Materiales

  • Router (¿sólo la placa?) en modo ad-hoc, que soporte OpenWRT, recomendado TL-WDR3500.

Pasos

  1. Instalarle AlterMesh “flashearlo”, reemplazando el limitado firmware de fábrica para liberar su potencial.
    • Descargar el binario
    • Navegar al router en 192.168.0…
    • Admin/Admin
    • Firmware Upgrade o similar
    • Subirlo
  2. Después de reiniciarse ya aparecerá un AlterMesh en el espectro wi-fi al que todos podrán conectarse.
  3. También aparecerá una red .lime – a la que nos conectamos y >>
    • renombramos el nodo
    • le ponemos usuario/contraseña

Después ya se puede pensar en darle PoE (alimentarlo eléctricamente por el cable de red),  etc.

Etc.

  • anclaje en el exterior – aislamiento
  • antena OMNI – regulación de dBi
  • antena direccional de recicle: extender zona o apuntarse entre nodos…

Investigar

  • ath9k de Linux
  • dongle
  • OpenWRT

23 de Mayo del 2014

Etiquetas:,

Comentar

Página siguiente »