Cisco ASA ke Azure VPN: pasangan prefiks selektor lalu lintas
Tulis koneksi ASA ke Azure VPN sebagai kontrak: model koneksi, pasangan prefiks yang tepat, verifikasi selektor, lalu pengembalian. Runbook yang selaras dengan rilis.
Tunnel naik, IKE terlihat sehat, dan tidak ada yang lewat melaluinya. Itulah bentuk biasa masalah selektor ASA ke Azure, dan karena itu saya menulis kontrak sebelum menyentuh salah satu dari dua konsol. Kontraknya ada empat hal: objek yang mengidentifikasi tiap peer, model koneksi, pasangan prefiks yang tepat, dan verifikasi yang membuktikan tiap pasangan. Jika ini salah, setiap perintah berikutnya akan men-debug konfigurasi yang seharusnya tidak Anda bangun. Runbook ini adalah urutan yang saya pakai, bersama perintah yang menunjukkan objek mana yang benar-benar salah.
Tuliskan empat objek sebelum mengonfigurasi
Mulai dari rilis dan platform ASA, endpoint publik, tipe dan SKU gateway Azure VPN, serta local network gateway yang mewakili sisi Anda. Keempat nama itu adalah kosakata untuk semua yang berikutnya, dan masing-masing punya pemilik berbeda saat ada yang rusak.
Jika dua di antaranya masih dugaan, berhenti. Daftar prefiks yang salah pada local network gateway bukan masalah penyetelan.
Pilih satu model koneksi dan berhenti mencampur templat
Desain crypto map dan desain tunnel interface adalah konfigurasi berbeda, dan templat untuk yang satu tidak menjadi sah untuk yang lain dengan mengubah alamat peer. Catat mana yang Anda bangun sebelum menempel apa pun, karena ketidakcocokan nanti muncul sebagai masalah selektor, bukan sebagai kesalahan konfigurasi. Panduan interoperabilitas ASA dari Microsoft mencakup kedua pola dan menyebutkan model gateway Azure mana yang diasumsikan masing-masing. Jika catatan Anda tidak menyebut modelnya, Anda belum punya desain.
Gateway Azure berbasis rute dengan selektor lalu lintas berbasis kebijakan adalah opsi terdokumentasi yang spesifik, bukan default. Jika desain Anda bergantung padanya, desain harus menyebutkannya, karena model selektor default berbasis rute berperilaku berbeda di sisi Azure.
Batas versi juga termasuk dalam kontrak. Laporan lapangan lama tentang batas domain enkripsi adalah data tentang rilis tertentu, bukan sifat permanen setiap ASA.
Sebutkan pasangan prefiks, bukan agregat
Tulis matriksnya. A dan B lokal ke X dan Y Azure adalah empat pasangan, dan tiap pasangan perlu cakupan atau pengecualian eksplisit. Menggabungkan A dan B menjadi satu agregat juga mencakup apa pun yang berada di antaranya, dan begitulah sebuah desain diam-diam mendapat lubang.
Periksa apa yang dinegosiasikan peer, bukan apa yang Anda simpan. Daftar jaringan lokal dan jarak jauh pada ASA adalah niat; CHILD SA adalah hasilnya.
Saat satu pasangan hilang, perbaikannya biasanya baris access-list atau entri selektor, bukan tunnel baru.
Verifikasi dengan perintah yang menyebut objeknya
Pada ASA, konfirmasi sesi IKE, lalu IPsec SA, lalu pasangan selektor. Setiap perintah menjawab pertanyaan berbeda, dan menjalankan yang pertama saja adalah cara pernyataan bahwa tunnel sudah naik berubah menjadi kesimpulan yang salah. Baca keluaran untuk peer yang benar-benar Anda konfigurasi, bukan untuk SA yang kebetulan pertama dalam daftar. Sisi Azure menjawab tiga pertanyaan yang sama dari sudut pandangnya sendiri.
show crypto ikev2 sa detailed
show crypto ipsec sa peer 203.0.113.10
show run access-list AZURE-SELECTORS
packet-tracer input inside icmp 10.1.10.10 8 0 10.2.20.20 detailed
Lalu tanyakan status koneksi ke Azure dengan az network vpn-connection show --name <connection> --query connectionStatus. Connected dengan nol byte di jalur data adalah masalah selektor, bukan masalah perutean.
Uji satu aliran yang diizinkan per pasangan, periksa alamat sumber yang terlihat di sisi lain, dan coba satu sumber daya yang seharusnya ditolak. Uji terakhir itulah satu-satunya yang membuktikan batasnya masih ada.
Pisahkan cakupan enkripsi dari izin akses
Selektor lebar bukan izin. Jika tata letak yang didukung lebih lebar dari kebijakan aplikasi, pertahankan layanan sempit di aturan firewall dan biarkan cakupan enkripsi di tempat yang seharusnya.
Rute beban kerja Azure dan rute balik lokal ditinjau terpisah. Pengumuman BGP, cakupan jaringan statis, dan rute yang ditentukan pengguna semuanya harus menggambarkan jalur yang sama, dan tidak satu pun boleh menangkap transport peer secara rekursif.
Pengembalian dan bukti bahwa itu berhasil
Simpan konfigurasi berjalan sebelumnya sebelum mengubah selektor, dan ketahui satu perintah yang mengembalikannya. Pada ASA itu berarti salinan tersimpan dan jalur pemulihan yang cocok, bukan ingatan tentang apa yang Anda edit. Tulis perintah pemulihan di tiket perubahan selagi perubahan masih hipotetis. Lalu jalankan lagi tiga pemeriksaan yang sama: status IKE, pasangan IPsec SA, satu aliran yang diizinkan per pasangan.
Jika satu pasangan masih gagal setelah pemulihan, perubahan itu bukan penyebabnya, dan Anda baru saja menyelamatkan diri dari gangguan kedua.