Masalah dan tujuan
Kami tidak mendapatkan IPv6 dari ISP kami sehingga saya memiliki terowongan IPv6 yang berfungsi dengan baik tetapi, tentu saja, tidak terlalu cepat. Dan tidak terlalu bisa diandalkan. Saya ingin memiliki IPv6 tersedia "untuk berjaga-jaga" tetapi saya ingin host tertentu (domain) terhubung dengan IPv4 saja.
Protokol default
Menurut saya semua aplikasi mencoba IPv6 terlebih dahulu; ini mungkin merupakan pengaturan glibc. Saya akan baik-baik saja jika default ini akan dibalik (untuk semua aplikasi).
Netfilter
Akan mungkin untuk memblokir alamat / jaringan IPv6 dengan Netfilter tetapi ada dua masalah:
- Apakah ini menyebabkan penundaan karena aplikasi menunggu batas waktu IPv6 sebelum mencoba IPv4?
- Beberapa domain tampaknya bercampur sehingga terlihat seperti kekacauan. Memisahkan google.com dan youtube.com sepertinya adalah sesuatu yang tidak ingin Anda lakukan jika Anda dapat menghindarinya.
Saya hanya mencatat bahwa halaman manual untuk ip route
kata untuk tipe routing unreachable
:
Pengirim lokal mendapatkan kesalahan EHOSTUNREACH.
Apakah hal yang sama terjadi dengan Netfilter DROPs atau REJECTs? Kesalahan seperti itu seharusnya tidak menyebabkan penundaan yang relevan.
Penyaringan DNS
Solusi lain (yang agak mudah jika itu mungkin) adalah menyaring catatan AAAA untuk domain tertentu. Jika itu tidak (mudah) mungkin: Apakah mungkin untuk menghubungkan server DNS dan Netfilter sehingga saya tahu "alamat IP X milik domain Y" sehingga saya dapat menambahkannya ke Netfilter? Adakah yang lebih elegan daripada mencatat semuanya dan mengambil log?
Cara untuk pergi?
Kemungkinan (lainnya) mana yang ada dan apa yang paling mudah?
Jawaban:
Anda dapat mengontrol pemilihan alamat dengan
/etc/gai.conf
. File konfigurasi didokumentasikan dengan baik, dan sudah berisi standarnya, jadi Anda bisa mulai men-tweak.Default yang menarik di sini adalah:
Baris terakhir memberikan preferensi terendah untuk semua alamat IPv4.
Jika Anda ingin memberikan preferensi yang lebih tinggi untuk semua IPv4, Anda dapat mengubahnya ke:
Jika Anda hanya ingin memberikan preferensi yang lebih tinggi untuk alamat atau blok IPv4 tertentu, Anda dapat menentukannya juga. Ingatlah bahwa Anda harus menggunakan IPv6 yang dipetakan dengan IPv6 di hex.
Jadi, untuk memberikan preferensi ke 203.0.113.0/24 di atas semua IPv6, Anda akan menambahkan:
Mulai ulang aplikasi yang sedang berjalan agar mereka mengambil perubahan yang Anda buat.
Pada sistem turunan Debian,
/etc/gai.conf
sudah ada. Pada sistem Red Hat, tidak ada, tetapi file sampel terletak di/usr/share/doc/glibc-common-*/gai.conf
; cukup salin ke/etc
.sumber
OK, inilah jawaban yang sangat berbeda.
Tempatkan host yang menyinggung dengan konektivitas IPv6 jelek
/etc/hosts
dengan alamat IPv4 yang sesuai.Sebagai contoh:
Ingatlah untuk menghapusnya saat (dalam hal ini) atau konektivitas IPv6 Anda membaik.
sumber
/etc/hosts
. Jika tidak ada yang muncul dengan "perangkat lunak server DNS XY dapat memfilter dengan cara ini !!" Saya mungkin akan berakhir dengan itu.