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'