Esiste un parametro di avvio del kernel Linux per configurare un indirizzo IPv6?


16

So che esiste un parametro chiamato ipche consente di configurare gli indirizzi IPv4 sul kernel Linux tramite il caricatore di avvio. È simile al seguente:

ip=192.0.2.1::192.0.2.62:255.255.255.192::eth0:none

Sto cercando un parametro uguale per la configurazione IPv6. Non ho trovato nulla al riguardo nelle documentazioni del kernel.

Aggiornamento : A causa di molti di voi ha chiesto perché avrei bisogno di questo: l'idea di usare una configurazione del kernel è nata in relazione a questo problema. Sospetto che la normale configurazione dell'interfaccia di avvio non sia stata eseguita, poiché le interfacce sono già attive. La ragione potrebbe essere che sto usando un ambiente di pre-avvio con un server Dropbear SSH per consentirmi di sbloccare la mia partizione root crittografata. Gli indirizzi IP per questo ambiente sono configurati tramite GRUB con il ip=parametro. Non vi sono annunci DHCP o router disponibili su quel segmento Ethernet e poiché si tratta del segmento uplink fornito da una grande società di hosting, non c'è modo di cambiarlo.


In effetti, non ce n'è uno. Puoi abilitare l'autoconfigurazione IPv6, ma probabilmente non è quello che stai cercando. C'è un risultato specifico che stai cercando di ottenere (ovvero qual è il motivo per cui vuoi evitare la configurazione IPv6 nel processo di inizializzazione della macchina?) Il ip=parametro inizialmente era pensato per configurare lo stack IP prima che il kernel provasse a montare un filesystem di root NFS , ma sento che dovresti fare affidamento su qualcos'altro per ottenere lo stesso risultato con IPv6 (molto probabilmente, SLAAC).
pino42,

Conosco SLAAC. Ma devo impostarlo manualmente.
aef

3
La mia sensazione è che dall'introduzione della funzione "early userspace" (initramfs sia incorporato nel kernel o come file separato come initrd tradizionale), sei incoraggiato a fare cose come la configurazione di indirizzi IP lì invece che con uno speciale one-off parametri della riga di comando. Questo è probabilmente il motivo per cui esiste un parametro della riga di comando storico per IPv4 ma nessuno è stato aggiunto per IPv6.
Celada,

A che ora nel processo di avvio è necessario che sia impostato?
pino42,

È estremamente improbabile che tu abbia bisogno di questo. Cosa stai cercando di realizzare esattamente ?
Michael Hampton

Risposte:


7

Siamo spiacenti, ma se lo desideri, dovrai crearlo tu stesso o, più probabilmente, riutilizzare l'implementazione di qualcun altro.

L' ip=opzione della riga di comando che hai utilizzato fa effettivamente parte del codice di avvio del kernel per montare un filesystem di root NFS . Non è mai stato esteso per IPv6 e non esiste alcun parametro di avvio del kernel per la configurazione di IPv6 al momento dell'avvio.

Detto questo, alcune distribuzioni Linux come Red Hat hanno implementato il proprio ipv6=parametro di avvio per i loro supporti di installazione. Potresti essere in grado di riutilizzare questo codice nei tuoi initramfs personalizzati.


3

Secondo Fedora, il parametro ip = può essere usato con indirizzi IPv4 o IPv6. Gli indirizzi IPv6 devono essere racchiusi tra parentesi quadre. Se hai bisogno di entrambi, puoi usare più opzioni ip = sulla riga del kernel come in:

... ip = [2001: db8 :: dead: beef] :: [2001: db8 :: cafe: babe]: 64 :: eth0: none ip = 192.0.2.5 :: 192.0.2.1: 255.255.255.0 :: eth0: nessuno ...


Questa risposta è in contraddizione con la risposta accettata. Ciò può essere dovuto al fatto che la risposta accettata è obsoleta. Per rimuovere qualsiasi dubbio su quale risposta sia corretta, sarebbe una buona idea includere un link alla fonte di queste informazioni.
Kasperd,

1
Questa è probabilmente un'evoluzione della cosa implementata da RedHat, menzionata nella risposta di Michael Hampton. L'ho provato su Debian Jessie e non ha funzionato. Sto ancora cercando un modo Linux generico per farlo.
AEF

2

Tutti i parametri di avvio sono disponibili tramite / proc / cmdline dopo l'avvio. Quindi, puoi semplicemente impostare tutte le opzioni necessarie tramite il hook mkinitcpio personalizzato, che analizzerebbe cmdline nella ricerca di parametri specifici. Puoi usare ipv6 = come ip = one.


Si. Potrei costruirlo da solo, ma non era quello che cercavo. Ancora grazie per l'idea.
aef
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.