Debian 7 comment les adresses locales des liaisons IPv6 sont-elles définies?

12

Il semble que lorsque dhclient s'exécute sur eth0, j'obtiens une adresse IPv4 du serveur DHCP et une adresse IPv6 Scope: Link attachée à eth0:

inet6 addr: fe80::a00:27ff:fed0:4d41/64 Scope:Link

Mais je ne vois pas de dhclient-script comment cette adresse est ajoutée. Sur une autre interface avec une adresse IP statique, je voudrais ajouter une adresse IPv6 locale de lien, et je me demandais s'il y avait une commande générique pour le faire sans connaître le mac.

Edit:
Il semble que le noyau attribue l'adresse locale du lien lorsque vous faites "ip link set dev ethX up" ou "ifconfig ethX up". Cependant, dans mon cas, j'avais un câble branché sur l'interface qui était DHCP'ing et aucun câble branché sur l'interface que je configurais statiquement. Je ne peux pas vérifier avant lundi mais je suppose que le noyau n'attribue pas d'adresse locale de lien à l'interface s'il n'y a pas de lien.

Aaron
la source
2
Aucun des deux n'a rien à voir avec l'autre.
Michael Hampton
2
Je comprends que. Et pourtant, à la suite de l'exécution de dhclient, vous obtenez une adresse IPv6LL, mais lorsque vous définissez une adresse IPv4 statique, vous ne le faites pas. Donc, un effet secondaire d'une commande exécutée par dhclient définit cela.
Aaron
1
Non, vous n'obtenez pas d'adresse de liaison locale IPv6 lors de l'exécution de dhclient.
Michael Hampton

Réponses:

7

Les adresses locales de liaison sont dérivées de l'adresse MAC de l'appareil. Ils sont générés automatiquement dans le cadre de la mise en place de l'interface. La configuration automatique comprend un processus de découverte pour garantir que l'adresse est unique sur le réseau.

Un processus similaire est utilisé pour configurer automatiquement les adresses routables lorsqu'une annonce de routeur est disponible. Ces adresses peuvent être régénérées périodiquement pour assurer la confidentialité.

La RFC 4862 spécifie les processus à suivre.

BillThor
la source
1
"Ils sont générés automatiquement dans le cadre de la mise en place de l'interface". C'est ce que je recherche, qui la génère automatiquement? Il n'est pas généré automatiquement lorsque vous attribuez une adresse IPv4 statique, mais c'est lorsque dhclient s'exécute. Est-ce que dhclient implémente RFC 4862, ou est-ce un effet secondaire d'une commande du script dhclient? Comment puis-je le répliquer sur une interface statique sans écrire ma propre implémentation de RFC 4862?
Aaron
généré automatiquement par le noyau, semble-t-il, voir l'édition ci-dessus.
Aaron
6

Je l'ai trouvé! Cette commande ne suffit pas:

ifconfig eth0 up

Au lieu de cela, je dois faire:

ifconfig eth0 up
sysctl -w net.ipv6.conf.eth0.disable_ipv6=0

Seul ce dernier restaure l'adresse locale de la liaison IPv6 sur eth0.

En d'autres termes, ma distribution semble avoir un code caché quelque part qui change dynamiquement à net.ipv6.conf.eth0.disable_ipv6chaque fois qu'il est demandé de faire monter ou descendre le réseau. Votre kilométrage peut varier.

Je suis allé au fond de cela grâce à un simple:

sysctl -a | grep ipv6
Mars
la source
Soit dit en passant, je ne peux pas comprendre pourquoi ma distribution retourne disable_ipv6: une fois le lien supprimé, cela fait une différence.
MarcH
Cela s'applique parfaitement à Ubuntu 16.04. Merci.
Cbhihe