Este es un problema muy comuy, y algo que no entiendo como termina siendo tan complejo o mejor dicho complicado cuando en VMware lo podemos hacer simplemente con un clic. Basicamente cuanto tenemos varias máquinas virtuales Hyper-V (o incluso contenedores), puede ser útil crear una traducción de direcciones de red o red NAT. NAT es la misma tecnología que se utiliza en los enrutadores WiFi de los consumidores. Nos permite que una serie de direcciones IP no enrutables se vinculen a un único punto de conexión. En el caso de Hyper-V, este punto de conexión será un conmutador virtual Hyper-V y el adaptador Ethernet virtual subyacente.
Crear un Switch Virtual Hyper-V
No es sorprendente que el primer paso para crear una red NAT sea crear un conmutador virtual Hyper-V. Aunque podemos crear un conmutador virtual usando el Administrador de Hyper-V, sigamos adelante y usemos PowerShell. El cmdlet utilizado para la creación del conmutador virtual es New-VMSwitch. Cuando usa este cmdlet, solo debemos proporcionar dos elementos de información. Primero, tendremos que asignar un nombre al conmutador virtual. En aras de la demostración, vamos a llamarlo virtual NAT.
La otra información que deberemos proporcionar es el tipo de interruptor. En este caso, vamos a crear un conmutador virtual interno, aunque podriamos haber hecho que el conmutador virtual fuera igual de fácil. Dicho esto, aquí está el comando utilizado para crear el conmutador virtual:
New-VMSwitch -SwitchName “NAT” -SwitchType Internal
Podemos ver cómo funciona este comando en la figura a continuación. Aquí hemos usado el cmdlet Get-VMSwitch para mostrar una lista de los conmutadores virtuales previamente existentes. Luego creamos el nuevo conmutador virtual, y luego ejecutamos el cmdlet Get-VMSwitch nuevamente, para mostrar que el conmutador virtual recién creado se ha agregado a la lista de conmutadores virtuales.
Identificando el adaptador Ethernet virtual correspondiente
Cuando creamos un conmutador virtual Hyper-V, Hyper-V creará automáticamente un adaptador Ethernet virtual que corresponda al conmutador virtual. Si regresa y mira la figura anterior, podemos ver, sin embargo, que el servidor host ya tenía un conmutador virtual antes de crear el conmutador NAT. Por lo tanto, el servidor Hyper-V tiene tres adaptadores Ethernet virtuales. Hay un adaptador para el conmutador virtual previamente existente, otro adaptador para la NIC física y un tercer adaptador que corresponde al conmutador NAT que acabamos de crear. Hyper-V diferencia entre estos adaptadores mediante el uso de un valor IfIndex. Podemos encontrar el valor IfIndex para el conmutador que acabamos de crear ingresando el cmdlet Get-NetAdapter. Si observamos la figura a continuación, podemos ver mis tres adaptadores, y podemos ver que el valor IfIndex de mi adaptador NAT es 37 (su adaptador probablemente tendrá un valor diferente).
Crear una puerta de enlace NAT
El tercer paso en el proceso es crear una puerta de enlace NAT. En el mundo de TI, el término "puerta de enlace" puede significar muchas cosas diferentes. En este caso, la puerta de enlace NAT no se refiere a una máquina virtual de puerta de enlace ni nada por el estilo. En cambio, la creación de una puerta de enlace NAT simplemente se refiere al acto de asignar una dirección IP de puerta de enlace al adaptador Ethernet virtual que está utilizando el conmutador virtual NAT recién creado.
Debido a que basamos la red NAT alrededor de un conmutador virtual interno, quiero usar un rango de direcciones IP no enrutables. Por lo tanto, voy a usar 10.0.0.1 como la dirección IP de la puerta de enlace. Debe usar cualquier rango de direcciones IP que se adapte a sus propias necesidades.
Además de la dirección IP, también vamos a necesitar especificar una longitud de prefijo. La longitud de prefijo más utilizada para el rango de direcciones IP que voy a usar es 24. Usar un valor de prefijo de 24 es lo mismo que usar una máscara de subred de 255.255.255.0. Veinticuatro es también el valor de prefijo más utilizado para otras direcciones no enrutables como 192.168.0.xy 172.16.0.x. El comando utilizado para configurar la dirección IP de la puerta de enlace es New-NetIPAddress. Aquí hay un ejemplo de cómo usar este comando:
New-NetIPAddress -IPAddress 10.0.0.1 -PrefixLength 24 -InterfaceIndex 37
Como puede ver, este comando es relativamente sencillo, pero notará que tuve que proporcionar un índice de interfaz. El índice de la interfaz es el IfIndex que busqué hace un momento. La siguiente figura muestra cómo se ve este comando cuando se ejecuta.
Como deshacer los cambios…
Hasta ahora, todo lo que hemos hecho es crear un conmutador virtual Hyper-V y asignar una dirección IP al adaptador Ethernet virtual correspondiente. De hecho, podemos usar el Administrador de Hyper-V para ver el trabajo que hemos realizado en PowerShell. Si abro el Virtual Switch Manager, por ejemplo, podemos ver el conmutador virtual interno llamado NAT que creamos anteriormente.
Del mismo modo, podemos usar el Panel de control para ver la asignación de dirección IP que hemos realizado a través de PowerShell.
Como crear una red NAT
A pesar del trabajo que hemos realizado hasta ahora, no hemos creado un NAT. Todo lo que hemos hecho es crear una red virtual interna básica. Para crear un NAT, deberá usar un cmdlet llamado New-NetNat. El uso de este cmdlet requiere que proporcione dos parámetros: un nombre de red y un prefijo de dirección IP y longitud de subred. El nombre de la red puede ser cualquier cosa. Llamaré a mi red BriensNAT. El prefijo de la dirección IP interna se basará en la dirección y la longitud del prefijo que especificó anteriormente. En mi caso, usaré 10.0.0.0/24. Aquí hay un ejemplo del comando:
New-NetNat -Name BriensNAT -ExternalIPInterfaceAddressPrefix 10.0.0.0/24
Espero les sea de utilidad. Saludos, Roberto Di Lello