RESERVADO
En este manual de configuración configuraremos la Voz IP y lo dejaremos todo listo para el próximo reinicio, además calcularemos los datos necesarios para configurarla y explicaremos los conceptos básicos de putty/ssh.
Paso 1: Descarga de Putty / uso de SSH y conceptos básicos de Vi
Importante: Comentar que durante toda la guía el uso de "$" quiere decir que lo que sigue se trata de un código a usar en la terminal ssh del router. Cada $ es un comando, no trates de mezclarlos, no dara buen resultado por no decir ninguno.
1.1- PROGRAMAS SSH
Dependiendo del Sistema Operativo que estemos utilizando podemos recurrir a lo siguiente para poder acceder al router a través de SSH:
Windows
Si usamos Windows podemos recurrir a
PuTTY
Realizamos la descarga de su página oficial descargando la última versión estable (donde dice The latest release version) hacemos click sobre putty.exe y se nos descargará, además el programa no precisa de instalación luego con solo abrirlo ya estaríamos en su interfaz.
Tendríamos que escribir la ip del router (192.168.1.1) en la casilla Hostname (or ip address) puerto 22 y le damos a Open.
1. Usuario ; 2. Contraseña
Una vez hecho eso nos debería pedir un usuario pulsaríamos en intro e introducimos la contraseña (sensible a mayúsculas y minúsculas, ten en cuenta que los símbolos podrían no comportarse de manera igual que en windows). (En cuanto al usuario y contraseña debemos usar los mismo que usamos para acceder a la interfaz web). Sabiendo esto podemos proseguir a la guía básica de vi.
Ubuntu/Linux
Si usamos Ubuntu o cualquier sistema basado en Linux en nuestro ordenador, sería tan fácil como escribir desde nuestra terminal:
$ ssh <usuario>@192.168.1.1
1. Usuario; 2. Contraseña
De hecho no necesitaríamos ni siquiera estar identificados como root.
Una vez hecho eso nos debería pedir la la contraseña la cual debemos introducir (tener en cuenta que es sensible a mayúsculas y minúsculas y no se ve mientras se escribe). (En cuanto al usuario y contraseña debemos usar los mismo que los usados para acceder a la interfaz web). Podemos proseguir a la guía básica de vi.
1.2- Vi
El uso de VI es muy simple aunque podría causarnos algunos problemas si no estamos familiarizados con el.
A continuación intentaré explicaros las funciones básicas y os dejaré un link para ver más información acerca de este editor.
Windows
Una vez dentro de la edición de vi, para pegar un texto desde putty simplemente debemos hacer click derecho con el ratón encima de la terminal y se nos pegará sin ningún problema.
Ubuntu/Linux
Una vez dentro de la edición de vi, para pegar un texto desde putty simplemente debemos hacer click derecho con el ratón encima de la terminal y pulsar en pegar, así se nos pegará sin ningún problema.
Después de crear los scripts estos han de ser guardados como os daréis cuenta más adelante en la guía, tendríamos que hacer lo siguiente para guardar el archivo dependiendo del caso:
Tecla i (sirve para acceder al modo de edición)
ESC (sirve para volver al modo de comandos, estos saldrán abajo, siempre deben ser escritos con dos puntos delante; los más importantes que podremos utilizar son estos
COMANDOS de Vi:
:wq (si deseamos guardar y salir del archivo de texto, es decir volver a la pantalla de comandos)
:w (si únicamente deseamos guardar y queremos seguir editando)
:q! (si deseamos salir sin guardar o ya hemos guardado anteriormente)
Destacar que si vi te causara algún problema con las # y te las borrara podrías eliminar todas las líneas que empezaban por almohadilla pero no #!/bin/sh. Si tienes muchos problemas en relación con esto déjanos un comentario en el post y te intentaremos ayudar.
Más información acerca de Vi
Paso 2: Entrar en el router por SSH
Debemos conectarnos al router por SSH, tal y como se indica en el paso 1.1.
Una vez introducidos los datos ya tendremos acceso por SSH al router y nos saldrá algo así:
ASUSWRT-Merlin RT-AC87U_3.0.0.4 Thu Dec 24 18:54:51 UTC 2015
admin@RT-AC87U:/tmp/home/root#
Si funciona correctamente seguimos con el paso 3.
Paso 3: Verificación del correcto funcionamiento de la partición para scripts
En este punto verificamos que tenemos acceso a la partición JFFS para lo que escribiremos
$ cd /jffs/scripts/
SI no nos da ningún error (no dice nada), continuamos.
Verificamos que la partición esta limpia escribiendo
$ ls -al
A lo que deberíamos obtener algo como esto:
admin@RT-AC87U:/jffs/scripts# ls -al
drwxr-xr-x 2 admin root 0 Feb 3 19:48 .
drwxr-xr-x 6 admin root 0 Feb 8 19:01 ..
admin@RT-AC87U:/jffs/scripts#
Si todo ha salido correctamente sigue con el paso 4.
Paso 4: Extracción de datos e identificación de interfaces
En este punto ya podemos comenzar habilitando el iptv, en esta ocasión comenzaremos por el voip (vlan 3) ya que me servirá para explicar como se debe configurar el script en función del router que tengamos, comenzamos identificando las interfaces que usa nuestro router para la VLAN 6 que ya la hemos configurado desde la interfaz web anteriormente, escribimos:
$ robocfg show
Y nos saldra algo asi:
admin@RT-AC87U:/jffs/scripts# robocfg show
Switch: enabled
Port 0: 1000FD enabled stp: none vlan: 2 jumbo: off mac: 00:00:00:00:00:00
Port 1: DOWN enabled stp: none vlan: 1 jumbo: off mac: 00:00:00:00:00:00
Port 2: DOWN enabled stp: none vlan: 1 jumbo: off mac: 00:00:00:00:00:00
Port 3: DOWN enabled stp: none vlan: 1 jumbo: off mac: 00:00:00:00:00:00
Port 4: DOWN enabled stp: none vlan: 1 jumbo: off mac: 00:00:00:00:00:00
Port 8: DOWN enabled stp: none vlan: 1 jumbo: off mac: 00:00:00:00:00:00
VLANs: BCM5301x enabled mac_check mac_hash
1: vlan1: 1 2 3 5 7t
2: vlan2: 0 7
6: vlan6: 0t 7t
1045: vlan1045: 0 1t 2 3 4t
1046: vlan1046: 3 4 7t 8u
1047: vlan1047: 1t 4t
1099: vlan1099: 0t 1t 5t 7
1100: vlan1100: 1 2 3t 4t 5 7t 8u
1101: vlan1101: 1 2t 3 4 5t 7
1102: vlan1102: 0 4 7
1103: vlan1103: 0t 1 2 4 5t 7 8u
admin@RT-AC87U:/jffs/scripts#
Podemos identificar que las interfaces que usa mi router en la VLAN6 son la "0t 7t" y serán las mismas que usaré como base para montar las VLANS 2 y 3.
Paso 5: Obtención de direcciones para Voz IP y establecer la Voz IP
Ahora vamos a montar la vlan3 para el VoIP para identificar nuestra IP de VoIP y poderla usar posteriormente en el script. Para ello, establecemos la VLAN3:
$ robocfg vlan 3 ports "
0t 7t"
En mi caso la interfaz 0 es la WAN y la 7 es la CPU, esto varia en función del modelo pero como expliqué en el punto anterior lo podemos identificar siguiendo el procedimiento anteriormente mencionado.
Creamos la interfaz:
$ vconfig add eth0 3
Usamos DHCP para configurar la interfaz con IP/MASK para posteriormente averiguar nuestra IP:
$ ifconfig vlan3 10.27.145.20 netmask 255.255.224.0 up
Con esto simplemente "engañamos" a DHCP para asignar una IP a la vlan3 y prepararla para averiguar nuestra verdadera ip que posteriormente reemplazara la 10.27.145.20
Solicitamos a DHCP que nos asigne nuestra IP "real" de VoIP, la ejecución de este comando lo primero que
nos sacará en pantalla será la IP que nos asigna Movistar.
$ udhcpc -i vlan3 -p /var/run/udhcpc1.pid -s /tmp/udhcpc -b -S
Obtendremos algo así:
admin@RT-AC87U:/jffs/scripts# udhcpc -i vlan3 -p /var/run/udhcpc1.pid -s
/tmp/udhcpc -b -S
udhcpc (v1.20.2) started
Sending discover...
Sending select for 10.27.145.25...
Lease of 10.27.145.25 obtained, lease time 43200
admin@RT-AC87U:/jffs/scripts#
En este caso imaginaremos que Movistar me ha asignado la 10.27.145.25, esto para no revelar mi IP real por seguridad, pero en vuestro caso seguramente sera otra,
apuntamos esta IP ya que la necesitaremos para el script que montará VoIP automáticamente.
Ahora que sabemos nuestra IP necesitaremos averiguar nuestra puerta de enlace para VoIP, para esto usamos la web
http://www.subnetmask.info/ en la sección Network/Node Calculator rellenamos:
Enter the Subnet Mask: Introducimos la mascara de red
255.255.224.0
Enter the TCPIP Address: Introducimos
la IP que Movistar nos ha asignado, en nuestro caso supuesto 10.27.145.25 y presionamos el botón
Calculate .
Obtendremos en el campo Network nuestra puerta de enlace al cual le debemos sumar 1 al ultimo numero, en mi caso obtuve 10.27.128.0 que me quedaría en 10.27.128.1
Llegados a este punto tenemos:
IP_VLAN3: 10.27.145.25
VOIP_GATEWAY: 10.27.128.1
Paso 6: Automatización de scripts para Voz IP
Ahora para automatizar el montaje de la VLAN3 tendremos que crear 2 scripts, para ello seguiremos los siguientes pasos:
1- SCRIPT WAN-START
$ vi /jffs/scripts/wan-start
A continuación pegamos lo siguiente:
Código:
#!/bin/sh
# Poner nuestra IP_VLAN3 y VOIP_GATEWAY:
IP_VLAN3="10.27.145.25"
MASK_VLAN3="255.255.224.0"
VOIP_DEST="10.31.255.128"
# Poner nuestro VOIP_GATEWAY
VOIP_GATEWAY="10.27.128.1"
MASK_DEST="255.255.255.224"
sleep 10
# Configurar switch para Voz IP con las interfaces obtenidas de la VLAN6 usando robocfg show
robocfg vlan 3 ports "0t 7t"
# Añadir VLAN3 en puerto WAN
vconfig add eth0 3
# Asignar IP a VLAN del router
ifconfig vlan3 $IP_VLAN3 netmask $MASK_VLAN3 up
# Añadir rutas VoIP
route add -net $VOIP_DEST gw $VOIP_GATEWAY netmask $MASK_DEST vlan3
udhcpc -i vlan3 -p /var/run/udhcpc1.pid -s /tmp/udhcpc -b
# Fin
Y modificamos los datos:
IP_VLAN3="10.27.145.25" lo completamos con nuestros datos obtenidos del generador de máscaras a partir de nuestra ip de VoIP, tal y como indica en el paso anterior.
VOIP_GATEWAY="10.27.128.1" lo completamos con nuestros datos obtenidos del generador de máscaras a partir de nuestra ip de VoIP, tal y como indica en el paso anterior.
robocfg vlan 3 ports "0t 7t" utilizando los puertos obtenidos de la vlan6 usando robocfg show.
2- SCRIPT NAT-START
Este script no precisa de ninguna modificación por parte del usuario luego sería muy fácil:
$ vi /jffs/scripts/nat-start
A continuación pegamos lo siguiente:
Código:
#!/bin/sh
# Habilitar NAT en firewall (VoIP)
iptables -t nat -A POSTROUTING -o vlan3 -j MASQUERADE
# Fin
FINALMENTE
Por ultimo y para hacer ambos scripts ejecutables escribimos en SSH:
$ cd /jffs/scripts/
$ chmod a+x *
Ya tenemos la VoIP lista, ahora para probar que todo va bien reiniciamos el router bien desde la interfaz o bien escribiendo en SSH:
$ reboot
Una vez reiniciado el router ya deberíamos tener la VoIP montada y accesible desde cualquier interfaz, para comprobarlo podemos intentar acceder desde la app Mi Fijo2.0 en un smartphone y también podremos comprobar mediante la interfaz web la tabla de rutas en la pestaña Routing Table que se encuentra en el menú lateral System Log donde veremos dos "Iface" vlan3 una de ellas con nuestro Gateway.