Le routeur de mon réseau distribue un préfixe IPv6 attribué par mon FAI. Ce préfixe est dynamique mais "assez collant".
J'aimerais que mes machines récupèrent automatiquement le préfixe annoncé dans les RA, mais le combinent avec une partie locale spécifiée par l'utilisateur plutôt que d'en générer une au hasard ou en fonction de l'adresse MAC. Y a-t-il un moyen facile de le faire?
Réponses:
Il y a deux façons de faire ça. L'un est le moyen le plus simple et l'autre le plus difficile.
Le moyen le plus simple consiste à exécuter un serveur DHCPv6 sur votre réseau et à attribuer vous-même des adresses d'hôte à chaque périphérique. Ou laissez le serveur choisir la partie hôte; les serveurs DHCPv6 que j'ai vus garderont la même partie hôte même si le préfixe change.
La méthode la plus difficile consiste à utiliser
ip token
pour définir des identificateurs d'interface à jeton. Ceci est décrit comme:La raison pour laquelle cela est difficile est que, bien que Linux comprenne cette fonctionnalité, aucune distribution Linux à ma connaissance ne comprend la prise en charge de la persistance d'une telle configuration et de son application au démarrage, comme elles le font pour les adresses manuelles ou configurées DHCP. Donc, cela ne fonctionnera probablement pas très bien pour vous, jusqu'à ce qu'une distribution le fasse.Notez qu'il est désormais possible de configurer les jetons IPv6 dans NetworkManager et systemd-networkd; les réponses plus récentes ont des instructions de configuration spécifiques.Enfin, si votre FAI modifie parfois votre préfixe, envisagez d'utiliser des adresses locales uniques au sein de votre réseau. De cette façon, tous vos appareils auront toujours une adresse qui ne changera jamais, avec laquelle ils peuvent se parler. Certains routeurs domestiques / SOHO prenant en charge IPv6 (comme OpenWrt) ont une option pour activer ULA sur l'ensemble du réseau domestique; s'il y a plusieurs routeurs dans la maison, cela doit être activé sur le routeur qui se connecte au FAI.
la source
Michael a fait un très bon résumé et la récente astuce de plugwash était la meilleure que j'ai pu trouver après avoir cherché pendant plusieurs heures pour une solution CentOS 7 / RHEL (également systemd et network manager). Après m'être habitué à nmcli (j'utilisais principalement ifcfg et ip) - j'ai pu l'appliquer avec succès.
Mais creuser plus profondément selon https://developer.gnome.org/NetworkManager/stable/settings-ipv6.html NetworkManager prend directement en charge les identificateurs d'interface à jeton IPv6 en tant que propriété (à partir de la version 1.4 août 2016 http://news.softpedia.com/ news / networkmanager-1-4-ajoute-support-for-setting-ipv6-tokenized-interface-identifiers-507601.shtml ).
Vous n'avez donc pas besoin de définir les paramètres IPv6 du gestionnaire de réseau pour les ignorer, mais vous devez définir les paramètres sur
qui écrira
IPV6_TOKEN=::2
dans / etc / sysconfig / network-scripts / ifcfg-eth0 pour survivre à un redémarrage. Pour appliquer immédiatement ce redémarrage de l'interface parla source
Merci à Michael d'avoir confirmé que Linux prend en charge la fonctionnalité et de pointer la commande de bas niveau. Cette réponse explique comment le faire fonctionner en pratique sur un bureau étendu Debian (avec systemd et network-manager).
Modifiez d'abord la connexion dans le gestionnaire de réseau et définissez les paramètres IPv6 à ignorer.
Créez maintenant un fichier /etc/NetworkManager/dispatcher.d/pre-up.d/iptoken. Le fichier doit appartenir à root, aux autorisations 755 et au contenu suivant.
Remplacez eth0 par le périphérique souhaité et :: 2 par le suffixe souhaité.
la source
Sous Linux, vous pouvez utiliser
systemd-network
.Créez simplement un
.network
fichier sous/etc/systemd/network/somename.network
:au lieu de
e*
faire correspondre toutes les interfaces commençant pare
, vous pouvez entrer le nom complet de l'interface. Cela active DHCP {v4, v6} et utilise::1
comme suffixe. Vous pouvez choisir n'importe quelle adresse IPv6, mais les 64 premiers bits doivent être définis sur zéro.Après cela, activez et démarrez le
systemd-networkd.service
.la source