Clonar MAC en equipos Ubiquiti Airmax

Hace muchos años había intentado clonar el MAC Address de un equipo sin tener éxito. Y de hecho ya había dejado de intentarlo porque en los foros dice que no es posible, o que se puede en las versiones XM volviendo el Firmware a una version obsoleta (5.3 a 5.5) y que incluso logrando clonarlo era de manera temporal. (lo cual tambien me servia para salir del paso). Tambien rumores de que si esta como Bridge y no como Router no se puede clonar. (estimo se deben referir solamente al MAC del puerto Ethernet).

Cuando se rompe un AP que tiene clientes asociados con el MAC del AP «fijado» te encontras en el problema de que tendras que recorrer cliente por cliente para limpiar ese MAC o bien asociarlo a un nuevo AP (con nuevo MAC).

Por suerte la necesidad desesperada de encontrar una solución me hizo probar profundamente distintas alternativas (quien tiene tiempo y ganas de recorrer 40 domicilios entre urbanos y rurales?).

Cual es a solución?

La solución implica loguearse por SSH al equipo. En este caso lo hice remotamente en mi AP ya en funcionamiento. Una vez adentro de la consola del equipo, lo que hacemos es escribir los siguientes comandos para crear un script personalizado en el area de inicio del dispositivo: (reemplazar el MAC address por el que quieras)

echo "ifconfig ath0 down" >> /etc/persistent/rc.poststart
echo "ifconfig br0 down" >> /etc/persistent/rc.poststart
echo "ifconfig wifi0 down" >> /etc/persistent/rc.poststart
echo "ifconfig ath0 hw ether DC:9F:DB:0C:E9:50" >> /etc/persistent/rc.poststart
echo "ifconfig br0 hw ether DC:9F:DB:0C:E9:50" >> /etc/persistent/rc.poststart
echo "ifconfig wifi0 hw ether DC:9F:DB:0C:E9:50" >> /etc/persistent/rc.poststart
echo "ifconfig wifi0 up" >> /etc/persistent/rc.poststart
echo "ifconfig ath0 up" >> /etc/persistent/rc.poststart
echo "ifconfig br0 up" >> /etc/persistent/rc.poststart
chmod +x /etc/persistent/rc.poststart
cfgmtd -w -p /etc/
touch /etc/persistent/ct
reboot

Nuestro equipo tiene version XW 6.1. Por lo que no hizo falta hacer downgrade.

Una vez que el equipo se termina de reiniciar, ingresar nuevamente por SSH y editar el archivo /tmp/system.cfg. Buscar las siguientes lineas y editar o agregar las que haga falta.

netconf.2.devname=ath0
netconf.2.status=enabled
netconf.2.hwaddr.mac=DC:9F:DB:0C:E9:50  
netconf.2.hwaddr.status=enable

El nro 2, es el indice de la interface. Ese numero viene definido por defecto en cada equipo, te conviene buscar si existe esta linea primero netconf.2.devname=ath0 para luego identificar el nro correspondiente en tu caso. Estimo depende si tenes el equipo seteado como Bridge/Router, o si tenes definidas algunas VLAN.

Una vez editado, vuelves a la consola y escribes:

save
reboot

Listo!! tu equipo debería volver con el MAC modificado. En mi caso, para que los clientes disquen el tunel PPPoE tuve que desactivar el Airmax. Al menos ya tenes administración de los equipos cliente para quitarles el MAC viejo.