Terowong penuh WireGuard: AllowedIPs 0.0.0.0/0 tidak memadai
0.0.0.0/0 dan ::/0 hanya memilih apa yang dibawa oleh rakan. Pengurus klien, penghantaran di gateway, DNS dan dasar kegagalan masih perlu dikonfigurasikan.
Meletakkan 0.0.0.0/0, ::/0 dalam AllowedIPs sesuatu rakan ialah langkah yang semua orang ingat, dan ia hanya menentukan trafik mana yang dibenarkan dibawa oleh rakan itu. Prefiks ini tidak mencipta laluan, tidak menghantar apa-apa di sebelah sana dan membiarkan penyelesai setiap aplikasi tepat di tempatnya. Empat perkara berasingan mesti berlaku serentak untuk terowong penuh benar-benar penuh, dan sebaiknya diperiksa mengikut urutan di bawah, kerana pemeriksaan kemudian tidak dapat menyelamatkan yang lebih awal. Setiap pemeriksaan di bawah ialah fakta yang boleh dibaca daripada mesin, bukan tetapan yang anda harap telah digunakan.
Apa yang dipilih oleh prefiks rakan, dan apa yang tidak
AllowedIPs ialah pemilih dan juga pemberi kebenaran. Ia memberitahu sebelah tempatan destinasi mana yang boleh dihantar kepada rakan ini, dan memberitahu sebelah penerima alamat sumber mana yang boleh ditunjukkan oleh rakan ini. Itulah keseluruhan tugasnya. Tiada apa dalam keterangan itu yang mencipta laluan pada hos, mengaktifkan penghantaran di sebelah jauh, atau menyentuh penyelesaian nama.
Itulah sebabnya konfigurasi boleh kelihatan lengkap dan berkelakuan seperti terowong terpisah. Prefiks mengatakan rakan itu akan menerima segala-galanya; jadual laluan hos yang menentukan apa yang benar-benar sampai ke sana, dan gateway yang menentukan sama ada apa-apa keluar. Tiada satu pun daripada tiga keputusan itu tinggal dalam bahagian rakan.
Menghalakan klien, bukan hanya senarai rakan
Pengurus seperti wg-quick memprogramkan jadual laluan hos untuk anda, sebab itulah dua fail konfigurasi yang sama berkelakuan berbeza bergantung pada cara antara muka itu naik. Profil minimum cukup pendek untuk dibaca sekali duduk:
[Interface]
Address = 10.8.0.2/32
DNS = 10.8.0.1
[Peer]
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.net:51820
Dua perincian yang memikul kerja. Medan Address ialah satu prefiks hos dan bukan subnet yang klien sangka dimilikinya, dan pengurus itulah yang menukar AllowedIPs lalai menjadi laluan lalai sebenar. Naikkan fail yang sama dengan ip link dan wg setconf dan tiada langsung laluan muncul, yang kelihatan seperti terowong rosak tetapi sebenarnya terowong sihat dengan langkah penghalakan yang dilangkau. Manual wg-quick mendokumentasikan penghalakan dan Table tingkah laku yang ditambah oleh pengurus tersebut.
Baca hasilnya dan bukan failnya: ip route get 1.1.1.1 sepatutnya menamakan antara muka terowong, dan wg show sepatutnya melaporkan jabat tangan terkini dengan pembilang pemindahan yang bergerak. Jabat tangan tanpa laluan bermaksud pengurus tidak pernah dijalankan, dan menyunting profil sekali lagi tidak akan membaikinya. Mulakan antara muka seperti pengguna akan memulakannya, jika tidak ujian mengukur shell anda dan bukan penggunaan sebenar.
Mengekalkan titik akhir di luar terowong
Terowong penuh menangkap setiap destinasi, termasuk yang mesti diajak bercakap untuk wujud. Pengurus menanganinya dengan menambah laluan hos untuk titik akhir melalui gateway asal, sebab itulah konfigurasi yang betul hampir selalu mengandungi satu pengecualian yang disengajakan. Menggunakan separuh konfigurasi dengan pengurus dan separuh lagi secara manual ialah cara biasa pengecualian ini hilang.
Jika titik akhir ialah nama hos yang menyelesaikan kepada beberapa alamat, atau kepada keluarga yang anda tidak bawa, pengecualian itu menua dengan buruk dan terowong boleh gagal selepas sambungan semula yang kelihatan rutin. Pin titik akhir kepada alamat yang anda kawal, atau sahkan pengurus menilainya semula, dan baca semula laluan hos selepas setiap perubahan rangkaian.
Mekanisme yang sama menjelaskan mengapa terowong penuh dan portal tawanan bergaduh. Portal menjangka memintas trafik yang kini ditangkap oleh terowong anda, jadi di rangkaian hotel dan lapangan terbang anda menaikkan terowong selepas log masuk portal, tidak pernah sebelum itu.
Penghantaran dan laluan balik di gateway
Di gateway, aktifkan penghantaran untuk keluarga yang anda bawa, benarkan rantaian forward dalam kedua-dua arah apabila anda menterjemah, dan sahkan laluan balik dengan carian khusus sumber. Tiada satu pun daripada itu berpunca daripada jabat tangan yang berjaya, kerana jabat tangan hanya membuktikan kedua-dua rakan boleh bertukar UDP. Ia tidak mengatakan apa-apa tentang apa yang berlaku kepada paket yang dinyahkapsul selepas itu.
sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding
ip route get 1.1.1.1 from 10.8.0.2
Carian dijalankan di gateway dan bukan di klien, jika tidak anda akan membaca jadual laluan yang lain. Jika ia menamakan antara muka yang salah, atau melaporkan tiada laluan, maka tiada perubahan di sebelah klien akan menghasilkan jalan keluar internet. Apabila gateway menterjemah alamat klien semasa keluar, jawapannya bergantung pada keadaan terjemahan itu, jadi peraturan mesti wujud untuk kedua-dua arah aliran dan bukan hanya arah keluar.
DNS dan keadaan kegagalan, diuji secara berasingan
Protokol itu sendiri tidak mengkonfigurasi penyelesai mana-mana aplikasi. wg-quick menggunakan baris DNS melalui integrasi penyelesai edaran, kontena dan pelayar dengan tindanan sendiri mungkin mengabaikannya, dan oleh itu nama boleh gagal sementara terowong membawa paket dengan sempurna. Uji dengan nama hos dan bukan alamat, dan catat pelayan mana yang menjawab dan bukan menganggap pelayan dalam profil itu yang menjawab.
Keluarga alamat ialah ujian berasingan dengan jawapan berasingan. Laluan lalai v4 tidak mengatakan apa-apa tentang apa yang akan dilakukan oleh sambungan v6 sesuatu aplikasi, dan terowong yang membocorkan keluarga kedua secara senyap lebih buruk daripada yang gagal dengan kuat. Tanya nama melalui setiap keluarga, baca antara muka yang digunakan oleh setiap permintaan, dan periksa pembilang terjemahan sebelum dan selepas, kerana peraturan yang tidak sepadan dengan apa-apa kelihatan sama seperti peraturan yang hilang.
Akhir sekali, uji keadaan yang anda mahu apabila terowong berhenti. Terowong penuh sepatutnya gagal tertutup untuk trafik yang didakwanya: jika antara muka turun dan aplikasi terus berjalan diam-diam melalui pautan fizikal, reka bentuknya ialah terowong terpisah dengan langkah tambahan. Tuliskan tingkah laku kegagalan yang dimaksudkan, periksanya dengan sengaja, dan akhiri dengan merekodkan empat jawapan — pengurus mana yang menaikkan antara muka, laluan mana yang membawa lalai, siapa yang menghantar dan menterjemah di gateway, dan penyelesai mana yang menjawab.