Terowongan putus pada saat kedua ujung tidak sepakat tentang kunci yang dibagikan sebelumnya, dan tetap mati sampai kedua sisi membawa nilai baru. Bagian itu sudah diduga: AWS memperlakukan perubahan sebagai gangguan pada terowongan yang dipilih, dan rekan tidak akan menyelesaikan IKE selama kuncinya berbeda. Yang mengejutkan orang adalah paruh kedua. Terowongan lainnya tidak menyerap lalu lintas dengan sendirinya kecuali Anda sudah memeriksa bahwa ia mampu membawanya. Rotasi dengan urutan ini dan gangguannya tetap di dalam satu terowongan.

Apa yang sebenarnya terjadi saat kunci berubah

ModifyVpnTunnelOptions menulis ulang opsi untuk satu terowongan, yang diidentifikasi oleh alamat IP luarnya. Terowongan dibongkar dan dibangun ulang, sehingga IKE dan IPsec bernegosiasi dari awal dengan kunci baru. AWS menyatakan gangguan dapat berlangsung beberapa menit, yang cukup lama bagi protokol perutean untuk menyadarinya. Terowongan lain dalam koneksi yang sama tidak tersentuh oleh panggilan itu.

Ada efek kedua yang perlu diketahui sebelum Anda mengirim apa pun. Operasi perubahan mengambil seluruh set opsi terowongan, sehingga bidang yang Anda hilangkan ditulis kembali dengan nilai bawaannya. Jika Anda pernah menyetel masa hidup fase 1 atau fase 2, atau pengaturan deteksi rekan mati, teruskan nilai saat ini dalam permintaan yang sama atau rencanakan pemulihannya sesudahnya.

Baca nilai saat ini lebih dulu, lalu ubah satu bidang. Urutan itulah seluruh disiplin tugas ini.

Cocokkan terowongan AWS dengan rekan yang tepat lebih dulu

Konsol memberi label terowongan menurut urutan, dan perangkat Anda tidak memakai label itu. Identifikasi terowongan lewat alamat IP luarnya dan cocokkan dengan bagian rekan di gerbang pelanggan. Terowongan 1 dalam konfigurasi lokal bukan bukti bahwa Anda sedang menyunting terowongan yang disebut AWS sebagai terowongan 1.

Mulai dari koneksi itu sendiri, yang mencantumkan kedua terowongan dan kunci yang dipegang masing-masing saat ini:

aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
  --query "VpnConnections[0].Options.TunnelOptions[].[OutsideIpAddress,PreSharedKey]"

Kunci yang dikembalikan adalah yang sedang dipakai sekarang. Bandingkan dengan konfigurasi rekan sebelum Anda mengubah apa pun, karena ketidakcocokan yang sudah ada menjelaskan terowongan yang tidak pernah stabil.

Biarkan terowongan lain membawa lalu lintas lebih dulu

Dua terowongan dalam satu koneksi tidak membuktikan bahwa perangkat Anda mengonfigurasi keduanya, bahwa keduanya mengumumkan prefiks yang Anda butuhkan, atau bahwa lalu lintas bergerak di antaranya. Periksa negosiasi terowongan alternatif, rutenya, dan alur aplikasi nyata di kedua arah. Dengan BGP, kedekatan yang hidup adalah bukti berguna tetapi tidak sama dengan mengonfirmasi prefiks. Dengan perutean statis, pastikan bagaimana gerbang memilih jalur dan apa yang dilakukannya saat jalur pilihan hilang.

Jika alternatif tidak dapat membawa beban kerja, jadwalkan gangguannya atau perbaiki terowongan alternatif sebelum Anda menyentuh kunci. Lampu status di halaman konsol bukan janji layanan tanpa gangguan.

Rotasi satu terowongan, lalu verifikasi dengan lalu lintas nyata

Setelah jalur alternatif terbukti, urutannya singkat. Catat alamat terowongan, rekannya, dan pengaturan yang bukan rahasia, dan pertahankan jalur manajemen ke gerbang yang tidak bergantung pada terowongan yang akan Anda putus.

  1. Perbarui rekan gerbang pelanggan untuk alamat luar yang dipilih, atau siapkan perubahannya agar berlaku beberapa detik setelah panggilan API.
  2. Kirim panggilan perubahan dengan kunci baru plus masa hidup dan nilai DPD saat ini.
  3. Tunggu IKE dan IPsec kembali, lalu konfirmasi rute dan prefiks yang diperlukan.
  4. Lewatkan alur aplikasi yang mewakili melalui terowongan itu dan amati kedua arah.

Terowongan tidak dapat dipakai selama kedua ujung tidak sepakat dan selama AWS menerapkan perubahan, jadi pembaruan rekan harus menyusul segera, bukan setelah makan siang. Hanya setelah terowongan yang diubah membawa lalu lintas nyata Anda sebaiknya mengulangi prosedur pada terowongan lainnya.

Berhenti jika pemulihan atau perutean masih belum pasti setelah terowongan pertama. Dua terowongan yang setengah berfungsi lebih buruk daripada satu yang Anda tahu berfungsi.

Saat pemulihan mandek, baca sisi IKE

Terowongan yang tetap mati setelah kedua ujung memegang kunci baru biasanya merupakan ketidakcocokan kebijakan yang diungkap oleh rotasi, bukan yang diciptakannya. Proposal, identitas yang dikirim rekan, dan pemilih lalu lintas semuanya harus sesuai dengan sisi AWS, dan nilai yang bertahan pada terowongan yang sudah terbentuk masih bisa ditolak selama negosiasi baru. Baca status negosiasi dan pesan yang terlampir sebelum Anda mengubah kunci untuk kedua kalinya.

aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
  --query "VpnConnections[0].VgwTelemetry[].[OutsideIpAddress,Status,StatusMessage]"

Jika perubahan harus dibatalkan, jangan memulihkan kunci lama hanya karena dulu berfungsi. Perlakukan kunci yang terganggu sebagai terganggu dan perbaiki negosiasinya. Akhiri dengan kedua terowongan terverifikasi dan inventaris rahasia diperbarui agar setiap rekan mencatat nilai mana yang dipegangnya, dan simpan dokumentasi opsi terowongan AWS di samping runbook.

Artikel terkait