¿Cómo se realiza el enrutamiento en una configuración OpenVPN muy simple?

¿Cómo se realiza el enrutamiento en una configuración OpenVPN muy simple?

He configurado completamente (remotamente) un servidor dedicado Debian GNU/Linux alojado de forma profesional y tengo una pregunta sobre enrutamiento de red (que AFAICT se ajusta precisamente a las preguntas frecuentes de serverfault).

Ese servidor dedicado tiene una IP IPv4 estática y una ruta muy sencilla:

route -n

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
94.xx.yy.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         94.xx.yy.254    0.0.0.0         UG    0      0        0 eth0

Solo tengo una IP estática y hay muchos otros servidores dedicados en la misma subred con los que no puedo meterme.

Ese servidor aloja/sirve la aplicación web principal de nuestra empresa (Apache+Tomcat) y también ejecuta Squid. Toda la configuración la hice yo mismo. Una vez que el presupuesto lo permita, trasladaré Squid a otro servidor.

Por ahora, me gustaría agregar OpenVPN a ese servidor (preferiblemente usando tun, no tap) y quiero saber qué se debe hacer para asegurarme de que mis interfaces no "choquen" con los otros servidores dedicados.

No entiendo cómo se debe realizar la configuración y no sé cómo quedará la ruta.

Para ayudarme a comprender el "panorama general", ¿podría alguien darme un ejemplo preciso de:

  • dirección IP local de un cliente OpenVPN
  • IP de puerta de enlace que ese cliente OpenVPN utilizará
  • la salida de ruta del servidor OpenVPN

Básicamente estoy un poco perdido y antes de comenzar me gustaría entender cómo se realiza el enrutamiento en el servidor OpenVPN.

Hasta donde tengo entendido, los clientes OpenVPN estarán en la misma red que el servidor OpenVPN (usando, digamos, una red 10.0.0.0/8), pero me encuentro con un obstáculo mental al tratar de descubrir cómo van a funcionar los clientes. use la interfaz 'tun' para luego terminar usando la puerta de enlace 94.xx.yy.254.

Respuesta1

Supongamos que el cliente VPN tiene la siguiente configuración de IP:

IP eth0: 192.168.1.100
Default gateway: 192.168.1.1

Entonces, todo el tráfico no local saldrá a través de 192.168.1.1. Si hay tráfico hacia otro host en la LAN, simplemente irá a ese host.

OpenVPN se inicia, el cliente obtiene una nueva interfaz tun0 y luego vemos algo como:

IP eth0: 192.168.1.100
IP tun0: 10.8.0.13
Default gateway: 192.168.1.1
VPN routing: 10.8.0.1 for the network 10.8.0.0/24

Esto supone que el servidor OpenVPN no está impulsando ninguna ruta adicional. Por lo tanto, un paquete de red que vaya a, digamos, 8.8.8.8, seguirá atravesando la puerta de enlace predeterminada de la LAN, 192.168.1.1. Un paquete que vaya, digamos, a 10.8.0.204, cruzará el túnel OpenVPN hasta el servidor OpenVPN en 10.8.0.1 para su posterior enrutamiento.

Si el servidor OpenVPN envía una ruta para su LAN, digamos, 172.16.0.0/24, entonces el enrutamiento VPN anterior puede verse así:

VPN routing: 10.8.0.1 for the network 10.8.0.0/24
             10.8.0.1 for the network 172.16.0.0/24

De manera similar, un paquete para 172.16.0.24 irá a 10.8.0.1 para su posterior enrutamiento.

Si el servidor OpenVPN también está implementando la configuración "redirect-gateway def1", entonces la puerta de enlace predeterminada es diferente en los clientes VPN. Verás algo como:

IP eth0: 192.168.1.100
IP tun0: 10.8.0.13
Default gateway: 10.8.0.1
  (other gateway with lower priority): 192.168.1.1
Static route: 94.xx.yy.zz uses 192.168.1.1

Donde 94.xx.yy.zz es la dirección IP pública de su servidor OpenVPN.

En este caso, el tráfico directo a su servidor OpenVPN pasará por la puerta de enlace predeterminada de LAN 192.168.1.1. El tráfico local de 192.168.1.0/24 simplemente irá a los hosts como se esperaba. Cualquier otro tráfico utilizará 10.8.0.1; El tráfico no local que no va directamente a la IP pública del servidor OpenVPN cruzará el túnel VPN y emergerá de 94.xx.yy.254.

Es posible que vea otra ruta predeterminada en la tabla de enrutamiento que conserva 192.168.1.1 como puerta de enlace, pero tendrá una prioridad menor que 10.8.0.1. Creo que esto es más bien un marcador de posición del cliente OpenVPN, para que sepa a qué establecer la ruta predeterminada una vez que la VPN se apaga. No te preocupes por esa entrada.

información relacionada