Saya mengkonfigurasi router sederhana yang harus menyediakan konektivitas IPv6 ke mesin yang ada di LAN di belakangnya. Router memiliki 2 antarmuka jaringan (eth0, eth1), mesin memiliki 1 (eth0).
Pada eth0 router adalah akses hanya ke jaringan lokal, pada eth1 adalah akses ke internet. Saya mengkonfigurasi semua parameter kernel, itu berfungsi ok.
IP dari router adalah fd00::1
, saya menginstal dhcpd pada router dan range yang sudah dikonfigurasi fd00::100 - fd00::fffe
.
Ketika saya memulai beberapa mesin di jaringan ini, ia mendapat IP dari dhcpd, misalnya fd00::fffa
, tetapi tidak dapat mengakses internet karena alasan yang jelas - ia kehilangan rute.
Ketika saya menambahkan rute dengan tangan sudo route -6 add 2000::/3 gw fd00::1
, mesin mulai memiliki akses ke internet sampai saya reboot.
Saya dapat menambahkan rute ini dengan tangan ke dalam skrip init dari setiap mesin, tetapi saya lebih suka memilikinya konfigurasi otomatis sehingga ketika saya memulai mesin di jaringan ini ia mendapatkan akses ke internet IPv6 tanpa perlu hal lain.
Berdasarkan beberapa saran saya menginstal juga radvd di router dan memasukkan opsi ini:
route 2000::/3 {};
Kemungkinan besar salah, tetapi saya tidak dapat menemukan dokumentasi atau contoh. Itu tidak bekerja. Menggunakan radvd bukannya dhcpd untuk menetapkan alamat IPv6 tidak berfungsi sama sekali, jika saya menonaktifkan mesin dhcpd secara otomatis mengkonfigurasi beberapa alamat IPv6 acak dan bahkan tidak melihat satu sama lain, mereka juga tidak dapat melakukan ping router.
Bagaimana cara saya mengatur LAN saya untuk mengkonfigurasi otomatis IPv6 untuk semua mesin di dalamnya?
Catatan: Saya tidak perlu dan saya ingin setiap mesin memiliki IPv6 publik, NAT baik-baik saja.
sumber
Jawaban:
Saya segera menemukan dua masalah dengan konfigurasi Anda. Alamat RFC 4193 tidak bisa dialihkan secara global. Itu berarti alamat-alamat itu tidak akan dapat berkomunikasi dengan dunia luar.
Tentu Anda dapat menggunakan NAT, tetapi NAT diketahui menyebabkan banyak masalah. NAT adalah solusi yang dimaksudkan untuk sementara waktu mengatasi kekurangan alamat IP. IPv6 memecahkan masalah itu. Semua masalah lain yang orang coba pecahkan dengan menggunakan NAT memiliki solusi yang lebih baik yang tidak melibatkan NAT.
Selain itu, awalan Anda jelas tidak dihasilkan sesuai dengan spesifikasi di RFC 4193. Kutipan yang relevan:
Apakah kedua masalah ini dalam konfigurasi jaringan mencegah klien berkomunikasi secara eksternal, Anda hanya akan mengetahuinya dengan mengujinya. Ada perangkat lunak, yang mencoba mendeteksi konfigurasi IPv6 suboptimal dan sepenuhnya menghindari penggunaan IPv6 jika ada yang terdeteksi. Sangat masuk akal bahwa beberapa perangkat lunak klien akan menolak untuk menggunakan koneksi IPv6 dalam pengaturan Anda.
Yang mengatakan itu bukan tidak mungkin untuk mendapatkan klien untuk berkomunikasi secara eksternal menggunakan alamat RFC 4193. Ini adalah
radvd.conf
file, yang saya gunakan secara singkat di masa lalu. Dengan konfigurasi ini, beberapa klien berupaya berkomunikasi secara eksternal menggunakan alamat RFC 4193 yang ditetapkan.Namun konfigurasi ini tidak berfungsi dengan semua klien. Saya mengujinya lagi dengan klien yang menjalankan Android. Telepon memang mendapatkan alamat IPv6 yang dikonfigurasi, tetapi tidak mencoba menggunakan IPv6 untuk komunikasi eksternal.
Saya kemudian mengubah awalan menjadi
2001:db8:dca3::/64
, pada titik mana telepon mulai mengirim paket IPv6 ke gateway. Jadi Android adalah salah satu contoh platform yang menolak menggunakan alamat RFC 4193 dengan cara ini.sumber
fd00::/48
muncul karena pelanggaran RFC, daripada karena kesempatan acak dalam implementasi yang sesuai dengan RFC. Itu tidak berarti bahwa masuk akal bagi perangkat lunak klien untuk mencoba mendeteksi awalan non-acak dan menolak untuk menggunakannya karena itu.