Quiero configurar Windows Server 2012, y sus clientes VPN de Windows 7 y Windows 8, con una VPN SSTP que utiliza túnel dividido y direccionamiento fuera de subred, pero me encuentro con un problema: el servidor RRAS no enviará paquetes a VPN clientes de cualquier máquina que no sea ella misma.
Mi servidor VPN se está ejecutando en la "Nube privada virtual" de Amazon, por lo que solo tiene una NIC con una dirección IP en una red privada RFC1918 compartida con todos mis otros servidores VPC de Amazon y una IP pública que reenvía todo el tráfico a esa dirección privada a través de NAT (Amazon llama a esto "IP elástica").
Instalé RRAS y configuré una VPN. La subred privada en Amazon es 172.16.0.0/17 (esto es lo que llamo la "LAN de Amazon"), pero quiero que todos los clientes VPN usen el rango 10.128.0.0/20 (lo que llamo " VPN LAN ").
En mi panel de control de Amazon, hice lo siguiente:
- Deshabilitó la verificación de origen / destino para el servidor VPN
- Se agregó una entrada en las tablas de rutas para el grupo 10.128.0.0/20 que apunta a la interfaz de red del servidor VPN.
Dentro de la MMC de enrutamiento y acceso remoto, dentro del menú de propiedades para el nombre del servidor, hice lo siguiente:
- Ficha General -> Enrutador IPv4 (marcado), habilitado para LAN y enrutamiento de marcado a petición
- Pestaña General -> Servidor de acceso remoto IPv4 (marcado)
- Pestaña IPv4 -> Habilitar el reenvío de IPv4 (marcado)
- Pestaña IPv4 -> Agrupación de direcciones estáticas, y especifique 10.128.0.1-10.128.15.154
En mi cliente y en todos mis servidores, me he asegurado de que ICMP esté explícitamente permitido en el firewall, o que el firewall esté completamente desactivado (no el plan permanente, por supuesto).
En el cliente, para habilitar el túnel dividido, he ido a las propiedades para la conexión VPN -> Redes -> IPv4 -> Propiedades -> Avanzado -> pestaña Configuración de IP, y desmarqué "Usar puerta de enlace predeterminada en la red remota", y marcado "Deshabilitar la adición de ruta basada en la clase".
En este punto, mis clientes pueden conectarse usando el cliente VPN Windows 7/8. Se les asigna una IP del grupo 10.128.0.0/20, pero como no están configurando automáticamente ninguna ruta, no pueden comunicarse con la red remota. Puedo establecer rutas a la red remota y a la red VPN, de esta manera (en el cliente):
route add 172.16.0.0/17 <VPN IP ADDRESS>
route add 10.128.0.0/20 <VPN IP ADDRESS>
Ahora el cliente puede hacer ping a la dirección LAN VPN del servidor VPN (10.128.0.1), y también a su dirección LAN de Amazon (172.16.1.32). Sin embargo, se encuentra con un problema al intentar hablar con otras máquinas en la LAN de Amazon: los pings no reciben respuestas.
Entonces, por ejemplo, si el cliente intenta hacer ping a un sistema que sé que está activo y responde a pings como 172.16.0.113, no verá esas respuestas (dice "Solicitud agotada"). Wireshark en el servidor VPN confirma que ve el ping del cliente, e incluso ve una respuesta enviada desde 172.16.0.113, pero esa respuesta aparentemente nunca regresa al cliente.
Además, si hago ping a la dirección LAN VPN del cliente desde 172.16.0.113, Wireshark en el servidor VPN ve el ping, pero no ve una respuesta.
Entonces, para recapitular:
- El servidor VPN puede hacer ping a otras máquinas en la LAN de Amazon (172.16.0.0/17) y recibir respuestas, y otras máquinas en esa red pueden hacer lo mismo.
- Un cliente VPN puede hacer ping en la dirección de LAN de Amazon del servidor y recibir respuestas, después de que los clientes agreguen la ruta adecuada como se describió anteriormente.
- Un cliente VPN puede hacer ping a la dirección LAN LAN del servidor de 10.128.0.1, y el servidor VPN puede hacer ping a la dirección LAN LAN del cliente en el rango 10.128.0.0/20, después de que el cliente agrega la ruta de la ruta adecuada como se describió anteriormente.
- Un cliente VPN puede enviar pings a una máquina en la LAN de Amazon, pero cuando esas máquinas envían respuestas, se detienen en el servidor VPN; no se reenvían al cliente, lo que genera mensajes de "Solicitud agotada". . Por el contrario, cuando una máquina en la LAN de Amazon intenta hacer ping a la dirección LAN LAN 10.128.0.0/20 del cliente, el servidor VPN ve el ping, pero el cliente nunca lo hace y, por lo tanto, no genera una respuesta.
¿Por qué el servidor VPN no envía paquetes desde la LAN de Amazon a sus clientes en la LAN de la VPN? Definitivamente puede hablar con los clientes en la LAN VPN, y el enrutamiento está habilitado, y está dispuesto a enrutar los paquetes desde la LAN VPN -> Amazon LAN, pero no al revés. ¿Que me estoy perdiendo aqui?
Rutas
Aquí están las tablas de enrutamiento de un cliente VPN. El cliente es una VM VirtualBox con Windows 8. Su dirección IP del adaptador vbox es 10.0.2.15 en un / 24. Este cliente está detrás de NAT (en realidad, está detrás de NAT doble, porque el adaptador vbox es NAT en mi red local, que es NAT en Internet). Esta tabla de rutas es de después de agregar manualmente las rutas a 10.128.0.0/20 y 172.16.0.0/17.
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.0.2.2 10.0.2.15 10
10.0.2.0 255.255.255.0 On-link 10.0.2.15 266
10.0.2.15 255.255.255.255 On-link 10.0.2.15 266
10.0.2.255 255.255.255.255 On-link 10.0.2.15 266
10.128.0.0 255.255.240.0 On-link 10.128.0.3 15
10.128.0.3 255.255.255.255 On-link 10.128.0.3 266
10.128.15.255 255.255.255.255 On-link 10.128.0.3 266
54.213.67.179 255.255.255.255 10.0.2.2 10.0.2.15 11
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
172.16.0.0 255.255.128.0 On-link 10.128.0.3 15
172.16.127.255 255.255.255.255 On-link 10.128.0.3 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 10.0.2.15 266
224.0.0.0 240.0.0.0 On-link 10.128.0.3 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 10.0.2.15 266
255.255.255.255 255.255.255.255 On-link 10.128.0.3 266
===========================================================================
Persistent Routes:
None
Aquí están las tablas de enrutamiento del servidor RRAS, que ejecuta Windows Server 2012. Este servidor también está detrás de NAT, como se discutió anteriormente. Solo tiene una NIC. Su dirección IP privada es 172.16.1.32, en un / 23 (que es parte de una red / 17 más grande; creo que es justo ignorar las partes del / 17 fuera del / 23, ya que otras máquinas en el / 23 no puede ser alcanzado ni ser alcanzado por clientes VPN tampoco).
El adaptador virtual VPN tiene su propia dirección, 10.128.0.1, que se asigna automáticamente la primera vez que se conecta un cliente. Las rutas para 10.128.0.1 (para sí mismo) y 10.128.0.2 (para su único cliente) que ve también se agregan automáticamente en ese momento. No se agregan rutas al servidor VPN manualmente.
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.0.1 172.16.1.32 10
10.128.0.1 255.255.255.255 On-link 10.128.0.1 286
10.128.0.2 255.255.255.255 10.128.0.2 10.128.0.1 31
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
169.254.169.250 255.255.255.255 172.16.0.1 172.16.1.32 10
169.254.169.251 255.255.255.255 172.16.0.1 172.16.1.32 10
169.254.169.254 255.255.255.255 172.16.0.1 172.16.1.32 10
172.16.0.0 255.255.254.0 On-link 172.16.1.32 11
172.16.1.32 255.255.255.255 On-link 172.16.1.32 266
172.16.1.255 255.255.255.255 On-link 172.16.1.32 266
172.16.2.0 255.255.254.0 172.168.0.1 172.16.1.32 11
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 172.16.1.32 266
224.0.0.0 240.0.0.0 On-link 10.128.0.1 286
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 172.16.1.32 266
255.255.255.255 255.255.255.255 On-link 10.128.0.1 286
===========================================================================
Persistent Routes:
None
Aquí están las tablas de enrutamiento para otra máquina en la red privada del servidor, que también ejecuta el Servidor 2012. Tiene una NIC, que tiene una dirección IP privada de 172.16.1.177, lo que significa que está en la misma / 23 que está el servidor VPN. (Tenga en cuenta que la ruta al 10.128.0.0/20 está configurada en la puerta de enlace, que está controlada por Amazon, por lo que no la verá aquí. He agregado la ruta correcta a Amazon, como lo demuestra Wireshark en el El servidor VPN ve los paquetes).
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.0.1 172.16.1.177 10
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
169.254.169.250 255.255.255.255 172.16.0.1 172.16.1.177 10
169.254.169.251 255.255.255.255 172.16.0.1 172.16.1.177 10
169.254.169.254 255.255.255.255 172.16.0.1 172.16.1.177 10
172.16.0.0 255.255.254.0 On-link 172.16.1.177 266
172.16.1.177 255.255.255.255 On-link 172.16.1.177 266
172.16.1.255 255.255.255.255 On-link 172.16.1.177 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 172.16.1.177 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 172.16.1.177 266
===========================================================================
Persistent Routes:
None
Aquí están las rutas en la consola de Amazon. Creo que estos son correctos , después de todo, el tráfico está regresando al servidor VPN, solo para desaparecer dentro de él, pero en caso de que alguien quiera verlos, aquí están. (Amazon hace las cosas un poco extrañas. Se eni-2f3e8244 / i-77e26440
refiere a la NIC en el servidor VPN, y se igw-d4bc27bc
refiere a la puerta de enlace / NAT de Internet controlada por Amazon que todas mis instancias usan para comunicarse con Internet).
10.128.0.0/20 eni-2f3e8244 / i-77e26440
172.16.0.0/17 local
0.0.0.0/0 igw-d4bc27bc
route print
y la tracert
salida, y he realizado una corrección importante en la información que agregué anteriormente. (¡Gracias por la ayuda de ya!)