Cvičení – směrování provozu přes síťové virtuální zařízení
Teď, když jste vytvořili síťové virtuální zařízení a virtuální počítače, budete směrovat provoz přes síťové virtuální zařízení.
Vytvoření veřejného a privátního virtuálního počítače
Další kroky nasadí virtuální počítač do veřejných a privátních podsítí.
Otevřete editor pro Cloud Shell a vytvořte soubor s názvem cloud-init.txt.
code cloud-init.txt
Do souboru přidejte následující konfigurační informace. Při této konfiguraci
inetutils-traceroute
se balíček nainstaluje při vytváření nového virtuálního počítače. Tento balíček obsahuje nástrojtraceroute
, který použijete v další části tohoto cvičení.#cloud-config package_upgrade: true packages: - inetutils-traceroute
Stisknutím kombinace kláves Ctrl+S soubor uložte a stisknutím kombinace kláves Ctrl+Q zavřete editor.
Spuštěním následujícího příkazu v Cloud Shellu vytvořte veřejný virtuální počítač. V příkazu nahraďte
<password>
vhodným heslem pro účet azureuser.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>
Spuštěním následujícího příkazu vytvořte privátní virtuální počítač. V příkazu nahraďte
<password>
vhodným heslem.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>
Spuštěním následujícího příkazu linuxu
watch
zkontrolujte, jestli jsou virtuální počítače spuštěné. Příkazwatch
pravidelně spouštíaz vm list
příkaz, abyste mohli sledovat průběh virtuálních počítačů.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"
Pokud má parametr ProvisioningState hodnotu „Succeeded“ a parametr PowerState hodnotu „VM running“, znamená to, že nasazení bylo úspěšné. Když poběží všechny tři virtuální počítače, budete moct pokračovat dál. Stisknutím kombinace kláves Ctrl+C zastavte příkaz a pokračujte ve cvičení.
Spuštěním následujícího příkazu uložte veřejnou IP adresu veřejného virtuálního počítače do proměnné s názvem
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
Spuštěním následujícího příkazu uložte veřejnou IP adresu privátního virtuálního počítače do proměnné s názvem
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
Test směrování provozu přes síťové virtuální zařízení
V závěrečných krocích použijete linuxový nástroj traceroute
k zobrazení směrování provozu. Příkaz použijete ssh
ke spuštění traceroute
na každém virtuálním počítači. První test ukazuje trasu pořízenou pakety ICMP odesílané z veřejného virtuálního počítače do privátního virtuálního počítače. Druhý test ukazuje trasu pořízenou pakety PROTOKOLU ICMP odesílané z privátního virtuálního počítače do veřejného virtuálního počítače.
Spuštěním následujícího příkazu sledujte trasu z veřejného do privátního počítače. Po zobrazení výzvy zadejte dříve použité heslo k účtu azureuser.
ssh -t -o StrictHostKeyChecking=no azureuser@$PUBLICIP 'traceroute private --type=icmp; exit'
Pokud se zobrazí chybová zpráva
bash: traceroute: command not found
, počkejte minutu a zkuste příkaz zopakovat. Automatická instalacetraceroute
může trvat minutu nebo dvě po nasazení virtuálního počítače. Po úspěšném provedení příkazu by měl výstup vypadat podobně jako v následujícím příkladu: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.
Všimněte si, že první segment směrování je 10.0.2.4. Tato adresa je privátní IP adresa síťového virtuálního zařízení (NVA). Druhý segment směrování je 10.0.1.4, což je privátní adresa. V prvním cvičení jste tuto trasu přidali do směrovací tabulky a tuto tabulku jste propojili s podsítí publicsubnet. Teď se veškerý provoz z veřejného do privátního virtuálního zařízení směruje přes síťové virtuální zařízení.
Spuštěním následujícího příkazu můžete sledovat trasu z privátní do veřejné podsítě. Po zobrazení výzvy zadejte heslo k účtu azureuser.
ssh -t -o StrictHostKeyChecking=no azureuser@$PRIVATEIP 'traceroute public --type=icmp; exit'
Měli byste vidět, že provoz jde přímo do veřejné podsítě (10.0.0.4), ale nejde přes síťové virtuální zařízení (NVA). Je to vidět na následujícím výstupu příkazu.
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.
Privátní virtuální počítač používá výchozí trasy a provoz se směruje přímo mezi podsítěmi.
Nakonfigurovali jste směrování mezi podsítěmi tak, aby byl provoz z veřejného internetu směrovaný přes podsíť dmzsubnet, než dosáhne privátní podsítě. V podsíti dmzsubnet jste přidali virtuální počítač, který funguje jako síťové virtuální zařízení. Toto zařízení můžete nakonfigurovat tak, že bude zjišťovat potenciálně škodlivé požadavky a blokovat je, aby se nedostaly k zamýšleným cílům.