Bagikan melalui


Merutekan lalu lintas jaringan dengan tabel rute menggunakan Azure CLI

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 dasar yang merutekan lalu lintas dari VM Ubuntu
  • 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 Azure sebelum memulai.

Prasyarat

  • Artikel ini memerlukan Azure CLI versi 2.0.28 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

Membuat tabel rute

Sebelum Anda bisa membuat tabel rute, buat grup sumber daya dengan membuat grup az untuk semua sumber daya yang dibuat di artikel ini.

# Create a resource group.
az group create \
  --name myResourceGroup \
  --location eastus

Membuat tabel rute dengan membuat tabel rute jaringan az. Contoh berikut membuat tabel rute dengan nama myRouteTablePublic.

# Create a route table
az network route-table create \
  --resource-group myResourceGroup \
  --name myRouteTablePublic

Membuat rute

Membuat rute di tabel rute dengan membuat rute tabel rute jaringan az .

az network route-table route create \
  --name ToPrivateSubnet \
  --resource-group myResourceGroup \
  --route-table-name myRouteTablePublic \
  --address-prefix 10.0.1.0/24 \
  --next-hop-type VirtualAppliance \
  --next-hop-ip-address 10.0.2.4

Mengaitkan tabel rute ke subnet

Sebelum dapat mengaitkan tabel rute ke subnet, Anda harus membuat jaringan virtual dan subnet. Membuat jaringan virtual menggunakan satu subnet dengan membuat vnet jaringan az .

az network vnet create \
  --name myVirtualNetwork \
  --resource-group myResourceGroup \
  --address-prefix 10.0.0.0/16 \
  --subnet-name Public \
  --subnet-prefix 10.0.0.0/24

Membuat dua subnet tambahan dengan membuat subnet vnet jaringan az.

# Create a private subnet.
az network vnet subnet create \
  --vnet-name myVirtualNetwork \
  --resource-group myResourceGroup \
  --name Private \
  --address-prefix 10.0.1.0/24

# Create a DMZ subnet.
az network vnet subnet create \
  --vnet-name myVirtualNetwork \
  --resource-group myResourceGroup \
  --name DMZ \
  --address-prefix 10.0.2.0/24

Mengaitkan tabel rute myRouteTablePublic ke subnet Publik dengan pembaruan subnet vnet jaringan az.

az network vnet subnet update \
  --vnet-name myVirtualNetwork \
  --name Public \
  --resource-group myResourceGroup \
  --route-table myRouteTablePublic

Buat NVA

NVA adalah komputer virtual yang melakukan fungsi jaringan, seperti perutean, pembuatan firewall, atau pengoptimalan WAN. Kami akan membuat NVA dasar dari Ubuntu VM tujuan umum, untuk tujuan demonstrasi.

Buat VM untuk digunakan sebagai NVA di subnet DMZ dengan az vm create. Saat Anda membuat mesin virtual, Azure membuat dan menetapkan antarmuka jaringan myVmNvaVMNic serta alamat IP publik ke mesin virtual secara default. Parameter --public-ip-address "" menginstruksikan Azure untuk tidak membuat dan menetapkan alamat IP publik ke komputer virtual, karena komputer virtual tidak perlu terhubung ke dari internet. Jika tombol SSH belum ada di lokasi kunci default, perintah akan membuatnya. Untuk menggunakan set tombol tertentu, gunakan opsi --ssh-key-value.

az vm create \
  --resource-group myResourceGroup \
  --name myVmNva \
  --image Ubuntu2204 \
  --public-ip-address "" \
  --subnet DMZ \
  --vnet-name myVirtualNetwork \
  --generate-ssh-keys

VM membutuhkan waktu beberapa menit untuk dibuat. Jangan lanjutkan ke langkah berikutnya sampai Azure selesai membuat komputer virtual dan mengembalikan output ke komputer virtual.

Agar antarmuka jaringan myVmNvaVMNic dapat meneruskan lalu lintas yang dikirim ke sana, yang tidak ditentukan untuk alamat IP-nya sendiri, pengalihan IP harus diaktifkan untuk antarmuka jaringan. Aktifkan penerusan IP untuk antarmuka jaringan dengan pembaruan nic jaringan az.

az network nic update \
  --name myVmNvaVMNic \
  --resource-group myResourceGroup \
  --ip-forwarding true

Dalam VM, sistem operasi, atau aplikasi yang berjalan dalam VM, juga harus dapat meneruskan lalu lintas jaringan. Kami akan menggunakan sysctl perintah untuk mengaktifkan kernel Linux untuk meneruskan paket. Untuk menjalankan perintah ini tanpa masuk ke VM, kita akan menggunakan ekstensiCustom Script az vm extension set:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVmNva \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"commandToExecute":"sudo sysctl -w net.ipv4.ip_forward=1"}'

Perintah mungkin memakan waktu hingga satu menit untuk dieksekusi. Perhatikan bahwa perubahan ini tidak akan bertahan setelah reboot VM, jadi jika VM NVA di-boot ulang karena alasan apa pun, skrip perlu diulang.

Membuat komputer virtual

Membuat dua VM dalam jaringan virtual sehingga Anda dapat memvalidasi lalu lintas tersebut dari subnet Publik dirutekan ke subnet Privat melalui NVA di langkah selanjutnya.

Membuat komputer virtual di subnet Privat dengan membuat az vm. Parameter --no-wait memungkinkan Azure untuk menjalankan perintah di latar belakang sehingga Anda dapat melanjutkan ke perintah berikutnya. Untuk merampingkan artikel ini, digunakanlah kata sandi. Kunci biasanya digunakan dalam penyebaran produksi. Jika menggunakan kunci, Anda juga harus mengonfigurasi penerusan agen SSH. Untuk informasi selengkapnya, lihat dokumentasi untuk klien SSH Anda. Ganti <replace-with-your-password> perintah berikut dengan kata sandi yang Anda pilih.

adminPassword="<replace-with-your-password>"

az vm create \
  --resource-group myResourceGroup \
  --name myVmPublic \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet Public \
  --admin-username azureuser \
  --admin-password $adminPassword \
  --no-wait

Membuat VM dalam subnet Pribadi.

az vm create \
  --resource-group myResourceGroup \
  --name myVmPrivate \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet Private \
  --admin-username azureuser \
  --admin-password $adminPassword

VM membutuhkan waktu beberapa menit untuk dibuat. Saat akun Azure Cosmos DB dibuat, Azure CLI menampilkan informasi yang mirip dengan contoh berikut:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVmPrivate",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.1.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "myResourceGroup"
}

Catat publicIpAddress. Alamat ini digunakan untuk mengakses komputer virtual dari internet di langkah selanjutnya.

Skenario: Merutekan lalu lintas melalui NVA

Menggunakan klien SSH pilihan Anda, sambungkan ke VM yang dibuat di atas. Misalnya, perintah berikut dapat digunakan dari antarmuka baris perintah seperti WSL untuk membuat sesi SSH dengan komputer virtual myVmPrivate . Ganti <publicIpAddress> dengan alamat IP publik VM Anda. Dalam contoh di atas, alamat IP adalah 13.90.242.231.

ssh azureuser@<publicIpAddress>

Ketika dimintai kata sandi, masukkan kata sandi yang Anda pilih di Buat mesin virtual.

Menggunakan perintah berikut untuk menginstal rute pelacakan pada komputer virtualmyVmPrivate:

sudo apt update
sudo apt install traceroute

Menggunakan perintah berikut untuk menguji perutean lalu lintas jaringan ke komputer virtualmyVmPublic dari komputer virtualmyVmPrivate.

traceroute myVmPublic

Responsnya serupa dengan contoh berikut:

traceroute to myVmPublic (10.0.0.4), 30 hops max, 60 byte packets
1  10.0.0.4 (10.0.0.4)  1.404 ms  1.403 ms  1.398 ms

Anda dapat melihat bahwa lalu lintas dirutekan secara langsung dari komputer virtual myVmPrivate ke komputer virtual myVmPublic. Rute default Azure, merutekan lalu lintas langsung antar subnet.

Menggunakan perintah berikut ke SSH ke komputer virtual myVmPublic dari komputer virtualmyVmPrivate:

ssh azureuser@myVmPublic

Menggunakan perintah berikut untuk menginstal rute pelacakan pada komputer virtualmyVmPrivate:

sudo apt-get install traceroute

Menggunakan perintah berikut untuk menguji perutean lalu lintas jaringan ke komputer virtualmyVmPrivat dari komputer virtualmyVmPublic.

traceroute myVmPrivate

Responsnya serupa dengan contoh berikut:

traceroute to myVmPrivate (10.0.1.4), 30 hops max, 60 byte packets
1  10.0.2.4 (10.0.2.4)  0.781 ms  0.780 ms  0.775 ms
2  10.0.1.4 (10.0.0.4)  1.404 ms  1.403 ms  1.398 ms

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.

Menutup sesi SSH ke myVmPublic dan komputer virtualmyVmPrivate.

Membersihkan sumber daya

Jika tidak lagi dibutuhkan, gunakan hapus grup az untuk menghapus grup sumber daya dan semua sumber daya di dalamnya.

az group delete --name myResourceGroup --yes

Langkah berikutnya

Dalam artikel ini, Anda membuat tabel rute dan mengaitkannya ke subnet. Menciptakan NVA sederhana yang merutekan lalu lintas dari subnet publik ke subnet privat. Menyebarkan berbagai perangkat virtual jaringan yang dikonfigurasi sebelumnya yang melakukan fungsi jaringan seperti firewall dan pengoptimalan WAN dari Marketplace Microsoft Azure. Untuk mempelajari selengkapnya tentang perutean, lihat Gambaran umum peruteandan 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.