Lihat handshake Nebula dari hujung yang salah dan kedua-dua mekanisme kelihatan boleh ditukar ganti. Satu menentukan alamat mana yang diberitahu nod kepada rumah api dan alamat jauh mana yang akan dicubanya; satu lagi menentukan apa yang boleh melalui selepas terowong wujud. Penapis boleh menghentikan sambungan sebelum sebarang peraturan firewall dinilai, dan peraturan firewall tidak boleh menghidupkan semula titik akhir yang telah dibuang oleh penemuan. Kedua-dua lapisan menjawab soalan berbeza, dan urutan tindakannya ialah kuncinya.

Ikuti satu sambungan melalui empat peringkat: alamat setempat yang diumumkan, titik akhir jauh yang dipertimbangkan, handshake dan trafik dalam lapisan atas. Setiap peringkat mempunyai konfigurasi sendiri dan tandanya sendiri bagi kegagalan.

Mulakan dengan alamat setempat yang diumumkan oleh nod

local_allow_list menapis alamat setempat hos ini sebelum ia dilaporkan kepada rumah api. Entri boleh berupa julat alamat, dan konfigurasi turut menyokong corak nama antara muka. Itu berguna apabila hos mempunyai jambatan kontena atau antara muka terowong tambahan yang tidak sepatutnya menjadi titik akhir rakan sebaya.

Telusuri antara muka hos dan tanya yang mana benar-benar boleh dicapai oleh rakan jauh. Alamat jambatan Docker adalah setempat kepada hos itu dan tidak berguna kepada rakan dalam rangkaian lain. Mengumumkannya membazirkan penemuan dan boleh menghantar rakan ke alamat yang tidak pernah menjawab. Apa-apa yang tidak boleh dihalakan oleh rakan ialah bunyi bising dalam respons rumah api.

Senarai kebenaran yang sempit lebih selamat di sini daripada senarai larangan yang luas. Jika hanya entri kebenaran hadir, baki yang tidak dinyatakan dikecualikan; menambah entri larangan kemudian mengubah logik lalai dan memerlukan semakan tersendiri. Perubahan itu wajar dilihat sekali lagi pada nilai lalai.

Kemudian perhatikan pemilihan titik akhir jauh

remote_allow_list menapis alamat yang akan dipertimbangkan oleh hos ini untuk rakan jauh semasa handshake. Ia terpakai kepada alamat lapisan bawah, bukan alamat lapisan atas yang akan digunakan oleh rakan selepas terowong dinaikkan.

Julat persendirian boleh digunakan sepenuhnya pada rangkaian pejabat dikongsi dan tidak bermakna apabila kedua-dua hos berada dalam rangkaian tidak berkaitan yang kedua-duanya menggunakan 10.0.0.0/8. Penapis membolehkan anda mengutamakan laluan yang boleh dihalakan dan mengabaikan kebetulan itu.

Apabila rakan gagal menyambung, bandingkan alamat yang dicuba dengan peraturan yang sepadan dengannya. Dayakan log handshake dan baca alamat jauh yang dipilih; baris log menamakan titik akhir yang terselamat daripada penapisan, yang lebih berguna daripada senarai alamat yang dimiliki rakan.

Penapis nama antara muka di sebelah pengumuman boleh membuang titik akhir sebelum sebelah penerima melihatnya. Periksa kedua-dua nod apabila hanya satu arah gagal.

Selepas handshake, peraturan akses lapisan atas terpakai

Peraturan firewall Nebula beroperasi di dalam lapisan atas, selepas terowong terbentuk. Ia memadankan hos, kumpulan, port dan protokol, dan menentukan sama ada paket boleh masuk atau keluar dari hos setempat. Ia tidak memilih titik akhir lapisan bawah.

Pemisahan ini menjelaskan salah diagnosis yang lazim. Operator menambah peraturan firewall untuk sesuatu port dan masih tidak dapat menyambung, kerana penapis rumah api telah membuang satu-satunya titik akhir yang boleh dicapai. Operator lain membuka penapis alamat dan masih tidak sampai ke perkhidmatan, kerana firewall lapisan atas menolak port itu.

Baca kegagalan pada lapisan yang betul. Handshake yang tidak pernah selesai menunjukkan penemuan, penapisan titik akhir atau laluan rangkaian. Handshake yang selesai diikuti sambungan perkhidmatan yang ditolak atau digugurkan menunjukkan firewall lapisan atas atau aplikasi.

Baca nilai lalai apabila mencampur kebenaran dan larangan

Konfigurasi rumah api menyokong senarai hanya-kebenaran, hanya-larangan dan bercampur, dan nilai lalai untuk baki yang tidak dinyatakan berbeza antara bentuk itu. Senarai bercampur memerlukan nilai lalai yang eksplisit untuk keluarga alamat; menganggap baki berkelakuan seperti konfigurasi sebelumnya ialah cara titik akhir yang berfungsi hilang secara senyap.

lighthouse:
  local_allow_list:
    interfaces:
      docker0: false
  remote_allow_list:
    192.168.0.0/16: true
    default: false

Layan nilai lalai sebagai bahagian peraturan, bukan sebagai teks templat. Jika nilai lalai keluarga ialah larangan, setiap alamat yang tidak disenaraikan dikecualikan, termasuk julat pejabat baharu yang ditambah selepas konfigurasi ditulis.

Catat alamat mana yang dimaksudkan boleh dicapai dan uji dari kedua-dua belah. Penapis yang berfungsi untuk satu pasangan rakan boleh gagal untuk pasangan lain yang satu-satunya laluan sepunya menggunakan alamat yang dikecualikan oleh senarai.

Gunakan relay apabila tiada titik akhir langsung boleh dicapai

Jika setiap titik akhir calon ditapis keluar atau tidak dapat dicapai, jawapannya bukan senarai kebenaran yang lebih luas yang menerima semula alamat yang anda tidak percayai. Konfigurasi relay Nebula menyediakan laluan rakan alternatif apabila sambungan langsung tidak dapat dilaksanakan.

Relay menyelesaikan pengangkutan dan penemuan, bukan kebenaran, dan ia tidak meluaskan firewall. Firewall lapisan atas masih menentukan perkhidmatan mana yang boleh digunakan, dan relay tidak menjadikan penapisan rumah api sebagai mekanisme kawalan akses.

Uji laluan relay dengan titik akhir langsung dimatikan dan sahkan bahawa perkhidmatan yang dimaksudkan masih berfungsi manakala yang tidak dimaksudkan tidak. Ujian tunggal itu memisahkan pembaikan pengangkutan daripada perubahan dasar dan memastikan kedua-dua lapisan jujur.

Artikel berkaitan