Comment configurer radvd, dhcpd6, le routage et le sous-réseau / 64 en fonction du préfixe délégué par le serveur DHCPv6-PD?

10

Mon FAI vient de démarrer le service double pile IPv4 / IPv6. Afin de se connecter à Internet IPv4 / IPv6, presque tous les utilisateurs utilisent généralement un CPE loué par le FAI. Mais je veux utiliser mon routeur Linux au lieu d'un tel CPE, car mon routeur a tellement de rôles (beaucoup de règles iptables et 3 interfaces Ethernet, proxy inverse http, cache http, memcached, serveur smtp / pop et proxy DNS). Je veux que ce soit un routeur double pile IPv4 / IPv6.

Mon routeur

  • CentOS6.0 i686
  • eth0 pour WAN
  • eth1,2 pour LAN
  • DHCP ISC (version 4.1.1) installé par "# yum install dhcp" à partir du dépôt CentOS-updates
  • radvd (version 1.6) installé par "# yum install radvd" de CentOS-base repo
  • [MODIFIER] La raison pour laquelle j'utilise dhclient ISC est que mon routeur doit envoyer une option DHCPv6 16 (classe de fournisseur) dans ses messages de sollicitation et de demande, afin d'obtenir une option d'informations spécifiques au fournisseur qui inclut des informations spécifiques au FAI ( Numéro de téléphone SIP, adresse du serveur du firmware). Je sais comment définir l'option 16 dans dhclient ISC, mais je ne le sais pas dans WIDE-dhcpv6. Et je ne trouve pas de paramètres tels que "id-assoc" dans dhclient ISC.

Mon but

  • Le préfixe / 48 est délégué au client DHCPv6-PD (délégation de préfixe DHCPv6) (dhclient) sur eth0.
  • Une route IPv6 par défaut est définie vers ISP. Je dois considérer l'adresse de liaison locale du serveur DHCPv6 du FAI comme une route par défaut.
  • Un sous-réseau / 64 et une adresse globale (qui se trouvent dans le préfixe délégué) sont attribués à chaque LAN I / F (eth1 / eth2).
  • radvd sur eth1 et eth2 annonce RA sur la base du sous-réseau / 64 attribué.
  • dhcpd6 sur eth1 et eth2 annonce des informations réseau supplémentaires (serveurs de noms, liste de recherche de domaine et adresses de serveurs sip) reçues du serveur DHCPv6 du FAI.

Ma configuration actuelle

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

Résultat

Après "# redémarrage du réseau de service", le client DHCPv6-PD semble se terminer avec succès.

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

Question

Le client DHCPv6-PD est délégué / 48 préfixe avec succès. Mais après ça,

  • Comment définir une route par défaut IPv6 dans la table de routage du routeur?
  • Comment attribuer une adresse IPv6 globale et un sous-réseau / 64 à chaque LAN I / F (eth1 et eth2) en fonction du préfixe délégué?
  • Comment déclencher radvd pour annoncer RA sur chaque LAN I / F (eth1 et eth2)?
  • Comment déclencher le serveur DHCPv6 (dhcpd6) sur chaque LAN I / F pour annoncer des informations réseau supplémentaires (serveurs de noms, liste de recherche de domaine et adresses de serveurs SIP) reçues du serveur DHCPv6 du FAI?

Ma conjecture

Selon "$ man dhclient" et "$ man dhclient-script", dhclient-script semble être utilisé pour configurer de tels paramètres, et il offre quelques crochets. Mais maintenant, cela ne fait rien pour le client DHCPv6-PD.

Oui, je devrai peut-être écrire des scripts adaptés à mon environnement DHCPv6-PD, bien que je ne sois pas familier avec les configurations réseau IPv6. Quelqu'un m'a fait connaître les paramètres ci-dessus dans dhclient-script? [EDIT] Je veux connaître le script dhclient pratique.

Et je m'inquiète, une attention particulière doit être prise. Par exemple, parce que chaque adresse IPv6 a une durée de vie préférée / valide, lorsque j'attribue une adresse IPv6 globale à une interface LAN basée sur le préfixe délégué, je dois attribuer non seulement une adresse IPv6 mais aussi ses durées de vie qui doivent être dérivées du délégué durée de vie préférée / valide du préfixe?

En outre, le radvd et le serveur DHCPv6 sur les interfaces LAN peuvent devoir être reconfigurés lors de la reconfiguration DHCPv6? Quel crochet utiliser?

[EDIT] Lorsque la reconfiguration DHCPv6 se produit, comment annoncer des informations nouvelles et obsolètes? radvd annonce automatiquement que le préfixe précédent est obsolète? Le serveur DHCPv6 annonce automatiquement que les serveurs de noms précédents sont obsolètes?

takaomag
la source

Réponses:

4

Je ne connais pas la réponse à votre question, mais je veux juste vous avertir d'utiliser l'adresse du serveur DHCP comme routeur par défaut. Si cela fonctionne, c'est par hasard ... En IPv6, la route par défaut est communiquée par les RA et non par DHCP.

Vous devrez activer le transfert, accepter les RA et envoyer des RS. Un problème ici est que le noyau inclus dans Centos6 ne vous permet pas de le faire. Lorsque le transfert est activé, l'acceptation des RA et l'envoi des RS sont désactivés. Il devrait cependant y avoir un noyau CentosPlus avec les correctifs appropriés. Voir le fil / message de la liste de diffusion sur http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756

Les paramètres sysctl.conf pertinents sont:

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
la source
2
En fait, vous voulez que accept_ra soit 2 (acceptez même si le routage est activé). Sinon, le noyau l'ignore sur un routeur.
Kyle Butt
2
  • Une route par défaut IPv6 doit être configurée par celui qui a obtenu votre connexion Internet par défaut (en amont), avant d'utiliser DHCPv6 PD pour obtenir les sous-réseaux supplémentaires. Vous n'avez pas indiqué comment vous vous connectez en amont, donc je ne peux pas vous aider.
  • J'utilise le client DHCPv6 WIDE, plutôt que ISC, donc je ne sais pas comment le faire spécifiquement, mais je m'attends à ce qu'ISC ait quelque chose d'équivalent à cette option de configuration WIDE:

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

    Fondamentalement, vous dites au client DHCP comment attribuer des sous-réseaux aux interfaces internes; la configuration ci-dessus indique "Je reçois 4 bits de préfixe délégués à moi ( sla-len 4), prenez le premier sous-réseau disponible ( sla-id 1) et affectez-le à eth0( prefix-interface eth0).

  • Configurez radvd avec les interfacestrophes appropriées (il y a de bons exemples dans la radvd.confpage de manuel pour travailler), et ça marchera.
  • Je ne peux pas vous y aider; en dehors des tests, je n'utilise pas le service DHCPv6 (j'obtiens toutes mes informations DHCP de mon serveur DHCP).
womble
la source
Merci pour votre réponse. 1. Comment se connecter en amont consiste simplement à connecter un câble Ethernet à un FTTH GE-PON. Pour l'instant, il n'y a aucun moyen de spécifier la route IPv6 par défaut via DHCPv6, je dois considérer l'adresse de liaison locale du serveur DHCPv6 comme une route par défaut.
takaomag
2. Bien que je ne l'ai pas mentionné, la raison pour laquelle j'utilise dhclient ISC est que mon routeur doit envoyer une option DHCPv6 16 (classe de fournisseur) dans ses messages de sollicitation et de demande, afin d'obtenir une option d'informations spécifiques au fournisseur qui inclut certains Informations spécifiques au FAI (numéro de téléphone SIP, adresse du serveur de firmware). Je sais comment définir l'option 16 dans dhclient ISC, mais je ne le sais pas dans WIDE-dhcpv6. Et je ne trouve pas de paramètres tels que "id-assoc" dans dhclient ISC.
takaomag
2
3,4. Je peux peut-être écrire des scripts médiocres pour construire radvd.conf et dhcpd6.conf en fonction des informations (préfixe, etc.) du serveur DHCPv6. Mais lorsque la reconfiguration DHCPv6 se produit, comment annoncer des informations nouvelles et obsolètes? radvd annonce automatiquement que le préfixe précédent est obsolète? Le serveur DHCPv6 annonce automatiquement que les serveurs de noms précédents sont obsolètes?
takaomag
Quoi qu'il en soit, je veux connaître le script dhclient pratique.
takaomag
N'ajoutez pas toutes ces informations dans les commentaires sur une réponse; ajoutez-le à votre question .
womble
-1

Wombie a donné la même réponse que j'utiliserais pour configurer radv et le routage. Inet6 est conçu pour effectuer une auto-configuration sans avoir besoin d'un serveur DHCP.

Je n'utilise pas DHCPv6 car il peut être géré par radvd et zeroconf. radvd peut être configuré pour fournir des serveurs de noms et peut publier des serveurs à partir de /etc/resolv.conf. De nouvelles versions de radvd ont également implémenté la distribution de listes de recherche.

J'ai configuré avahi-daemon pour distribuer des services de noms et des serveurs aux clients. Vous aurez besoin que les clients puissent faire la découverte des services. Je n'ai pas fait beaucoup de tests de découverte de service car j'exécute un réseau double pile sur toute la ligne.

BillThor
la source
Même si j'utilise le serveur DHCPv6 ou radvd, je dois écrire des scripts pour construire dynamiquement dhcpd6.conf ou radvd.conf en fonction des informations (préfixe, etc.) du serveur DHCPv6. Mais lorsque la reconfiguration DHCPv6 se produit, comment annoncer des informations nouvelles et obsolètes aux hôtes côté LAN? Si je crée dynamiquement dhcpd6.conf ou radvd.conf uniquement sur la base des nouvelles informations du serveur DHCPv6, radvd annonce automatiquement que le préfixe précédent est obsolète? Le serveur DHCPv6 annonce automatiquement que les serveurs de noms précédents sont obsolètes?
takaomag
radvd peut utiliser le préfixe :: / 64 pour obtenir automatiquement ses adresses depuis l'interface. Vous n'avez pas besoin de réécrire la configuration. Les serveurs DNS et la liste de recherche doivent être des données statiques. La configuration automatique IPv6 est conçue pour gérer la migration des adresses. Je ne sais pas dans quelle mesure votre FAI prend en charge la transition. Je n'ai pas regardé DHCPv6.
BillThor