MANUAL: Mikrotik, el amigo gorrón [IPTV pululante]

Por cierto, ayer me percaté que en caso de caída en uno de los Pepes, la conexión no se reestablece hasta que en Paco voy a wireguard -> peers -> selecciono el Pepe de turno y hago click en el Check...

Probé un par de veces a dejar 20-30 minutos a ver si volvía a levantar solo el tunel, y nada, era darle al check y conectar al momento.

¿Es normal y por ello recomendable abrir también los puertos en el lado Paco para hacer el tema bidireccional, o tengo algo mal configurado y por ello no reconecta?

Gracias.
 
Por cierto, ayer me percaté que en caso de caída en uno de los Pepes, la conexión no se reestablece hasta que en Paco voy a wireguard -> peers -> selecciono el Pepe de turno y hago click en el Check...

Probé un par de veces a dejar 20-30 minutos a ver si volvía a levantar solo el tunel, y nada, era darle al check y conectar al momento.

¿Es normal y por ello recomendable abrir también los puertos en el lado Paco para hacer el tema bidireccional, o tengo algo mal configurado y por ello no reconecta?

Gracias.
Prueba a montar la conexión tipo site to site y a abrir puertos en ambos extremos, tal que la conexión se pueda establecer desde cualquiera de los lados.

Saludos!
 
Prueba a montar la conexión tipo site to site y a abrir puertos en ambos extremos, tal que la conexión se pueda establecer desde cualquiera de los lados.

Saludos!
He hecho la comunicación bidireccional, pero sigo mas o menos parecido... También he modificado los allowed address en Pepe para dejarlo en 0.0.0.0/0

Ayer tenía que darle al check en el router de Paco sobre el peer Pepe para que levantase el tunel.

Tras el cambio, esto ya no funciona, ahora tengo que clickar enable en el router Pepe sobre el peer Paco para que levante el tunel.

Algún punto se me escapa...
 
He hecho la comunicación bidireccional, pero sigo mas o menos parecido... También he modificado los allowed address en Pepe para dejarlo en 0.0.0.0/0

Ayer tenía que darle al check en el router de Paco sobre el peer Pepe para que levantase el tunel.

Tras el cambio, esto ya no funciona, ahora tengo que clickar enable en el router Pepe sobre el peer Paco para que levante el tunel.

Algún punto se me escapa...

A mí me ha pasado alguna vez lo mismo.

Revisando los logs, veo que, al reiniciar, el router intenta montar el túnel wireguard mucho antes de que haya adquirido IP externa, y quizás por eso se hace la picha un lío.

Creo que una posible solución sería montar un script que desconectase el túnel y lo volviese a conectar tras un delay, y que se activase cuando se detecte una nueva IP pública.
 
Finalmente he vuelto a la configuración original y he descartado la bidireccional ya que no he conseguido hacerla funcionar correctamente, y encima para habilitar la conexión requería intervención en los Pepes, cosa que prefiero evitar.

Lo que he hecho ha sido sacar la IP que Paco asigna a cada Pepe (172.17.1.1 y 172.17.10.1 en mi caso) y visto que deshabilitando el Peer y volviendolo a habilitar se soluciona el problema, buscando información he dado con la siguiente solución: Crear reglas en Tools-> Netwatch

Para cada IP Pepe, hace una comprobación de si está levantado el enlace, y en caso de DOWN pasamos el siguiente script:

:delay 25
/interface wireguard peer disable 0
:delay 5
/interface wireguard peer enable 0
:log info "WGPeer toggled"

Después de peer disable hay que poner el número del peer que corresponda a esa IP.

No obstante no me ha funcionado por que si cuando detecta que el enlace ha caído, el Pepe no está online, no conecta y ya no repite el intento de conexión.

Entiendo que este script si está configurado para pasarse cada minuto, cada vez que el estado del enlace es Down debería ejecutar el script una y otra vez, pero parece no hacerlo.

De todas formas sigue siendo buena solución para los casos de comunicación bidireccional, ya que con reiniciar uno de los dos routers, se ejecutará el script y forzará la conexión del tunel.


Edit:

He vuelto a la comunicación bidireccional, donde solo me funcionaba si era Pepe quien llamaba a Paco y he plantado ahí el script.

Parece que eso soluciona el problema, he probado a desconectar todo varias veces, y de todas todas me ha vuelto a levantar el tunel en menos de dos minutos.
 
Última edición:
Finalmente he vuelto a la configuración original y he descartado la bidireccional ya que no he conseguido hacerla funcionar correctamente, y encima para habilitar la conexión requería intervención en los Pepes, cosa que prefiero evitar.

Lo que he hecho ha sido sacar la IP que Paco asigna a cada Pepe (172.17.1.1 y 172.17.10.1 en mi caso) y visto que deshabilitando el Peer y volviendolo a habilitar se soluciona el problema, buscando información he dado con la siguiente solución: Crear reglas en Tools-> Netwatch

Para cada IP Pepe, hace una comprobación de si está levantado el enlace, y en caso de DOWN pasamos el siguiente script:



Después de peer disable hay que poner el número del peer que corresponda a esa IP.

No obstante no me ha funcionado por que si cuando detecta que el enlace ha caído, el Pepe no está online, no conecta y ya no repite el intento de conexión.

Entiendo que este script si está configurado para pasarse cada minuto, cada vez que el estado del enlace es Down debería ejecutar el script una y otra vez, pero parece no hacerlo.

De todas formas sigue siendo buena solución para los casos de comunicación bidireccional, ya que con reiniciar uno de los dos routers, se ejecutará el script y forzará la conexión del tunel.


Edit:

He vuelto a la comunicación bidireccional, donde solo me funcionaba si era Pepe quien llamaba a Paco y he plantado ahí el script.

Parece que eso soluciona el problema, he probado a desconectar todo varias veces, y de todas todas me ha vuelto a levantar el tunel en menos de dos minutos.
Hola, yo tengo el mismo problema. Donde has colocado el script en Pepe ,en Paco o en ambos?
 
Hola, yo tengo el mismo problema. Donde has colocado el script en Pepe ,en Paco o en ambos?
Pues diría que es util en ambos.

Es decir, si tu problema es que tienes que darle a "enable" en cualquiera de los dos routers, este script verá que el tunel no está levantado, esperará 25 segundos, deshabilita el tunel, y pasados 5 segundos lo levanta.

Yo probé ayer a reiniciar en un Pepe 5-6 veces, y enganchó de todas todas en menos de 2 minutos.
 
Es un problema conocido que cuando desde PACO se va el suministro eléctrico, al regresar, en ocasiones se queda el enlace caído debido a que el peer está llamando al "Endpoint" configurado como "xxxxxxxxxx.sn.mynetname.net". En los foros oficiales indican que cuando el Endpoint es una IP estática no suele haber problemas, pero casi todo el mundo la IP que proporciona el ISP es dinámica, así que toca ayudar con algún script para resetear el peer.

En mi caso utilizo este script, un poco más elaborado, y con el Scheduler a 5 minutos no he vuelto a tener problemas de caídas persistentes. Sólo lo tengo en el lado de PACO.

El script hace un ping tanto a PEPE1 como a PEPE2, si no detecta ninguna caída, ni te enteras.

Si detecta alguna caída, informa del problema vía Telegram e intenta resetear el peer de ese enlace y además hace un reset también de la interfaz EoIP. A los 60 sg vuelve a comprobar el estado del túnel EoIP, si ya está levantado, vuelve a informar por Telegram que ya está OK (y ya respiramos).

Bash:
{
:local HOST1 "172.17.0.1"
:local LOCATION1 "PEPE1"
:local HOST2 "172.17.10.1"
:local LOCATION2 "PEPE2"
:local TIMEOUT "500ms"
:local COUNT "10"
:local LESSTHAN "8"

:local deviceName [/system identity get name]
:local wgInterface1 "wg-to-PEPE1"
:local eoipInterface1 "eoip-iptv-to-PEPE1"
:local wgInterface2 "wg-to-PEPE2"
:local eoipInterface2 "eoip-iptv-to-PEPE2"

:if ([/ping $HOST1 interval=$TIMEOUT count=$COUNT]<$LESSTHAN) do={

    :log error "Wireguard: Tunnel with $LOCATION1 is down!"
    :log info "Reconnecting tunnel wireguard..."
   
    # Reset wg-peer to PEPE1
    /interface/wireguard/peers/disable [find interface=$wgInterface1]
    :delay 5
    /interface/wireguard/peers/enable [find interface=$wgInterface1]
   
    :delay 10
   
    # Reset EoIP interface
    /interface/disable $eoipInterface1
    :delay 5
    /interface/enable $eoipInterface1

    :log info "Wireguard peer to $LOCATION1 is reset"

    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> Wireguard to $LOCATION1 is down. Reconnecting...";
    :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END Send Telegram Module

    # Damos un margen de tiempo para hacer de nuevo una comprobación
    :delay 60
    :if ( [/interface eoip get $eoipInterface1 running]=true ) do={
    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> EoIP Interface to $LOCATION1 is Running";
    :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END Send Telegram Module

    :log info "EoIP-IPTV to $LOCATION1 are connected now!"
    }
   
}

:delay 5s

:if ([/ping $HOST2 interval=$TIMEOUT count=$COUNT]<$LESSTHAN) do={

    :log error "Wireguard: Tunnel with $LOCATION2 is down!"
    :log info "Reconnecting tunnel wireguard..."

    # Reset wg-peer to PEPE2
    /interface/wireguard/peers/disable [find interface=$wgInterface2]
    :delay 5
    /interface/wireguard/peers/enable [find interface=$wgInterface2]

    :delay 10
   
    # Reset EoIP interface
    /interface/disable $eoipInterface2
    :delay 5
    /interface/enable $eoipInterface2

    :log info "Wireguard peer $LOCATION2 is reset"

    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> Wireguard to $LOCATION2 is down. Reconnecting...";
    :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END Send Telegram Module

    # Damos un margen de tiempo para hacer de nuevo una comprobación
    :delay 60
    :if ( [/interface eoip get $eoipInterface2 running]=true ) do={
    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> EoIP Interface to $LOCATION2 is Running";
    :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END Send Telegram Module

    :log info "EoIP-IPTV to $LOCATION2 are connected now!"
    }
}

}

S@lu2.
 
Pues diría que es util en ambos.

Es decir, si tu problema es que tienes que darle a "enable" en cualquiera de los dos routers, este script verá que el tunel no está levantado, esperará 25 segundos, deshabilita el tunel, y pasados 5 segundos lo levanta.

Yo probé ayer a reiniciar en un Pepe 5-6 veces, y enganchó de todas todas en menos de 2 minutos.
Gracias por el script , aun poniendo el script no me levantaba y he tenido que modificarlo el "delay 5" por "delay 30" . Ahora lo levanta casi instantáneo en menos de 20 segundos.

". Sugiera si el servidor es problemático, intente con una secuencia de comandos diferente o tal vez extienda la demora a 75 segundos.El problema ocurre cuando el servidor aún está inactivo después del retraso de tiempo, ya que Netwatch no se activa/funciona de nuevo (no se logra UP) ya que aún está inactivo."

Sacado del foro oficial mikrotik.

Gracias @NoRiCKaBe.
 
Chicos me estoy volviendo majara... Levantó el túnel, el deco Paco funciona pero en el menú principal da error de red , os ha pasado? En red interna va perfecto
me autorrespondo q seguro que me orientais...

despues de mucho probar he visto que el problema es que la ip que coge el router de paco es la de su red local... si pongo manualmente la ip de la red de pepe todo funciona perfecto

¿que hay que hacer para que el dhcp que actue dando ip, dns, etc sea el de casa pepe e ignore el dhcp de casa paco?
 
me autorrespondo q seguro que me orientais...

despues de mucho probar he visto que el problema es que la ip que coge el router de paco es la de su red local... si pongo manualmente la ip de la red de pepe todo funciona perfecto

¿que hay que hacer para que el dhcp que actue dando ip, dns, etc sea el de casa pepe e ignore el dhcp de casa paco?
No sé qué clase de setup extraño estás tratando de montar, pero es justo al revés: lo que buscas es que un bridge que contiene un EoIP y un puerto del router de Pepe, coja IP de Paco, no al revés. Paco es quien tiene el servicio original, Pepe quien lo consume en remoto.

Saludos!
 
perdona pokoyo... como que tengo ya la cabeza que no riega... efectivamente es lo que explico pero con los nombres cambiados :( ¿te suena como puedo arreglarlo?
En Paco, sólo hay un bridge, y todos los puertos van metidos en él, EoIP incluido. Es decir, hace de switch.
En Pepe, hay un bridge principal, LAN, con su propio dhcp-server, y otro bridge aparte, el que lleva el IGMP Snooping, y como puertos un EoIP y un puerto deficado que previamente has sacado del bridge principal. La magia del asunto lo hace el EoIP, pero te tienes que asegurar que está levantado y funcionando para que ese dhcp server de Paco, “viaje” hasta este bridge dedicado en Pepe. Si levantas un cliente dhcp en ese bridge en Pepe, verás si coge o no IP del segmento de Paco (luego lo puedes quitar, no lo vas a usar).

El EoIP, si está funcionando, tendrá los flags “RS” en ambos extremos (R = Running, S = Slave, por estar en un bridge).

Saludos!
 
me quedo con tu mensaje para revisarlo todo de nuevo cuando llegue a casa!!

Sabes? es que al final en casa paco tambien está el mikrot como switch, porque no he sido capaz de ponerlo en modo router. Si pepe en su casa le pone al deco una ip 192.168.1.x todo funciona perfecto, pero si deja que el deco sea un cliente dhcp, le da una ip del rango local y empiezan los problemas

mil gracias
En ese caso, con casi total seguridad, tienes el EoIP metido en el bridge principal, de Pepe, en lugar del secundario. Y eso puede ser un problema para Paco, puesto que el dhcp cliente de tu lado lo estarás pasando para el otro lado.

Revísalo.

Saludos!
 
En ese caso, con casi total seguridad, tienes el EoIP metido en el bridge principal, de Pepe, en lugar del secundario. Y eso puede ser un problema para Paco, puesto que el dhcp cliente de tu lado lo estarás pasando para el otro lado.

Revísalo.

Saludos!
El eoip de pepe está en en el "bridge iptv" que es donde entiendo que debe estar según el tuto pero nada..

He vuelto a hacer reset de fábrica a ambos mirotik y lo he configurado todo de cero con el tuto, el túnel wireguard levanta bien pero aún en casa de pepe si conecto el deco a la boca2 del mirotik, q está dentro del Bridge IPTV no se ve... Para q se vea tengo que meter la boca 1 en el bridge IPTV, y en ese momento se pone el mirotik en modo bridge en vez de modo router

Que desesperación de novato! Muchas gracias por la ayuda
 
El eoip de pepe está en en el "bridge iptv" que es donde entiendo que debe estar según el tuto pero nada..

He vuelto a hacer reset de fábrica a ambos mirotik y lo he configurado todo de cero con el tuto, el túnel wireguard levanta bien pero aún en casa de pepe si conecto el deco a la boca2 del mirotik, q está dentro del Bridge IPTV no se ve... Para q se vea tengo que meter la boca 1 en el bridge IPTV, y en ese momento se pone el mirotik en modo bridge en vez de modo router

Que desesperación de novato! Muchas gracias por la ayuda
Por qué no pruebas a hacer lo lógico, adjuntar los exports, y así dejamos de hablar de teoría y pasamos a ver dónde tienes el problema realmente, en la práctica?

Saludos!
 
Por qué no pruebas a hacer lo lógico, adjuntar los exports, y así dejamos de hablar de teoría y pasamos a ver dónde tienes el problema realmente, en la práctica?

Saludos!
Venga vale... Creo q estoy cambiando los mirotik de casa...

Voy a hacerlo todo de cero y subo los exports, a ver si se sacarlos

Gracias!
 
Buenas! Estoy tratando de meter el EoIP en una VLAN. El esquema sería:

Router Pepe -- Switch GS308E -- Descodificador en el ether3

Hasta ahora he conseguido meter el desco en una vlan (vlan86). Lo que no consigo es enviar el tráfico que viene por el EoIP en una vlan taggeada.

Saludos!
 
Última edición:
Buenas! Estoy tratando de meter el EoIP en una VLAN. El esquema sería:

Router Pepe -- Switch GS308E -- Descodificador en el ether3

Hasta ahora he conseguido meter el desco en una vlan (vlan86). Lo que no consigo es enviar el tráfico que viene por el EoIP en una vlan taggeada.

Saludos!
Y el Mikrotik? Lo digo por lo del EoIP. Dibuja el esquema completo y qué pretendes hacer.

Saludos!
 
Perdona que se me olvidó. El router pepe es mi HAP AC2, conectado por wireguard con un map lite que cuelga del router del operador (en la otra casa, la que tiene subscripción de Movistar+).

Lo que quiero hacer aquí es meter el EoIP en una vlan para poder conectar el descodificador a un switch gestionable en vez de directamente al router. En ese switch hay otros aparatos, que quiero que sigan en mi red local. Por ello, he creado una vlan (vlan86) que en el switch asigno únicamente al descodificador.

Lo único que me faltaría es meter el tráfico que llega por el EoIP en esa vlan para que le llegara al descodificador.

Saludos!
 
Arriba