¿Hay un parámetro de arranque del kernel de Linux para configurar una dirección IPv6?

16

Sé que hay un parámetro llamado ipque le permite configurar las direcciones IPv4 en el kernel de Linux a través del cargador de arranque. Eso se parece a lo siguiente:

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

Estoy buscando un parámetro igual para la configuración de IPv6. No pude encontrar nada sobre esto en las documentaciones del núcleo.

Actualización : debido a que muchos de ustedes preguntaron por qué necesitaría esto: la idea de usar una configuración de kernel surgió relacionada con este problema. Sospecho que la configuración normal de la interfaz de arranque no se ha realizado porque las interfaces ya están activas. La razón de esto podría ser que estoy usando un entorno previo al arranque con un servidor Dropbear SSH para permitirme desbloquear mi partición raíz encriptada. Las direcciones IP para este entorno se configuran a través de GRUB con el ip=parámetro No hay ningún anuncio de enrutador o DHCP disponible en ese segmento de Ethernet y, dado que este es el segmento de enlace ascendente proporcionado por una gran empresa de alojamiento, no hay forma de cambiar ese hecho.

aef
fuente
De hecho, no hay uno. Puede habilitar la configuración automática de IPv6, pero eso probablemente no sea lo que está buscando. ¿Hay un resultado específico que está tratando de lograr (es decir, cuál es la razón por la que desea evitar la configuración de IPv6 en el proceso de inicialización de la máquina?) El ip=parámetro estaba destinado inicialmente a configurar la pila de IP antes de que el núcleo intente montar un sistema de archivos raíz NFS , pero creo que debe confiar en otra cosa para lograr el mismo resultado con IPv6 (muy probablemente, SLAAC).
pino42
Sé sobre SLAAC. Pero necesito configurarlo manualmente.
aef
3
Creo que desde la introducción de la función de "espacio de usuario temprano" (initramfs incrustado en el núcleo o como un archivo separado como initrd tradicional), se le recomienda que haga cosas como configurar las direcciones IP allí en lugar de hacerlo con una única excepción. parámetros de línea de comando. Esa es probablemente la razón por la cual hay un parámetro histórico de línea de comando para IPv4 pero no se agregó ninguno para IPv6.
Celada
¿En qué momento del proceso de arranque necesita configurarlo?
pino42
Es extremadamente improbable que necesites esto. ¿Qué es exactamente lo que estás tratando de lograr?
Michael Hampton

Respuestas:

7

Lo sentimos, pero si quieres esto, tendrás que construirlo tú mismo o, más probablemente, reutilizar la implementación de otra persona.

La ip=opción de línea de comando que ha estado utilizando en realidad es parte del código de arranque del núcleo para montar un sistema de archivos raíz NFS . Nunca se ha extendido para IPv6, y no hay un parámetro de arranque del núcleo para configurar IPv6 en el momento del arranque.

Dicho esto, algunas distribuciones de Linux como Red Hat han implementado sus propios ipv6=parámetros de arranque para sus medios de instalación. Es posible que pueda reutilizar este código en sus initramfs personalizados.

Michael Hampton
fuente
3

Según Fedora, el parámetro ip = se puede usar con direcciones IPv4 o IPv6. Las direcciones IPv6 deben estar entre corchetes. Si necesita ambos, puede usar múltiples opciones ip = en la línea del núcleo como en:

... 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: ninguno ...

Owen
fuente
Esta respuesta está contradiciendo la respuesta aceptada. Esto puede deberse a que la respuesta aceptada está desactualizada. Para eliminar cualquier duda sobre qué respuesta es correcta, sería una buena idea incluir un enlace a la fuente de esta información.
kasperd
1
Esta es probablemente una evolución de lo que implementó RedHat, que se mencionó en la respuesta de Michael Hampton. Lo probé en Debian Jessie y no funcionó. Todavía estoy buscando una forma genérica de Linux para hacerlo.
aef
2

Todos los parámetros de arranque están disponibles a través de / proc / cmdline después del arranque. Por lo tanto, puede configurar todas las opciones necesarias a través del gancho personalizado mkinitcpio, que analizaría cmdline en busca de parámetros específicos. Puede usar ipv6 = like ip = one.

Alex Laskin
fuente
Si. Podría construirlo yo mismo, pero eso no era lo que estaba buscando. Aún así, gracias por la idea.
aef