MANUAL: Mikrotik, WireGuard VPN a fondo (RW + STS)

Otra consulta!
¿Y como seria para sobre STS en la parte B que todo el trafico tire por el tunel?
Me auto-respondo

Me ha funcionado de esta forma pero no se si es lo correcto.
He creado una nueva tabla de enrutamiento (Routing>>Tables) le he añadido una regla (Routing>>Rules) para que todo el trafico LAN con destino 0.0.0.0 use la anterior tabla y luego una regla de enrutamiento (IP>>Routes) que todo el destino 0.0.0.0 use como GW el ip del punto A del STS y con la tabla de enrutamiento creada anteriormente.

PD: veo que ya me habias respondido @pokoyo, gracias! si asi me ha funcionado. No lo usare de normal pero era por tener controlado como se hace.
 
Eso es, perfecto. Y si en la acción de la routing rule le pones “lookup”, probará a tirarlo por esa tabla, y si no puede, lo hará por la “main”. Y, si le pones “lookup-only-in-table”, fallará si no puede sacar el tráfico por esa tabla de rutas, puesto que no mirará otra.

Saludos!
 
Eso es, perfecto. Y si en la acción de la routing rule le pones “lookup”, probará a tirarlo por esa tabla, y si no puede, lo hará por la “main”. Y, si le pones “lookup-only-in-table”, fallará si no puede sacar el tráfico por esa tabla de rutas, puesto que no mirará otra.

Saludos!
Gracias, eres un crack!
Una consulta, al enrutar todo el trafico he probado a meter un test de velocidad y me saca unos 35/35 megas tirando de hAP Lite sobre fibras de 300/300.
Son valores normales o me esta dando poco rendimiento?
 
Gracias, eres un crack!
Una consulta, al enrutar todo el trafico he probado a meter un test de velocidad y me saca unos 35/35 megas tirando de hAP Lite sobre fibras de 300/300.
Son valores normales o me esta dando poco rendimiento?
Yo diría que son valores normales, tirando a buenos, dado el hardware usado
 
Gracias, eres un crack!
Una consulta, al enrutar todo el trafico he probado a meter un test de velocidad y me saca unos 35/35 megas tirando de hAP Lite sobre fibras de 300/300.
Son valores normales o me esta dando poco rendimiento?
Sí, ese equipo no da para más. Si chequeas la cpu durante el test la verás prácticamente al 100%.

Saludos!
 
Eso es, perfecto. Y si en la acción de la routing rule le pones “lookup”, probará a tirarlo por esa tabla, y si no puede, lo hará por la “main”. Y, si le pones “lookup-only-in-table”, fallará si no puede sacar el tráfico por esa tabla de rutas, puesto que no mirará otra.

Saludos!
Otra duda!
Si activo el tema del routeo para que todo el trafico salga por la conexion STS, como puedo hacer para no perder el acceso a la LAN que monta el Hap Lite? ya sea por acceso al aparato o porque por ejemplo tengo una impresora de red conectada.
Gracias
 
Otra duda!
Si activo el tema del routeo para que todo el trafico salga por la conexion STS, como puedo hacer para no perder el acceso a la LAN que monta el Hap Lite? ya sea por acceso al aparato o porque por ejemplo tengo una impresora de red conectada.
Gracias
No deberías perder ese acceso, es un acceso en L2 (no pasas por firewall ni routing table, que yo sepa). Sino, dibújalo explicando la casuística del problema y mándame exports de ambos lados, que veamos dónde está el problema.

Saludos.
 
No deberías perder ese acceso, es un acceso en L2 (no pasas por firewall ni routing table, que yo sepa). Sino, dibújalo explicando la casuística del problema y mándame exports de ambos lados, que veamos dónde está el problema.

Saludos.
Buenas

Pues me ocurre cuando saco todo el trafico incluido el WAN por el tunel STS entonces pierdo el acceso a la LAN local, es como si intentara enrutar también ese trafico y se queda loco...
Te paso la config del hAP Lite (esta un poco a lo loco porque voy probando cosas)
Código:
/interface bridge
add admin-mac=B8:69:F4:BD:28:FD auto-mac=no comment=defconf name=bridge
/interface wireguard
add listen-port=13232 mtu=1420 name=WireGuardSTS
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa2-psk mode=dynamic-keys \
    supplicant-identity=MikroTik
add authentication-types=wpa2-psk mode=dynamic-keys name=local-security \
    supplicant-identity=""
/interface wireless
set [ find default-name=wlan1 ] band=2ghz-b/g/n country=spain \
    default-forwarding=no disabled=no frequency=auto mode=ap-bridge \
    security-profile=local-security ssid=MKTHapLite
add keepalive-frames=disabled mac-address=BA:69:F4:BD:29:01 master-interface=\
    wlan1 multicast-buffering=disabled name=wifi-local security-profile=\
    local-security ssid=MKTHapLite wds-cost-range=0 wds-default-cost=0 \
    wps-mode=disabled
/ip pool
add name=default-dhcp ranges=192.168.168.100-192.168.168.150
/ip dhcp-server
add address-pool=default-dhcp interface=bridge name=defconf
/routing table
add comment="STS routes" disabled=no fib name=STS
/interface bridge port
add bridge=bridge comment=defconf ingress-filtering=no interface=ether2
add bridge=bridge comment=defconf ingress-filtering=no interface=ether3
add bridge=bridge comment=defconf ingress-filtering=no interface=ether4
add bridge=bridge interface=wlan1
/interface detect-internet
set detect-interface-list=WAN
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/interface wireguard peers
add allowed-address=172.16.1.1/32,192.168.2.0/24,0.0.0.0/0 comment=\
    "STS Central" endpoint-address=xxxx endpoint-port=xxxx \
    interface=WireGuardSTS public-key=\
    "xxxxxxx"
/ip address
add address=192.168.168.1/24 comment=defconf interface=bridge network=\
    192.168.168.0
add address=172.16.1.2/30 interface=WireGuardSTS network=172.16.1.0
/ip cloud
set ddns-enabled=yes
/ip dhcp-client
add comment=defconf interface=ether1 use-peer-dns=no
/ip dhcp-server network
add address=192.168.168.0/24 comment=defconf dns-server=1.1.1.1,8.8.8.8 \
    gateway=192.168.168.1
/ip dns
set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8
/ip dns static
add address=192.168.168.1 name=router.lan
/ip firewall address-list
add address=192.168.168.0/24 list=LAN
/ip firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment=WireGuard in-interface=WireGuardSTS
add action=accept chain=input comment=WireGuard dst-port=13232 protocol=udp
add action=accept chain=input comment="LAN Acept" in-interface-list=LAN
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
    in-interface-list=!LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related hw-offload=yes
add action=accept chain=forward comment=\
    "defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN
add action=drop chain=input comment="Default drop"
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    ipsec-policy=out,none out-interface-list=WAN
/ip route
add comment="Lan Central" disabled=no distance=1 dst-address=192.168.2.0/24 \
    gateway=172.16.1.1 pref-src="" routing-table=main scope=30 \
    suppress-hw-offload=no target-scope=10
add comment="Wan to Central" disabled=no distance=1 dst-address=0.0.0.0/0 \
    gateway=172.16.1.1 pref-src="" routing-table=STS scope=30 \
    suppress-hw-offload=no target-scope=10
/routing rule
add action=lookup comment="STS all Wan" disabled=no dst-address=0.0.0.0/0 \
    src-address=192.168.168.0/24 table=STS
/system identity
set name=MikroTikHapLite
 
Edita la routing rule, y le añades el interface = bridge. Quedaría así:
Código:
/routing rule
add action=lookup comment="STS all Wan" disabled=no dst-address=0.0.0.0/0 \
    src-address=192.168.168.0/24 table=STS inteface=bridge

Saludos!
 
A ver, vamos por partes, que creo que ya he dilucidado tu problema. Lo que tú estás pintando es una conexión site to site (entre routers, que no es tu caso), y sin embargo tu problema es que tienes dos extremos, A y B (empresa / casa) con el mismo segmento de red, y un tío que, en cualquiera de esos sitios, se quieres conectar en modo road-warrior al otro. ¿es así? Es decir, este que pinto a continuación es tu esquema:




Siendo 192.168.155.x la que sea la subred que hayas elegido para wireguard (no se te ocurra intentar montarlo sobre la 192.168.0.x, o sí que no te va a funcionar nada de nada).

Teniendo esto en cuenta, tu problema es muy sencillo: la tabla de rutas del equipo cliente tiene una ruta por defecto que apunta al gateway del router de tu casa, por donde tienes que salir a internet. Además de eso, esa ruta tiene una distancia 0 para la interfaz física que te conecta a ella. Siendo así, tu tabla de rutas siempre va a resolver que, para una IP 192.168.75.x, vayas a tu router, y no por el túnel. Básicamente, tienes tres opciones:

  • La buena: que el segmento de red de la oficina cambie, tal que ese router opere en una subred de clase B, más adecuada para oficinas.
  • La compleja: que modifiques tu tabla de rutas el equipo correspondiente (el pc que se conecta en modo RW), para trucar dicha tabla y que todo el tráfico a esa subred pase por el túnel (te vas a quedar sin acceso al resto de dispositivos de tu red local). Más info, aquí.
  • La ñapa: que modifiques el allowed address y, en lugar de 0.0.0.0/0, le des las IPs específicas a las que quieres acceder. Por ejemplo, si el servidor tuviera la 192.168.0.5 y en los DNS de wireguard tuvieras configurado el 1.1.1.1 para resolver internet, tu allowed address sería la 192.168.155.1 (suponiendo que es la IP wireguard el otro extremo), 1.1.1.1, 192.168.75.5. De esa manera, se crearía una ruta /32 a esa IP que precedería a la tuya por defecto, no yendo a buscar esa IP en tu red local, sino por el túnel. Es decir, allowed-address=192.168.155.1, 1.1.1.1, 192.168.75.5

Saludos!
Muchas gracias por tu ayuda, ya he entendido un poco más esto.
Una duda, en allowed-address no se puden poner rangos? por ejemplo allowed-address=192.168.101.0/24, 1.1.1.1, 192.168.75.5 ?
Lo he intentado pero me sale en rojo como si no lo aceptara, pensaba que podria crear una ruta diferente si lo separaba por coma.

Esto no recuerdo que me pasará con lt2p o openvpn (hace un par de años que no hago vpn's).

Muchas gracias!
 
Última edición:
Si vas a usar el propio router como DNS, con una regla de redirect te vale:
Código:
/ip firewall nat
add action=redirect chain=dstnat dst-port=53 protocol=tcp to-ports=53
add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53

A partir de ese momento, toda petición DNS la resolverá el propio router.

Y si tu DNS es externo al propio router, se hace igualmente con una regla de NAT, solo que es algo más complejo no bloquearte a ti mismo la resolución de nombres del propio servidor DNS, la que necesita para trabajar.

Saludos!
Hola pokoyo

Y si tengo el pihole sería con las mismas reglas o se considera como dices DNS externo? Gracias.

Saludos
 
Muchas gracias por tu ayuda, ya he entendido un poco más esto.
Una duda, en allowed-address no se puden poner rangos? por ejemplo allowed-address=192.168.101.0/24, 1.1.1.1, 192.168.75.5 ?
Lo he intentado pero me sale en rojo como si no lo aceptara, pensava que podria crear una ruta diferente si lo separava por coma.

Esto no recuerdo que me pasará con lt2p o openvpn (hace un par de años que no hago vpn's).

Muchas gracias!
Si lo haces vía winbox, hay una pestaña, como una flecha hacia abajo. Cada valor va en una línea. Si lo metes por vía de comandos, es como tú dices, separado por coma.

Saludos!
 
Hola pokoyo

Y si tengo el pihole sería con las mismas reglas o se considera como dices DNS externo? Gracias.

Saludos
Es más complejo, porque tienes que excepcionar el tráfico del propio pi-hole, con sus servidores de upstream (los públicos). Ese no le puedes mandar al propio pi-hole, o la lías embuclándolo.

Saludos!
 
Es más complejo, porque tienes que excepcionar el tráfico del propio pi-hole, con sus servidores de upstream (los públicos). Ese no le puedes mandar al propio pi-hole, o la lías embuclándolo.

Saludos!
Persona si soy muy cerrado y no lo pillo bien, pero si tengo pihole de servidor DNS de mi red y si se considera DNS externo no podré usarlo como DNS dentro de la wireguard. ¿Es correcto? Gracias
 
Persona si soy muy cerrado y no lo pillo bien, pero si tengo pihole de servidor DNS de mi red y si se considera DNS externo no podré usarlo como DNS dentro de la wireguard. ¿Es correcto? Gracias
Esto pasa por asaltar hilos que no tienen nada que ver con lo que estás preguntando. Me has citado una respuesta sobre cómo secuestrar el dns en la red, que planteó otro y usuario, y sobre eso te he respondido. Pero ya veo que de eso no va tu pregunta.

Respondiendo a tu pregunta: sí, puedes usar un pi-hole como dns de tu conexión wireguard, sin más configuración adicional que entregar esa IP en el dns del peer.

Recordad que los hilos de los manuales están para responder a dudas sobre el setup que ahí se describe en concreto, no sobre las alternativas mil que se os puedan ocurrir. Para ello, abrid hilos específicos (si queréis citad este como referencia de dónde partes), porque sino esto es un mareo para el que venga buscando algo concreto.

Saludos!
 
Esto pasa por asaltar hilos que no tienen nada que ver con lo que estás preguntando. Me has citado una respuesta sobre cómo secuestrar el dns en la red, que planteó otro y usuario, y sobre eso te he respondido. Pero ya veo que de eso no va tu pregunta.

Respondiendo a tu pregunta: sí, puedes usar un pi-hole como dns de tu conexión wireguard, sin más configuración adicional que entregar esa IP en el dns del peer.

Recordad que los hilos de los manuales están para responder a dudas sobre el setup que ahí se describe en concreto, no sobre las alternativas mil que se os puedan ocurrir. Para ello, abrid hilos específicos (si queréis citad este como referencia de dónde partes), porque sino esto es un mareo para el que venga buscando algo concreto.

Saludos!
@pokoyo Mis disculpas por desviarme del tema del post y gracias por responder igualmente. Lo siento.

Saludos
 
buenas, he configurador la vpn wireguard para acceder desde fuera con mi iphone, he seguido todos los pasos , pero cuando conecto la vpn mi tlf no navega , pero en el router en wireguard veo que el rx y tx se mueven , pero no puedo navegar.
 
Arriba