Filter mercusuar Nebula versus firewall: apa yang diblokir masing-masing
Daftar izin di mercusuar menentukan endpoint underlay mana yang diumumkan atau dicoba sebuah peer. Aturan firewall mengatur lalu lintas di dalam overlay setelah handshake.
Lihatlah handshake Nebula dari ujung yang salah dan kedua mekanisme tampak bisa saling menggantikan. Yang satu memutuskan alamat mana yang diberitahukan sebuah node kepada mercusuar dan alamat jarak jauh mana yang akan dicobanya; yang lain memutuskan apa yang boleh lewat setelah terowongan ada. Filter dapat menghentikan koneksi sebelum aturan firewall mana pun dievaluasi, dan aturan firewall tidak dapat menghidupkan kembali endpoint yang telah dihapus oleh penemuan. Kedua lapisan menjawab pertanyaan berbeda, dan urutan kerjanya adalah kuncinya.
Ikuti satu koneksi melalui empat tahap: alamat lokal yang diumumkan, endpoint jarak jauh yang dipertimbangkan, handshake, dan lalu lintas overlay. Setiap tahap memiliki konfigurasi sendiri dan tanda kegagalan sendiri.
Mulailah dari alamat lokal yang diumumkan node
local_allow_list memfilter alamat lokal host ini sebelum dilaporkan ke mercusuar. Entrinya dapat berupa rentang alamat, dan konfigurasi juga mendukung pola nama antarmuka. Itu berguna ketika host memiliki jembatan kontainer atau antarmuka terowongan tambahan yang tidak seharusnya menjadi endpoint peer.
Telusuri antarmuka host dan tanyakan mana yang benar-benar dapat dijangkau peer jarak jauh. Alamat jembatan Docker bersifat lokal bagi host itu dan tidak berguna bagi peer di jaringan lain. Mengumumkannya membuang penemuan dan dapat mengirim peer menuju alamat yang tidak pernah menjawab. Apa pun yang tidak dapat dirutekan peer adalah kebisingan dalam respons mercusuar.
Daftar izin yang sempit lebih aman di sini daripada daftar blokir yang luas. Jika hanya ada entri izin, sisa yang tidak ditentukan dikecualikan; menambahkan entri blokir kemudian mengubah logika default dan perlu tinjauan tersendiri. Perubahan itu layak mendapat pandangan kedua pada nilai default.
Lalu perhatikan pemilihan endpoint jarak jauh
remote_allow_list memfilter alamat yang akan dipertimbangkan host ini untuk peer jarak jauh selama handshake. Ini berlaku untuk alamat underlay, bukan alamat overlay yang akan digunakan peer setelah terowongan naik.
Rentang privat bisa sepenuhnya berguna di jaringan kantor bersama dan tidak berarti ketika kedua host berada di jaringan tak terkait yang keduanya memakai 10.0.0.0/8. Filter memungkinkan Anda memilih jalur yang dapat dirutekan dan mengabaikan kebetulan itu.
Ketika peer gagal terhubung, bandingkan alamat yang dicoba dengan aturan yang cocok dengannya. Aktifkan log handshake dan baca alamat jarak jauh yang dipilih; baris log menyebut endpoint yang lolos penyaringan, yang lebih berguna daripada daftar alamat yang dimiliki peer.
Filter nama antarmuka di sisi pengumuman dapat menghapus endpoint sebelum sisi penerima melihatnya. Periksa kedua node ketika hanya satu arah yang gagal.
Setelah handshake, aturan akses overlay berlaku
Aturan firewall Nebula beroperasi di dalam overlay, setelah terowongan terbentuk. Aturan itu mencocokkan host, grup, port, dan protokol, serta memutuskan apakah sebuah paket boleh masuk atau keluar dari host lokal. Aturan itu tidak memilih endpoint underlay.
Pemisahan ini menjelaskan kesalahan diagnosis yang umum. Operator menambahkan aturan firewall untuk sebuah port dan tetap tidak bisa terhubung, karena filter mercusuar menghapus satu-satunya endpoint yang dapat dijangkau. Operator lain membuka filter alamat dan tetap tidak mencapai layanan, karena firewall overlay menolak port itu.
Bacalah kegagalan pada lapisan yang tepat. Handshake yang tidak pernah selesai menunjuk pada penemuan, penyaringan endpoint, atau jalur jaringan. Handshake yang selesai lalu diikuti koneksi layanan yang ditolak atau dibuang menunjuk pada firewall overlay atau aplikasi.
Bacalah nilai default saat mencampur izin dan blokir
Konfigurasi mercusuar mendukung daftar hanya-izin, hanya-blokir, dan campuran, dan nilai default untuk sisa yang tidak ditentukan berbeda di antara bentuk-bentuk itu. Daftar campuran memerlukan default eksplisit untuk keluarga alamat; menganggap sisa berperilaku seperti konfigurasi sebelumnya adalah cara sebuah endpoint yang berfungsi menghilang dengan tenang.
lighthouse:
local_allow_list:
interfaces:
docker0: false
remote_allow_list:
192.168.0.0/16: true
default: false
Perlakukan default sebagai bagian dari aturan, bukan sebagai teks templat. Jika default keluarga adalah blokir, setiap alamat yang tidak terdaftar dikecualikan, termasuk rentang kantor baru yang ditambahkan setelah konfigurasi ditulis.
Catat alamat mana yang dimaksudkan dapat dijangkau dan uji dari kedua sisi. Filter yang bekerja untuk satu pasangan peer dapat gagal untuk pasangan lain yang satu-satunya jalur bersama memakai alamat yang dikecualikan daftar.
Gunakan relay ketika tidak ada endpoint langsung yang dapat dijangkau
Jika setiap endpoint kandidat tersaring atau tak terjangkau, jawabannya bukan daftar izin yang lebih luas yang menerima kembali alamat yang tidak Anda percayai. Konfigurasi relay Nebula menyediakan jalur peer alternatif ketika konektivitas langsung tidak dapat diwujudkan.
Relay menyelesaikan transport dan penemuan, bukan otorisasi, dan tidak memperluas firewall. Firewall overlay tetap menentukan layanan mana yang boleh dipakai, dan relay tidak mengubah penyaringan mercusuar menjadi mekanisme kontrol akses.
Uji jalur relay dengan endpoint langsung dimatikan dan pastikan layanan yang dimaksud masih bekerja sementara yang tidak dimaksud tidak. Satu uji itu memisahkan perbaikan transport dari perubahan kebijakan dan menjaga kedua lapisan tetap jujur.