Mendiagnosis masalah filter lalu lintas jaringan komputer virtual

Dalam artikel ini, Anda mempelajari cara mendiagnosis masalah filter lalu lintas jaringan dengan melihat aturan keamanan kelompok keamanan jaringan (NSG) yang efektif untuk komputer virtual (VM).

Dengan NSG, Anda dapat mengontrol jenis lalu lintas yang mengalir masuk ke dan keluar dari VM. Anda dapat mengaitkan NSG ke subnet di jaringan virtual Azure, antarmuka jaringan yang dipasang pada VM, atau keduanya. Aturan keamanan efektif yang diterapkan pada antarmuka jaringan adalah agregasi aturan yang ada di NSG yang terkait dengan antarmuka jaringan dan subnet tempat antarmuka jaringan berada. Aturan di NSG yang berbeda terkadang dapat saling bertentangan dan berdampak pada konektivitas jaringan VM. Anda dapat melihat semua aturan keamanan yang efektif dari NSG yang diterapkan pada antarmuka jaringan VM Anda. Jika Anda tidak terbiasa dengan jaringan virtual, antarmuka jaringan, atau konsep NSG, lihat Gambaran umum jaringan virtual, Antarmuka jaringan, dan Gambaran umum kelompok keamanan jaringan.

Skenario

Anda mencoba membuat sambungan ke VM melalui port 80 dari internet, tetapi koneksinya gagal. Untuk mengetahui mengapa Anda tidak dapat mengakses port 80 dari Internet, Anda dapat melihat aturan keamanan yang efektif untuk antarmuka jaringan dengan menggunakan portal Microsoft Azure, PowerShell, atau Azure CLI.

Langkah-langkah setelahnya mengasumsikan bahwa Anda memiliki VM yang ada untuk melihat aturan keamanan yang efektif. Jika Anda tidak memiliki VM, terapkan VM Linux atau Windows terlebih dahulu untuk menyelesaikan tugas di artikel ini. Contoh dalam artikel ini adalah untuk VM bernama myVM dengan antarmuka jaringan bernama myVMVMNic. VM dan antarmuka jaringan berada dalam grup sumber daya bernama myResourceGroup, dan berada di wilayah US Timur. Ubah nilai dalam langkah-langkah yang sesuai untuk VM yang Anda diagnosis masalahnya.

Mendiagnosis dengan portal Azure

  1. Masuklah ke portal Microsoft Azure dengan akun Azure yang memiliki izin yang diperlukan.

  2. Di bagian atas portal Microsoft Azure, masukkan nama VM di kotak pencarian. Saat nama VM muncul di hasil pencarian, pilih VM tersebut.

  3. Di bawah PENGATURAN, pilih Jaringan, seperti yang ditunjukkan dalam gambar berikut:

    Cuplikan layar menunjukkan portal Microsoft Azure dengan pengaturan Jaringan untuk V M V M Nic saya.

    Aturan yang Anda lihat tercantum dalam gambar sebelumnya adalah untuk antarmuka jaringan bernama myVMVMNic. Anda melihat bahwa ada ATURAN PORT MASUK untuk antarmuka jaringan dari dua kelompok keamanan jaringan yang berbeda:

    • mySubnetNSG: Terkait dengan subnet tempat jaringan antarmuka berada.
    • myVMNSG: Terkait dengan antarmuka jaringan di VM bernama myVMVMNic.

    DenyAllInBound adalah aturan yang mencegah komunikasi masuk ke VM melalui port 80, dari internet, seperti yang dijelaskan dalam skenario. Aturan ini mencantumkan 0.0.0.0/0 untuk SUMBER, yang mencakup internet. Tidak ada aturan lain dengan prioritas yang lebih tinggi (angka yang lebih rendah) yang memungkinkan port 80 masuk. Untuk mengizinkan port 80 masuk ke VM dari internet, lihat Mengatasi masalah. Untuk mempelajari selengkapnya tentang aturan keamanan dan bagaimana Azure menerapkan, lihat Kelompok keamanan jaringan.

    Di bagian bawah gambar, Anda juga melihat ATURAN PORT KELUAR. Di bawahnya ada aturan port keluar untuk antarmuka jaringan. Meskipun gambar hanya menunjukkan empat aturan masuk untuk setiap NSG, NSG Anda mungkin memiliki lebih dari empat aturan. Dalam gambar, Anda melihat VirtualNetwork di bawah SUMBER dan TUJUAN serta AzureLoadBalancer di bawah SUMBER. VirtualNetwork dan AzureLoadBalancer adalah tag layanan. Tag layanan mewakili sekelompok awalan alamat IP yang membantu meminimalkan kompleksitas untuk pembuatan aturan keamanan.

  4. Pastikan bahwa VM dalam status berjalan, lalu pilih Aturan keamanan yang efektif, seperti yang ditunjukkan dalam gambar sebelumnya, untuk melihat aturan keamanan yang efektif, yang ditunjukkan dalam gambar berikut:

    Cuplikan layar menunjukkan panel Aturan keamanan yang efektif dengan Unduh dipilih dan Aturan masuk AllowAzureLoadBalancerInbound dipilih.

    Aturan yang tercantum sama seperti yang Anda lihat di langkah 3, meskipun ada tab berbeda untuk NSG yang terkait dengan antarmuka jaringan dan subnet. Seperti yang Anda lihat di gambar, hanya 50 aturan pertama yang ditunjukkan. Untuk mengunduh file .csv yang berisi semua aturan, pilih Unduh.

    Untuk melihat awalan mana yang diwakili setiap tag layanan, pilih aturan, seperti aturan bernama AllowAzureLoadBalancerInbound. Gambar berikut menunjukkan awalan untuk tag layanan AzureLoadBalancer:

    Cuplikan layar menunjukkan awalan Alamat untuk AllowAzureLoadBalancerInbound yang dimasukkan.

    Meskipun tag layanan AzureLoadBalancer hanya mewakili satu awalan, tag layanan lainnya mewakili beberapa awalan.

  5. Langkah sebelumnya menunjukkan aturan keamanan untuk antarmuka jaringan bernama myVMVMNic, tetapi Anda juga telah melihat antarmuka jaringan bernama myVMVMNic2 di beberapa gambar sebelumnya. VM dalam contoh ini memiliki dua antarmuka jaringan yang dipasang di sana. Aturan keamanan yang efektif dapat berbeda untuk setiap antarmuka jaringan.

    Untuk melihat aturan antarmuka jaringan myVMVMNic2, pilih antarmuka tersebut. Seperti yang ditunjukkan dalam gambar setelahnya, antarmuka jaringan memiliki aturan yang sama yang terkait dengan subnetnya sebagai antarmuka jaringan myVMVMNic, karena kedua antarmuka jaringan berada dalam subnet yang sama. Saat Anda mengaitkan NSG ke subnet, aturannya diterapkan ke semua antarmuka jaringan di subnet.

    Cuplikan layar menunjukkan portal Microsoft Azure dengan pengaturan Jaringan untuk V M V M Nic 2 saya.

    Tidak seperti antarmuka jaringan myVMVMNic, antarmuka jaringan myVMVMNic2 tidak memiliki kelompok keamanan jaringan yang terkait dengannya. Setiap antarmuka jaringan dan subnet dapat memiliki nol, atau satu, NSG yang terkait dengannya. NSG yang terkait dengan setiap antarmuka jaringan atau subnet bisa jadi sama atau berbeda. Anda dapat mengaitkan kelompok keamanan jaringan yang sama dengan antarmuka jaringan dan subnet sebanyak yang Anda pilih.

Meskipun aturan keamanan yang efektif dilihat melalui VM, Anda juga dapat melihat aturan keamanan yang efektif melalui setiap:

Mendiagnosis dengan menggunakan PowerShell

Catatan

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Anda dapat menjalankan perintah berikut ini di Azure Cloud Shell, atau dengan menjalankan PowerShell dari komputer. Azure Cloud Shell adalah shell interaktif gratis. Shell ini memiliki alat Azure umum yang telah dipasang sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda. Jika menjalankan PowerShell dari komputer, Anda memerlukan modul Azure PowerShell versi 1.0.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az di komputer Anda untuk menemukan versi yang sudah terpasang. Jika Anda perlu peningkatan, lihat Menginstal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga perlu menjalankan Connect-AzAccount untuk masuk ke Azure dengan akun yang memiliki izin yang diperlukan].

Dapatkan aturan keamanan yang efektif untuk antarmuka jaringan dengan Get-AzEffectiveNetworkSecurityGroup. Contoh berikut mendapatkan aturan keamanan yang efektif untuk antarmuka jaringan bernama myVMVMNic, yang berada dalam kelompok sumber daya bernama myResourceGroup:

Get-AzEffectiveNetworkSecurityGroup `
  -NetworkInterfaceName myVMVMNic `
  -ResourceGroupName myResourceGroup

Output dikembalikan dalam format json. Untuk memahami output, lihat menginterpretasikan output perintah. Output akan dikembalikan jika NSG dikaitkan dengan antarmuka jaringan, subnet tempat antarmuka jaringan berada, atau keduanya. VM harus dalam status berjalan. VM mungkin memiliki beberapa antarmuka jaringan dengan penerapan NSG yang berbeda. Saat memecahkan masalah, jalankan perintah untuk setiap antarmuka jaringan.

Jika Anda masih mengalami masalah konektivitas, lihat diagnosis tambahan dan pertimbangan.

Jika Anda tidak tahu nama antarmuka jaringan, tetapi tahu nama VM tempat antarmuka jaringan dipasang, perintah berikut mengembalikan ID semua antarmuka jaringan yang dipasang ke VM:

$VM = Get-AzVM -Name myVM -ResourceGroupName myResourceGroup
$VM.NetworkProfile

Anda menerima output yang mirip dengan contoh berikut:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic

Di output sebelumnya, nama antarmuka jaringan adalah myVMVMNic.

Mendiagnosis dengan menggunakan Azure CLI

Jika menggunakan perintah CLI Azure untuk menyelesaikan tugas dalam artikel ini, jalankan perintah di Azure Cloud Shell atau dengan menjalankan CLI dari komputer Anda. Artikel ini memerlukan Azure CLI versi 2.0.32 atau yang lebih baru. Jalankan az --version untuk menemukan versi terinstal. Jika Anda perlu memasang atau meningkatkan, lihat Memasang CLI Azure. Jika Anda menjalankan Azure CLI secara lokal, maka Anda juga perlu menjalankan az login untuk masuk ke Azure dengan akun yang memiliki izin yang diperlukan.

Dapatkan aturan keamanan yang efektif untuk antarmuka jaringan dengan az network nic list-effective-nsg. Contoh berikut mendapatkan aturan keamanan yang efektif untuk antarmuka jaringan bernama myVMVMNic yang berada dalam grup sumber daya bernama myResourceGroup:

az network nic list-effective-nsg \
  --name myVMVMNic \
  --resource-group myResourceGroup

Output dikembalikan dalam format json. Untuk memahami output, lihat menginterpretasikan output perintah. Output akan dikembalikan jika NSG dikaitkan dengan antarmuka jaringan, subnet tempat antarmuka jaringan berada, atau keduanya. VM harus dalam status berjalan. VM mungkin memiliki beberapa antarmuka jaringan dengan penerapan NSG yang berbeda. Saat memecahkan masalah, jalankan perintah untuk setiap antarmuka jaringan.

Jika Anda masih mengalami masalah konektivitas, lihat diagnosis tambahan dan pertimbangan.

Jika Anda tidak tahu nama antarmuka jaringan, tetapi tahu nama VM tempat antarmuka jaringan dipasang, perintah berikut mengembalikan ID semua antarmuka jaringan yang dipasang ke VM:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

Dalam output yang dikembalikan, Anda melihat informasi yang mirip dengan contoh berikut:

"networkProfile": {
    "additionalProperties": {},
    "networkInterfaces": [
      {
        "additionalProperties": {},
        "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic",
        "primary": true,
        "resourceGroup": "myResourceGroup"
      },

Di output sebelumnya, nama antarmuka jaringan adalah antarmuka myVMVMNic.

Menginterpretasikan output perintah

Terlepas dari apakah Anda menggunakan PowerShell atau Azure CLI untuk mendiagnosis masalahnya, Anda menerima output yang berisi informasi berikut:

  • NetworkSecurityGroup: ID kelompok keamanan jaringan.
  • Asosiasi: Apakah kelompok keamanan jaringan dikaitkan dengan NetworkInterface atau Subnet. Jika NSG dikaitkan dengan keduanya, output dikembalikan dengan NetworkSecurityGroup, Asosiasi, dan EffectiveSecurityRules, untuk setiap NSG. Jika NSG dikaitkan atau dipisahkan segera sebelum menjalankan perintah untuk melihat aturan keamanan yang efektif, Anda mungkin perlu menunggu beberapa detik agar perubahan terlihat pada output perintah.
  • EffectiveSecurityRules: Penjelasan tentang setiap properti diperinci dalam Membuat aturan keamanan. Nama aturan yang diawali dengan DefaultSecurityRules/ adalah aturan keamanan default yang ada di setiap NSG. Nama aturan yang diawali dengan securityRules/ adalah aturan yang telah Anda buat. Aturan yang menentukan tag layanan, seperti Internet, VirtualNetwork, dan AzureLoadBalancer untuk properti destinationAddressPrefix atau sourceAddressPrefix, juga memiliki nilai untuk properti expandedDestinationAddressPrefix. Properti expandedDestinationAddressPrefix mencantumkan semua awalan alamat yang diwakili oleh tag layanan.

Jika Anda melihat aturan duplikat yang tercantum dalam output, itu karena NSG terkait dengan antarmuka jaringan dan subnet. Kedua NSG memiliki aturan default yang sama dan mungkin memiliki aturan duplikat tambahan, jika Anda telah membuat aturan Anda sendiri yang sama di kedua NSG.

defaultSecurityRules/DenyAllInBound adalah aturan yang mencegah komunikasi masuk ke VM melalui port 80, dari internet, seperti yang dijelaskan dalam skenario. Tidak ada aturan lain dengan prioritas yang lebih tinggi (angka yang lebih rendah) yang memungkinkan port 80 masuk dari internet.

Mengatasi masalah

Apakah Anda menggunakan portal Microsoft Azure, PowerShell, atau Azure CLI untuk mendiagnosis masalah yang disajikan dalam skenario di artikel ini, solusinya adalah membuat aturan keamanan jaringan dengan properti berikut:

Properti Nilai
Sumber Apa pun
Rentang port sumber Apa pun
Tujuan Alamat IP VM, rentang alamat IP, atau semua alamat di subnet.
Rentang port tujuan 80
Protokol TCP
Tindakan Izinkan
Prioritas 100
Nama Izinkan-HTTP-Semua

Setelah Anda membuat aturan, port 80 diizinkan masuk dari internet, karena prioritas aturan lebih tinggi daripada aturan keamanan default bernama DenyAllInBound, yang menyangkal lalu lintas. Pelajari cara membuat aturan keamanan. Jika NSG yang berbeda terkait dengan antarmuka jaringan dan subnet, Anda harus membuat aturan yang sama di kedua NSG.

Saat memproses lalu lintas masuk, Azure memproses aturan di NSG yang terkait dengan subnet (jika ada NSG terkait), lalu memproses aturan di NSG yang terkait dengan antarmuka jaringan. Jika ada NSG yang terkait dengan antarmuka jaringan dan subnet, port harus dibuka di kedua NSG agar lalu lintas mencapai VM. Untuk meringankan masalah administrasi dan komunikasi, Anda sebaiknya mengaitkan NSG ke subnet, alih-alih antarmuka jaringan individual. Jika VM dalam subnet memerlukan aturan keamanan yang berbeda, Anda dapat membuat antarmuka jaringan menjadi anggota kelompok keamanan aplikasi (ASG) dan menentukan ASG sebagai sumber serta tujuan aturan keamanan. Pelajari selengkapnya tentang kelompok keamanan aplikasi.

Jika Anda masih mengalami masalah komunikasi, lihat Pertimbangan dan Diagnosis tambahan.

Pertimbangan

Pertimbangkan poin berikut saat memecahkan masalah konektivitas:

  • Aturan keamanan default memblokir akses masuk dari internet dan hanya mengizinkan lalu lintas masuk dari jaringan virtual. Untuk mengizinkan lalu lintas masuk dari Internet, tambahkan aturan keamanan dengan prioritas lebih tinggi daripada aturan default. Pelajari selengkapnya tentang aturan keamanan default atau cara menambahkan aturan keamanan.
  • Jika Anda memiliki jaringan virtual yang menerapkan komunikasi dua arah, secara default, tag layanan VIRTUAL_NETWORK secara otomatis meluas dan menyertakan awalan untuk jaringan virtual yang menerapkan komunikasi dua arah. Untuk memecahkan masalah apa pun yang terkait dengan komunikasi dua arah jaringan virtual, Anda dapat melihat awalan di daftar ExpandedAddressPrefix. Pelajari selengkapnya tentang komunikasi dua arah jaringan virtual dan tag layanan.
  • Aturan keamanan yang efektif hanya ditunjukkan untuk antarmuka jaringan jika ada NSG yang terkait dengan antarmuka jaringan VM dan, atau, subnet, dan jika VM dalam status berjalan.
  • Jika tidak ada NSG yang terkait dengan antarmuka jaringan atau subnet, dan Anda memiliki alamat IP publik yang ditetapkan ke VM, semua port terbuka untuk akses masuk dari dan akses keluar ke mana saja. Jika VM memiliki alamat IP publik, sebaiknya terapkan NSG ke subnet antarmuka jaringan.

Diagnosis tambahan

  • Untuk menjalankan tes cepat dan menentukan apakah lalu lintas diizinkan ke atau dari VM, gunakan kemampuan verifikasi alur IP Azure Network Watcher. Verifikasi alur IP memberi tahu Anda apakah lalu lintas diizinkan atau ditolak. Jika ditolak, verifikasi alur IP memberi tahu Anda aturan keamanan mana yang menolak lalu lintas.
  • Jika tidak ada aturan keamanan yang menyebabkan konektivitas jaringan VM gagal, masalahnya mungkin karena:
    • Perangkat lunak firewall yang berjalan dalam sistem operasi VM
    • Rute yang dikonfigurasi untuk appliance virtual atau lalu lintas lokal. Lalu lintas internet dapat dialihkan ke jaringan lokal Anda melalui penerowongan paksa. Jika Anda memaksakan lalu lintas internet terowongan ke appliance virtual, atau lokal, Anda mungkin tidak dapat tersambung ke VM dari internet. Untuk mempelajari caranya mendiagnosis masalah rute yang dapat menghambat alur lalu lintas keluar dari VM, lihat Mendiagnosis masalah perutean lalu lintas jaringan komputer virtual.

Langkah berikutnya