Bagaimana mengkonfigurasi radvd, dhcpd6, routing dan / 64 subnet berdasarkan awalan didelegasikan oleh DHCPv6-PD server?

10

ISP saya baru saja memulai layanan dual stack IPv4 / IPv6. Untuk menghubungkan internet IPv4 / IPv6, hampir semua pengguna biasanya menggunakan CPE yang disewa oleh ISP. Tapi saya ingin menggunakan router Linux saya daripada CPE seperti itu, karena router saya memiliki banyak peran (banyak aturan iptables dan 3 antarmuka Ethernet, http reverse proxy, http cache, memcached, smtp / pop server dan proksi DNS). Saya ingin membiarkannya menjadi router dual stack IPv4 / IPv6.

Router saya

  • CentOS6.0 i686
  • eth0 untuk WAN
  • eth1,2 untuk LAN
  • ISC dhcp (versi 4.1.1) diinstal oleh "# yum install dhcp" dari repo CentOS-updates
  • radvd (versi 1.6) diinstal oleh "# yum install radvd" dari repo CentOS-base
  • [EDIT] Alasan mengapa saya menggunakan dhclient ISC adalah bahwa router saya harus mengirim opsi DHCPv6 16 (kelas Vendor) dalam pesan solicit dan request, untuk mendapatkan opsi informasi khusus vendor yang mencakup beberapa informasi khusus ISP ( Nomor telepon SIP, alamat server firmware). Saya tahu cara mengatur opsi 16 di dhclient ISC, tetapi tidak tahu di WIDE-dhcpv6. Dan saya tidak dapat menemukan pengaturan seperti "id-assoc" di dhclient ISC.

Tujuanku

  • / 48 awalan didelegasikan ke klien DHCPv6-PD (DHCPv6 Prefix Delegation) (dhclient) pada eth0.
  • Rute default IPv6 diatur ke ISP. Saya harus mempertimbangkan alamat tautan-lokal server DHCPv6 ISP sebagai rute default.
  • Satu / 64 subnet dan satu alamat global (yang ada dalam awalan yang didelegasikan) ditugaskan untuk setiap LAN I / F (eth1 / eth2).
  • Radvd pada eth1 dan eth2 mengumumkan RA berdasarkan subnet / 64 yang ditugaskan.
  • dhcpd6 pada eth1 dan eth2 mengumumkan informasi jaringan tambahan (nama-server, domain-searchlist dan sip-server-address) yang diterima dari server DHCPv6 ISP.

Konfigurasi saya saat ini

/ etc / sysconfig / network

NETWORKING=yes
HOSTNAME=xxx.yyy.zzz

# Enable IPv6 routing and stop accept_ra/autoconf.
IPV6FORWARDING=yes

/ etc / sysconfig / network-scripts / ifcfg-eth0

DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none

# Enable DHCPv6-PD client.
DHCPV6C=yes
DHCPV6C_OPTIONS="-P -cf /etc/dhcp/dhclient6.conf"

# Disable make_resolv_conf function in /sbin/dhclient-script.
PEERDNS=no

/etc/dhcp/dhclient6.conf

script "/sbin/dhclient-script";
interface "eth0" {
        send dhcp6.reconf-accept;
        also request dhcp6.vendor-opts, dhcp6.sip-servers-names, dhcp6.sip-servers-addresses, dhcp6.sntp-servers;
}

Hasil

Setelah "# service network restart", klien DHCPv6-PD tampaknya berhasil diselesaikan.

lease6 {
  interface "eth0";
  ia-pd xx:xx:xx:xx {
    starts 1312464004;
    renew 7200;
    rebind 10800;
    iaprefix 24xx:xxxx:xxxx::/48 {
      starts 1312464004;
      preferred-life 12600;
      max-life 14400;
    }
  }
  option dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.server-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.reconf-accept ;
  option dhcp6.sip-servers-addresses 24xx:xxxx:xxxx:xxxx::1;
  option dhcp6.name-servers 24xx:xxxx:xxxx:xxxx::3,24xx:xxxx:xxxx:b::3;
  option dhcp6.domain-search "xxx.jp.", "yyy.jp.";
  option dhcp6.sntp-servers 24xx:xxxx:xxxx:xxxx::a,24xx:xxxx:xxxx:b::b;
}

Pertanyaan

Klien DHCPv6-PD berhasil didelegasikan / 48 awalan. Tapi setelah itu,

  • Bagaimana cara menetapkan rute default IPv6 di tabel routing router?
  • Bagaimana cara menetapkan alamat IPv6 global dan / 64 subnet untuk setiap LAN I / F (eth1 dan eth2) berdasarkan awalan yang didelegasikan?
  • Bagaimana cara memicu radvd untuk mengumumkan RA pada setiap LAN I / F (eth1 dan eth2)?
  • Bagaimana memicu server DHCPv6 (dhcpd6) pada setiap LAN I / F untuk mengumumkan informasi jaringan tambahan (nama-server, domain-searchlist, dan sip-server-address) yang diterima dari server DHCPv6 ISP?

Tebakanku

Menurut "$ man dhclient" dan "$ man dhclient-script", skrip dhclient tampaknya digunakan untuk mengonfigurasi pengaturan tersebut, dan ia menawarkan beberapa kait. Tapi sekarang, tidak melakukan apa pun untuk klien DHCPv6-PD.

Ya, saya mungkin harus menulis beberapa skrip yang cocok untuk lingkungan DHCPv6-PD saya, meskipun saya tidak terbiasa dengan konfigurasi jaringan IPv6. Adakah yang memberi tahu saya pengaturan di atas dalam skrip dhclient? [EDIT] Saya ingin tahu script dhclient yang praktis.

Dan saya khawatir, beberapa pertimbangan khusus harus diambil. Misalnya, karena setiap alamat IPv6 lebih disukai / berlaku seumur hidup, ketika saya menetapkan alamat IPv6 global ke antarmuka LAN berdasarkan awalan yang didelegasikan, saya harus menetapkan tidak hanya alamat IPv6 tetapi juga masa pakainya yang harus diturunkan dari yang didelegasikan. awalan lebih disukai / masa hidup yang valid?

Juga, server radvd dan DHCPv6 pada antarmuka LAN mungkin harus dikonfigurasi ulang ketika konfigurasi ulang DHCPv6 terjadi? Kait mana yang harus digunakan?

[EDIT] Ketika konfigurasi ulang DHCPv6 terjadi, bagaimana cara mengumumkan informasi baru dan usang? Radvd secara otomatis mengumumkan awalan sebelumnya sudah usang? Server DHCPv6 secara otomatis mengumumkan server nama sebelumnya sudah usang?

takaomag
sumber

Jawaban:

4

Saya tidak tahu jawaban untuk pertanyaan Anda, tetapi saya hanya ingin memperingatkan Anda tentang penggunaan alamat server DHCP sebagai router default Anda. Jika berhasil, itu kebetulan ... Dalam IPv6, rute default dikomunikasikan oleh RA dan bukan oleh DHCP.

Anda harus mengaktifkan penerusan, menerima RA dan mengirimkan RS. Masalahnya di sini adalah bahwa kernel yang termasuk dalam Centos6 tidak memungkinkan Anda untuk melakukan itu. Ketika penerusan diaktifkan maka menerima RA dan mengirim RS dinonaktifkan. Namun harus ada kernel CentosPlus dengan tambalan yang relevan. Lihat utas / mailing list milis di http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756

Pengaturan sysctl.conf yang relevan adalah:

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_defrtr=1
net.ipv6.conf.eth0.router_solicitations=1
Sander Steffann
sumber
2
Sebenarnya, Anda ingin accept_ra menjadi 2 (terima meskipun perutean diaktifkan). Kalau tidak, kernel mengabaikannya di router.
Kyle Butt
2
  • Rute default IPv6 harus disiapkan oleh apa pun yang memiliki koneksi internet default (upstream), sebelum Anda menggunakan DHCPv6 PD untuk mendapatkan subnet tambahan. Anda belum menyebutkan bagaimana sebenarnya Anda menghubungkan hulu, jadi saya tidak dapat membantu Anda di sana.
  • Saya menggunakan klien WIDE DHCPv6, daripada ISC, jadi saya tidak tahu bagaimana melakukannya secara khusus, tetapi saya berharap bahwa ISC memiliki sesuatu yang setara dengan opsi konfigurasi WIDE ini:

    id-assoc pd {
        prefix-interface eth0 {
            sla-id 1;
            sla-len 4;
        };
    };
    

    Pada dasarnya, Anda memberi tahu klien DHCP cara menetapkan subnet ke antarmuka internal; konfigurasi di atas mengatakan "Saya mendapatkan 4 bit awalan yang didelegasikan kepada saya ( sla-len 4), ambil subnet pertama yang tersedia ( sla-id 1) dan tetapkan ke eth0( prefix-interface eth0).

  • Setup radvd dengan interfacebait yang sesuai (ada contoh bagus di radvd.confhalaman manual untuk bekerja), dan itu hanya akan berfungsi.
  • Saya tidak dapat membantu Anda di sana; selain dari pengujian, saya tidak menggunakan layanan DHCPv6 (saya mendapatkan semua info DHCP dari server DHCP saya).
womble
sumber
Terima kasih atas jawaban anda. 1. Cara menghubungkan hulu adalah dengan hanya menghubungkan kabel Ethernet ke FTTH GE-PON. Baru saja, tidak ada cara untuk menentukan rute IPv6 standar melalui DHCPv6, saya harus mempertimbangkan alamat tautan-lokal server DHCPv6 sebagai rute default.
takaomag
2. Meskipun saya tidak menyebutkan, alasan mengapa saya menggunakan ISC dhclient adalah bahwa router saya harus mengirim opsi DHCPv6 16 (kelas Vendor) dalam pesan solicit dan request, untuk mendapatkan opsi informasi spesifik vendor yang mencakup beberapa Informasi khusus ISP (nomor telepon SIP, alamat server firmware). Saya tahu cara mengatur opsi 16 di dhclient ISC, tetapi tidak tahu di WIDE-dhcpv6. Dan saya tidak dapat menemukan pengaturan seperti "id-assoc" di dhclient ISC.
takaomag
2
3,4. Saya mungkin dapat menulis beberapa skrip yang buruk untuk membangun radvd.conf dan dhcpd6.conf berdasarkan informasi (Awalan, dll) dari server DHCPv6. Tetapi ketika konfigurasi ulang DHCPv6 terjadi, bagaimana cara mengumumkan informasi baru dan usang? Radvd secara otomatis mengumumkan awalan sebelumnya sudah usang? Server DHCPv6 secara otomatis mengumumkan server nama sebelumnya sudah usang?
takaomag
Pokoknya saya ingin tahu script-dhclient praktis.
takaomag
Jangan menambahkan semua informasi ini dalam komentar pada jawaban; tambahkan ke pertanyaan Anda .
womble
-1

Wombie telah memberikan jawaban yang sama yang akan saya gunakan untuk mengatur radv dan routing. Inet6 dirancang untuk melakukan konfigurasi sendiri tanpa perlu server DHCP.

Saya tidak menggunakan DHCPv6 karena dapat ditangani oleh radvd dan zeroconf. Radvd dapat dikonfigurasi untuk memasok server nama, dan dapat mengiklankan server dari /etc/resolv.conf. Versi baru radvd juga telah mengimplementasikan pendistribusian daftar pencarian.

Saya mengkonfigurasi avahi-daemon untuk mendistribusikan layanan nama dan server ke klien. Anda akan membutuhkan klien yang dapat melakukan penemuan layanan. Saya belum melakukan banyak pengujian penemuan layanan ketika saya menjalankan jaringan tumpukan ganda di seluruh papan.

BillThor
sumber
Bahkan apakah saya menggunakan server DHCPv6 atau radvd, saya harus menulis beberapa skrip untuk membangun dhcpd6.conf atau radvd.conf secara dinamis berdasarkan informasi (Awalan, dll) dari server DHCPv6. Tetapi ketika konfigurasi ulang DHCPv6 terjadi, bagaimana cara mengumumkan informasi baru dan usang ke host sisi LAN? Jika saya membuat dhcpd6.conf baru atau radvd.conf secara dinamis hanya berdasarkan informasi baru dari server DHCPv6, radvd secara otomatis mengumumkan awalan sebelumnya sudah usang? Server DHCPv6 secara otomatis mengumumkan server nama sebelumnya sudah usang?
takaomag
Radvd dapat menggunakan awalan :: / 64 untuk secara otomatis mendapatkan alamatnya dari antarmuka. Anda tidak perlu menulis ulang konfigurasi. Server DNS dan daftar pencarian harus berupa data statis. Konfigurasi otomatis IPv6 dirancang untuk menangani alamat migrasi. Saya tidak tahu seberapa baik ISP Anda mendukung transisi. Saya belum melihat DHCPv6.
BillThor