Add-NetNatStaticMapping no reenvía puertos a la máquina virtual local

Add-NetNatStaticMapping no reenvía puertos a la máquina virtual local

Estoy ejecutando Windows 10 build 1809 y tengo Hyper-V instalado. Tengo una máquina Linux ejecutándose detrás de una NAT con conectividad a Internet que funciona en IP 10.0.5.5. Básicamente seguí las instrucciones en el siguiente enlace.

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network

Cuando creé el mapeo de puertos, llamé

Add-NetNatStaticMapping -ExternalIPAddress 0.0.0.0/24 -ExternalPort 8500 -Protocol TCP -InternalIPAddress 10.0.5.5 -InternalPort 8500 -NatName YetAnotherNAT

Si intento golpearhttp://10.0.5.5:8500Funciona (la página se carga). Si intento golpearhttp://127.0.0.1:8500no funciona (no se carga nada). Incluso si intento utilizar cualquiera de mis IP externas, no funciona.

Básicamente es como si todo el reenvío de puertos no estuviera haciendo nada.

¿Algunas ideas?

Get-VmSwitch devuelve lo siguiente

PS C:\> Get-VMSwitch

Name             SwitchType NetAdapterInterfaceDescription
----             ---------- ------------------------------
nat              Internal
Wifi             External   Intel(R) Dual Band Wireless-AC 7265
DockerNAT        Internal
Default Switch   Internal   Teamed-Interface
MyNATSwitch      Internal
YetAnotherSwitch Internal

Get-NetNat devuelve lo siguiente

PS C:\> get-netnat


Name                             : YetAnotherNAT
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 10.0.5.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

Respuesta1

Probablemente estés tocando esto:

Acceder a puntos finales internos directamente desde el host

No se puede acceder a los puntos finales internos asignados a máquinas virtuales o contenedores mediante las IP/puertos externos a los que se hace referencia en las asignaciones de puertos estáticos NAT directamente desde el host NAT. Desde el host NAT, estos puntos finales internos deben ser direccionados directamente por su IP y puertos internos. Por ejemplo, supongamos que un punto final de contenedor tiene IP 172.16.1.100 y está ejecutando un servidor web que escucha en el puerto 80. Además, suponga que se ha creado una asignación de puertos a través de Docker para reenviar el tráfico desde la dirección IP del host (10.10.50.20) recibida. en el puerto TCP 8080 al punto final del contenedor. En este caso, un usuario en el host del contenedor no puede acceder directamente al servidor web utilizando los puertos asignados externamente. por ejemplo, un usuario que opera en el host del contenedor no puede acceder indirectamente al servidor web del contenedor enhttp://10.10.50.20:8080. En su lugar, el usuario debe acceder directamente al servidor web del contenedor enhttp://172.16.1.100:80.

La única advertencia a esta limitación es que se puede acceder al punto final interno utilizando el puerto/IP externo desde un punto final de VM/contenedor separado que se ejecuta en el mismo host NAT: esto se llama fijación de cabello. Por ejemplo, un usuario que opera en el contenedor A puede acceder a un servidor web que se ejecuta en el contenedor B utilizando la IP interna y el puerto de http://10.10.50.20:8080

Fuente:https://techcommunity.microsoft.com/t5/Virtualization/Windows-NAT-WinNAT-Capabilities-and-limitations/ba-p/382303

información relacionada