Tengo un invitado de Oracle Linux que ejecuta un servidor web en VirtualBox en un host de Windows 7. Necesito configurar la red para poder hacer 3 cosas:
- el host puede conectarse al invitado a través de un navegador y ssh
- el invitado puede hablar con otros servidores en la red interna a través de la VPN del host
- el huésped puede acceder a internet externo
Leí algunas respuestas e intenté algunas configuraciones, y esto es lo que sucede:
Puenteado
- el anfitrión no puede contactar al invitado
- el invitado no puede ver a través de VPN
- los huéspedes pueden acceder a internet
NAT
- el anfitrión no puede contactar al invitado
- los invitados pueden ver a través de VPN
- el huésped no puede acceder a internet
Solo host
las 3 condiciones fallan.
Red NAT
- el anfitrión no puede contactar al invitado
- los invitados pueden ver a través de VPN
- el huésped no puede acceder a internet
También debo señalar que a veces el host está conectado a través de una VPN, mientras que otras veces simplemente se conecta directamente a la red corporativa. Cuando se enchufa directamente, un adaptador con puente satisface las 3 condiciones. Idealmente, habría una configuración que satisfaga las 3 condiciones independientemente de si hay una VPN o una conexión directa.
networking
virtualbox
vpn
ewok
fuente
fuente
Respuestas:
Tuve exactamente el mismo problema y lo resolví, así que estoy feliz de explicar el problema y la solución en detalle.
Sin involucrar una VPN
Es importante comprender la configuración que se requiere para cumplir con sus requisitos sin involucrar una VPN. Además, esta información supone que ningún firewall de software está interfiriendo, ni en el host ni en el invitado.
Sin una VPN, esto normalmente se resuelve creando dos adaptadores de red en la configuración de la máquina virtual.
El primer adaptador debe configurarse en
NAT
modo, lo que permite al invitado acceder a los recursos de la red (incluido Internet) a través de la interfaz de red del host.El segundo adaptador debe establecerse en
Host-only
, lo que permite la comunicación bidireccional entre el host y el invitado.Este adaptador es un poco más complejo de configurar que el primero, ya que requiere modificar las preferencias de red globales de VirtualBox para configurar el adaptador solo de host (nota: esto requiere privilegios de administrador).
En VirtualBox, ve a
File -> Preferences -> Network
. Haga clic en laHost-only Networks
pestaña y haga clic en el pequeño+
icono para agregar un nuevo adaptador. Se le pedirá que eleve los permisos de VirtualBox.Completar la
Adapter
pestaña es obligatorio; debería verse así (ignore el adaptador etiquetado#2
; se usa para algo no relacionado):Los valores en la
DHCP
pestaña del servidor son opcionales. Si tiene la intención de codificar la dirección IP de este adaptador dentro de la configuración de red del invitado, estos valores son innecesarios. Si, por otro lado, tiene la intención de usar DHCP, los valores podrían verse así:El último paso con respecto a la configuración de VirtualBox es volver a la configuración de red de la VM y agregar el segundo adaptador, que hace referencia al adaptador de solo host que acabamos de crear:
Ahora, en el sistema operativo invitado, la red debe estar configurada para utilizar estas dos interfaces de red.
En Debian o Ubuntu GNU / Linux, la configuración es tan simple como modificar
/etc/network/interfaces
para que se vea así:(el purista puede preferir utilizar el
/etc/network/interfaces.d
directorio en su lugar, pero eso está más allá del alcance de esta explicación)Reinicie los servicios de red del invitado, o más simplemente, reinicie toda la VM invitada, y todo debería "funcionar".
En este punto, uno debería poder hacer ping a la máquina virtual invitada
192.168.56.101
y recibir una respuesta (siempre que un firewall de software no interfiera).Del mismo modo, uno debería poder hacer ping al host en
10.0.2.2
. Esta dirección IP parece estar "codificada" en la implementación NAT de VirtualBox, o al menos especificada a través de alguna directiva de configuración no obvia, y hay poca información disponible sobre su origen. Pero, por desgracia, "simplemente funciona".Dada esta configuración, se cumplen las tres condiciones descritas en su pregunta.
Ingrese: la VPN
Pero, aquí está el problema. La introducción de la VPN causa un problema que detiene el espectáculo (bueno, dependiendo de la VPN específica y su configuración).
Las VPN modernas son capaces de dividir el túnel , que se requiere para que la configuración de VirtualBox mencionada funcione según sus tres requisitos. Por (buenas) razones de seguridad, el túnel dividido a menudo está deshabilitado, y este es precisamente el problema en su caso (y el mío).
Cuando se conecta a la VPN, el cliente VPN (Cisco AnyConnect Secure Mobility Client, 3.1.02026, en mi caso) examina las tablas de enrutamiento de la computadora host, las recuerda y luego las pavimenta con valores que generalmente provienen de algunos ubicación administrada (es decir, incluso con privilegios de administrador local, es imposible anular la configuración).
Puede examinar las tablas de enrutamiento por sí mismo abriendo
command.exe
(en Windows):Antes de conectarse a la VPN, la tabla de enrutamiento contiene entradas cruciales que permiten que esta configuración de VirtualBox funcione correctamente. La conexión a la VPN hace que estas entradas se eliminen, lo que impide la comunicación entre el host y el invitado.
(Hay muchas otras entradas, que he omitido aquí, ya que son irrelevantes para la causa raíz de este comportamiento).
Antes de conectarse a la VPN:
Después de conectarse a la VPN:
El cliente VPN elimina las siguientes líneas:
Sin esas dos últimas entradas, el host y el invitado no pueden comunicarse, y este es precisamente el comportamiento previsto cuando el túnel dividido está deshabilitado en la configuración de VPN.
Normalmente, estos dos comandos restaurarían esas rutas:
Pero el cliente VPN permanece atento: intercepta los intentos de modificar la tabla de enrutamiento. Mi cliente parece permitir la segunda entrada, pero no la primera. (Y puede pavimentar ambos de forma periódica; no lo probé).
Si su VPN específica y su configuración de asistente permiten que se habilite el túnel dividido, generalmente se activa de la siguiente manera:
Al desconectarse de la VPN, los clientes VPN que se comporten bien restaurarán las tablas de enrutamiento que estaban en su lugar antes de conectarse. Mi cliente VPN parece hacer esto de manera confiable, lo cual es beneficioso porque significa que la VM invitada no necesita reiniciarse cuando me conecto o me desconecto de la VPN. En tales casos, el adaptador secundario de la VM se restablece, pero vuelve a adquirir su dirección IP de forma automática y transparente, restaurando la comunicación entre el host y el invitado casi de inmediato. Mejor aún, los montajes NFS entre el host y el invitado (estoy usando montajes CIFS) permanecen conectados a través de las operaciones de conexión / desconexión de VPN.
En el improbable caso de que su VPN permita el túnel dividido, puede ser una simple cuestión habilitarlo, en cuyo caso, me encantaría saber de usted si "todo simplemente funciona".
fuente
Cómo uso mi host de Windows VPN en la máquina Linux mint de invitado
Configurar mi VPN para usar números de puerto fijos en la configuración
Establezca la red vm en NAT
Establezca la configuración del proxy de Linux en ip 10.0.2.2 (Puerta de enlace NAT de virtualbox predeterminada) y los puertos que ingresé manualmente en mi VPN
fuente