Pengaturan static_host_map dan advertise_addrs sama-sama menempatkan alamat di depan peer, dan keduanya menjawab pertanyaan berbeda. Yang satu adalah berkas lokal yang mencantumkan alamat overlay dan titik akhir underlay untuk dihubungi. Yang lain adalah host yang memberi tahu mercusuaranya titik akhir tambahan mana yang dapat mencapainya. Kepemilikan adalah perbedaan sebenarnya: peta dipelihara oleh semua yang membutuhkannya, sedangkan iklan oleh host itu sendiri.

Putuskan menurut siapa yang memiliki informasi

SettingWhere it livesBest for
static_host_mapEvery peer that needs the entryBootstrap endpoints, deliberately fixed paths
advertise_addrsThe host's own configEndpoints the host cannot otherwise discover

Setiap peer yang berubah di berkas statis setiap peer adalah pekerjaan pemeliharaan yang tumbuh sebanding kuadrat armada. Itulah alasan praktis untuk beralih ke pengaturan lain setiap kali host sendiri tahu jawabannya.

Pertanyaan kepemilikan juga memprediksi apa yang terjadi ketika alamat berubah. Dengan peta statis, seseorang harus mengingat setiap peer yang memegang entri lama. Dengan iklan, host menerbitkan titik akhir baru dan mercusuaranya meneruskannya, sehingga perubahan tetap lokal pada mesin yang pindah.

Bootstrap tetap membutuhkan entri statis

Klien harus mencapai setidaknya satu mercusuar sebelum dapat bertanya kepada siapa pun tentang peer lain. Lompatan pertama itu tidak dapat datang dari penemuan, jadi ia bergantung pada entri statis dalam konfigurasi klien. Benarkan satu entri itu dan sisanya overlay dapat dipelajari.

Entri peta memasangkan alamat Nebula dengan satu atau beberapa titik akhir IP atau DNS yang dapat dijangkau beserta portnya. Menyimpan mercusuar di sana adalah hal normal; menyimpan setiap peer di sana adalah pola yang menua dengan buruk, karena setiap peer baru berarti menyunting berkas di mesin yang mungkin tidak Anda kendalikan. Jaga daftar cukup pendek agar seseorang masih dapat memverifikasinya dengan membacanya.

Iklankan ketika host tahu titik akhirnya

Host di balik penerusan port dapat dijangkau di alamat publik yang tidak ditetapkan ke salah satu antarmukanya sendiri. Ia tidak dapat menemukan alamat itu dengan melihat dirinya sendiri. advertise_addrs memungkinkannya menerbitkan titik akhir melalui mercusuaranya agar peer lain mempelajari jalur yang benar-benar berfungsi. Pengaturan ini ada justru karena host adalah satu-satunya pihak yang tahu bahwa pemetaan itu dibuat.

Gunakan alamat dan port yang benar-benar dapat dijangkau peer lain. Alasan yang sama berlaku untuk host dengan beberapa jalur jaringan, di mana satu jalur lebih disukai bagi peer pada jaringan tertentu. Iklan adalah pernyataan tentang underlay, bukan permintaan akan sesuatu. Ketika pemetaan berubah, perbarui iklan di host dan biarkan penemuan membawanya, alih-alih menyunting berkas statis di seluruh armada.

Iklan bukan keterjangkauan

Menerbitkan titik akhir tidak membuat aturan penerusan router, tidak membuka firewall di hulu, dan tidak membuat nama DNS terurai. Itu bagian pekerjaan yang terpisah, dan iklan yang benar dengan penerusan port yang hilang menghasilkan persis kegagalan yang ingin Anda perbaiki. Iklan adalah klaim tentang keterjangkauan, bukan mekanisme yang mewujudkannya.

Periksa jalur dari luar sebelum menyalahkan penemuan. Peer yang mempelajari titik akhir tetapi tidak dapat menyelesaikan handshake memiliki masalah perutean atau penyaringan pada underlay, dan mengulang alamat yang sama di kedua pengaturan tidak akan mengubahnya.

Jaga alamat overlay tetap terpisah dari titik akhir

Sertifikat node mengidentifikasi alamat Nebula-nya. Alamat yang diiklankan milik jaringan dasar, dan boleh berubah tanpa menyentuh sertifikat. Menerbitkan sertifikat baru dengan IP overlay berbeda adalah operasi berbeda, dengan konsekuensinya sendiri bagi setiap hubungan kepercayaan yang menyematkan yang lama. Jaga kedua perubahan tetap terpisah di runbook, atau pemindahan titik akhir akan dicatat sebagai penerbitan ulang.

Ketika triase terhenti, pisahkan kedua lapisan secara eksplisit: apakah penemuan mengembalikan titik akhir yang diharapkan, dan apakah handshake mencapainya? Jika penemuan benar dan paket gagal, masalahnya ada di bawah overlay. Jika penemuan salah, masalahnya ada di peta atau iklan, dan perbaikannya ada di sana.

Artikel terkait