Hızlı Başlangıç: Sanal ağ oluşturmak için Azure PowerShell kullanma
Bu hızlı başlangıçta Azure PowerShell kullanarak sanal ağ oluşturma işlemi gösterilmektedir. Ardından ağda iki sanal makine (VM) oluşturur, İnternet'ten VM'lere güvenli bir şekilde bağlanır ve VM'ler arasında özel iletişim başlatırsınız.
Sanal ağ, Azure'daki özel ağlar için temel yapı taşıdır. Azure Sanal Ağ, VM'ler gibi Azure kaynaklarının birbirleriyle ve İnternet ile güvenli bir şekilde iletişim kurmasını sağlar.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturabilirsiniz.
Azure Cloud Shell veya Azure PowerShell.
Bu hızlı başlangıçtaki adımlar, Azure Cloud Shell'de Azure PowerShell cmdlet'lerini etkileşimli olarak çalıştırır. Cloud Shell'de komutları çalıştırmak için kod bloğunun sağ üst köşesindeki CloudShell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz.
Cmdlet'leri çalıştırmak için Azure PowerShell'i yerel olarak da yükleyebilirsiniz. Bu makaledeki adımlar Için Azure PowerShell modülü sürüm 5.4.1 veya üzeri gerekir. Yüklü sürümünüzü bulmak için komutunu çalıştırın
Get-Module -ListAvailable Az
. Yükseltmeniz gerekiyorsa bkz . Azure PowerShell modülünü güncelleştirme.PowerShell'i yerel olarak çalıştırıyorsanız Azure'a bağlanmak için komutunu çalıştırın
Connect-AzAccount
.
Kaynak grubu oluşturma
New-AzResourceGroup kullanarak sanal ağı barındıracak bir kaynak grubu oluşturun. eastus2 Azure bölgesinde test-rg adlı bir kaynak grubu oluşturmak için aşağıdaki kodu çalıştırın:
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Sanal ağ oluşturma
New-AzVirtualNetwork komutunu kullanarak test-rg kaynak grubunda ve eastus2 konumunda IP adresi ön eki 10.0.0.0/16 olan vnet-1 adlı bir sanal ağ oluşturun:
$vnet = @{ Name = 'vnet-1' ResourceGroupName = 'test-rg' Location = 'eastus2' AddressPrefix = '10.0.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
Azure, kaynakları sanal ağ içindeki bir alt ağa dağıtır. Adres ön eki 10.0.0.0/24 olan subnet-1 adlı bir alt ağ yapılandırması oluşturmak için Add-AzVirtualNetworkSubnetConfig komutunu kullanın:
$subnet = @{ Name = 'subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Set-AzVirtualNetwork komutunu kullanarak alt ağ yapılandırmasını sanal ağ ile ilişkilendirin:
$virtualNetwork | Set-AzVirtualNetwork
Azure Bastion’ı dağıtma
Azure Bastion, özel IP adreslerini kullanarak Secure Shell (SSH) veya Uzak Masaüstü Protokolü (RDP) üzerinden sanal ağınızdaki VM'lere bağlanmak için tarayıcınızı kullanır. VM'lerin genel IP adreslerine, istemci yazılımına veya özel yapılandırmaya ihtiyacı yoktur. Bastion hakkında daha fazla bilgi için bkz . Azure Bastion nedir?.
Saatlik fiyatlandırma, giden veri kullanımına bakılmaksızın Bastion dağıtıldığından itibaren başlar. Daha fazla bilgi için bkz . Fiyatlandırma ve SKU'lar. Bastion'ı bir öğretici veya test kapsamında dağıtıyorsanız, kullanmayı bitirdikten sonra bu kaynağı silmenizi öneririz.
Sanal ağınız için bir Bastion alt ağı yapılandırın. Bu alt ağ yalnızca Bastion kaynakları için ayrılmıştır ve AzureBastionSubnet olarak adlandırılmalıdır.
$subnet = @{ Name = 'AzureBastionSubnet' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.1.0/26' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Yapılandırmayı ayarlayın:
$virtualNetwork | Set-AzVirtualNetwork
Bastion için bir genel IP adresi oluşturun. Bastion konağı, 443 numaralı bağlantı noktası üzerinden SSH ve RDP'ye erişmek için genel IP'yi kullanır.
$ip = @{ ResourceGroupName = 'test-rg' Name = 'public-ip' Location = 'eastus2' AllocationMethod = 'Static' Sku = 'Standard' Zone = 1,2,3 } New-AzPublicIpAddress @ip
AzureBastionSubnet'te yeni bir Standart SKU Bastion konağı oluşturmak için New-AzBastion komutunu kullanın:
$bastion = @{ Name = 'bastion' ResourceGroupName = 'test-rg' PublicIpAddressRgName = 'test-rg' PublicIpAddressName = 'public-ip' VirtualNetworkRgName = 'test-rg' VirtualNetworkName = 'vnet-1' Sku = 'Basic' } New-AzBastion @bastion
Bastion kaynaklarının dağıtılması yaklaşık 10 dakika sürer. Bastion sanal ağınıza dağıtılırken sonraki bölümde VM'ler oluşturabilirsiniz.
Sanal makineleri oluşturma
New-AzVM kullanarak sanal ağın alt ağı-1 alt ağında vm-1 ve vm-2 adlı iki VM oluşturun. Kimlik bilgileri istendiğinde VM'ler için kullanıcı adlarını ve parolaları girin.
İlk VM'yi oluşturmak için aşağıdaki kodu kullanın:
# Set the administrator and password for the VM. ## $cred = Get-Credential ## Place the virtual network into a variable. ## $vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg' ## Create a network interface for the VM. ## $nic = @{ Name = "nic-1" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-1" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-1" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
İkinci VM'yi oluşturmak için aşağıdaki kodu kullanın:
# Set the administrator and password for the VM. ## $cred = Get-Credential ## Place the virtual network into a variable. ## $vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg' ## Create a network interface for the VM. ## $nic = @{ Name = "nic-2" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-2" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-2" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
İpucu
Diğer görevlere -AsJob
devam ederken arka planda vm oluşturmak için seçeneğini kullanabilirsiniz. Örneğin, komutunu çalıştırın New-AzVM @vm1 -AsJob
. Azure arka planda VM oluşturmaya başladığında aşağıdaki çıkışa benzer bir şey elde edersiniz:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost New-AzVM
Azure'ın VM'leri oluşturması birkaç dakika sürer. Azure VM'leri oluşturmayı tamamladığında PowerShell'e çıkış döndürür.
Not
Bastion konağı olan bir sanal ağdaki VM'lerin genel IP adreslerine ihtiyacı yoktur. Bastion genel IP'yi sağlar ve VM'ler ağ içinde iletişim kurmak için özel IP'ler kullanır. Bastion tarafından barındırılan sanal ağlardaki tüm VM'lerden genel IP'leri kaldırabilirsiniz. Daha fazla bilgi için bkz . Azure VM'den genel IP adresini ilişkilendirme.
Not
Azure, genel IP adresi atanmamış veya bir iç temel Azure yük dengeleyicinin arka uç havuzunda yer alan VM'ler için varsayılan bir giden erişim IP'si sağlar. Varsayılan giden erişim IP mekanizması, yapılandırılamayan bir giden IP adresi sağlar.
Aşağıdaki olaylardan biri gerçekleştiğinde varsayılan giden erişim IP'si devre dışı bırakılır:
- VM'ye bir genel IP adresi atanır.
- VM, giden kuralları olan veya olmayan standart bir yük dengeleyicinin arka uç havuzuna yerleştirilir.
- VM'nin alt a bilgisayarına bir Azure NAT Gateway kaynağı atanır.
Sanal makine ölçek kümelerini esnek düzenleme modunda kullanarak oluşturduğunuz VM'lerin varsayılan giden erişimi yoktur.
Azure'daki giden bağlantılar hakkında daha fazla bilgi için bkz . Azure'da varsayılan giden erişim ve giden bağlantılar için Kaynak Ağ Adresi Çevirisi'ni (SNAT) kullanma.
Sanal makineye bağlanma
Portalda Sanal makineler'i arayın ve seçin.
Sanal makineler sayfasında vm-1'i seçin.
vm-1'e genel bakış bilgilerinde Bağlan'ı seçin.
Sanal makineye bağlan sayfasında Bastion sekmesini seçin.
Bastion Kullan'ı seçin.
VM'yi oluştururken oluşturduğunuz kullanıcı adını ve parolayı girin ve bağlan'ı seçin.
VM'ler arasında iletişimi başlatma
vm-1 için bash istemine girin
ping -c 4 vm-2
.Aşağıdaki iletiye benzer bir yanıt alırsınız:
azureuser@vm-1:~$ ping -c 4 vm-2 PING vm-2.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.5) 56(84) bytes of data. 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=1 ttl=64 time=1.83 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=2 ttl=64 time=0.987 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=3 ttl=64 time=0.864 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=4 ttl=64 time=0.890 ms
Vm-1 ile Bastion bağlantısını kapatın.
Vm-2'ye bağlanmak için Sanal makineye bağlanma'daki adımları yineleyin.
vm-2 için bash istemine girin
ping -c 4 vm-1
.Aşağıdaki iletiye benzer bir yanıt alırsınız:
azureuser@vm-2:~$ ping -c 4 vm-1 PING vm-1.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.4) 56(84) bytes of data. 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=1 ttl=64 time=0.695 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=2 ttl=64 time=0.896 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=3 ttl=64 time=3.43 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=4 ttl=64 time=0.780 ms
Vm-2 ile Bastion bağlantısını kapatın.
Kaynakları temizleme
Sanal ağı ve VM'leri bitirdiğinizde, kaynak grubunu ve tüm kaynaklarını kaldırmak için Remove-AzResourceGroup kullanın:
Remove-AzResourceGroup -Name 'test-rg' -Force
Sonraki adımlar
Bu hızlı başlangıçta, iki VM içeren varsayılan alt ağa sahip bir sanal ağ oluşturdunuz. Azure Bastion'ı dağıttınız ve vm'lere bağlanmak ve VM'ler arasında güvenli bir şekilde iletişim kurmak için kullandınız. Sanal ağ ayarları hakkında daha fazla bilgi edinmek için bkz . Sanal ağ oluşturma, değiştirme veya silme.