Udostępnij przez


Samouczek: tworzenie sieci wirtualnych platformy Azure dla maszyn wirtualnych z systemem Windows i zarządzanie nimi za pomocą programu Azure PowerShell

Dotyczy: ✔️ maszyny wirtualne z systemem Windows

Maszyny wirtualne platformy Azure używają sieci platformy Azure do komunikacji wewnętrznej i zewnętrznej sieci. W tym samouczku przedstawiono wdrażanie dwóch maszyn wirtualnych i konfigurowanie sieci platformy Azure dla tych maszyn wirtualnych. W przykładach w tym samouczku założono, że maszyny wirtualne hostują aplikację internetową z zapleczem bazy danych, jednak aplikacja nie jest wdrażana w samouczku. Z tego samouczka dowiesz się, jak wykonywać następujące działania:

  • Tworzenie sieci wirtualnej i podsieci
  • Tworzenie publicznego adresu IP
  • Utwórz maszynę wirtualną frontend
  • Zabezpieczanie ruchu sieciowego
  • Utwórz maszynę wirtualną back-end

Omówienie sieci maszyn wirtualnych

Sieci wirtualne platformy Azure umożliwiają bezpieczne połączenia sieciowe między maszynami wirtualnymi, Internetem i innymi usługami platformy Azure, takimi jak Azure SQL Database. Sieci wirtualne są podzielone na segmenty logiczne nazywane podsieciami. Podsieci służą do kontrolowania przepływu sieci i jako granicy zabezpieczeń. Podczas wdrażania maszyny wirtualnej zazwyczaj zawiera ona interfejs sieciowy wirtualny, który jest dołączony do podsieci.

Podczas wykonywania czynności opisanych w tym samouczku można zobaczyć utworzone zasoby:

Sieć wirtualna z dwiema podsieciami

  • myVNet — sieć wirtualna używana przez maszyny wirtualne do komunikowania się ze sobą i z Internetem.
  • myFrontendSubnet — podsieć w sieci myVNet używanej przez zasoby frontonu.
  • myPublicIPAddress — publiczny adres IP używany do uzyskiwania dostępu do maszyny myFrontendVM z Internetu.
  • myFrontendNic — interfejs sieciowy używany przez maszynę myFrontendVM do komunikowania się z maszyną myBackendVM.
  • myFrontendVM — maszyna wirtualna używana do komunikacji między Internetem a maszyną wirtualną myBackendVM.
  • myBackendNSG — sieciowa grupa zabezpieczeń, która kontroluje komunikację między maszyną myFrontendVM i maszyną myBackendVM.
  • myBackendSubnet — podsieć skojarzona z usługą myBackendNSG i używana przez zasoby zaplecza.
  • myBackendNic — interfejs sieciowy używany przez maszynę myBackendVM do komunikowania się z maszyną myFrontendVM.
  • myBackendVM — maszyna wirtualna używająca portu 1433 do komunikacji z maszyną wirtualną myFrontendVM.

Uruchamianie usługi Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule. Ma on typowe narzędzia platformy Azure wstępnie zainstalowane i skonfigurowane do użycia z kontem.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również uruchomić usługę Cloud Shell w oddzielnej karcie przeglądarki, przechodząc do strony https://shell.azure.com/powershell. Wybierz przycisk Kopiuj, aby skopiować bloki kodu, wklej je do usługi Cloud Shell, a następnie naciśnij klawisz Enter, aby je uruchomić.

Tworzenie podsieci

W tym samouczku utworzymy pojedynczą sieć wirtualną z dwiema podsieciami. Podsieć frontonu do hostowania aplikacji internetowej oraz podsieć zaplecza do hostowania serwera bazy danych.

Przed utworzeniem sieci wirtualnej utwórz grupę zasobów za pomocą New-AzResourceGroup. Poniższy przykład tworzy grupę zasobów o nazwie myRGNetwork w lokalizacji EastUS :

New-AzResourceGroup -ResourceGroupName myRGNetwork -Location EastUS

Utwórz konfigurację podsieci o nazwie myFrontendSubnet przy użyciu polecenia New-AzVirtualNetworkSubnetConfig:

$frontendSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name myFrontendSubnet `
  -AddressPrefix 10.0.0.0/24

Utwórz konfigurację podsieci o nazwie myBackendSubnet:

$backendSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

Tworzenie sieci wirtualnej

Utwórz sieć wirtualną o nazwie myVNet z użyciem podsieci myFrontendSubnet i myBackendSubnet, korzystając z polecenia New-AzVirtualNetwork:

$vnet = New-AzVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $frontendSubnet, $backendSubnet

W tym momencie sieć została utworzona i podzielona na dwie podsieci, jedną dla usług frontonu i drugą dla usług zaplecza. W następnej sekcji maszyny wirtualne są tworzone i połączone z tymi podsieciami.

Tworzenie publicznego adresu IP

Publiczny adres IP umożliwia dostęp do zasobów platformy Azure w Internecie. Metodę alokacji publicznego adresu IP można skonfigurować jako dynamiczną lub statyczną. Domyślnie publiczny adres IP jest przydzielany dynamicznie. Dynamiczne adresy IP są zwalniane po wyłączeniu maszyny wirtualnej. To zachowanie powoduje zmianę adresu IP podczas każdej operacji obejmującej dealokację maszyny wirtualnej.

Można ustawić metodę alokacji na statyczną, co gwarantuje, że adres IP pozostaje przypisany do maszyny wirtualnej, nawet gdy jest w stanie deaktywacji. Jeśli używasz statycznego adresu IP, nie można określić samego adresu IP. Zamiast tego jest przydzielana z puli dostępnych adresów.

Utwórz publiczny adres IP o nazwie myPublicIPAddress przy użyciu polecenia New-AzPublicIpAddress:

$pip = New-AzPublicIpAddress `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -AllocationMethod Dynamic `
  -Name myPublicIPAddress

Możesz zmienić parametr -AllocationMethod na Static, aby przypisać statyczny publiczny adres IP.

Utwórz maszynę wirtualną interfejsu użytkownika

Aby maszyna wirtualna komunikowała się w sieci wirtualnej, potrzebuje wirtualnego interfejsu sieciowego (NIC). Utwórz kartę sieciową przy użyciu New-AzNetworkInterface:

$frontendNic = New-AzNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontend `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id

Ustaw nazwę użytkownika i hasło wymagane dla konta administratora na maszynie wirtualnej przy użyciu polecenia Get-Credential. Te poświadczenia służą do nawiązywania połączenia z maszyną wirtualną w dodatkowych krokach:

$cred = Get-Credential

Utwórz VM-y za pomocą New-AzVM.

New-AzVM `
   -Credential $cred `
   -Name myFrontend `
   -PublicIpAddressName myPublicIPAddress `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -Size Standard_D1 `
   -SubnetName myFrontendSubnet `
   -VirtualNetworkName myVNet

Zabezpieczanie ruchu sieciowego

Sieciowa grupa zabezpieczeń zawiera listę reguł zabezpieczeń, które zezwalają lub nie zezwalają na ruch sieciowy do zasobów połączonych z sieciami wirtualnymi platformy Azure. NSGs (Sieciowe Grupy Zabezpieczeń) mogą być skojarzone z podsieciami lub poszczególnymi interfejsami sieciowymi. Sieciowa grupa zabezpieczeń skojarzona z interfejsem sieciowym ma zastosowanie tylko do skojarzonej maszyny wirtualnej. Jeśli sieciowa grupa zabezpieczeń jest skojarzona z podsiecią, te reguły są stosowane do wszystkich zasobów połączonych z tą podsiecią.

Reguły sieciowych grup zabezpieczeń

Reguły NSG definiują porty sieciowe, dla których ruch jest dozwolony lub blokowany. Reguły mogą zawierać zakresy źródłowych i docelowych adresów IP, aby ruch był kontrolowany między określonymi systemami lub podsieciami. Reguły grupy zabezpieczeń sieciowych obejmują również priorytet (od 1 do 4096). Reguły są oceniane w kolejności priorytetu. Reguła z priorytetem 100 jest oceniana przed regułą z priorytetem 200.

Wszystkie NSG zawierają zestaw reguł domyślnych. Nie można usunąć reguł domyślnych, ale ponieważ mają przypisany najniższy priorytet, można je zastąpić utworzonymi regułami.

  • Sieć wirtualna — ruch pochodzący i kończący się w sieci wirtualnej jest dozwolony zarówno w kierunkach przychodzących, jak i wychodzących.
  • Internet — ruch wychodzący jest dozwolony, ale ruch przychodzący jest blokowany.
  • Moduł równoważenia obciążenia — umożliwia modułowi równoważenia obciążenia platformy Azure sondowanie kondycji maszyn wirtualnych i wystąpień ról. Jeśli nie używasz zestawu z równoważeniem obciążenia, możesz zastąpić tę regułę.

Tworzenie sieciowych grup zabezpieczeń

Utwórz regułę ruchu przychodzącego o nazwie myFrontendNSGRule , aby zezwolić na przychodzący ruch internetowy na maszynie myFrontendVM przy użyciu polecenia New-AzNetworkSecurityRuleConfig:

$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

Ruch wewnętrzny do maszyny wirtualnej myBackendVM można ograniczyć do ruchu tylko z maszyny wirtualnej myFrontendVM, tworząc grupę zabezpieczeń sieciowych dla podsieci zaplecza. Poniższy przykład tworzy regułę grupy zabezpieczeń sieciowych o nazwie myBackendNSGRule:

$nsgBackendRule = New-AzNetworkSecurityRuleConfig `
  -Name myBackendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix 10.0.0.0/24 `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 1433 `
  -Access Allow

Dodaj sieciową grupę zabezpieczeń o nazwie myFrontendNSG przy użyciu polecenia New-AzNetworkSecurityGroup:

$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

Teraz dodaj sieciową grupę zabezpieczeń o nazwie myBackendNSG przy użyciu polecenia New-AzNetworkSecurityGroup:

$nsgBackend = New-AzNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackendNSG `
  -SecurityRules $nsgBackendRule

Dodaj sieciowe grupy zabezpieczeń do podsieci:

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Name myVNet
$frontendSubnet = $vnet.Subnets[0]
$backendSubnet = $vnet.Subnets[1]
$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myFrontendSubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend
$backendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myBackendSubnet `
  -AddressPrefix $backendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgBackend
Set-AzVirtualNetwork -VirtualNetwork $vnet

Utwórz maszynę wirtualną zaplecza

Najprostszym sposobem utworzenia maszyny wirtualnej zaplecza na potrzeby tego samouczka jest użycie obrazu programu SQL Server. Ten samouczek tworzy maszynę wirtualną tylko z serwerem bazy danych, ale nie udostępnia informacji na temat uzyskiwania dostępu do bazy danych.

Utwórz myBackendNic:

$backendNic = New-AzNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackend `
  -SubnetId $vnet.Subnets[1].Id

Ustaw nazwę użytkownika i hasło wymagane dla konta administratora na maszynie wirtualnej przy użyciu polecenia Get-Credential:

$cred = Get-Credential

Utwórz maszynę wirtualną myBackendVM.

New-AzVM `
   -Credential $cred `
   -Name myBackend `
   -ImageName "MicrosoftSQLServer:SQL2016SP1-WS2016:Enterprise:latest" `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -SubnetName MyBackendSubnet `
   -VirtualNetworkName myVNet

Obraz w tym przykładzie ma zainstalowany program SQL Server, ale nie jest używany w tym samouczku. Zawiera ona pokazanie, jak skonfigurować maszynę wirtualną do obsługi ruchu internetowego i maszyny wirtualnej do obsługi zarządzania bazami danych.

Następne kroki

Podczas tego samouczka stworzyłeś i zabezpieczyłeś sieci Azure związane z maszynami wirtualnymi.

  • Tworzenie sieci wirtualnej i podsieci
  • Tworzenie publicznego adresu IP
  • Utwórz maszynę wirtualną front-endu
  • Zabezpieczanie ruchu sieciowego
  • Utwórz maszynę wirtualną na zapleczu

Aby dowiedzieć się więcej na temat ochrony dysków maszyny wirtualnej, zobacz Tworzenie kopii zapasowych i odzyskiwanie po awarii dla dysków.