WireGuard: tidak ada rute ke peer setelah perubahan subnet — dua jalan keluar
Perubahan subnet merusak WireGuard di dua tempat: AllowedIPs dan jalur balik. Bandingkan penomoran ulang di tempat dengan pembangunan ulang antarmuka.
Handshake masih baru di wg show, endpoint benar, kunci tidak pernah berubah — dan ping tetap bilang tidak ada rute ke peer. Anda mengubah subnet tunnel satu jam lalu. Gejala itu adalah tanda ketidakcocokan prefiks, bukan masalah kunci: WireGuard menyelesaikan handshake lalu membuang data karena alamat sumber tidak lagi cocok dengan yang akan diterima peer penerima. Ada dua cara masuk akal untuk menerapkan perubahan subnet, dan keduanya gagal di tempat yang berbeda.
Dua cara menerapkan perubahan, dan berapa biaya masing-masing
Opsi A adalah penomoran ulang di tempat: sunting alamat antarmuka, rentang peer, rute, dan setiap salinan konfigurasi, lalu muat ulang. Opsi B adalah membangun antarmuka kedua pada prefiks baru di samping yang lama, memindahkan peer, dan menghapus antarmuka lama setelah lalu lintas benar-benar berpindah.
| A: renumber in place | B: parallel interface | |
|---|---|---|
| Downtime | The reload window, per host | None if peers are added to both |
| Rollback | Re-apply the previous files | Point peers back at the old interface |
| Risk | Half-applied change: new address, old ranges | Two live interfaces with overlapping intent |
| Effort | Small, if the deployment has one owner | Higher, and needs a cleanup step |
| Fits | Two or three peers you control | Many peers, remote sites, or no maintenance window |
Keadaan setengah diterapkan itulah yang membuat Opsi A berbahaya, karena tidak terlihat rusak. Antarmuka naik, handshake berhasil, dan hanya jalur data yang gagal. Opsi B menuntut lebih banyak kerja tetapi menjaga jalur yang berfungsi tetap hidup selama Anda menemukan setiap referensi.
Apa yang harus bergerak bersama di sisi Anda
Empat hal di host lokal menggambarkan subnet yang sama, dan perubahan pada satu berarti perubahan pada semuanya: alamat antarmuka, AllowedIPs setiap peer, rute yang dipakai sistem untuk tujuan itu, dan apa pun yang dipasang manajer atas nama Anda. Dengan wg-quick, dua yang terakhir dihasilkan dari konfigurasi setiap kali antarmuka naik, sehingga salinan basi diam-diam memasang kembali prefiks lama.
Bandingkan yang dikonfigurasi dengan yang hidup alih-alih memercayai salah satunya:
wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5Pencarian rute adalah langkah yang orang lewati. Ia menjawab apa yang sebenarnya akan dilakukan kernel untuk suatu tujuan, termasuk rute yang lebih spesifik yang ditinggalkan manajer atau runtime kontainer. Jika ia melaporkan antarmuka yang berbeda dari tunnel, konfigurasi bukan masalahnya.
Untuk antarmuka yang berjalan, terapkan berkas yang disunting tanpa membongkar tunnel:
wg syncconf wg0 <(wg-quick strip wg0)Itu memperbarui peer dan rentang di tempat. Itu tidak memperbarui alamat antarmuka atau rute, karena keduanya bukan pengaturan WireGuard — jadi penomoran ulang masih memerlukan pembuatan ulang antarmuka atau perubahan alamat dengan ip, lalu pemeriksaan ulang perutean.
Apa yang harus bergerak bersama di ujung jauh
Di sinilah perubahan subnet biasanya mati. AllowedIPs bukan hanya petunjuk perutean; itu juga daftar alamat sumber yang boleh disajikan sebuah peer. Ketika Anda menomori ulang klien dan membiarkan AllowedIPs server pada prefiks lama, server menerima handshake, menerima paket terenkripsi, dan membuangnya karena sumber dalam tidak cocok dengan rentang mana pun yang dikaitkannya dengan peer itu. Tidak ada galat yang dicatat, dan klien melihat batas waktu.
Jadi perbarui sisi penerima dengan sengaja: entri peer di server harus mencantumkan prefiks klien yang baru, rute balik server sendiri harus menunjuk ke tunnel untuk prefiks itu, dan jaringan hilir mana pun di belakang server harus mempelajari jalur baru. Kebijakan firewall yang menyebut rentang lama memerlukan perlakuan yang sama, begitu juga apa pun yang melakukan pemilihan berbasis sumber.
Diagnostik yang memisahkan kedua kegagalan itu murah. Handshake baru tanpa data berarti tunnel hidup dan pengalamatan dalam tidak sepakat. Tidak ada handshake sama sekali berarti Anda sedang melihat keterjangkauan atau kunci. Jangan memutar kunci untuk masalah prefiks; itu mengatur ulang satu-satunya hal yang berfungsi.
Salinan basi yang hidup lebih lama dari suntingan Anda
Menyunting berkas tidak sama dengan mengubah sistem yang berjalan, dan salinannya lebih banyak daripada yang orang duga: unit atau manajer yang memiliki antarmuka, profil kedua dengan nama sama di direktori lain, kontainer dengan konfigurasi yang dipanggang ke dalam image, antarmuka router yang menyimpan versi suntingannya sendiri, dan aplikasi klien yang mengimpor ulang tunnel tersimpan saat diluncurkan. Masing-masing dapat memulihkan prefiks lama setelah perubahan Anda tampak selesai.
Nama juga berpindah. Jika rute numerik berfungsi tetapi nama host gagal, catatan DNS internal atau konfigurasi layanan masih menunjuk ke alamat tunnel lama. Perbaiki referensinya alih-alih memperlebar setiap rentang peer, yang akan menutupi masalah sebenarnya dan sekaligus memperbesar ACL sumber.
Jaga satu jalur pemulihan tetap terbuka selama bekerja: cara kedua masuk ke host, konsol serial, atau pengembalian berkas konfigurasi terjadwal. Perubahan tunnel yang mengunci Anda keluar dari mesin yang sedang Anda ubah adalah cara paling umum tugas ini berubah menjadi malam panjang.
Memilih di antara keduanya, dan memverifikasi pemotongan
Pilih A ketika Anda memiliki setiap peer, jumlahnya sedikit, dan gangguan singkat dapat diterima. Pilih B ketika peer adalah tangan jauh yang tidak Anda kendalikan, ketika tautan antarsitus harus tetap hidup, atau ketika Anda tidak dapat menjamin setiap salinan diperbarui dalam satu lintasan. Dalam hal itu tambahkan prefiks baru ke kedua antarmuka, pindahkan peer satu per satu, pantau lalu lintas pada yang baru, dan baru setelah itu hapus antarmuka lama beserta rutenya.
Pada kedua opsi, perubahan selesai ketika empat pemeriksaan lolos: handshake masih baru, pencarian rute untuk tujuan berprefiks baru menyebut tunnel, muatan beberapa ratus byte berpindah di kedua arah, dan hal yang sama berlaku setelah host atau manajer dimulai ulang. Sebagai rujukan, manual wg(8) menjelaskan apa arti AllowedIPs di setiap arah, dan layak dibaca ulang sebelum Anda memperlebar rentang agar gejala hilang.
- Handshake baru dan tidak ada data: lihat AllowedIPs pada penerima sebelum menyentuh kunci.
- Pencarian rute menunjuk antarmuka yang salah: manajer atau kontainer memiliki rute itu, bukan berkas Anda.
- Alamat numerik baik dan nama host rusak: referensi lama, bukan putaran perutean.
- Perubahan baru lengkap ketika setelah mulai ulang masih memakai prefiks baru.