Conexión de múltiples zonas Vultr con N2N

N2N es una aplicación VPN de capa 2/3 de código abierto. A diferencia de muchos otros programas VPN, N2N puede conectar computadoras ubicadas detrás de un enrutador NAT. Esto ofrece una gran ventaja para conectarse a un entorno de nube sin tener que depender de protocolos especiales como el protocolo ESP (utilizado por ipsec). Para lograr esta conexión, N2N usa un supernodo que puede enrutar la información entre los nodos NAT. Esta conexión VPN se puede utilizar para conectar varias instancias de Vultr entre regiones juntas.

Prerrequisitos

En este ejemplo, utilizaremos tres nodos en varias zonas:

  • París
  • Miami
  • Sydney

Instalación del software.

Los siguientes comandos se ejecutarán en cada instancia.

Comience instalando build-essentialdesde el repositorio y también libssl-dev, ya que construiremos a partir del código fuente más nuevo.

apt-get install -y build-essential libssl-dev

A continuación, descargue el código fuente de github.

cd /tmp
git clone https://github.com/ntop/n2n.git

Compila todos los binarios.

cd n2n 
make
make install

El make installcomando habrá creado los binarios supernodey edgeen el /usr/sbindirectorio. Termine limpiando los archivos.

rm -rf /tmp/n2n

Instalación - Node Paris

El primer nodo será nuestro llamado supernodo. Este supernodo iniciará el servicio de supernodo que escuchará en el puerto UDP 1200. Por defecto, la aplicación N2N no crea un archivo de servicio. Entonces tendremos que proporcionar el nuestro.

Cree el archivo de servicio 'n2n_supernode':

nano /etc/systemd/system/n2n_supernode.service

Agregue el siguiente contenido:

[Unit]
Description=n2n supernode
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/supernode -l 1200

[Install]
WantedBy=multi-user.target

La directiva '-l' define el puerto UDP 1200. Este es el puerto en el que escuchará el supernodo. Para asegurarse de que todo funciona, inicie el servicio de supernodo:

systemctl start n2n_supernode

Verifique el estado del supernodo.

systemctl status n2n_supernode

Esto mostrará un estado similar al siguiente.

● n2n_supernode.service - n2n supernode
   Loaded: loaded (/etc/systemd/system/n2n_supernode.service; disabled; vendor prese
   Active: active (running) since Wed 2018-08-15 17:07:46 UTC; 5s ago
 Main PID: 4711 (supernode)
    Tasks: 1
   Memory: 80.0K
      CPU: 1ms
   CGroup: /system.slice/n2n_supernode.service
           └─4711 /usr/sbin/supernode -l 1200

A continuación crearemos el servicio perimetral. Este servicio de borde reclamará una IP privada para la comunicación entre los otros bordes en otras zonas de Vultr.

Al igual que con el servicio supernodo, también necesitará su propio archivo de servicio.

nano /etc/systemd/system/n2n_edge.service

Agregue el siguiente contenido:

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target n2n_supernode.service

[Service]
ExecStart=/usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypassword -f

[Install]
WantedBy=multi-user.target

En este archivo de servicio definimos las siguientes opciones de línea de comando:

  • -l localhost:1200: Esto se conectará a localhost en el puerto UDP 1200.
  • -c Vultr: Esta es la comunidad a la que se unirá Edge. Todos los bordes dentro de la misma comunidad aparecen en la misma LAN (segmento de red de capa 2). Los bordes que no están en la misma comunidad no se comunicarán entre sí.
  • -a 192.168.1.1: La IP asignada a esta interfaz. Esta es la dirección IP de LAN virtual N2N que se reclama.
  • -k mypassword: La contraseña utilizada para cada borde. Todos los bordes que se comunican deben usar la misma clave y el mismo nombre de comunidad.
  • -f: Deshabilita el modo demonio y hace que Edge se ejecute en primer plano. Esto es necesario para el archivo de servicio, de lo contrario systemctlno se iniciará el servicio.

Para asegurarse de que todo funciona, inicie el servicio.

systemctl start n2n_edge

Luego, consulte el estado del servicio.

systemctl status n2n_edge   

La salida será similar a la siguiente.

● n2n_edge.service - n2n edge
   Loaded: loaded (/etc/systemd/system/n2n_edge.service; disabled; vendor preset: en
   Active: active (running) since Wed 2018-08-15 17:10:46 UTC; 3s ago
 Main PID: 4776 (edge)
    Tasks: 1
   Memory: 396.0K
      CPU: 8ms
   CGroup: /system.slice/n2n_edge.service
           └─4776 /usr/sbin/edge -l localhost:1200 -c Vultr -a 192.168.1.1 -k mypass

Si marcamos 'ifconfig', verá que la edge0interfaz reclama la IP virtual N2N .

ifconfig

La salida será similar a la siguiente.

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

Una vez hecho esto, habilite y cree las reglas del firewall. Asegúrese de reemplazar el texto node_miami_ipy node_sydney_ipcon la IP pública de la instancia de Sydney y Miami. (Los usaremos más adelante).

ufw allow 22/tcp
ufw allow from node_miami_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200
ufw enable

Lo último que debe hacer con este nodo es habilitar ambos servicios en el arranque.

systemctl enable n2n_supernode.service
systemctl enable n2n_edge.service

Instalación - Nodo Miami

El nodo de Miami se conectará al súper nodo que se está ejecutando actualmente en la zona de París. Para lograr esto, solo necesitamos crear un archivo de servicio para la edgeaplicación.

Comience creando un archivo de servicio perimetral.

nano /etc/systemd/system/n2n_edge.service

Agregue el siguiente contenido.

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.2 -k mypassword -f

[Install]
WantedBy=multi-user.target

Nota : Reemplace el node_paris_ipcon la IP pública de la instancia que se ejecuta en París

Esto se conectará al nodo en París en el puerto UDP 1200, se unirá a la comunidad ' Vultr', reclamará IP 192.168.1.2y se autenticará con ' mypassword'.

A continuación, inicie el servicio.

systemctl start n2n_edge

Verifique el estado para ver si el servicio se inició correctamente y se está ejecutando.

systemctl status n2n_edge   

Luego, asegúrese de edge0reclamar la IP.

ifconfig

Mostrará la 192.168.1.2dirección IP.

edge0     Link encap:Ethernet  HWaddr 42:14:55:64:7d:21
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::4014:55ff:fe64:7d21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

Lo siguiente que debe hacer es habilitar el servicio en el arranque.

systemctl enable n2n_edge.service

Opcionalmente, habilite el firewall y agregue las reglas SSH.

ufw allow 22/tcp
ufw enable

Ahora podremos hacer ping a ambos bordes que se ejecutan en nuestras instancias.

En París, haga ping a la instancia de Vultr en Miami

ping 192.168.1.2

En Miami, haz ping en el borde en París

ping 192.168.1.1

Instalación - Nodo Sydney

Finalmente, agregaremos nuestro último continente a la mezcla: Australia. Comience nuevamente creando un servicio perimetral, este servicio perimetral también se conectará al supernodo configurado previamente en París.

nano /etc/systemd/system/n2n_edge.service

Agregue el siguiente contenido.

[Unit]
Description=n2n edge
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/edge -l node_paris_ip:1200 -c Vultr -a 192.168.1.3 -k mypassword -f

[Install]
WantedBy=multi-user.target

Nota : Reemplace el node_paris_ipcon la IP pública de la instancia que se ejecuta en París.

Esto se conectará al nodo en París en el puerto UDP 1200, se unirá a la comunidad ' Vultr', reclamará IP 192.168.1.3y se autenticará con ' mypassword'.

systemctl start n2n_edge

Verifique el estado para asegurarse de que se inicia el servicio.

systemctl status n2n_edge   

Asegúrese de edge0reclamar la IP.

edge0     Link encap:Ethernet  HWaddr 46:56:b0:e9:8f:8a
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
        inet6 addr: fe80::4456:b0ff:fee9:8f8a/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)

Nuevamente, habilite este servicio en el arranque.

systemctl enable n2n_edge.service

Opcionalmente, habilite el firewall y agregue las reglas SSH.

ufw allow 22/tcp
ufw enable

Ahora podremos hacer ping a cada instancia de Vultr desde cada nodo.

ping 192.168.1.1
ping 192.168.1.2
ping 192.168.1.3

Si desea probar la conexión entre cada borde de nodo, active las reglas de firewall en las instancias de Miami y París. Esto permitirá la comunicación entre bordes.

En Miami, agregue las siguientes reglas. (Asegúrese de reemplazar el texto node_paris_ipy node_sydney_ipcon las IP públicas de las instancias de Sydney y París).

ufw allow from node_paris_ip to any port 1200
ufw allow from node_sydney_ip to any port 1200

En Sydney, agregue las siguientes reglas.

ufw allow from node_paris_ip to any port 1200
ufw allow from node_miami_ip to any port 1200

Ahora puede apagar o reiniciar el supernodo. Las conexiones de red continuarán existiendo. Solo los nuevos bordes sufrirán problemas de conectividad mientras el servicio de supernodo esté inactivo.

Conclusión

Hemos configurado con éxito una conexión VPN entre múltiples zonas. Esto debería ofrecer muchas posibilidades nuevas para escenarios de alta disponibilidad en nuestro entorno recién configurado.



Leave a Comment

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

El impacto de la inteligencia artificial en la atención médica 2021

El impacto de la inteligencia artificial en la atención médica 2021

La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.