Xarx.es

Dèries. La meua llibreta d'anotacions.

Tunel Entre RouterOs-Mikrotik Y AirOs-Ubiquiti

Una de las útilidades claras de guifi.net es enlazar ubicaciones con túneles sin hacerlo a través de Internet.

En el caso que me ocupa se trata de dos nodos en los que los trastos corresponden a un Routerboard RB750 y a un MaxLink, integrado por un Wispstation5 de Ubiquiti.

Entre las referencias contaba con:

Entre esto y la ayuda de David Rubert he conseguido establecer un tunel gre y que funcione.¡Aleluya!

Primero lo intenté con pptp. Configuré el servidor en el mikrotik y, aunque no pude usar la wispstation5 como cliente si que pude hacerlo con otros clientes (móvil con Android, portatil con GNU-Linux y Network-manager).

Finalmente la configuración quedó básicamente como la que me sugería David… Suponemos que las direcciones de los extremos guifi-públicas son 10.x1.y1.z1 y 10.x2.y2.z2 mientras que las direcciones que asignamos en el túnel son 172.16.1.1/30 y 172.16.1.2/30. También usaremos 10.x2.y2.z3, el gw del extremo del airOs hacia guifi.net

En el routeros creamos la interface del tunel (de tipo GRE). Los datos importantes para ello son las ip de los extremos (públicas o guifi-públicas), la nueva mtu y el nombre del túnel. Después asignamos la ip al extremo del túnel en el lado local (el del rb750)

  /interface gre add local-address=10.x1.y1.z1 mtu=1524 name=tunel0 remote-address=10.x2.y2.z2
  /ip address add address=172.16.1.1/30 interface=tunel0 network=172.16.1.0

Si queremos salir a internet a través del túnel deberemos añadir una regla de firewall que enmascare la ip de origen (haciendo NAT) y una ruta por defecto al gw de Internet. Después haremos algo parecido en el otro extremo. En el AirOs lo que debemos hacer es crear o modificar el rc.poststart. Para ello entramos vía ssh al airOs y entonces hacemos:

  vi /etc/persistent/rc.poststart

en este archivo incluimos lo siguiente:

  # gw a guifi.net por z3
  ip route add 10.0.0.0/8 via 10.x2.y2.z3 
  # creamos tunel y levantamos
  ip tunnel add tunel0 mode gre local 10.x2.y2.z2 remote 10.x1.y1.z1
  ip link set tunel0 up
  # asignamos ip del tunel
  ip addr add 172.16.1.2/30 dev tunel0
  # default gw por tunel0 (extremo remoto)
  ip route del default
  ip route add default via 172.16.1.1 dev tunel0
  # hacemos NAT en el tunel
  iptables -t nat -A POSTROUTING -o tunel0 -j MASQUERADE

Grabamos :wq :-), hacemos que sea ejecutable y que esta configuración sea permanente. Finalmente reiniciamos el trasto.

  chmod +x /etc/persistent/rc.poststart
  cfgmtd -w -p /etc/ 
  reboot

Como comentario añadido podemos hablar del MTU. Haciendo que llegue a 1524 no habrá que trocear tramas. Otra opción sería modificar, usando una regla de mangle, el parámetro MSS en el establecimiento de las conexiones tcp, tal como sugiere Emilio. En el caso del routeros se puede hacer como se comenta en minihowto.com o en el wiki de mikrotik

Comentarios