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

Me he pasado por casa de Paco y he actualizado el firmware que lo tenia de marzo. Al hacerlo, se ha parado el puente y no se ha levantando solo. Lo he tenido que reiniciar.

Me preguntaba si no se podía hacer algún tipo de script en Paco que cuando el tráfico medio (e.g. en 1 minuto) sea 0 reinicie el puente.

Hola, prueba este script que tengo programado cada 5 minutos desde el lado de Paco (mAP).

Comprueba la conectividad del túnel Wireguard con el extremo de Pepe y si falla, informa vía Telegram y resetea el peer + la interfaz EoIP. A los 60 sg comprueba si EoIP está levantada e informa.

Bash:
{
:local HOST "172.17.0.1"
:local LOCATION "Despacho"
#### Ping Time out Increase or decrease as Required #####
:local TIMEOUT "500ms"
#### How Many try's ######
:local COUNT "10"
### If less than 8 successful reply's Restart IPSec #####
:local LESSTHAN "8"
:local deviceName [/system identity get name]
:local wgInterface "wg-to-despacho"
:local eoipInterface "eoip-iptv-to-despacho"

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

    :log error "Wireguard: Tunnel with $LOCATION is down!";
    :log info "Reconnecting tunnel wireguard..."
   
    # Reset wg-peer to Despacho
    /interface/wireguard/peers/disable [find interface=$wgInterface]
    :delay 5
    /interface/wireguard/peers/enable [find interface=$wgInterface]
   
    :delay 10

    # Reset EoIP interface
    /interface/disable $eoipInterface
    :delay 5
    /interface/enable $eoipInterface

    :log info "Wireguard peer is reset"

    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> Wireguard to $LOCATION 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 $eoipInterface running]=true ) do={
    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> EoIP Interface to $LOCATION is Running";
    :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END Send Telegram Module

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

De todas formas siempre recomiendo tener un enlace WireGuard tipo Road Warrior por si hay que actuar en local sin necesidad de desplazarse.

S@lu2.
 
Hola, prueba este script que tengo programado cada 5 minutos desde el lado de Paco (mAP).

Comprueba la conectividad del túnel Wireguard con el extremo de Pepe y si falla, informa vía Telegram y resetea el peer + la interfaz EoIP. A los 60 sg comprueba si EoIP está levantada e informa.

Bash:
{
:local HOST "172.17.0.1"
:local LOCATION "Despacho"
#### Ping Time out Increase or decrease as Required #####
:local TIMEOUT "500ms"
#### How Many try's ######
:local COUNT "10"
### If less than 8 successful reply's Restart IPSec #####
:local LESSTHAN "8"
:local deviceName [/system identity get name]
:local wgInterface "wg-to-despacho"
:local eoipInterface "eoip-iptv-to-despacho"

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

    :log error "Wireguard: Tunnel with $LOCATION is down!";
    :log info "Reconnecting tunnel wireguard..."
  
    # Reset wg-peer to Despacho
    /interface/wireguard/peers/disable [find interface=$wgInterface]
    :delay 5
    /interface/wireguard/peers/enable [find interface=$wgInterface]
  
    :delay 10

    # Reset EoIP interface
    /interface/disable $eoipInterface
    :delay 5
    /interface/enable $eoipInterface

    :log info "Wireguard peer is reset"

    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> Wireguard to $LOCATION 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 $eoipInterface running]=true ) do={
    # START Send Telegram Module
    :local MessageText "\E2\9A\A0 <b>$deviceName:</b> EoIP Interface to $LOCATION is Running";
    :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END Send Telegram Module

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

De todas formas siempre recomiendo tener un enlace WireGuard tipo Road Warrior por si hay que actuar en local sin necesidad de desplazarse.

S@lu2.
El mío no está tan currado, pero es una solución similar, vía netwatch en Paco, en lugar de scheduler + script.

1661857831831.png

1661857866329.png

1661857991956.png

1661858014858.png


Saludos!
 

Adjuntos

  • 1661857938932.png
    1661857938932.png
    41.3 KB · Visitas: 56
# Reset wg-peer to Despacho /interface/wireguard/peers/disable [find interface=$wgInterface] :delay 5 /interface/wireguard/peers/enable [find interface=$wgInterface]
Yo lo tengo también con netwatch, parecido a @pokoyo (bueno, no es exactamente para "gorrón IPTV", ya que sigo buscando a Pepe, pero para el caso es lo mismo).

Veo que, en lugar de desactivar y volver a activar el túnel directamente, lo haces con los peers. Mi experiencia es que con los peers, alguna vez no ha funcionado, pero si lo hago directamente con el túnel, nunca falla. ¿Por qué elegiste hacerlo con los peers?
 
Yo lo tengo también con netwatch, parecido a @pokoyo (bueno, no es exactamente para "gorrón IPTV", ya que sigo buscando a Pepe, pero para el caso es lo mismo).

Veo que, en lugar de desactivar y volver a activar el túnel directamente, lo haces con los peers. Mi experiencia es que con los peers, alguna vez no ha funcionado, pero si lo hago directamente con el túnel, nunca falla. ¿Por qué elegiste hacerlo con los peers?
Pues precisamente por eso, en mi caso, el lado Paco es "propenso" a que se caiga la red eléctrica (la manía que tienen algunos de contratar la potencia mínima y en cuanto sobrepasan el consumo, zas!).

Al principio probé a resetear la interfaz WireGuard directamente pero no levantaba tan rápido y se podía quedar toda la mañana caído, fui probando hasta que vi que actuando sobre los peers se levantaba super-rápido, y para curarme en salud le pegaba un meneo también a la parte EoIP. Hasta ahora, sin problema, cuando cae el enlace se recupera en menos de 10 minutos. Pero ya digo, yo hablo por mi propia experiencia y así lo comparto.

Con netwatch tengo otras cosillas por ahí pero no lo he usado para este caso concreto, al final son dos formas de llegar al mismo sitio. A mi particularmente me gusta más con scripts + avisos por Telegram, sólo tengo que sacarme del bolsillo el móvil para saber que ocurre en mi Red.

S@lu2.
 
Muy útil!! Hay algún motivo por el que lo tengas solo en Paco? Dando por hecho que hay comunicacción bidireccional.
Porque pepe no se cae jamás, pepe tiene un mikrotik como router principal, así que la IP pública siempre se mantiene actualizada en IP Cloud, sin hacer absolutamente nada.

Saludos!
 
Excelente manual @pokoyo, muchas gracias.
Una pregunta, en el caso de que Paco ya tenga un router mikrotik (routerOS 6) en vez del HGU en su casa y que pase el IPTV a una vlan (ej: vlan99) en vez de a un puerto concreto del router (usando uno de los manuales incluidos en este foro para multideco), ¿como configura el tunel (en otro router mikrotik que ha comprado para este menester y seguir el manual a rajatabla) para que pase solo la vlan99 como untagged para Pepe y que pueda ver la TV?
Paco ha comprado otro mikrotik y lo ha actualizado a la version 7 para ver si funciona en vez de actualizar el router principal, no sea que se le joda la config...


Gracias,
 
Excelente manual @pokoyo, muchas gracias.
Una pregunta, en el caso de que Paco ya tenga un router mikrotik (routerOS 6) en vez del HGU en su casa y que pase el IPTV a una vlan (ej: vlan99) en vez de a un puerto concreto del router (usando uno de los manuales incluidos en este foro para multideco), ¿como configura el tunel (en otro router mikrotik que ha comprado para este menester y seguir el manual a rajatabla) para que pase solo la vlan99 como untagged para Pepe y que pueda ver la TV?
Paco ha comprado otro mikrotik y lo ha actualizado a la version 7 para ver si funciona en vez de actualizar el router principal, no sea que se le joda la config...


Gracias,
Si Paco pretende usar un router en la v7 como principal a futuro, te recomiendo vayas directo a por la opción de la nueva config de triple play, ahora que en la 7.5 tenemos el rtsp helper y podemos prescindir del HGU sin más scripts ni más nada.

Con respecto a las vlans: estas no abandonan los routers locales, pero los eoip se pueden filtrar en un bridge con VLANs, exactamente igual que harías con un puerto ethernet local.

No sé si he respondido a tus preguntas o te he dejado a medias. Sino, píntame el esquema de lo que tienes y de a dónde quieres llegar, y lo vemos en más detalle.

Saludos!
 
Si Paco pretende usar un router en la v7 como principal a futuro, te recomiendo vayas directo a por la opción de la nueva config de triple play, ahora que en la 7.5 tenemos el rtsp helper y podemos prescindir del HGU sin más scripts ni más nada.

Con respecto a las vlans: estas no abandonan los routers locales, pero los eoip se pueden filtrar en un bridge con VLANs, exactamente igual que harías con un puerto ethernet local.

No sé si he respondido a tus preguntas o te he dejado a medias. Sino, píntame el esquema de lo que tienes y de a dónde quieres llegar, y lo vemos en más detalle.

Saludos!
Muchas gracias, supongo que en 1 mes o así que Paco vaya mas tranquilo actualizará el router principal a la v7.5 como indicas.

Paso el esquema mas o menos de como lo tienen Paco y Pepe:

Código:
        Router Pepe                       Router Paco (Router OS6)
              |                                | (vlan1) - (otras vlans) - (vlan99 IPTV)
    Mikrotik Pepe <---> tunel EOIP <---> Mikrotik Paco IPTV
            |                               
          Deco

La cosa está en que el IPTV Paco lo tiene por su red a través de la vlan99, pero no sabe como tiene que hacer para pasarle esa vlan99 a Pepe como si fuera un access port. Porque el "mikrotik Paco IPTV" se conecta a un puerto trunk con la vlan1 (PVID) untagged con acceso general a internet y la vlan99 como tagged (lan-iptv).

Gracias nuevamente
 
Muchas gracias, supongo que en 1 mes o así que Paco vaya mas tranquilo actualizará el router principal a la v7.5 como indicas.

Paso el esquema mas o menos de como lo tienen Paco y Pepe:

Código:
        Router Pepe                       Router Paco (Router OS6)
              |                                | (vlan1) - (otras vlans) - (vlan99 IPTV)
    Mikrotik Pepe <---> tunel EOIP <---> Mikrotik Paco IPTV
            |                              
          Deco

La cosa está en que el IPTV Paco lo tiene por su red a través de la vlan99, pero no sabe como tiene que hacer para pasarle esa vlan99 a Pepe como si fuera un access port. Porque el "mikrotik Paco IPTV" se conecta a un puerto trunk con la vlan1 (PVID) untagged con acceso general a internet y la vlan99 como tagged (lan-iptv).

Gracias nuevamente
Tal y como se describe aquí: filtrando vlans en el bridge y asignando la 99 como acceso tanto al puerto donde vaya conectado el deco como al EoIP que lo transporta al otro lado.

Saludos!
 
El mío no está tan currado, pero es una solución similar, vía netwatch en Paco, en lugar de scheduler + script.

Ver el adjunto 98652
Ver el adjunto 98655
Ver el adjunto 98661
Ver el adjunto 98664

Saludos!

al final te he copiado tu Netwatch para ponerlo, tanto en Pepe como en Paco. Y ahora probando en Pepe (cambiando la IP a .2), aunque deje a Pepe sin conexión desde el router, no pasa nada (haces un ping a Paco y es timeout, y no sale nada en el log). ¿No debería estar intentando levantarlo y dejando rastro en el log?

Gracias!
 
Tal y como se describe aquí: filtrando vlans en el bridge y asignando la 99 como acceso tanto al puerto donde vaya conectado el deco como al EoIP que lo transporta al otro lado.

Saludos!

Código:
#######################################
########## ROUTER DE PACO #############
#######################################

############## VARIABLES ##############
:local puertoWireguardPepe "54321"
:local publicKeyWireguardPepe "PUBLIC_KEY_PEPE"
:local subredLanPepe "192.168.88.0/24"
:local direccionDDNSPepe "pepe.pericopalotes.com"
:local nombreRouterPaco "gorron"

############## WIREGUARD ##############
# Creamos una nueva interfaz para este propósito
# Obviamos el puerto, no lo vamos a usar
/interface/wireguard
add name=wg-sts-iptv
# Creamos un nuevo peer que representa el router de Pepe
# La public key la cogemos de la interfaz
# wireguard-sts-iptv del router remoto.
# Modificamos el endpoint por la dirección cloud de Pepe
/interface/wireguard/peers
add allowed-address=0.0.0.0/0 endpoint-address=\
  $direccionDDNSPepe endpoint-port=$puertoWireguardPepe \
  interface=wg-sts-iptv \
  public-key=$publicKeyWireguardPepe \
  persistent-keepalive=25s

######### EOIP SOBRE LAS /30 ##########
# Creamos un nuevo túnel EoIP
/interface/eoip
add local-address=172.17.0.2 name=eoip-iptv \
  remote-address=172.17.0.1 tunnel-id=0 mtu=1500

############ NUEVOS BRIDGES ###########
# Creamos el nuevo bridge con igmp-snooping para IPTV,
# además del bridge normal del router que usaremos
# como interfaz de loopback, para administración
/interface/bridge
add admin-mac=[/interface/ethernet/get ether2 mac-address] \
    auto-mac=no name=bridge-lo
add igmp-snooping=yes name=bridge-iptv
# Metemos cada puerto en su sitio, ether1 = router del operador
# ether2 = lo reservamos como puerto de administración
# si queremos aprovechar todos los puertos como switch,
# metermos todos ellos en el bridge iptv +  el túnel EoIP
/interface/bridge/port
add bridge=bridge-lo interface=ether2
add bridge=bridge-iptv interface=ether1
add bridge=bridge-iptv interface=eoip-iptv pvid=99

# establecemos tabla vlans
/interface bridge vlan
add bridge=bridge-iptv tagged=ether1 untagged=eoip-iptv vlan-ids=99

# habilitamos filtrado vlan
/interface bridge set bridge-iptv vlan-filtering=yes

########### DIRECCIONAMIENTO ##########
# Direccionamos el bridge loopback y el túnel
/ip/address
add address=192.168.79.1/24 interface=bridge-lo
add address=172.17.0.2/30 interface=wg-sts-iptv

########## DHCP ADMINISTRACION  #######
/ip/pool
add name=pool-lo ranges=192.168.79.2-192.168.79.254
/ip/dhcp-server
add address-pool=pool-lo interface=bridge-lo name=dhcp-lo
/ip/dhcp-server/network
add address=192.168.79.0/24 gateway=192.168.79.1

####### CREAMOS LA INTERFAZ WAN #######
# Nuestra WAN = bridge-iptv, como switch que somos
# Levantaremos un cliente DHCP para obtner IP
# y salida a internet, para poder llamar a casa
# obtendremos una ruta por defecto y un DNS
/ip/dhcp-client
add interface=bridge-iptv

########## DNS SERVER BACKUP ##########
# Le damos  un DNS de backup, por si nos
# falla el que entregue el cliente DHCP
/ip/dns
set servers=1.1.1.1,1.0.0.1

############ RUTA ESTÁTICA ############
# Esto le permitirá a Pepe administrar
# el router gorrón en remoto. Suponemos
# 192.168.88.0/24 segmento pricipal LAN
# de Pepe el cual alcanzamos al otro lado
# del túnelWireGuard, 172.17.0.1
/ip/route
add dst-address=$subredLanPepe gateway=172.17.0.1

############### WIRELESS  #############
# Como no lo usamos, lo desactivamos
/interface/wireless
set [find] disabled=yes

############ HORA Y NOMBRE ############
# Establecemos la franja horaria del equipo
/system/clock
set time-zone-name=Europe/Madrid
# y le damos un nombre
/system/identity
set name=$nombreRouterPaco

Entiendo que en el router de Paco estaría la cosa así, y en el de pepe habría que hacer lo mismo de colocar el pvid99 en eoip-iptv y en el eth2. ¿Correcto?
Entiendo que de esta forma en el router de Paco sigue entrando la vlan1 con internet y solo envia la vlan99 por eoip.
 
al final te he copiado tu Netwatch para ponerlo, tanto en Pepe como en Paco. Y ahora probando en Pepe (cambiando la IP a .2), aunque deje a Pepe sin conexión desde el router, no pasa nada (haces un ping a Paco y es timeout, y no sale nada en el log). ¿No debería estar intentando levantarlo y dejando rastro en el log?

Gracias!
No entiendo lo que escribes, explícalo con otras palabras porfa. Yo el script lo tengo sólo en Paco. En Pepe, que controla la IP pública, jamás he tenido problema.

Saludos!
 
Código:
#######################################
########## ROUTER DE PACO #############
#######################################

############## VARIABLES ##############
:local puertoWireguardPepe "54321"
:local publicKeyWireguardPepe "PUBLIC_KEY_PEPE"
:local subredLanPepe "192.168.88.0/24"
:local direccionDDNSPepe "pepe.pericopalotes.com"
:local nombreRouterPaco "gorron"

############## WIREGUARD ##############
# Creamos una nueva interfaz para este propósito
# Obviamos el puerto, no lo vamos a usar
/interface/wireguard
add name=wg-sts-iptv
# Creamos un nuevo peer que representa el router de Pepe
# La public key la cogemos de la interfaz
# wireguard-sts-iptv del router remoto.
# Modificamos el endpoint por la dirección cloud de Pepe
/interface/wireguard/peers
add allowed-address=0.0.0.0/0 endpoint-address=\
  $direccionDDNSPepe endpoint-port=$puertoWireguardPepe \
  interface=wg-sts-iptv \
  public-key=$publicKeyWireguardPepe \
  persistent-keepalive=25s

######### EOIP SOBRE LAS /30 ##########
# Creamos un nuevo túnel EoIP
/interface/eoip
add local-address=172.17.0.2 name=eoip-iptv \
  remote-address=172.17.0.1 tunnel-id=0 mtu=1500

############ NUEVOS BRIDGES ###########
# Creamos el nuevo bridge con igmp-snooping para IPTV,
# además del bridge normal del router que usaremos
# como interfaz de loopback, para administración
/interface/bridge
add admin-mac=[/interface/ethernet/get ether2 mac-address] \
    auto-mac=no name=bridge-lo
add igmp-snooping=yes name=bridge-iptv
# Metemos cada puerto en su sitio, ether1 = router del operador
# ether2 = lo reservamos como puerto de administración
# si queremos aprovechar todos los puertos como switch,
# metermos todos ellos en el bridge iptv +  el túnel EoIP
/interface/bridge/port
add bridge=bridge-lo interface=ether2
add bridge=bridge-iptv interface=ether1
add bridge=bridge-iptv interface=eoip-iptv pvid=99

# establecemos tabla vlans
/interface bridge vlan
add bridge=bridge-iptv tagged=ether1 untagged=eoip-iptv vlan-ids=99

# habilitamos filtrado vlan
/interface bridge set bridge-iptv vlan-filtering=yes

########### DIRECCIONAMIENTO ##########
# Direccionamos el bridge loopback y el túnel
/ip/address
add address=192.168.79.1/24 interface=bridge-lo
add address=172.17.0.2/30 interface=wg-sts-iptv

########## DHCP ADMINISTRACION  #######
/ip/pool
add name=pool-lo ranges=192.168.79.2-192.168.79.254
/ip/dhcp-server
add address-pool=pool-lo interface=bridge-lo name=dhcp-lo
/ip/dhcp-server/network
add address=192.168.79.0/24 gateway=192.168.79.1

####### CREAMOS LA INTERFAZ WAN #######
# Nuestra WAN = bridge-iptv, como switch que somos
# Levantaremos un cliente DHCP para obtner IP
# y salida a internet, para poder llamar a casa
# obtendremos una ruta por defecto y un DNS
/ip/dhcp-client
add interface=bridge-iptv

########## DNS SERVER BACKUP ##########
# Le damos  un DNS de backup, por si nos
# falla el que entregue el cliente DHCP
/ip/dns
set servers=1.1.1.1,1.0.0.1

############ RUTA ESTÁTICA ############
# Esto le permitirá a Pepe administrar
# el router gorrón en remoto. Suponemos
# 192.168.88.0/24 segmento pricipal LAN
# de Pepe el cual alcanzamos al otro lado
# del túnelWireGuard, 172.17.0.1
/ip/route
add dst-address=$subredLanPepe gateway=172.17.0.1

############### WIRELESS  #############
# Como no lo usamos, lo desactivamos
/interface/wireless
set [find] disabled=yes

############ HORA Y NOMBRE ############
# Establecemos la franja horaria del equipo
/system/clock
set time-zone-name=Europe/Madrid
# y le damos un nombre
/system/identity
set name=$nombreRouterPaco

Entiendo que en el router de Paco estaría la cosa así, y en el de pepe habría que hacer lo mismo de colocar el pvid99 en eoip-iptv y en el eth2. ¿Correcto?
Entiendo que de esta forma en el router de Paco sigue entrando la vlan1 con internet y solo envia la vlan99 por eoip.
No, si la VLAN ya la estás mandando untagged, no hay necesidad de hacer esto en Pepe. De hecho, no sé qué ganas teniendo la VLAN 99 que comentas en casa de Paco, si este tiene un mikrotik como principal.

Saludos!
 
No, si la VLAN ya la estás mandando untagged, no hay necesidad de hacer esto en Pepe. De hecho, no sé qué ganas teniendo la VLAN 99 que comentas en casa de Paco, si este tiene un mikrotik como principal.

Saludos!
En las configs que tenéis en el foro, específicamente la que usé: "NEW - Movistar Triple VLAN (Grupo Telefónica, España) [by @furny] multidesco" se crea un bridge para conectar los descos al puerto eth2 (bridge-iptv), yo en vez de asignar el puerto eth2 a ese bridge lo paso a otra vlan (vlan99) dentro del bridge principal y la puedo transmitir por cualquier puerto el iptv. Luego en los distintos switches que tengo ya la voy moviendo hasta donde tengo los descos (donde pongo un puerto de acceso). En los puertos donde no va ningun desco pues no le paso la vlan99.
¿Está mal esto? La tipología que tengo era complicada para asignar solo un puerto.
 
En las configs que tenéis en el foro, específicamente la que usé: "NEW - Movistar Triple VLAN (Grupo Telefónica, España) [by @furny] multidesco" se crea un bridge para conectar los descos al puerto eth2 (bridge-iptv), yo en vez de asignar el puerto eth2 a ese bridge lo paso a otra vlan (vlan99) dentro del bridge principal y la puedo transmitir por cualquier puerto el iptv. Luego en los distintos switches que tengo ya la voy moviendo hasta donde tengo los descos (donde pongo un puerto de acceso). En los puertos donde no va ningun desco pues no le paso la vlan99.
¿Está mal esto? La tipología que tengo era complicada para asignar solo un puerto.
No necesitas hacer eso. Habilitas igmp-snooping en el bridge principal y andando, ya tienes multicast en todos los puertos.

Saludos!
 
No entiendo lo que escribes, explícalo con otras palabras porfa. Yo el script lo tengo sólo en Paco. En Pepe, que controla la IP pública, jamás he tenido problema.

Saludos!
Claro!

Lo que digo, es que al poner el Netwatch en Pepe, aunque pierda la conectividad con Paco, no pasa nada (no veo ningún rastro de los mensajes en el log) y no vuelve a intentar levantar el túnel.

¿Acaso solo "entra en funcionamiento" si detecta un cambio de IP pública? Yo pensaba que corría cada vez que se perdiese conectividad con Paco en mi caso.

Gracias!
 
Claro!

Lo que digo, es que al poner el Netwatch en Pepe, aunque pierda la conectividad con Paco, no pasa nada (no veo ningún rastro de los mensajes en el log) y no vuelve a intentar levantar el túnel.

¿Acaso solo "entra en funcionamiento" si detecta un cambio de IP pública? Yo pensaba que corría cada vez que se perdiese conectividad con Paco en mi caso.

Gracias!
El túnel sólo se cae cuando los extremos pierden (o cambian) la IP pública que tenían, y sobre la cual están formados los túneles. El extremo Pepe, tiene acceso directo a esa IP (porque la lleva en una interfaz propia, bien sea el PPPoE o el DHCP que te da la conexión), y por tanto su DDNS (IP -> Cloud) se actualiza de forma instantánea (tal y com detecta el cambio de IP, se actualiza esa dirección y, cuando el túnel desconecte, reconectará de forma automática puesto que esa IP ya está actualizada).
En Paco, sin embargo, esa IP no la controla el mikrotik sino que se la encuentra ahí, encima de un NAT. Y no es hasta que, pasado un cierto tiempo, se da cuenta de que ha cambiado. Dependiendo de lo largo de este tiempo, el túnel Wireguard puede dar esa conexión por muerta, y no volverá a intentar establecerla hasta que fuerces una acción manual sobre la interfaz o el peer. ¿Podría ser más inteligente? Por supuesto, pero es la implementación que tiene de momento.

Por eso sólo hago ese paso en Paco, porque en Pepe es muy muy poco probable que se dé. En mi caso en Pepe sólo monitorizo la IP del otro extremo del túnel y, cuando se cae, pinto un mensaje en los logs y poco más. Y ya sé que, por mucho que yo haga en mi lado, ese túnel no se va a reestablecer hasta que el otro extremo reinicie el túnel.

Si ves que en tu Pepe no hay rastro del netwatch, quizá sea porque no estás monitorizando la IP correcta. Recuerda que la idea es detectar si el túnel se cae, así que tienes que monitorizar la IP del otro extremo de wireguard, la del router remoto, y actuar en consecuencia cuando no llegues a ella.

Saludos!
 
El túnel sólo se cae cuando los extremos pierden (o cambian) la IP pública que tenían, y sobre la cual están formados los túneles. El extremo Pepe, tiene acceso directo a esa IP (porque la lleva en una interfaz propia, bien sea el PPPoE o el DHCP que te da la conexión), y por tanto su DDNS (IP -> Cloud) se actualiza de forma instantánea (tal y com detecta el cambio de IP, se actualiza esa dirección y, cuando el túnel desconecte, reconectará de forma automática puesto que esa IP ya está actualizada).
En Paco, sin embargo, esa IP no la controla el mikrotik sino que se la encuentra ahí, encima de un NAT. Y no es hasta que, pasado un cierto tiempo, se da cuenta de que ha cambiado. Dependiendo de lo largo de este tiempo, el túnel Wireguard puede dar esa conexión por muerta, y no volverá a intentar establecerla hasta que fuerces una acción manual sobre la interfaz o el peer. ¿Podría ser más inteligente? Por supuesto, pero es la implementación que tiene de momento.

Por eso sólo hago ese paso en Paco, porque en Pepe es muy muy poco probable que se dé. En mi caso en Pepe sólo monitorizo la IP del otro extremo del túnel y, cuando se cae, pinto un mensaje en los logs y poco más. Y ya sé que, por mucho que yo haga en mi lado, ese túnel no se va a reestablecer hasta que el otro extremo reinicie el túnel.

Si ves que en tu Pepe no hay rastro del netwatch, quizá sea porque no estás monitorizando la IP correcta. Recuerda que la idea es detectar si el túnel se cae, así que tienes que monitorizar la IP del otro extremo de wireguard, la del router remoto, y actuar en consecuencia cuando no llegues a ella.

Saludos!

Entendido, muchas gracias!
 
Hola!

Justo estaba probando a hacer la config de Paco para conectar dos Pepes, con sus túneles separados. A ver qué te parece (obviendo que hay variables que no están definidas al comienzo):


Código:
#######################################
########## ROUTER DE PACO #############
#######################################

############## VARIABLES ##############
:local puertoWireguardPepe "54321"
:local publicKeyWireguardPepe "2V8wLdPUlRl+M2V6bKyA5oSK8Rv5V2RfbySq7q1RanQ="
:local subredLanPepe "192.168.88.0/24"
:local direccionDDNSPepe ""
:local nombreRouterPaco "gorron"

############## WIREGUARD ##############
# Creamos una nueva interfaz para este propósito
# Obviamos el puerto, no lo vamos a usar
/interface/wireguard
add name=wg-sts-iptv
add name=wg2-sts-iptv
# Creamos un nuevo peer que representa el router de Pepe
# La public key la cogemos de la interfaz
# wireguard-sts-iptv del router remoto.
# Modificamos el endpoint por la dirección cloud de Pepe
/interface/wireguard/peers
add allowed-address=0.0.0.0/0 endpoint-address=\
  $direccionDDNSPepe endpoint-port=$puertoWireguardPepe \
  interface=wg-sts-iptv \
  public-key=$publicKeyWireguardPepe \
  persistent-keepalive=25s
add allowed-address=0.0.0.0/0 endpoint-address=\
  $direccionDDNSPepe2 endpoint-port=$puertoWireguardPepe2 \
  interface=wg2-sts-iptv \
  public-key=$publicKeyWireguardPepe2 \
  persistent-keepalive=25s

######### EOIP SOBRE LAS /30 ##########
# Creamos un nuevo túnel EoIP
/interface/eoip
add local-address=172.17.0.2 name=eoip-iptv \
  remote-address=172.17.0.1 tunnel-id=0 mtu=1500
add local-address=172.17.1.2 name=eoip2-iptv \
  remote-address=172.17.1.1 tunnel-id=1 mtu=1500

############ NUEVOS BRIDGES ###########
# Creamos el nuevo bridge con igmp-snooping para IPTV,
# además del bridge normal del router que usaremos
# como interfaz de loopback, para administración
/interface/bridge
add admin-mac=[/interface/ethernet/get ether2 mac-address] \
    auto-mac=no name=bridge-lo
add igmp-snooping=yes name=bridge-iptv
# Metemos cada puerto en su sitio, ether1 = router del operador
# ether2 = lo reservamos como puerto de administración
# si queremos aprovechar todos los puertos como switch,
# metermos todos ellos en el bridge iptv +  el túnel EoIP
/interface/bridge/port
add bridge=bridge-lo interface=ether2
add bridge=bridge-iptv interface=ether1
add bridge=bridge-iptv interface=ether3
add bridge=bridge-iptv interface=eoip-iptv
add bridge=bridge-iptv interface=eoip2-iptv

########### DIRECCIONAMIENTO ##########
# Direccionamos el bridge loopback y el túnel
/ip/address
add address=192.168.79.1/24 interface=bridge-lo
add address=172.17.0.2/30 interface=wg-sts-iptv
add address=172.17.1.2/30 interface=wg2-sts-iptv
########## DHCP ADMINISTRACION  #######
/ip/pool
add name=pool-lo ranges=192.168.79.2-192.168.79.254
/ip/dhcp-server
add address-pool=pool-lo interface=bridge-lo name=dhcp-lo
/ip/dhcp-server/network
add address=192.168.79.0/24 gateway=192.168.79.1

####### CREAMOS LA INTERFAZ WAN #######
# Nuestra WAN = bridge-iptv, como switch que somos
# Levantaremos un cliente DHCP para obtner IP
# y salida a internet, para poder llamar a casa
# obtendremos una ruta por defecto y un DNS
/ip/dhcp-client
add interface=bridge-iptv

########## DNS SERVER BACKUP ##########
# Le damos  un DNS de backup, por si nos
# falla el que entregue el cliente DHCP
/ip/dns
set servers=1.1.1.1,1.0.0.1

############ RUTA ESTÁTICA ############
# Esto le permitirá a Pepe administrar
# el router gorrón en remoto. Suponemos
# 192.168.88.0/24 segmento pricipal LAN
# de Pepe el cual alcanzamos al otro lado
# del túnelWireGuard, 172.17.0.1
/ip/route
add dst-address=$subredLanPepe gateway=172.17.0.1

/ip/cloud
set ddns-enabled=yes
 
Arriba