¿Cuál es el comportamiento exacto del comando: cambio de dirección IP?

12

He estado jugando con IPv6 y las vidas de las direcciones. Descubrí que el valid_lftatributo hará que una dirección v6 desaparezca automáticamente, si se usa correctamente. Para extender una dirección 'de por vida, lo haría

ip addr change 1:2:3:4::1/112 dev eth0 valid_lft 86000

El uso de ip addr changeno aparece en ninguna página de manual a la que tenga acceso (Debian, Ubuntu y en línea ) y tampoco en la documentación oficial . Lo encontré en un artículo que hace referencia a un correo electrónico de 2009 a la lista de correo ipv6-ops.

Por lo que pude determinar jugando, supongo que siempre se puede usar en ip addr changelugar de ip addr add, porque si no existe una dirección, ipse agregará una, solo si ip addr addse usó.

¿Es correcto, es decir, alguien puede explicar qué ip addr changehace exactamente y en qué se diferencia ip addr add?

Bananguin
fuente

Respuestas:

6

Cuando no está seguro de lo que hace algo, y la documentación no dice, acude a las fuentes, a saber, la línea 1588 :

if (matches(*argv, "change") == 0 ||
    strcmp(*argv, "chg") == 0)
    return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);

Entonces, ¿qué hace? Devuelve el resultado de ejecutar la ipaddr_modify()función definida en la línea 1379 con los argumentos RTM_NEWADDRy NLM_F_REPLACE.

Por lo que pude determinar jugando, supongo que siempre se puede usar en ip addr changelugar de ip addr add, porque si no existe una dirección, ipse agregará una, solo si ip addr addse usó.

¿Es correcto, es decir, alguien puede explicar qué ip addr changehace exactamente y en qué se diferencia ip addr add?

No, addcreará o ejecutará los argumentos dados (si se da alguno), mientras changeque buscará el argumento y lo reemplazará.

Por cierto, replaceparece ser un compromiso entre addy changeya que utiliza una mezcla de argumentos.

Braiam
fuente
¿Y cuál es el efecto de esas banderas? Porque en la línea de comando realmente no se muestran. Especialmente porque changefunciona como addsi la dirección para cambiar aún no existe. No pensé que tendría que profundizar en la fuente del kernel (porque allí es donde finalmente se pasan los indicadores), para descubrir qué hace una de las herramientas de línea de comandos más populares para la administración de redes. Esto no es los 90 ... :-) ¡Pero gracias de todos modos!
Bananguin