Conexión externa a un nodo de la red bajo el router con 4G (ADSL como backup)

Hola a todos, y en especial a Pokoyo.

Ha pasado tiempo ya que el trabajo no me ha permitido sacar casi nada, y esta es una cuestión que sí veo bastante importante.

Escribo un nuevo hilo por si acaso, pero si es preferible continuar en el de la configuración, por favor, avísame y lo comento allí (https://www.adslzone.net/foro/mikro...na-rural-cantabria-starlink-no-4g-lte.586860/)

He ojeado un poquito el foro pero no sé cual es la mejor dirección para solventar este problema, ya que quizás mi caso 4G + ADSL me permite algo más. Estuve leyendo https://www.adslzone.net/foro/mikro...rt-forward-vi-tunel-bypass-lte-cg-nat.586488/ pero desconozco si es la dirección correcta y debo hacer también la otra guía anterior del túnel site to site / OSPF.

Mi objetivo: poder acceder a un servicio de un computador de la red, puntualmente, para labores de mantenimiento. Ese servicio o servidor siempre está arrancado cuando ese nodo está activo, pero quiero poder indicar a alguien de dentro de la casa que habilite algo en el router (ej. una regla de firewall) para darme paso desde fuera de la red a ese nodo específico. Estoy pensando en SSH, pero podría ser en algún momento también una página a través de HTTP/HTTPS.

He probado a hacer:

Código:
/ip/firewall/nat
add action=dst-nat chain=dstnat dst-port=11003 in-interface-list=WAN protocol=tcp to-addresses=192.168.189.13 to-ports=22


Siendo 192.168.189.13 el pc que tiene el servicio, y 11003 el puerto externo.
Claro que, habitualmente se usa 4G (siendo ADSL como backup), y supongo que esté relacionado con no poder acceder ssh -p 11003 $user@$ip-wan-sxt.

Me pregunto varias opciones, independientemente a que se necesiten más pasos que desconozco:

1. ¿Podemos hacerlo a través de la conexión via ADSL? No sé cómo obtener la IP, pues no aparece en IP/Addresses.
2. ¿Compensa hacerlo de las dos maneras, 4G y ADSL, incluyendo también una que solvente el problema de CG-NAT mencionado en algún hilo? "Necesitas un proveedor móvil que te asegure IP estática. Las conexiones 4G suelen ser todas bajo CG-NAT (no tienes ip pública, sino que compartes una con muchos usuarios), no pudiendo hacer este tipo de implementaciones."
2. Sea via ADSL o 4G/SXT, ¿cómo funciona el mecanismo de publicar la IP teniendo ambos modos con respecto a los servidores dinámicos de DNS para actualizar la IP periódicamente? Antes usaba duckdns.org y un script en el propio pc para actualizarla. Con lo puesto en la guía de trucos de RouterOS parece que puedo prescindir de duckdns, pero desconozco cómo va a afectar mi configuración 4G o ADSL. "Truco: Usar un dominio tipo DynDNS con mi equipo mikrotik"



Edito: aprovecho para indicar que para "abrir los puertos del router" para el amule, hice lo siguiente, y funcionó. Por si he metido la pata y hubiese sido mejor alguna otra vía.

Código:
/ip firewall nat add chain=dstnat dst-port=4661 protocol=tcp action=dst-nat to-address=192.168.189.22 to-ports=4661

Gracias de antemano.
 
En tu caso, tiraría de la opción ADSL, siempre y cuando comprobemos que tu conexión 4G principal no tiene IP pública (lo más probable), montando un túnel VPN. No expongas servicios al exterior abriendo puertos (con el amule y similares no te queda más remedio) pero intenta reducir el número de puertos expuestos al exterior en todo lo posible.

Es decir, en lugar de mapear el puerto X en el NAT, y mandárselo a tal o cual equipo, vamos a abrir un puerto a nivel de firewall, para el propio router, y a montar un servicio de VPN. De esa manera, sea para ver ese equipo concreto o para cualquier otra cosa, ya lo tienes ahí, para lo que necesites.

En tu caso, la mayor triquiñuela que tendremos que hacer es forzar que el servicio DDNS que nos regala mikrotik, se mantenga actualizado usando la IP pública de la ADSL, si comprobamos que, como sospecho, la conexión principal no lleva una IP pública que puedas aprovechar.

Echa un vistazo porfa a lo que tienes en IP -> Address. Si lo tienes como lo dejamos, deberías tener dos IP's WAN por las que estarías saliendo: la que viene de la 4G, sobre la interfaz vlan-wan-sxt (si no las has renombrado de como lo dejamos) y otra IP pública que venga de la interfaz PPPoE del ADSL. Si tienes dudas de si son o no públicas, mándamelas por privado, o pon un pantallazo aquí donde se vean los dos primeros octetos de la dichas IPs (enmascaras o emborronas los dos últimos, de los 4 octetos totales que lleva una IP). Todo esto lo hablo del hAP-ac3, por si hay alguna duda.

Como tipo de VPN, te recomiendo usar Wireguard.

Con respecto al mapeo de puertos para el amule, hazle un pequeño ajuste. De la manera que lo tienes, estás secuestrando el tráfico de ese puerto en toda la red, no importa la dirección (puesto que no la especificas). Si usas como filtro la interfaz WAN, sí que especificas que ese puerto sólo se abra en un sentido, desde internet hacia tu red. Quedaría así:
Código:
/ip firewall nat 
add chain=dstnat in-interface-list=WAN dst-port=4661 protocol=tcp action=dst-nat to-address=192.168.189.22 to-ports=4661

Sospecho que tendrás alguno más abierto tipo UDP, así que haz la misma modificación. Si no quieres rehacer la regla, con editarla en winbox, tienes el filtro en la primera pestaña.

1665253283857.png


¿Dime, qué te parece la propuesta? ¿Le damos caña? (mañana ya probablemente)

Saludos!
 
En tu caso, tiraría de la opción ADSL, siempre y cuando comprobemos que tu conexión 4G principal no tiene IP pública (lo más probable), montando un túnel VPN. No expongas servicios al exterior abriendo puertos (con el amule y similares no te queda más remedio) pero intenta reducir el número de puertos expuestos al exterior en todo lo posible.

Es decir, en lugar de mapear el puerto X en el NAT, y mandárselo a tal o cual equipo, vamos a abrir un puerto a nivel de firewall, para el propio router, y a montar un servicio de VPN. De esa manera, sea para ver ese equipo concreto o para cualquier otra cosa, ya lo tienes ahí, para lo que necesites.

En tu caso, la mayor triquiñuela que tendremos que hacer es forzar que el servicio DDNS que nos regala mikrotik, se mantenga actualizado usando la IP pública de la ADSL, si comprobamos que, como sospecho, la conexión principal no lleva una IP pública que puedas aprovechar.

Echa un vistazo porfa a lo que tienes en IP -> Address. Si lo tienes como lo dejamos, deberías tener dos IP's WAN por las que estarías saliendo: la que viene de la 4G, sobre la interfaz vlan-wan-sxt (si no las has renombrado de como lo dejamos) y otra IP pública que venga de la interfaz PPPoE del ADSL. Si tienes dudas de si son o no públicas, mándamelas por privado, o pon un pantallazo aquí donde se vean los dos primeros octetos de la dichas IPs (enmascaras o emborronas los dos últimos, de los 4 octetos totales que lleva una IP). Todo esto lo hablo del hAP-ac3, por si hay alguna duda.

Como tipo de VPN, te recomiendo usar Wireguard.

Con respecto al mapeo de puertos para el amule, hazle un pequeño ajuste. De la manera que lo tienes, estás secuestrando el tráfico de ese puerto en toda la red, no importa la dirección (puesto que no la especificas). Si usas como filtro la interfaz WAN, sí que especificas que ese puerto sólo se abra en un sentido, desde internet hacia tu red. Quedaría así:
Código:
/ip firewall nat
add chain=dstnat in-interface-list=WAN dst-port=4661 protocol=tcp action=dst-nat to-address=192.168.189.22 to-ports=4661

Sospecho que tendrás alguno más abierto tipo UDP, así que haz la misma modificación. Si no quieres rehacer la regla, con editarla en winbox, tienes el filtro en la primera pestaña.

Ver el adjunto 100014

¿Dime, qué te parece la propuesta? ¿Le damos caña? (mañana ya probablemente)

Saludos!
Hola, Pokoyo.

Me parece perfecto, gracias. Ahora bien, hoy domingo solo estaré un par de horas, pero calculo que a finales de semana pueda volver trabajar en ello.

Sí, eso es lo que me extrañaba, que no saliese ninguna dirección IP asociada al ADSL, cosa que vi en el pasado.

1665294772138.png

Trataré de buscar este otro problema, a ver por qué no sale, pues no puedo acceder al router neutro de movistar (192.168.1.1). Salen los leds: ADSL intermitente, Ethernet y Power, pero no Internet. He probado a resetear el router movistar y nada, sigue sin aparecer.

Hecho el ajuste para amule a WAN. No tengo más puertos abiertos, ni UDP.


Edito: pude entrar a traves de 192.168.0.1 en el router movistar pero no veo nada raro. Adjunto captura del interfaz "adsl" en RouterOS, por si se ve algo raro:

1665301832128.png

Gracias.
 
Última edición:
Hola, Pokoyo.

Me parece perfecto, gracias. Ahora bien, hoy domingo solo estaré un par de horas, pero calculo que a finales de semana pueda volver trabajar en ello.

Sí, eso es lo que me extrañaba, que no saliese ninguna dirección IP asociada al ADSL, cosa que vi en el pasado.

Ver el adjunto 100044
Trataré de buscar este otro problema, a ver por qué no sale, pues no puedo acceder al router neutro de movistar (192.168.1.1). Salen los leds: ADSL intermitente, Ethernet y Power, pero no Internet. He probado a resetear el router movistar y nada, sigue sin aparecer.

Hecho el ajuste para amule a WAN. No tengo más puertos abiertos, ni UDP.

Gracias.
OK; en ese caso tienes un problema con el cliente PPPoE (que debería salir en esa lista y no sale) o con el módem ADSL. Si vas a los logs del mikrotik, deberías tener un cerro de avisos de intento de conexión infructuosa del cliente PPPoE. Es decir, estás tirando ahora mismo sin failover, sólo con la conexión 4G.

Lo bueno es que dicha conexión te está dando IP pública, así que podemos montar la VPN tal cual (te dejaré igualmente por aquí documentada la trampa, por si en algún momento pierdes esa IP pública de la conexión 4G, y te toca forzarlo con la conexión secundaria ADSL).

Si te parece, hoy lo dedicamos a documentarlo, y la siguiente vez cuando tengas tiempo lo aplicamos. Léete el manual de Wireguard a fondo, tu tipo de conexión sería un tipo road warrior, la primera que se describe. Ve también instalando Wireguard en tu teléfono y/o en los equipos cliente desde los que vayas a querer acceder a tu red. Hay clientes para todos los sistemas operativos, así que descuida, que esa parte es sencilla.

Lo que sí que puedes ir activando es el dominio ddns que nos regala mikrotik con cada equipo. En el hAP-ac3, ve a IP > Cloud y marca la opción de DDNS, y pulsas aplicar. En unos segundos, verás un chorizo, compuesto por el número de serie del equipo .sn.mynetname.net, que resuelve tu IP pública, esa 37.12… de tu pantallazo. Si posees algún dominio propio dime, y creamos un a esa dirección, tal que el string de conexión de la VPN sea más sencillo de recordar. Si desde fuera de casa haces ping a ese chorizo, deberías obtener respuesta de tu router, tal y como está ahora mismo

Cuando tengas esas cosillas listas y más o menos claro el procedimiento con el manual, me dices y le metemos mano. Como siempre, guarda backup y export de lo que tienes, antes de que nos liemos a tocar.

Y, cuando acabemos, recuérdame que te enseñe un truco para recibir una notificación cuando se te cae la interfaz PPPoE. El router puede monitorizarla y, aprovechando que tienes una conexión 4G y que seguramente los sms están incluidos en tu tarifa, mandarte un mensajito cuando dicha conexión se vaya al cuerno o se recupere.

Saludos!
 
Te lo dejo documentado, entre esto y el manual, no deberías tener problemas en echarlo a andar.
Código:
# Habilitamos  IP Cloud (DDNS Mikrotik)
/ip cloud
set ddns-enabled=yes

# Creamos la interfaz wireguard
# Cambia el puerto por el que mejor te parezca
/interface wireguard
add listen-port=12345 name=wireguard-rw

# La direccionamos
/ip address
add address=192.168.186.1/24 interface=wireguard-rw

# Aceptamos el tráfico en el chain de input del firewall
# (cambia el puerto por el elegido)
/ip firewall filter
add action=accept chain=input comment="vpn: allow wireguard-rw" \
  dst-port=12345 protocol=udp \
  place-before=[find comment="defconf: drop all not coming from LAN"]

# Imprimimos por terminal la clave pública de la nueva interfaz
# esta habrá que llevársela al dispositivo, para configurar el router
# como peer. Copiar la clave, incluído el símbolo "=" del final
:put [/interface/wireguard/get [find name=wireguard-rw] public-key]

# Creamos un peer que representa el chisme remoto que se conecta
# La clave pública ha de ser la que genera dicho cacharro, asociada
# a su clave privada. Cambiar "XXX=" por la verdadera
/interface wireguard peers
add allowed-address=192.168.186.2/32 comment=PeerX interface=wireguard-rw \
    public-key="XXX="

Y, para forzar que la VPN siempre vaya por la conexión secundaria ADSL, sería de la siguiente manera (esto, de momento, omítelo):
Código:
# Creamos una nueva tabla de rutas
/routing table
add fib name=adsl

# Creamos una nueva lista de direcciones
# apuntando al servicio de cloud ddns de mikrotik
/ip firewall address-list
add address=cloud2.mikrotik.com list=ddns

# Marcamos los paquetes que salen del router,
# con destino los servidores DDNS de Mikrotik,
# para que sólo salgan por la tabla de rutas "adsl"
# de esta manera el DDNS apuntará a la IP pública
# de la conexión secundaria, en lugar de la principal
/ip firewall mangle
add action=mark-routing chain=output dst-address-list=ddns \
  new-routing-mark=adsl passthrough=yes

# Creamos una regla para que lo que entre por la interfaz wireguard
# siempre use la nueva routing table
/routing rule
add action=lookup-only-in-table disabled=no interface=wireguard-rw \
  src-address=192.168.186.0/24 table=adsl

# Creamos una ruta específica para los paquetes con
# la marca "adsl" para su routing table
/ip route
add comment=forced-through-adsl gateway=adsl routing-table=adsl

Cuando te vayas a poner a ello, me das un toque y lo vemos juntos si quieres.

Saludos!
 
Última edición:
Hola, Pokoyo.

Por fin he conseguido arreglar el problema de la ADSL, ahora ya está como al inicio. Fue un problema de ratas que llegaron a morder los cables por la instalación.

Disculpa la tardanza.

He hecho los pasos que me indicas, y es una pena porque no dispongo de otro computador para probar, así que lo he hecho desde el móvil. Al final el objetivo es poder conectarse desde el otro peer y hacer operaciones de mantenimiento, estando dentro de la red de casa e incluso poder ir haciendo ssh a distintos nodos.

Desde el móvil no sé cómo probar si está funcionando, pero desde luego internet no me va, y he probado desde dos navegadores.

1667146274846.png

1667145807998.png

Y desde el móvil:

wireguard-conexion1.jpg

wireguard-conexion2.jpg

He instalado una aplicación para tratar de detectar las IPs y demás. Con wireguard activado:

ip-tools-con-wireguard.jpg

(no hay conexión y no da IP publica)

Con wireguard desactivado:
ip-tools-sin-wireguard.jpg

Además, he probado y hay resolución correcta del DNS dado por DDNS. El acceso al puerto ni idea.

Hoy mismo tengo las IPs 100.72.XX.YY/30 (vlan-wan-sxt) y 176.84.XX.YY (adsl). Aunque la IP pública (whatismyip) me da 90.167.XX.YY (la que me resuelve el DNS de DDNS). Y en Address List veo también la 192.168.186.1/24 (wireguard-rw).

A ver si sabes donde he errado. Supongo que una vez conectado podría hacer ssh -p 2222 $ip_nodo_local_red_home (eg. 192.168.189.200), ¿cierto? Y ya sabría que tiene que pasar por internet a través de la VPN y luego conectarse a la máquina de la red local por el puerto 2222 (o 22 si tengo el por defecto)

Por otro lado, sí estoy interesada en conocer cuándo se cae la red. Es más, sería ideal saber tanto la del SXT como la del ADSL, ¿hay alguna manera de tener un registro? No es necesario siquiera que me notifique, con poder consultarlo puntualmente, me vale, por conocer el estado real de la red y sus históricos (eg. promedios, caidas diarias, tiempo sin conexión, etc).

Por cierto, cambié de Movistar a Orange, aunque no fuese tan potente, pero es que los de movistar siempre han sido unos caraduras, cobrando más de lo que deben y haciendo chanchullos... como cobrarte por servicios que no usas. Ya sabes, tienen el monopolio en los pueblos y juegan con nosotros todo lo que quieren. El ADSL por desgracia, no puedo cambiarlo, pero al menos que no reciban ni un duro por la conexión 4G. Orange no es la más potente, pero gracias a todas las pruebas de Agosto, he ido a tiro hecho y me vale, pues suele ser unos 26 down 25 up y ping 38.


Gracias por tu ayuda. :)

Disculpa si tardo en responder, muchísimos frentes y este es otro extra que ahora, por motivos de trabajo, no puedo hasta que no llega el fin de semana (y tengo dos ocupados por delante con viajes).
 
Última edición:
Pásame un export del equipo y mañana le echo un vistazo tranquilamente (me pillas fuera)

Saludos!
 
Relativo al wireguard: lo único que veo mal en la configuración que te pasé, y que veo que ya lo has corregido tú, es el "=" que faltaba en la instrucción que metía la regla de firewall que acepta el tráfico de wireguard: "place-before=[find ...]" Por lo demás, y a simple vista, está todo OK (cuando puedas y me pases el export, lo reviso a fondo)

Para probarlo, olvídate de aplicaciones en el móvil: simplemente intenta abrir cualquier web interface de algo que corra dentro de tu red local. El móvil conectado a wireguard debería llegar a toda tu red local, salvo al propio router (si quieres que acceda también a él, hay que meter una regla adicional en input). Por ejemplo, deberías poder llegar a la SXT, si pones en el navegador del móvil la 192.168.190.1. Si a eso llegas, por ssh deberías llegar a cualquiera de los elementos que cuelgan del router.

Hoy mismo tengo las IPs 100.72.XX.YY/30 (vlan-wan-sxt) y 176.84.XX.YY (adsl). Aunque la IP pública (whatismyip) me da 90.167.XX.YY (la que me resuelve el DNS de DDNS). Y en Address List veo también la 192.168.186.1/24 (wireguard-rw).
Si tienes IP no pública en lo que viene de la SXT, por narices tienes que ejecutar la segunda del script que te pasé para que la entrada a la VPN siempre sea por la ADSL. Esa es la única restricción que creo que te puede estar pasando, que intentes conectar y no haya ip pública en la SXT, así que por mucho que nosotros abramos puertos en input, habrá un router por encima que no lo tendrá abierto. WireGuard es un poco cabrón, en el sentido de que él siempre levanta, porque cada extremo del túnel es independiente del otro, y simplemente espera que haya una fase de encuentro mutuo en el medio (handshake) para funcionar. Por eso tú cuando le des yesca a la app en el móvil, siempre vas a ver que funciona, así que eso no es relevante. Así que, si la ADSL ya está funcionando, es momento de montar lo otro. O, si quieres y me haces de conejilllo de indias, montamos Zerotier, que tengo ganas de probarlo. En la v7 se soporta y es una especie de VPN virtual transparente que une tu router y tus dispositivos entre sí usando este portal de por medio:
Lo bueno que tiene, que que como es el propio servicio de zerotier quien hace de intermedio, no es necesario que ninguno de los extremos tengan IP pública para comunicarse entre sí: https://www.zerotier.com/


A ver si sabes donde he errado. Supongo que una vez conectado podría hacer ssh -p 2222 $ip_nodo_local_red_home (eg. 192.168.189.200), ¿cierto? Y ya sabría que tiene que pasar por internet a través de la VPN y luego conectarse a la máquina de la red local por el puerto 2222 (o 22 si tengo el por defecto)
Correcto.

Por otro lado, sí estoy interesada en conocer cuándo se cae la red. Es más, sería ideal saber tanto la del SXT como la del ADSL, ¿hay alguna manera de tener un registro? No es necesario siquiera que me notifique, con poder consultarlo puntualmente, me vale, por conocer el estado real de la red y sus históricos (eg. promedios, caidas diarias, tiempo sin conexión, etc).
Muy sencillo: en los logs del hAP-ac3 puedes ver las caídas del PPPoE con bastante facilidad. Y, en el de la SXT, igualmente con la interfaz LTE. Si quieres, podemos poner un script que lo monitoree y te lo reporte vía mail, tirando de netwatch o simplemente con los eventos on-up/on-down del PPPoE. Para buscar en los logs usa el patrón "interfazX link up" / "interfazX link down". Y, si tienes cualquier máquina linux en local que suela estar encendida (tipo un NAS o raspberry pi o similar) con un servidor de syslog instalado (ejemplo: https://pimylifeup.com/raspberry-pi-syslog-server/) le puedes tirar los logs de ambos mikrotik para que tengan persistencia y no se pierdan cuando se reinician (incluso los equipos pueden escribirlos a fichero, aunque eso no te lo recomiendo demasiado). Te paso un ejemplo de cómo vuelco a un NAS los eventos de error de log de mi router:
Código:
/system logging action
add bsd-syslog=yes name=nas remote=192.168.77.5 syslog-facility=syslog \
    syslog-severity=warning target=remote
/system logging
add action=nas topics=error

Por cierto, cambié de Movistar a Orange, aunque no fuese tan potente, pero es que los de movistar siempre han sido unos caraduras, cobrando más de lo que deben y haciendo chanchullos... como cobrarte por servicios que no usas. Ya sabes, tienen el monopolio en los pueblos y juegan con nosotros todo lo que quieren. El ADSL por desgracia, no puedo cambiarlo, pero al menos que no reciban ni un duro por la conexión 4G. Orange no es la más potente, pero gracias a todas las pruebas de Agosto, he ido a tiro hecho y me vale, pues suele ser unos 26 down 25 up y ping 38.
Seguro que no puedes cambiar el ADSL? Mira que eso está ya liberalizado desde hace mucho tiempo. Creo que pepephone sigue teniendo clientes bajo ADSL, mira a ver si te da servicio. Como empresa, son para quererlos mucho.

Gracias por tu ayuda. :)

Disculpa si tardo en responder, muchísimos frentes y este es otro extra que ahora, por motivos de trabajo, no puedo hasta que no llega el fin de semana (y tengo dos ocupados por delante con viajes).
Descuida, los tiempos los marcas tú, yo suelo estar por aquí, así que prisa ninguna.

Saludos!
 
Muchas gracias, Pokoyo. No te leí hasta hoy, y ya estoy fuera. Haré las pruebas que pueda en remoto mediante la conversación con un familiar, y las que no, cuando vuelva a estar por casa, aunque sea dentro de 3 semanas. Te informaré :)
Pasa un buen día y gracias de nuevo.

PD: Pepephone lo tengo en mi teléfono y ya no cambio ni en pintura, como compañía, de 10. El problema es que con la ADSL en el pueblo estamos vendidos, todas las pruebas que hicimos con otros siempre salieron mal, y parece ser que era la propia movistar quie limitaba aún más al resto.
 
1668544530470.png


Hola Pokoyo:

Aquí tengo las IP Addresses actuales. ¿Me puede estar dando guerra esto tanto para el amule/emule como para la VPN wireguard? ¿O tengo el problema en otro lado, conociendo la configuración que te pasé?

Un saludo!
 
Sí, me temo que sí. Esa 100. algo es una IP privada, no pública. Te toca implementar la parte segunda que que pasé, para que las conexiones entrantes vayan por la interfaz adsl.

Saludos!
 
Arriba