Eu tenho um único host físico que estou usando como um laboratório de virtualização e várias VMs no Hyper-V que estão conectadas ao host por meio de uma rede interna. Eu tinha que trabalhar para que o host físico agisse como o Gateway de Área de Trabalho Remota que o roteador aponta para o gateway e tudo estava bem, eu poderia fazer login na minha VM pela Internet.
Desde então, mudei meu Gateway para uma VM na rede interna que está no DNS do meu diretório ativo em remote.example.com com um endereço IP estático. Isso é para que as VMs individuais executem funções específicas e, eventualmente, eu possa usar o balanceamento de carga nas minhas VMs.
No momento, com apenas 1 VM agindo como um RDG, consigo acessar todas as minhas VMs na rede interna bem da minha máquina host, já que ele pode ver o endereço IP para remote.example.com. Imaginei que precisaria adicionar alguns encaminhamento / roteamento / redirecionamento à máquina host para tornar o Gateway visível de "fora".
(Internet) == 1 == > (Roteador) == 2 == > [Host] == 3 == > [remote.example.com] == 4 == > [VM_1 | VM_2 | VM_3]
Qual é a maneira correta de fazer com que meu host faça solicitações de proxy para minha VM / gateway interna?
Minha configuração atual para ARR no meu ApplicationHost.config:
<webFarms>
<webFarm name="Remote" enabled="true">
<server address="192.168.1.3" enabled="true" />
<applicationRequestRouting>
<protocol>
<cache enabled="false" />
</protocol>
</applicationRequestRouting>
</webFarm>
<applicationRequestRouting>
<hostAffinityProviderList>
<add name="Microsoft.Web.Arr.HostNameRoundRobin" />
<add name="Microsoft.Web.Arr.HostNameMemory" />
</hostAffinityProviderList>
</applicationRequestRouting>
</webFarms>
Em system.webServer / rewrite / globalRules:
<globalRules>
<rule name="ARR_Remote_loadbalance_SSL" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTPS}" pattern="on" />
<add input="{HTTP_HOST}" pattern="remote.example.com" />
</conditions>
<action type="Rewrite" url="https://Remote/{R:0}" />
</rule>
<rule name="ARR_Remote_loadbalance" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<action type="Rewrite" url="http://Remote/{R:0}" />
<conditions>
<add input="{HTTP_HOST}" pattern="remote.example.com" />
</conditions>
</rule>
</globalRules>
Editar:
Em um dispositivo externo, posso me conectar a https://remote.example.com e ver a página de entrada do IIS. Quando eu vou para https://remote.example.com/rpc eu recebo
503 Deve usar post
Quando tento usar o servidor Gateway por meio de um cliente RDP, recebo
The gateway failed to connect with the message: 404 not found
Após a reinicialização do Host e da VM, consigo acessar o site de um dispositivo externo e posso executar um rastreamento de solicitação com falha na conexão RDP.
e parece que a ARR está tentando manipular a solicitação e não encaminhar a solicitação à VM remota