Come configurare radvd, dhcpd6, routing e / 64 subnet in base al prefisso delegato dal server DHCPv6-PD?


10

Il mio ISP ha appena avviato il servizio dual stack IPv4 / IPv6. Per connettersi a Internet IPv4 / IPv6, quasi tutti gli utenti di solito usano un CPE noleggiato dall'ISP. Ma voglio usare il mio router Linux invece di tale CPE, perché il mio router ha tanti ruoli (molte regole iptables e 3 interfacce Ethernet, proxy inverso http, cache http, memcached, server smtp / pop e proxy DNS). Voglio lasciarlo essere un router dual stack IPv4 / IPv6.

Il mio router

  • CentOS6.0 i686
  • eth0 per WAN
  • eth1,2 per LAN
  • ISC dhcp (versione 4.1.1) installato da "# yum install dhcp" dal repository di aggiornamenti CentOS
  • radvd (versione 1.6) installato da "# yum install radvd" dal repository CentOS-base
  • [EDIT] Il motivo per cui utilizzo ISC dhclient è che il mio router deve inviare un'opzione DHCPv6 16 (classe del fornitore) nei suoi messaggi di sollecitazione e richiesta, al fine di ottenere l'opzione di informazioni specifiche del fornitore che include alcune informazioni specifiche dell'ISP ( Numero di telefono SIP, indirizzo del server del firmware). So come impostare l'opzione 16 in dhclient ISC, ma non lo so in WIDE-dhcpv6. E non riesco a trovare impostazioni come "id-assoc" in ISC dhclient.

Il mio obiettivo

  • Il prefisso / 48 è delegato al client DHCPv6-PD (Delega prefisso DHCPv6) (dhclient) su eth0.
  • Una route predefinita IPv6 è impostata su ISP. Devo considerare l'indirizzo locale di collegamento del server DHCPv6 dell'ISP come una route predefinita.
  • Una sottorete / 64 e un indirizzo globale (che si trovano nel prefisso delegato) sono assegnati a ciascun I / F LAN (eth1 / eth2).
  • radvd su eth1 e eth2 annuncia RA in base alla sottorete / 64 assegnata.
  • dhcpd6 su eth1 ed eth2 annuncia ulteriori informazioni di rete (server dei nomi, elenco di ricerca dominio e indirizzi di server sip) ricevute dal server DHCPv6 dell'ISP.

La mia configurazione attuale

/ 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;
}

Risultato

Dopo il "riavvio della rete # service", il client DHCPv6-PD sembra terminato correttamente.

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;
}

Domanda

Il client DHCPv6-PD è delegato / prefisso 48 correttamente. Ma dopo ciò,

  • Come impostare una route predefinita IPv6 nella tabella di routing del router?
  • Come assegnare un indirizzo IPv6 globale e / 64 sottorete a ciascun I / F LAN (eth1 ed eth2) in base al prefisso delegato?
  • Come attivare radvd per annunciare RA su ogni I / F LAN (eth1 ed eth2)?
  • Come attivare il server DHCPv6 (dhcpd6) su ogni I / F LAN per annunciare ulteriori informazioni di rete (server dei nomi, elenco di ricerca dominio e indirizzi di server sip) ricevute dal server DHCPv6 dell'ISP?

La mia ipotesi

Secondo "$ man dhclient" e "$ man dhclient-script", dhclient-script sembra essere usato per configurare tali impostazioni e offre alcuni hook. Ma ora non fa nulla per il client DHCPv6-PD.

Sì, potrebbe essere necessario scrivere alcuni script adatti al mio ambiente DHCPv6-PD, anche se non ho familiarità con le configurazioni di rete IPv6. Qualcuno mi ha fatto conoscere le impostazioni di cui sopra in dhclient-script? [EDIT] Voglio conoscere la pratica sceneggiatura dhclient.

E mi preoccupo, dovrebbe essere presa qualche considerazione speciale. Ad esempio, poiché ogni indirizzo IPv6 ha una durata preferita / valida, quando assegno un indirizzo IPv6 globale a un'interfaccia LAN basata sul prefisso delegato, devo assegnare non solo un indirizzo IPv6 ma anche i suoi tempi di vita che devono essere derivati ​​dal delegato durata preferita / valida del prefisso?

Inoltre, potrebbe essere necessario riconfigurare il server radvd e DHCPv6 su interfacce LAN quando si verifica la riconfigurazione di DHCPv6? Quale gancio dovrebbe essere usato?

[EDIT] Quando si verifica la riconfigurazione di DHCPv6, come annunciare informazioni nuove e obsolete? radvd annuncia automaticamente che il prefisso precedente è obsoleto? Il server DHCPv6 annuncia automaticamente che i precedenti server dei nomi sono obsoleti?

Risposte:


4

Non conosco la risposta alla tua domanda, ma voglio solo avvisarti dell'utilizzo dell'indirizzo del server DHCP come router predefinito. Se funziona, è un caso ... In IPv6 il percorso predefinito è comunicato da RA e non da DHCP.

Dovrai abilitare l'inoltro, l'accettazione di RA e l'invio di RS. Un problema qui è che il kernel incluso in Centos6 non ti consente di farlo. Quando l'inoltro è abilitato, l'accettazione di RA e l'invio di RS sono disabilitati. Tuttavia, dovrebbe esserci un kernel CentosPlus con le relative patch. Vedi il thread / messaggio della mailing list su http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756

Le impostazioni rilevanti di sysctl.conf sono:

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

2
In realtà, si desidera che accetta_ra sia 2 (accetta anche se il routing è abilitato). Altrimenti il ​​kernel lo ignora su un router.
Kyle Butt,

2
  • Prima di utilizzare DHCPv6 PD per ottenere le sottoreti aggiuntive, è necessario configurare una route predefinita IPv6 in base a qualunque sia la connessione Internet predefinita (a monte). Non hai menzionato come ti stai effettivamente connettendo a monte, quindi non posso aiutarti lì.
  • Uso il client DHCPv6 WIDE, piuttosto che ISC, quindi non so come farlo in modo specifico, ma mi aspetto che ISC abbia qualcosa di equivalente a questa opzione di configurazione WIDE:

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

    Fondamentalmente, si dice al client DHCP come assegnare sottoreti a interfacce interne; la configurazione sopra dice "Sto ricevendo 4 bit di prefisso delegati a me ( sla-len 4), prendi la prima sottorete disponibile ( sla-id 1) e assegnala a eth0( prefix-interface eth0).

  • Installa radvd con le interfacestanze appropriate (ci sono buoni esempi nella radvd.confpagina man da cui lavorare) e funzionerà.
  • Non posso aiutarti lì; a parte i test, non utilizzo il servizio DHCPv6 (ottengo tutte le mie informazioni DHCP dal mio server DHCP).

Grazie per la tua risposta. 1. Il collegamento a monte consiste semplicemente nel collegare un cavo Ethernet a un FTTH GE-PON. Proprio ora, non c'è modo di specificare la route IPv6 predefinita tramite DHCPv6, devo considerare l'indirizzo di collegamento locale del server DHCPv6 come route predefinita.
Takaomag,

2. Anche se non ho menzionato, il motivo per cui utilizzo ISC dhclient è che il mio router deve inviare un'opzione DHCPv6 16 (Classe del fornitore) nei suoi messaggi di sollecitazione e richiesta, al fine di ottenere un'opzione di informazioni specifiche del fornitore che include alcune Informazioni specifiche dell'ISP (numero di telefono SIP, indirizzo del server del firmware). So come impostare l'opzione 16 in dhclient ISC, ma non lo so in WIDE-dhcpv6. E non riesco a trovare impostazioni come "id-assoc" in ISC dhclient.
Takaomag,

2
3,4. Potrei essere in grado di scrivere alcuni script scadenti per costruire radvd.conf e dhcpd6.conf sulla base di informazioni (prefisso, ecc.) Dal server DHCPv6. Ma quando si verifica la riconfigurazione di DHCPv6, come annunciare informazioni nuove e obsolete? radvd annuncia automaticamente che il prefisso precedente è obsoleto? Il server DHCPv6 annuncia automaticamente che i precedenti server dei nomi sono obsoleti?
Takaomag,

Comunque voglio conoscere la pratica sceneggiatura dhclient.
Takaomag,

Non aggiungere tutte queste informazioni nei commenti su una risposta; aggiungilo alla tua domanda .
Womble

-1

Wombie ha dato la stessa risposta che avrei usato per configurare radv e il routing. Inet6 è progettato per eseguire l'autoconfigurazione senza la necessità di un server DHCP.

Non uso DHCPv6 in quanto può essere gestito da radvd e zeroconf. radvd può essere configurato per fornire server dei nomi e può pubblicizzare server da /etc/resolv.conf. Le nuove versioni di radvd hanno anche implementato la distribuzione di liste di ricerca.

Ho configurato avahi-daemon per distribuire servizi di nomi e server ai client. Sarà necessario che i clienti siano in grado di eseguire il rilevamento del servizio. Non ho fatto molti test di scoperta del servizio mentre eseguo una rete dual stack su tutta la linea.


Anche se uso il server DHCPv6 o radvd, devo scrivere alcuni script per costruire dhcpd6.conf o radvd.conf in modo dinamico basato sulle informazioni (prefisso, ecc.) Dal server DHCPv6. Ma quando si verifica la riconfigurazione di DHCPv6, come annunciare informazioni sia nuove che obsolete agli host lato LAN? Se costruisco nuovo dhcpd6.conf o radvd.conf basato dinamicamente solo su nuove informazioni dal server DHCPv6, radvd annuncia automaticamente che il prefisso precedente è obsoleto? Il server DHCPv6 annuncia automaticamente che i precedenti server dei nomi sono obsoleti?
Takaomag,

radvd può usare il prefisso :: / 64 per ottenere automaticamente i suoi indirizzi dall'interfaccia. Non è necessario riscrivere la configurazione. I server DNS e l'elenco di ricerca devono essere dati statici. La configurazione automatica IPv6 è progettata per gestire gli indirizzi di migrazione. Non so quanto bene il tuo ISP supporti la transizione. Non ho guardato DHCPv6.
BillThor il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.