¿Nuevo IPv6 bajo demanda usando extensión de privacidad?

¿Nuevo IPv6 bajo demanda usando extensión de privacidad?

Habilitar Privacy Extension( net.ipv6.conf.eth0.use_tempaddr=2en /etc/sysctl.conf) IPv6me proporciona una nueva dirección IP por un período de tiempo fijo. ¿Hay alguna manera de obtener una nueva IPv6 a pedido? es decir, ¿actualizar un nuevo IPv6 cuando sea necesario?

Respuesta1

La dirección temporal "activa" tiene propiedadestemporarioydinámicapero noobsoleto. Cuando está a punto de quedar obsoleto (es decir: supreferido_lftel valor cae a 0), el kernel agrega una nueva dirección temporal a la interfaz.

La dirección temporal actual de la interfaz será parte de los resultados que se muestran aquí:

ip -6 address show temporary dynamic

pero no forma parte de las direcciones más antiguas que aún son válidas pero están obsoletas y se muestran con:

ip -6 address show temporary deprecated

Sólo tiene que reducir su preferred_lftpropiedad a casi cero para activar la creación de la nueva dirección temporal. Por prueba y error, esto no funcionará si preferred_lftse establece por debajo de 3: la cuenta regresiva llega a 0 antes de activar la creación y luego ya no funcionará (pero aún se puede configurar nuevamente preferred_lften >= 3 más tarde para obtener el activador). No sé si hay alguna perilla en esta peculiaridad. 5 segundos parece un valor seguro, lo que significa que la nueva dirección aparecerá unos 2 o 3 segundos después.

Supongamos que el valor encontrado actual es 2001:db8::1/64 en la interfazeth0:

ip address change 2001:db8::1/64 dev eth0 preferred_lft 5

Tenga en cuenta que manipular esto elimina ladinámicapropiedad, lo que no habría sucedido de forma natural y posiblemente podría desencadenar la creación posterior de direcciones temporales adicionales antes de lo esperado.


Con ipla salida JSON de yjqes posible cierta capacidad de secuencias de comandos, esto es lo que vine con lo que vine para generar los comandos listos para canalizar a un shell para cambiar todas las direcciones temporales candidatas a la vez (generalmente requiere un sistema de múltiples hosts para obtener más de una, pero alterar esto tal vez podría crear varias). más tarde también). Se verifica que eltemporarioydinámicala dirección no esobsoletopara considerarlo candidato:

ip -6 -p -j address show temporary dynamic | jq -j '.[] |
    . as $i |
        .addr_info[] as $a |
            if $a.local == null // $a.deprecated == true then
                empty
            else
                "ip -6 address change ",
                $a.local, "/", $a.prefixlen,
                " dev ", $i.ifname,
                " preferred_lft 5\n"
            end'

que saldría de nuevo:

ip -6 address change 2001:db8::1/64 dev eth0 preferred_lft 5

También podría considerar reducirla valid_lftpara que la dirección ahora obsoleta desaparezca completamente más rápido.

información relacionada