Profil yang membawa dua ratus rute bekerja di satu mesin dan memasang empat puluh di mesin lain. Mesin, integrasi yang menjalankannya, dan server yang memberinya makan semuanya punya suara, dan masing-masing dapat menghentikan daftar di titik yang berbeda. Membaca kegagalan sebagai satu batas membawa Anda ke berkas yang salah. Mekanismenya punya tiga tahap, dan tahap yang berhenti meninggalkan bukti yang terlihat begitu Anda tahu apa yang harus dicari.

Tiga tahap, tiga batas berbeda

Pertama mesin mengurai opsi dan memutuskan apakah versi ini memahaminya. Lalu integrasi memasang apa yang dilaporkan mesin, dan kodenya sendiri dapat membatasi atau membentuk ulang daftar. Terakhir server memutuskan berapa banyak rute yang akan dikirim ke identitas tertentu, sebelum salah satu tahap klien melihat apa pun. Tiga tahap, tiga langit-langit, dan hanya satu di antaranya adalah angka di profil.

Menaikkan satu langit-langit tidak melakukan apa pun bagi yang lain. Rute terkirim yang ditolak bisa jadi keputusan kebijakan di server, tumpang tindih yang diselesaikan klien, atau batas pemasang yang membuang kelebihannya. Masing-masing punya perbaikan berbeda.

Pisahkan ketiganya sebelum mengukur apa pun. Kesalahan pengurai menyebut sebuah token, batas pemasang meninggalkan tabel rute yang pendek, dan keputusan kebijakan tidak meninggalkan apa pun. Bukti memberi tahu tahap mana yang harus diperiksa lebih dulu.

StageWho decidesWhat you can see
ParseClient engineAn error naming the option
InstallActivation ownerA route count below the pushed count
OfferServer policyA route absent from the pushed list

Pengurai berbicara lebih dulu

Opsi yang tidak dikenal gagal dengan keras dan lebih awal, dan teks galat menyebut token itu. Itu tahap paling mudah dikenali: bandingkan pesan persisnya dengan versi mesin yang terpasang, karena opsi yang ditambahkan pada satu rilis tidak dikenal pada rilis sebelumnya. Profil yang disalin dari penerapan yang lebih baru adalah sumber biasa dari ketidakcocokan itu. Pengurai tidak pernah diam-diam mengabaikan direktif yang tidak dikenalnya.

Opsi yang diterima tidak mengatakan apa pun tentang hasilnya. Penguraian berhasil, dan daftar masih bisa dipangkas oleh pemasang atau tidak pernah ditawarkan oleh server. Perlakukan penguraian bersih sebagai izin untuk melanjutkan, bukan bukti.

Catat string versi dari biner yang benar-benar berjalan, bukan dari anggapan manajer paket tentang apa yang terpasang. Keduanya tidak sepakat lebih sering daripada yang diperkirakan.

Pemasang punya langit-langitnya sendiri

Komponen yang memiliki aktivasi bisa berupa plugin NetworkManager alih-alih biner mesin, dan ia dapat memberlakukan batasnya sendiri sebelum ada terowongan. Penyuntingnya mungkin menampilkan bidang yang tidak pernah dibaca mesin yang berjalan, atau membaca bidang yang tidak ditampilkan penyunting. Kedua situasi tampak seperti bug klien dari luar. Tidak satu pun diperbaiki dengan menyunting profil.

Hitung apa yang mendarat, bukan apa yang dikonfigurasi. Perintah ip route show dev tun0 mendaftar rute yang terpasang, dan membandingkan jumlah itu dengan daftar yang dikirim memisahkan rute yang dibuang dari rute yang tidak pernah dikirim. Jumlah yang cocok dengan pengiriman mengembalikan kecurigaan ke server.

Pembungkus shell di sekitar biner mesin untuk memaksa angka yang lebih besar mengaburkan pemutakhiran dan membuat pengembalian menjadi tebakan. Itu juga menyembunyikan batas sebenarnya dari siapa pun yang membaca konfigurasi berikutnya.

Server menentukan apa yang ditawarkan kepada Anda

Kebijakan per klien dapat mengecilkan daftar sebelum dikirim. Berkas khusus klien dapat menambahkan rute untuk satu identitas, atau kebijakan grup dapat menghilangkannya, dan klien tidak dapat membedakan rute yang disaring dari rute yang tidak pernah didefinisikan. Ambiguitas itulah sebabnya catatan server penting. Mintalah daftar pengiriman efektif untuk identitas tersebut, bukan templat.

Bandingkan catatan server dengan daftar yang diterima. Selisih di antara keduanya adalah lapisan kebijakan, dan biasanya lebih kecil daripada yang disiratkan profil.

Bila rancangan mengizinkannya, ringkas jaringan yang bersebelahan dan hapus entri yang usang. Rute yang lebih sedikit dan lebih besar menyelesaikan lebih banyak kasus daripada langit-langit yang lebih tinggi.

Ubah angka di tempat yang tepat

Gunakan pengaturan terdokumentasi dari komponen yang benar-benar memiliki batas itu. Jika bidang itu tidak ada di plugin, periksa apakah plugin lebih tua daripada fiturnya atau apakah lapisan lain memiliki rute tersebut. Lalu dokumentasikan versi mesin, plugin, dan server di samping nilai yang Anda pilih. Pemutakhiran berikutnya membuka kembali pertanyaannya, dan catatan itulah yang membuatnya bisa dijawab.

Uji ulang setelah pemutakhiran salah satu dari ketiganya. Batas yang dinaikkan di tempat yang benar tetap bergeser ketika komponen yang menegakkannya berubah. Catatan versi adalah satu-satunya hal yang membuat pergeseran itu dapat diprediksi.

Artikel terkait