Exercício – Rotear o tráfego por meio da NVA
Agora que a NVA (solução de virtualização de rede) e as VMs (máquinas virtuais) foram criadas, você roteará o tráfego por meio da NVA.
Criar máquinas virtuais públicas e privadas
As próximas etapas implantarão uma VM nas sub-redes pública e privada.
Abra o editor do Cloud Shell e crie um arquivo denominado cloud-init.txt.
code cloud-init.txt
Adicione as informações de configuração a seguir ao arquivo. Com essa configuração, o pacote
inetutils-traceroute
é instalado quando você cria uma VM. Este pacote contém o utilitáriotraceroute
, que você usará posteriormente neste exercício.#cloud-config package_upgrade: true packages: - inetutils-traceroute
Pressione Ctrl+S para salvar o arquivo e, em seguida, pressione Ctrl+Q para fechar o editor.
No Cloud Shell, execute o comando a seguir para criar a VM pública. Substitua
<password>
por uma senha da conta azureuser adequada.az vm create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name public \ --vnet-name vnet \ --subnet publicsubnet \ --image Ubuntu2204 \ --admin-username azureuser \ --no-wait \ --custom-data cloud-init.txt \ --admin-password <password>
Execute o comando a seguir para criar a VM privada. Substitua
<password>
por uma senha adequada.az vm create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name private \ --vnet-name vnet \ --subnet privatesubnet \ --image Ubuntu2204 \ --admin-username azureuser \ --no-wait \ --custom-data cloud-init.txt \ --admin-password <password>
Execute o comando do Linux
watch
a seguir para verificar se as VMs estão em execução. O comandowatch
executa periodicamente o comandoaz vm list
para que você possa monitorar o progresso das VMs.watch -d -n 5 "az vm list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --show-details \ --query '[*].{Name:name, ProvisioningState:provisioningState, PowerState:powerState}' \ --output table"
Um valor de ProvisioningState igual a "Êxito" e um PowerState igual a "VM em execução" indicam uma implantação bem-sucedida. Quando todas as três VMs estiverem em execução, você estará pronto para prosseguir. Pressione CTRL + C para interromper o comando e continuar com o exercício.
Execute o comando a seguir para salvar o endereço IP público da VM pública em uma variável chamada
PUBLICIP
:PUBLICIP="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name public \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" echo $PUBLICIP
Execute o comando a seguir para salvar o endereço IP público da VM privada em uma variável chamada
PRIVATEIP
:PRIVATEIP="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name private \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" echo $PRIVATEIP
Testar o roteamento de tráfego por meio de uma solução de virtualização de rede
As etapas finais usam o utilitário traceroute
do Linux para mostrar como o tráfego está sendo roteado. Você usará o comando ssh
para executar traceroute
em cada VM. O primeiro teste mostra a rota usada pelos pacotes ICMP enviados da VM pública para a VM privada. O segundo teste mostra a rota usada pelos pacotes ICMP enviados da VM privada para a VM pública.
Execute o comando a seguir para rastrear a rota de pública para privada. Quando solicitado, insira a senha da conta azureuser que você especificou anteriormente.
ssh -t -o StrictHostKeyChecking=no azureuser@$PUBLICIP 'traceroute private --type=icmp; exit'
Se você receber a mensagem de erro
bash: traceroute: command not found
, aguarde um minuto e repita o comando. A instalação automatizada detraceroute
pode levar um ou dois minutos após a implantação da VM. Após o comando ser bem-sucedido, a saída deverá ser semelhante à seguinte:traceroute to private.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.1.4), 64 hops max 1 10.0.2.4 0.710ms 0.410ms 0.536ms 2 10.0.1.4 0.966ms 0.981ms 1.268ms Connection to 52.165.151.216 closed.
Observe que o primeiro salto é para 10.0.2.4. Esse endereço é o endereço IP privado de nva. O segundo salto é para 10.0.1.4, o endereço de privada. No primeiro exercício, você adicionou essa rota à tabela de rotas e a vinculou à sub-rede publicsubnet. Portanto, todo o tráfego de pública para privada é roteado por meio da NVA.
Execute o seguinte comando para rastrear a rota da privada para a pública. Quando solicitado, insira a senha da conta azureuser.
ssh -t -o StrictHostKeyChecking=no azureuser@$PRIVATEIP 'traceroute public --type=icmp; exit'
Você deve ver o tráfego ir diretamente para a pública (10.0.0.4) e não por meio da NVA, conforme mostrado na saída de comando a seguir.
traceroute to public.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.0.4), 64 hops max 1 10.0.0.4 1.095ms 1.610ms 0.812ms Connection to 52.173.21.188 closed.
A VM privada usa rotas padrão, e o tráfego é roteado diretamente entre as sub-redes.
Agora você configurou o roteamento entre as sub-redes para direcionar o tráfego da Internet pública por meio da sub-rede dmzsubnet antes de ela atingir a sub-rede privada. Na sub-rede dmzsubnet, você adicionou uma VM que funciona como uma NVA. Você pode configurar essa NVA para detectar solicitações potencialmente mal-intencionadas e bloqueá-las antes que cheguem aos destinos pretendidos.