Antarmuka aktif tetapi wg-quick gagal: apa yang harus dilakukan
Unit yang gagal bisa meninggalkan terowongan yang setengah terkonfigurasi. Baca langkah pertama yang gagal, putuskan apakah akan membersihkan atau memperbaiki, lalu buktikan dengan permintaan.
Unitnya merah, antarmukanya ada, dan terowongannya sebagian besar berfungsi, yaitu kombinasi paling membingungkan yang ada. Penyiapan adalah urutan: antarmuka dibuat lebih dulu, lalu alamat, rute, pengaturan resolver dan perintah hook menyusul. Kegagalan di langkah keempat meninggalkan tiga langkah pertama di tempatnya, jadi nama antarmuka adalah bukti bahwa penyalaan dimulai, bukan bahwa penyalaan selesai. Satu fakta tambahan akan mencegah kebingungan itu: langkah yang gagal.
Keadaan sebagian adalah kegagalan yang normal
Perilaku itu sebaiknya diharapkan, bukan dianggap kerusakan. Antarmuka adalah bagian termurah dari penyiapan dan paling mudah tertinggal, dan itulah bagian yang membuat mesin tampak setengah bekerja.
Yang belum ada adalah semua yang datang setelah langkah yang gagal. Jika kegagalannya di tahap resolver, alamat dan rute ada dan DNS tidak. Jika yang gagal adalah rute, terowongan punya alamat dan tidak punya jalur untuk melintasinya.
Akibatnya mesin menjawab sebagian pengujian dan gagal di yang lain, karena itu orang menyimpulkan layanan berkedip-kedip padahal layanan itu tidak pernah berhasil menyala. Layanan yang tidak pernah selesai tidak bisa berkedip. Ia hanya bisa gagal berulang kali karena alasan yang sama.
Temukan langkah pertama yang gagal
Baca jurnal unit, bukan hanya status saat ini, dan bacalah dari awal proses yang gagal. Baris terakhir memberi tahu kode keluar; galat pertama memberi tahu apa yang harus diperbaiki.
Perintah-perintah ini mencetak status unit, jurnal boot untuk unit itu dan status terowongan secara langsung:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0Galat resolver, rute yang sudah ada, hook yang keluar dengan kode bukan nol dan kegagalan penguraian konfigurasi semuanya muncul di jendela itu, dan masing-masing menyebut komponennya sendiri. Menebak hanya dari status antarmuka mengabaikan seluruh informasi itu.
Tiga kondisi yang menentukan perbaikan
Putuskan apakah Anda membersihkan, memperbaiki di tempat atau mengeluarkan unit dari jalur boot, dan putuskan itu sebelum mengetik apa pun.
Jika antarmukanya rusak tetapi konfigurasinya benar, bersihkan dan mulai lagi. Jika konfigurasinya salah, perbaiki dan tetap bersihkan dulu, karena menjalankan pengelola kedua di atas keadaan sebagian menghasilkan dua pemilik untuk satu antarmuka. Jika kegagalannya adalah komponen sistem yang hilang, seperti pembantu resolver yang tidak dimiliki mesin, pasang atau hapus dependensi itu dengan sengaja alih-alih menyunting unit sampai ia berhenti mengeluh.
Ketiga kasus itu mencakup sebagian besar dari apa yang tampak seperti unit merah yang misterius. Pertanyaan pembedanya adalah apakah kegagalan yang sama akan terjadi pada mesin dengan keadaan bersih, dan jawabannya biasanya datang dari baris galat pertama.
Bersihkan sebelum mencoba lagi
Percobaan ulang di atas keadaan yang ada bisa gagal karena alasan baru dan menyembunyikan yang asli. Turunkan antarmuka dengan alat yang sama yang membuatnya, lalu pastikan tidak ada yang tersisa.
Jangan menghapus antarmuka yang tidak berkaitan dan jangan mengatur ulang tumpukan jaringan host. Keduanya tindakan besar untuk memperbaiki objek kecil, dan keduanya mengubah satu terowongan yang gagal menjadi mesin yang koneksi lainnya perlu dibangun ulang. Cakupan yang benar adalah satu antarmuka dan unit yang memilikinya. Apa pun yang lebih luas memerlukan alasan tertulis sebelum terjadi.
Buktikan terowongannya, bukan unitnya
Unit hijau berarti urutan penyalaan keluar dengan nol. Itu tidak berarti sebuah paket mencapai sisi lain, dan tidak berarti resolver diatur seperti yang Anda maksudkan.
Kirim permintaan melalui terowongan dan baca keadaan yang menghasilkannya:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netJabat tangan tanpa balasan tetap memberi tahu bahwa terowongan terbentuk dan sisi jauh diam, yang merupakan masalah berbeda dari unit yang tidak pernah menyala. Simpan status unit, jabat tangan dan hasil permintaan dalam satu catatan, karena ketiganya gagal secara mandiri dan hanya kombinasinya yang menggambarkan sistem.