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
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
- 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.