Mein ISP hat gerade den IPv4 / IPv6-Dual-Stack-Dienst gestartet. Um eine Verbindung zum IPv4 / IPv6-Internet herzustellen, verwenden fast alle Benutzer normalerweise ein vom ISP geleastes CPE. Ich möchte jedoch meinen Linux-Router anstelle eines solchen CPE verwenden, da mein Router so viele Rollen hat (viele iptables-Regeln und 3 Ethernet-Schnittstellen, http-Reverse-Proxy, http-Cache, Memcached, SMTP / Pop-Server und DNS-Proxy). Ich möchte, dass es sich um einen IPv4 / IPv6-Dual-Stack-Router handelt.
Mein Router
- CentOS6.0 i686
- eth0 für WAN
- eth1,2 für LAN
- ISC dhcp (Version 4.1.1) installiert von "# yum install dhcp" aus CentOS-Updates Repo
- radvd (Version 1.6) installiert von "# yum install radvd" von CentOS-base repo
- [BEARBEITEN] Der Grund, warum ich ISC dhclient verwende, besteht darin, dass mein Router eine DHCPv6-Option 16 (Vendor-Klasse) in seinen Anforderungs- und Anforderungsnachrichten senden muss, um eine herstellerspezifische Informationsoption zu erhalten, die einige ISP-spezifische Informationen enthält ( SIP-Telefonnummer, Firmware-Serveradresse). Ich weiß, wie man Option 16 in ISC dhclient setzt, aber ich weiß es nicht in WIDE-dhcpv6. Und ich kann solche Einstellungen wie "id-assoc" in ISC dhclient nicht finden.
Mein Ziel
- Das Präfix / 48 wird an den DHCPv6-PD-Client (DHCPv6 Prefix Delegation) (dhclient) auf eth0 delegiert.
- Eine IPv6-Standardroute wird auf ISP festgelegt. Ich muss die verbindungslokale Adresse des DHCPv6-Servers des ISP als Standardroute betrachten.
- Ein / 64-Subnetz und eine globale Adresse (die sich im delegierten Präfix befinden) werden jedem LAN-I / F (eth1 / eth2) zugewiesen.
- radvd auf eth1 und eth2 kündigt RA basierend auf dem zugewiesenen / 64-Subnetz an.
- dhcpd6 auf eth1 und eth2 kündigt zusätzliche Netzwerkinformationen (Nameserver, Domain-Suchliste und SIP-Server-Adressen) an, die vom DHCPv6-Server des ISP empfangen werden.
Meine aktuelle Konfiguration
/ 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;
}
Ergebnis
Nach "# service network restart" scheint der DHCPv6-PD-Client erfolgreich beendet zu werden.
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;
}
Frage
DHCPv6-PD-Client wurde erfolgreich delegiert / 48-Präfix erfolgreich. Aber danach
- Wie lege ich eine IPv6-Standardroute in der Routing-Tabelle des Routers fest?
- Wie ordne ich jedem LAN-I / F (eth1 und eth2) basierend auf dem delegierten Präfix eine globale IPv6-Adresse und ein / 64-Subnetz zu?
- Wie kann radvd ausgelöst werden, um RA auf jeder LAN-E / A (eth1 und eth2) anzukündigen?
- Wie kann der DHCPv6-Server (dhcpd6) auf jeder LAN-E / A ausgelöst werden, um zusätzliche Netzwerkinformationen (Nameserver, Domain-Suchliste und SIP-Server-Adressen) anzukündigen, die vom DHCPv6-Server des ISP empfangen wurden?
Meine Vermutung
Laut "$ man dhclient" und "$ man dhclient-script" scheint dhclient-script zum Konfigurieren solcher Einstellungen verwendet zu werden und bietet einige Hooks. Aber jetzt tut es nichts für den DHCPv6-PD-Client.
Ja, ich muss möglicherweise einige Skripte schreiben, die für meine DHCPv6-PD-Umgebung geeignet sind, obwohl ich mit IPv6-Netzwerkkonfigurationen nicht vertraut bin. Hat mich jemand über die obigen Einstellungen in dhclient-script informiert? [EDIT] Ich möchte das praktische Dhclient-Skript kennenlernen.
Und ich mache mir Sorgen, einige besondere Überlegungen sollten angestellt werden. Da beispielsweise jede IPv6-Adresse eine bevorzugte / gültige Lebensdauer hat, muss ich beim Zuweisen einer globalen IPv6-Adresse zu einer LAN-Schnittstelle basierend auf dem delegierten Präfix nicht nur eine IPv6-Adresse zuweisen, sondern auch deren Lebensdauer, die aus der delegierten Adresse abgeleitet werden muss bevorzugte / gültige Lebensdauer des Präfixes?
Außerdem müssen Radvd- und DHCPv6-Server auf LAN-Schnittstellen möglicherweise neu konfiguriert werden, wenn eine Neukonfiguration von DHCPv6 erfolgt. Welcher Haken sollte verwendet werden?
[BEARBEITEN] Wie werden bei einer Neukonfiguration von DHCPv6 sowohl neue als auch veraltete Informationen angekündigt? radvd automatisch ankündigen, dass das vorherige Präfix veraltet ist? DHCPv6-Server meldet automatisch, dass die vorherigen Nameserver veraltet sind?