Komputer riba mempunyai alamat IPv6, terowong naik di atas IPv4, namun setiap ujian IPv6 gagal. Atau lebih teruk: ujian berjaya dan trafik keluar melalui laluan ISP tanpa pernah masuk ke terowong. Kedua-dua hasil kembali kepada satu keputusan yang hilang: tiada siapa memberi penghala awalan yang boleh dihalakannya kepada klien. Menyusuri laluan dari klien ke luar menemui bahagian mana yang hilang.

Mula dari tempat klien berada

Lihat klien sebelum menyentuh pelayan. ip -6 addr sepatutnya menunjukkan alamat terowong daripada kolam, dan ip -6 route sepatutnya menunjukkan awalan yang ditolak dan menunjuk ke peranti terowong. Apabila alamat ada tetapi laluan tiada, tolakan itu hilang atau klien mengabaikannya. Apabila kedua-duanya tiada, pelayan tidak memperuntukkan apa-apa langsung.

Kemudian semak apa yang klien percaya tentang dunia luar. Laluan lalai melalui terowong menuntut semua trafik IPv6, manakala laluan untuk 2000::/3 hanya menuntut unicast global. Kedua-duanya boleh betul, dan ia menjawab soalan berbeza tentang kebocoran.

Klien tanpa laluan lalai IPv6 langsung gagal dalam setiap ujian awam walaupun terowong itu sendiri sihat sepenuhnya. Itu jurang dasar, bukan terowong rosak.

Semak kolam yang benar-benar boleh dihalakan oleh pelayan

Pelayan hanya boleh memperuntukkan daripada awalan yang benar-benar dikawalnya. Jika ISP mewakilkan /56, simpan satu /64 untuk terowong dan biarkan selebihnya untuk LAN. Di tempat ISP hanya menyerahkan satu /64 pada WAN dan tidak menghalakan apa-apa lagi, biarkan awalan LAN dan beri terowong julat tempatan unik, sambil menerima bahawa klien tidak akan mempunyai jalan keluar global.

Kolam dan tolakan bergerak bersama. server-ipv6 2001:db8:80:10::/64 memperuntukkan alamat, dan push "route-ipv6 2000::/3" memberitahu klien apa yang perlu dihantar ke dalam terowong. Menolak 2000::/3 meliputi unicast global dan membiarkan julat link-local dan multicast di luar terowong.

Tulis awalan yang dipilih ke dalam rekod penggunaan. Sesiapa yang mengubah penyerahan ISP seterusnya perlu tahu /64 mana yang sudah diduduki terowong.

Hidupkan pemajuan untuk keluarga kedua

Pemajuan IPv4 tidak bermaksud pemajuan IPv6. Tetapkan net.ipv6.conf.all.forwarding=1 dan cerminkan semua yang sudah dibenarkan oleh dasar FORWARD IPv4. Pada penghala yang rantaian FORWARD-nya membuang secara lalai, set peraturan yang hilang kelihatan sama seperti terowong mati.

Jabat tangan berjaya, klien menerima alamat, dan tiada apa yang kembali. Tambah peraturan untuk kedua-dua arah dan untuk bahagian WAN, kerana terowong yang sampai ke LAN tetapi tidak ke internet gagal dalam ujian ketiga. Selepas cubaan gagal, lihat pembilang rantaian, kerana peraturan yang tidak pernah padan ialah masalah berbeza daripada yang padan lalu membuang.

ip6tables -A FORWARD -i br0 -o tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i tun0 -o wan0 -j ACCEPT

Satu kesan sampingan menangkap mereka yang akhirnya menyalahkan terowong. Mengaktifkan pemajuan membuat kernel melangkau konfigurasi alamat melalui Router Advertisement kecuali diberitahu sebaliknya, dan laluan lalai yang dipelajari begitu hilang bersamanya. Sama ada pin laluan lalai yang jelas pada antara muka WAN, atau tetapkan accept_ra kepada 2 di sana dengan sengaja. Selepas mana-mana perubahan, sahkan penghala masih mempunyai laluan IPv6 yang boleh digunakan ke luar sebelum menguji klien semula.

Jawab penemuan jiran apabila hulu tidak menghalakan

Peralatan hulu kadangkala menganggap /64 yang diwakilkan sebagai milik pautannya sendiri dan enggan menghalakan mana-mana sub-awalan ke kotak VPN. Apabila itu berlaku, sesuatu perlu menjawab permintaan jiran bagi setiap alamat klien secara berasingan.

OpenVPN mendedahkan alamat yang diperuntukkan kepada cangkuk client-connect, jadi entri boleh mengikut kolam sebenar dan bukannya senarai yang dijaga secara manual. Cangkuk menambah ip -6 neigh add proxy $ifconfig_pool_remote_ip6 dev eth0, dan cangkuk client-disconnect yang sepadan mengeluarkannya. Tanpa pengeluaran itu, jadual proksi menjadi lapuk dan klien kemudian boleh mewarisi entri untuk alamat yang tidak pernah diterimanya. Sahkan keadaan dengan ip -6 neigh show proxy.

Anggap proksi sebagai penyelesaian sementara. Laluan statik untuk /64 terowong yang dihalakan ke penghala bertahan apabila klien berganti dan tidak memerlukan sebarang cangkuk shell istimewa.

Ikut laluan ke luar, satu hop demi satu

Uji ke luar dalam tiga langkah: pertama alamat terowong penghala, kemudian hos LAN, dan ketiga destinasi awam melalui traceroute6. Kolam dibuktikan oleh langkah pertama, pemajuan dan dinding api LAN oleh langkah kedua, dan laluan balik melalui hulu oleh langkah ketiga. Setiap kegagalan menyempitkan carian kepada satu peranti dan bukannya membuka semula seluruh reka bentuk.

Perhatikan MTU terowong, kerana penghala IPv6 di laluan tidak akan memecahkan untuk anda. MTU yang terlalu besar muncul sebagai ralat packet-too-big dan TLS tersekat dan bukannya kegagalan bersih. Tetapkannya secara eksplisit dan uji dengan muatan hampir had.

Artikel berkaitan