Debian 7 come vengono impostati gli indirizzi locali dei collegamenti IPv6?


12

Sembra che quando dhclient viene eseguito su eth0 ottengo un indirizzo IPv4 dal server DHCP e un ambito: Link Indirizzo IPv6 collegato a eth0:

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

Ma da dhclient-script non riesco a vedere come viene aggiunto quell'indirizzo. Su un'altra interfaccia con un indirizzo IP statico, vorrei aggiungere un indirizzo IPv6 locale di collegamento e mi chiedevo se esistesse un comando generico per farlo senza conoscere il mac.

Modifica:
sembra che il kernel assegni l'indirizzo locale del link quando si fa "ip link set dev ethX up" o "ifconfig ethX up". Tuttavia, nel mio caso avevo un cavo collegato all'interfaccia che era DHCP e nessun cavo collegato all'interfaccia che stavo installando staticamente. Non riesco a verificare fino a lunedì, ma suppongo che il kernel non assegni indirizzi locali di collegamento all'interfaccia se non ci sono collegamenti.


2
Nessuno dei due ha nulla a che fare con l'altro.
Michael Hampton,

2
Lo capisco. Eppure, come risultato dell'esecuzione di dhclient, si ottiene un indirizzo IPv6LL, ma quando si imposta un indirizzo IPv4 statico non si ottiene. Quindi qualche effetto collaterale di un comando eseguito da dhclient lo imposta ..
Aaron,

1
No, non si ottiene un indirizzo link-local IPv6 dall'esecuzione di dhclient.
Michael Hampton,

Risposte:


7

Gli indirizzi locali di collegamento sono derivati ​​dall'indirizzo MAC del dispositivo. Vengono generati automaticamente come parte per far apparire l'interfaccia. La configurazione automatica include un processo di rilevamento per garantire che l'indirizzo sia univoco sulla rete.

Un processo simile viene utilizzato per configurare automaticamente gli indirizzi instradabili quando è disponibile un annuncio router. Questi indirizzi possono essere rigenerati periodicamente per garantire la privacy.

RFC 4862 specifica i processi da seguire.


1
"Sono generati automaticamente come parte del potenziamento dell'interfaccia". Bene, questo è quello che sto cercando, chi lo sta generando automaticamente? Non viene generato automaticamente quando si assegna un indirizzo IPv4 statico, ma quando si esegue dhclient. Quindi dhclient sta implementando RFC 4862 o è un effetto collaterale di alcuni comandi nello script dhclient? Come posso replicarlo su un'interfaccia statica senza scrivere la mia implementazione di RFC 4862?
Aaron,

auto-generato dal kernel, a quanto pare, vedi modifica sopra.
Aaron,

6

Trovato! Questo comando non è abbastanza:

ifconfig eth0 up

Invece devo fare:

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

Solo quest'ultimo ripristina l'indirizzo locale del collegamento IPv6 su eth0.

In altre parole, la mia distro sembra avere un codice nascosto da qualche parte che cambia dinamicamente net.ipv6.conf.eth0.disable_ipv6ogni volta che viene chiesto di portare la rete su o giù. Il tuo chilometraggio può variare.

Sono arrivato in fondo a questo grazie a un mero:

sysctl -a | grep ipv6

A proposito, non riesco a capire perché la mia distribuzione stia disabilitando disable_ipv6: una volta che il link viene disattivato, fa la differenza.
MarcH,

Questo si applica perfettamente a Ubuntu 16.04. Grazie.
Cbhihe,
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.