Bagikan melalui


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. Cuplikan layar yang menunjukkan contoh Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Tombol untuk meluncurkan Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Cuplikan layar yang menunjukkan tombol Cloud Shell di portal Azure

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. 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.

  4. 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.