Executar script na alteração do prefixo ipv6

3

Como posso executar um script ou programa sempre que meu prefixo IPv6 (de roteamento mundial) mudar?

Se não houver (atualmente) uma maneira fácil de fazer isso, um ponteiro para as chamadas de sistema Posix correspondentes seria totalmente aceitável para mim. Eu poderia codificar algum C eu então. Mas atualmente estou um pouco perdido com esse problema.

Plano de fundo: Meu ISP (contrato de consumidor) me fornece apenas um prefixo IPv6 de roteamento mundial com uma vida útil de cerca de um dia. Existem algumas boas razões para fazê-lo (tornar possíveis as transferências de rede), mas o meu ISP (em contraste com o meu antigo) simplesmente não reatribui o meu prefixo antigo a mim depois de expirado, mas me dá um completamente novo. Agora quero atualizar alguns DNS externos com meu novo prefixo quando isso acontecer.

    
por MBober 20.11.2014 / 09:11

2 respostas

2

Você poderia farejar pacotes SLAAC ou DHCP6 em seu MAC, por exemplo, fazer com que o iptables registre bytes específicos de SLAAC ou DHCP6 em syslog e execute um observador de logs. Não existe uma chamada posix para obter diretamente o endereço local, embora existam soluções alternativas . Para linux, este código de netlink deve permitir que você espere por uma mensagem de atualização do kernel e execute as etapas necessárias.

    
por 20.11.2014 / 09:32
0

aqui está a minha solução .... simples, mas funciona ... basta colocar isso ou algo assim em /etc/cron.hourly:

#!/bin/bash
#


ADDRSTORE=/var/local/lib/dyndns/myoldipv6address

MYV6='ip -6 address show scope global -deprecated | grep inet6 | cut -d/ -f1 | sed -e 's/ *inet6 //''

MYOLDV6='cat $ADDRSTORE'

if [ $MYV6 != $MYOLDV6 ]; then
  # do change-action here
  echo $MYV6 >$ADDRSTORE
fi
    
por 04.11.2017 / 11:06