Bagaimana saya bisa 'mencelupkan jari kaki' ke dalam pengalamatan jaringan IPv6 yang dinamis?

14

Apakah ada cara di IPv6 untuk mengaktifkan pengalamatan dinamis dan konfigurasi untuk subset host pada jaringan yang diidentifikasi oleh alamat mac tertentu?

Saya perlahan-lahan bekerja mengatur IPv6. Semua router saya memiliki alamat dan rute statis dan beberapa server penting ditangani secara statis. Sekarang saya ingin mulai menguji beberapa klien, tetapi saya tidak ingin hanya mengaktifkannya untuk seluruh jaringan sekaligus. Saya ingin dapat mengaktifkannya hanya untuk beberapa host.

Di dunia IPv4 saya akan mengatur server DHCP dengan 0 alamat gratis di ruang lingkup, dan hanya mengatur pemesanan. Di dunia IPv6 ini tampaknya tidak menjadi pilihan karena saya tidak dapat mengatur gateway default melalui DHCPv6, yang tampaknya hanya dapat dipelajari melalui iklan router.

Bagaimana ini didekati? Apakah hanya mungkin untuk mengaktifkan IPv6 secara selektif pada suatu jaringan?

Router saya berbasis Linux dan server DHCPv6 akan berjalan di Linux jika itu penting, dan saya ingin mengaktifkan klien dari segala jenis (Windows / Linux / OSX).

Sakit kepala
sumber
Mengapa Anda tidak dapat melakukan reservasi DHCPv6? Bahkan router rumah saya dapat melakukan ini.
Michael Hampton
@MichaelHampton, Ya DHCPv6 seharusnya bisa mengirimkan alamat ke klien, tetapi bagaimana saya membuat klien memiliki rute default?
Zoredache
Di server DHCP, Anda bisa membuat beberapa aturan iptables yang memblokir DHCPv6 dari beberapa alamat MAC dan memungkinkan dari yang Anda inginkan untuk mengaktifkan IPv6.
Atle
@Zoredache: rute default selalu dikomunikasikan oleh pesan Router Ads (RA). DHCPv6 tidak bertukar informasi routing.
Sander Steffann

Jawaban:

7

Saya tidak melihat mengapa Anda tidak dapat melakukannya dengan cara yang sama dengan IPv6 seperti halnya dengan IPv4 (meskipun saya akan merekomendasikan penggunaan subnet daripada oleh host tunggal; ini akan menghemat banyak waktu dan sakit kepala nanti).

Inilah cara IPv6 bekerja di sini (sangat disederhanakan; lihat RFC 4861 untuk detail berdarah):

Router default mengirimkan iklan router secara berkala, atau ketika menerima permintaan router dari host baru. RA berisi alamat router, tentu saja, dan berbagai flag. Yang menarik bagi kami di sini adalah bendera M (dikelola) dan bendera O (lainnya). Bendera ini menentukan bahwa host harus mendapatkan sisa informasi konfigurasinya dari server DHCPv6:

  • Ketika flag M diatur, semua informasi konfigurasi (kecuali alamat router) disediakan oleh DHCPv6.
  • Ketika flag O diatur, host mengkonfigurasi alamat IPv6-nya sendiri dengan SLAAC; semua informasi konfigurasi lainnya (kecuali alamat router) disediakan oleh DHCPv6.

Pada titik itu, itu hanya masalah menggunakan, misalnya fixed-address6dalam dhcpd.confkonfigurasi Anda untuk mengatur reservasi; pengaturan DHCPv6 Anda akan sangat mirip dengan pengaturan DHCP untuk IPv4.

Saya juga telah melewatkan kasus di mana subnet mungkin memiliki dua atau lebih router yang menangani rute "default"; dalam hal ini lihat preferensi router IPv6 untuk mengkonfigurasi aspek ini.

Michael Hampton
sumber
Ok, ini kedengarannya benar. Tantangannya adalah bahwa saya saat ini bereksperimen dengan menggunakan DnsMasq untuk iklan rute. Yang sepertinya kekurangan fitur yang diperlukan untuk mengaktifkan ini. Saya kira saya harus beralih menggunakan radvd.
Zoredache
1
@Zoredache dnsmasq cukup minim dalam hal ini, dan saya tidak berpikir itu memiliki semua fitur yang diperlukan. Saya menggunakan radvd sendiri. Jika Anda membutuhkan sesuatu yang minimalis, misalnya untuk sistem tertanam, pertimbangkan 6relayd . Ini adalah server iklan gabungan / DHCPv6 server dan relay yang awalnya ditulis untuk OpenWrt.
Michael Hampton
1

Anda dapat mengatur server DHCPv6 (seperti WIDE atau ISC) untuk konfigurasi stateful atau radvd untuk konfigurasi otomatis stateless. IPv6 menetapkan rentang FC00 :: / 7 untuk alamat lokal unik (mirip dengan rentang alamat pribadi di IPv4).

Tandai Bidewell
sumber
Dan Anda tidak seharusnya menggunakan fc00 :: atau fd00 :: seperti yang saya lihat beberapa orang lakukan. Anda seharusnya memilih acak / 48 dari dalam rentang itu.
Michael Hampton