Rutekan lalu lintas melalui appliance virtual jaringan
Sampel skrip ini membuat jaringan virtual dengan subnet ujung depan dan ujung belakang. Sampel skrip ini juga membuat komputer virtual dengan penerusan IP yang diaktifkan untuk merutekan lalu lintas antara dua subnet. Setelah menjalankan skrip, Anda dapat menggunakan perangkat lunak jaringan, seperti aplikasi firewall, ke komputer virtual.
Jika diperlukan, instal Azure PowerShell menggunakan instruksi yang dapat ditemukan di panduan Azure PowerShell, lalu jalankan Connect-AzAccount untuk membuat koneksi dengan Azure.
Jika Anda tidak memiliki langganan Azure, buat akun gratis Azure sebelum memulai.
Skrip sampel
Catatan
Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
# Variables for common values
$rgName='MyResourceGroup'
$location='eastus'
# Create user object
$cred = Get-Credential -Message 'Enter a username and password for the virtual machine.'
# Create a resource group.
New-AzResourceGroup -Name $rgName -Location $location
# Create a virtual network, a front-end subnet, a back-end subnet, and a DMZ subnet.
$fesubnet = New-AzVirtualNetworkSubnetConfig -Name 'MySubnet-FrontEnd' -AddressPrefix 10.0.1.0/24
$besubnet = New-AzVirtualNetworkSubnetConfig -Name 'MySubnet-BackEnd' -AddressPrefix 10.0.2.0/24
$dmzsubnet = New-AzVirtualNetworkSubnetConfig -Name 'MySubnet-Dmz' -AddressPrefix 10.0.0.0/24
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name 'MyVnet' -AddressPrefix 10.0.0.0/16 `
-Location $location -Subnet $fesubnet, $besubnet, $dmzsubnet
# Create NSG rules to allow HTTP & HTTPS traffic inbound.
$rule1 = New-AzNetworkSecurityRuleConfig -Name 'Allow-HTTP-ALL' -Description 'Allow HTTP' `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 100 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 80
$rule2 = New-AzNetworkSecurityRuleConfig -Name 'Allow-HTTPS-All' -Description 'Allow HTTPS' `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 200 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 443
# Create a network security group (NSG) for the front-end subnet.
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $RgName -Location $location `
-Name 'MyNsg-FrontEnd' -SecurityRules $rule1,$rule2
# Associate the front-end NSG to the front-end subnet.
Set-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name 'MySubnet-FrontEnd' `
-AddressPrefix '10.0.1.0/24' -NetworkSecurityGroup $nsg
# Create a public IP address for the firewall VM.
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgName -Name 'MyPublicIP-Firewall' `
-location $location -AllocationMethod Dynamic
# Create a NIC for the firewall VM and enable IP forwarding.
$nicVMFW = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location -Name 'MyNic-Firewall' `
-PublicIpAddress $publicip -Subnet $vnet.Subnets[2] -EnableIPForwarding
#Create a firewall VM to accept all traffic between the front and back-end subnets.
$vmConfig = New-AzVMConfig -VMName 'MyVm-Firewall' -VMSize Standard_DS2 | `
Set-AzVMOperatingSystem -Windows -ComputerName 'MyVm-Firewall' -Credential $cred | `
Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
-Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nicVMFW.Id
$vm = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig
# Create a route for traffic from the front-end to the back-end subnet through the firewall VM.
$route = New-AzRouteConfig -Name 'RouteToBackEnd' -AddressPrefix 10.0.2.0/24 `
-NextHopType VirtualAppliance -NextHopIpAddress $nicVMFW.IpConfigurations[0].PrivateIpAddress
# Create a route for traffic from the front-end subnet to the Internet through the firewall VM.
$route2 = New-AzRouteConfig -Name 'RouteToInternet' -AddressPrefix 0.0.0.0/0 `
-NextHopType VirtualAppliance -NextHopIpAddress $nicVMFW.IpConfigurations[0].PrivateIpAddress
# Create route table for the FrontEnd subnet.
$routeTableFEtoBE = New-AzRouteTable -Name 'MyRouteTable-FrontEnd' -ResourceGroupName $rgName `
-location $location -Route $route, $route2
# Associate the route table to the FrontEnd subnet.
Set-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name 'MySubnet-FrontEnd' -AddressPrefix 10.0.1.0/24 `
-NetworkSecurityGroup $nsg -RouteTable $routeTableFEtoBE
# Create a route for traffic from the back-end subnet to the front-end subnet through the firewall VM.
$route = New-AzRouteConfig -Name 'RouteToFrontEnd' -AddressPrefix '10.0.1.0/24' -NextHopType VirtualAppliance `
-NextHopIpAddress $nicVMFW.IpConfigurations[0].PrivateIPAddress
# Create a route for traffic from the back-end subnet to the Internet through the firewall VM.
$route2 = New-AzRouteConfig -Name 'RouteToInternet' -AddressPrefix '0.0.0.0/0' -NextHopType VirtualAppliance `
-NextHopIpAddress $nicVMFW.IpConfigurations[0].PrivateIPAddress
# Create route table for the BackEnd subnet.
$routeTableBE = New-AzRouteTable -Name 'MyRouteTable-BackEnd' -ResourceGroupName $rgName `
-location $location -Route $route, $route2
# Associate the route table to the BackEnd subnet.
Set-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name 'MySubnet-BackEnd' `
-AddressPrefix '10.0.2.0/24' -RouteTable $routeTableBE
Menghapus penyebaran
Jalankan perintah berikut untuk menghapus grup sumber daya, VM, dan semua sumber daya terkait.
Remove-AzResourceGroup -Name myResourceGroup
Penjelasan skrip
Skrip ini menggunakan perintah berikut untuk membuat grup sumber daya, jaringan virtual, dan grup keamanan jaringan. Setiap perintah dalam tabel ditautkan ke dokumentasi spesifik perintah.
| Perintah | Catatan |
|---|---|
| Baru-AzResourceGroup | Membuat grup sumber daya di tempat semua sumber daya tersimpan. |
| New-AzVirtualNetwork | Membuat jaringan virtual Azure dan subnet front-end. |
| New-AzVirtualNetworkSubnetConfig | Membuat subnet back-end dan DMZ. |
| New-AzPublicIpAddress | Membuat alamat IP publik untuk mengakses VM dari internet. |
| New-AzNetworkInterface | Membuat antarmuka jaringan virtual dan mengaktifkan penerusan IP untuknya. |
| New-AzNetworkSecurityGroup | Membuat grup keamanan jaringan (NSG). |
| New-AzNetworkSecurityRuleConfig | Membuat aturan NSG yang memungkinkan port HTTP dan HTTPS masuk ke komputer virtual. |
| Set-AzVirtualNetworkSubnetConfig | Mengaitkan NSGs dan merutekan tabel ke subnet. |
| New-AzRouteTable | Membuat tabel rute untuk semua rute. |
| New-AzRouteConfig | Membuat rute untuk merutekan lalu lintas antara subjaringan dan Internet melalui komputer virtual. |
| New-AzVM | Membuat komputer virtual dan melampirkan NIC ke dalamnya. Perintah ini juga menentukan citra komputer virtual yang akan digunakan dan kredensial administratif. |
| Remove-AzResourceGroup | Menghapus grup sumber daya dan semua sumber daya yang ada di dalamnya. |
Langkah berikutnya
Untuk informasi selengkapnya tentang Azure PowerShell, lihat dokumentasi Azure PowerShell.
Contoh skrip PowerShell jaringan tambahan dapat ditemukan di dokumentasi Gambaran Umum Jaringan Azure.