Merutekan lalu lintas jaringan dengan tabel rute menggunakan PowerShell
Azure secara otomatis merutekan lalu lintas di antara semua subnet dalam jaringan virtual, secara default. Anda dapat membuat rute Anda sendiri untuk menimpa perutean default Azure. Kemampuan untuk membuat rute kustom sangat membantu ketika, misalnya, Anda ingin merutekan lalu lintas antara subnet melalui perangkat virtual jaringan (NVA). Dalam artikel ini, Anda akan mempelajari cara:
- Membuat tabel rute
- Membuat rute
- Membuat jaringan virtual dengan beberapa subnet
- Mengaitkan tabel rute ke subnet
- Membuat NVA yang merutekan lalu lintas
- Menyebarkan komputer virtual (VM) ke subnet yang berbeda
- Merutekan lalu lintas dari satu subnet ke subnet lainnya melalui NVA
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Azure Cloud Shell
Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.
Untuk memulai Azure Cloud Shell:
Opsi | Contoh/Tautan |
---|---|
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. | |
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. | |
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. |
Untuk menggunakan Azure Cloud Shell:
Mulai Cloud Shell.
Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.
Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.
Pilih Masukkan untuk menjalankan kode atau perintah.
Jika Anda memilih untuk memasang dan menggunakan PowerShell secara lokal, artikel ini memerlukan modul Azure PowerShell versi 1.0.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az
untuk menemukan versi terinstal. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga perlu menjalankan Connect-AzAccount
untuk membuat koneksi dengan Azure.
Membuat tabel rute
Sebelum Anda membuat tabel rute, buat grup sumber daya dengan New-AzResourceGroup. Contoh berikut membuat grup sumber daya dengan nama myResourceGroup untuk semua sumber daya yang dibuat dalam artikel ini.
New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS
Buat tabel rute dengan New-AzRouteTable. Contoh berikut membuat tabel rute dengan nama myRouteTablePublic.
$routeTablePublic = New-AzRouteTable `
-Name 'myRouteTablePublic' `
-ResourceGroupName myResourceGroup `
-location EastUS
Membuat rute
Buat rute dengan mengambil objek tabel rute dengan Get-AzRouteTable, buat rute dengan Add-AzRouteConfig, lalu tulis konfigurasi rute ke tabel rute dengan Set-AzRouteTable.
Get-AzRouteTable `
-ResourceGroupName "myResourceGroup" `
-Name "myRouteTablePublic" `
| Add-AzRouteConfig `
-Name "ToPrivateSubnet" `
-AddressPrefix 10.0.1.0/24 `
-NextHopType "VirtualAppliance" `
-NextHopIpAddress 10.0.2.4 `
| Set-AzRouteTable
Mengaitkan tabel rute ke subnet
Sebelum dapat mengaitkan tabel rute ke subnet, Anda harus membuat jaringan virtual dan subnet. Buat jaringan virtual dengan New-AzVirtualNetwork. Contoh berikut membuat jaringan virtual bernama myVirtualNetwork dengan awalan alamat 10.0.0.0/16.
$virtualNetwork = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name myVirtualNetwork `
-AddressPrefix 10.0.0.0/16
Buat tiga subnet dengan membuat tiga konfigurasi subnet dengan New-AzVirtualNetworkSubnetConfig. Contoh berikut membuat tiga konfigurasi subnet untuk subnet Publik, Pribadi, dan DMZ:
$subnetConfigPublic = Add-AzVirtualNetworkSubnetConfig `
-Name Public `
-AddressPrefix 10.0.0.0/24 `
-VirtualNetwork $virtualNetwork
$subnetConfigPrivate = Add-AzVirtualNetworkSubnetConfig `
-Name Private `
-AddressPrefix 10.0.1.0/24 `
-VirtualNetwork $virtualNetwork
$subnetConfigDmz = Add-AzVirtualNetworkSubnetConfig `
-Name DMZ `
-AddressPrefix 10.0.2.0/24 `
-VirtualNetwork $virtualNetwork
Tulis konfigurasi subnet ke jaringan virtual dengan Set-AzVirtualNetwork, yang membuat subnet dalam jaringan virtual:
$virtualNetwork | Set-AzVirtualNetwork
Kaitkan tabel rute myRouteTablePublic ke subnet Publik dengan Set-AzVirtualNetworkSubnetConfig lalu tulis konfigurasi subnet ke jaringan virtual dengan Set-AzVirtualNetwork.
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $virtualNetwork `
-Name 'Public' `
-AddressPrefix 10.0.0.0/24 `
-RouteTable $myRouteTablePublic | `
Set-AzVirtualNetwork
Buat NVA
NVA adalah komputer virtual yang melakukan fungsi jaringan, seperti perutean, pembuatan firewall, atau pengoptimalan WAN.
Sebelum membuat VM, buat antarmuka jaringan.
Membuat antarmuka jaringan
Sebelum membuat antarmuka jaringan, Anda harus mengambil Id jaringan virtual dengan Get-AzVirtualNetwork, lalu Id subnet dengan Get-AzVirtualNetworkSubnetConfig. Buat antarmuka jaringan dengan New-AzNetworkInterface dalam subnet DMZ dengan penerusan IP diaktifkan:
# Retrieve the virtual network object into a variable.
$virtualNetwork=Get-AzVirtualNetwork `
-Name myVirtualNetwork `
-ResourceGroupName myResourceGroup
# Retrieve the subnet configuration into a variable.
$subnetConfigDmz = Get-AzVirtualNetworkSubnetConfig `
-Name DMZ `
-VirtualNetwork $virtualNetwork
# Create the network interface.
$nic = New-AzNetworkInterface `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name 'myVmNva' `
-SubnetId $subnetConfigDmz.Id `
-EnableIPForwarding
Membuat VM
Untuk membuat VM dan memasang antarmuka jaringan yang ada, Anda harus terlebih dahulu membuat konfigurasi VM dengan New-AzVMConfig. Konfigurasi ini mencakup antarmuka jaringan yang dibuat pada langkah sebelumnya. Jika diminta untuk nama pengguna dan kata sandi, pilih nama pengguna dan kata sandi yang ingin Anda gunakan untuk login ke VM.
# Create a credential object.
$cred = Get-Credential -Message "Enter a username and password for the VM."
# Create a VM configuration.
$vmConfig = New-AzVMConfig `
-VMName 'myVmNva' `
-VMSize Standard_DS2 | `
Set-AzVMOperatingSystem -Windows `
-ComputerName 'myVmNva' `
-Credential $cred | `
Set-AzVMSourceImage `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest | `
Add-AzVMNetworkInterface -Id $nic.Id
Buat VM menggunakan konfigurasi VM dengan New-AzVM. Contoh berikut membuat VM dengan nama myVmNva.
$vmNva = New-AzVM `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-VM $vmConfig `
-AsJob
Opsi -AsJob
ini membuat VM di latar belakang, sehingga Anda bisa melanjutkan ke langkah berikutnya.
Membuat komputer virtual
Buat dua VM dalam jaringan virtual sehingga Anda dapat memvalidasi lalu lintas tersebut dari subnet Publik dirutekan ke subnet Pribadi melalui perangkat virtual jaringan di langkah selanjutnya.
Buat VM di subnet Publik dengan New-AzVM. Contoh berikut membuat VM dengan nama myVmPublic dalam subnet Publik dari jaringan virtual myVirtualNetwork.
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Location "East US" `
-VirtualNetworkName "myVirtualNetwork" `
-SubnetName "Public" `
-ImageName "Win2016Datacenter" `
-Name "myVmPublic" `
-AsJob
Membuat VM dalam subnet Pribadi.
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Location "East US" `
-VirtualNetworkName "myVirtualNetwork" `
-SubnetName "Private" `
-ImageName "Win2016Datacenter" `
-Name "myVmPrivate"
VM membutuhkan waktu beberapa menit untuk dibuat. Jangan melanjutkan ke langkah berikutnya hingga VM dibuat dan Azure mengembalikan output ke PowerShell.
Skenario: Merutekan lalu lintas melalui NVA
Gunakan Get-AzPublicIpAddress untuk mengembalikan alamat IP VM myVmPrivate. Contoh berikut mengembalikan alamat IP publik komputer virtualmyVmPrivate:
Get-AzPublicIpAddress `
-Name myVmPrivate `
-ResourceGroupName myResourceGroup `
| Select IpAddress
Gunakan perintah berikut untuk membuat sesi desktop jarak jauh dengan VM myVmPrivate dari komputer lokal Anda. Mengganti <publicIpAddress>
dengan alamat IP yang dikembalikan dari perintah sebelumnya.
mstsc /v:<publicIpAddress>
Membuka file RDP yang diunduh. Ketika diminta, pilih Sambungkan.
Masukkan nama pengguna dan kata sandi yang Anda tentukan saat membuat komputer virtual (Anda mungkin perlu memilih Pilihan lainnya, lalu Gunakan akun lain, untuk menentukan kredensial yang Anda masukkan saat membuat komputer virtual), lalu pilih OK. Anda mungkin menerima peringatan sertifikat selama proses masuk. Pilih Ya untuk melanjutkan ke koneksi.
Pada langkah selanjutnya, perintah tracert.exe
digunakan untuk menguji perutean. Tracert menggunakan Protokol Pesan Kontrol Internet (ICMP), yang ditolak melalui Firewall Windows. Aktifkan ICMP melalui firewall Windows dengan memasukkan perintah berikut dari PowerShell pada VM myVmPrivate:
New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Protocol ICMPv4
Meskipun rute pelacakan digunakan untuk menguji perutean dalam artikel ini, tidak disarankan untuk mengizinkan ICMP lewat melalui Firewall Windows untuk penyebaran produksi.
Anda mengaktifkan penerusan IP dalam Azure untuk antarmuka jaringan VM dalam Aktifkan penerusan IP. Dalam VM, sistem operasi, atau aplikasi yang berjalan dalam VM, juga harus dapat meneruskan lalu lintas jaringan. Aktifkan penerusan IP dalam sistem operasi myVmNva.
Dari perintah pada VM myVmPrivate, desktop jarak jauh ke myVmNva:
mstsc /v:myvmnva
Untuk mengaktifkan penerusan IP dalam sistem operasi, masukkan perintah berikut dalam PowerShell dari VM myVmNva:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IpEnableRouter -Value 1
Mulai ulang VM myVmNva, yang juga memutuskan sesi desktop jarak jauh.
Saat masih terhubung ke VM myVmPrivate, buat sesi desktop jarak jauh ke VM myVmPublic, setelah VM myVmNva dihidupkan ulang:
mstsc /v:myVmPublic
Aktifkan ICMP melalui firewall Windows dengan memasukkan perintah berikut dari PowerShell di VM myVmPrivate:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Untuk menguji perutean lalu lintas jaringan ke VM myVmPrivate dari VM myVmPublic, masukkan perintah berikut dari PowerShell di VM myVmPublic:
tracert myVmPrivate
Responsnya serupa dengan contoh berikut:
Tracing route to myVmPrivate.vpgub4nqnocezhjgurw44dnxrc.bx.internal.cloudapp.net [10.0.1.4]
over a maximum of 30 hops:
1 <1 ms * 1 ms 10.0.2.4
2 1 ms 1 ms 1 ms 10.0.1.4
Trace complete.
Anda dapat melihat lompatan pertama adalah 10.0.2.4, yang merupakan alamat IP privat NVA. Lompatan kedua adalah 10.0.1.4, alamat IP privat komputer virtual myVmPrivate. Rute yang ditambahkan ke tabel rute myRouteTablePublic dan terkait dengan subnet Publik menyebabkan Azure merutekan lalu lintas melalui NVA, bukan langsung ke subnet Privat.
Tutup sesi desktop jarak jauh ke VM myVMPublic,, yang membuat Anda masih terhubung ke VM myVMPrivate.
Untuk menguji perutean lalu lintas jaringan ke VM myVmPublic dari VM myVmPrivate, masukkan perintah berikut dari perintah di VM myVmPrivate:
tracert myVmPublic
Responsnya serupa dengan contoh berikut:
Tracing route to myVmPublic.vpgub4nqnocezhjgurw44dnxrc.bx.internal.cloudapp.net [10.0.0.4]
over a maximum of 30 hops:
1 1 ms 1 ms 1 ms 10.0.0.4
Trace complete.
Anda dapat melihat bahwa lalu lintas dirutekan secara langsung dari komputer virtual myVmPrivate ke komputer virtual myVmPublic. Secara default, Azure merutekan lalu lintas langsung antara subnet.
Tutup sesi desktop jarak jauh ke VM myVmPrivate.
Membersihkan sumber daya
Jika tidak lagi dibutuhkan, gunakan Remove-AzResourcegroup untuk menghapus grup sumber daya dan semua sumber daya yang termuat di dalamnya.
Remove-AzResourceGroup -Name myResourceGroup -Force
Langkah berikutnya
Dalam artikel ini, Anda membuat tabel rute dan mengaitkannya ke subnet. Anda membuat perangkat virtual jaringan sederhana yang merutekan lalu lintas dari subnet publik ke subnet pribadi. Sebarkan berbagai perangkat virtual jaringan yang dikonfigurasi sebelumnya yang melakukan fungsi jaringan seperti firewall dan pengoptimalan WAN dari Azure Marketplace. Untuk mempelajari selengkapnya tentang perutean, lihat Gambaran umum perutean dan Mengelola tabel rute.
Meskipun Anda dapat menyebarkan banyak sumber daya Azure dalam jaringan virtual, sumber daya untuk beberapa layanan Azure PaaS tidak dapat disebarkan ke dalam jaringan virtual. Anda masih dapat membatasi akses ke sumber daya beberapa layanan Azure PaaS untuk lalu lintas hanya dari subnet jaringan virtual. Untuk mempelajari caranya, lihat Membatasi akses jaringan ke sumber daya PaaS.