3

Как я могу выполнить скрипт или программу всякий раз, когда мой префикс IPv6 (доступный по всему миру) меняется?

Если нет (в настоящее время) простого способа сделать это, указатель на соответствующие системные вызовы Posix был бы для меня вполне нормальным. Тогда я мог бы сам написать немного кода. Но в настоящее время я немного запутался в этом вопросе.

Предыстория: мой провайдер (потребительский контракт) дает мне только префикс IPv6 с возможностью маршрутизации по всему миру со сроком службы около дня. Есть несколько веских причин для этого (сделать возможным перемещение по сети), но мой провайдер (в отличие от моего старого) не просто переназначает мне мой старый префикс после истечения срока его службы, но дает мне совершенно новый. Теперь я хочу обновить некоторые внешние DNS с моим новым префиксом, когда это произойдет.

2 ответа2

2

Вы можете прослушивать пакеты SLAAC или DHCP6 на вашем MAC, например, чтобы iptables регистрировал определенные байты SLAAC или DHCP6 для системного журнала и запуска наблюдателя журнала. Для прямого получения локального адреса нет вызова posix, хотя существуют обходные пути. Для linux этот код netlink должен позволить вам дождаться сообщения обновления от ядра и выполнить все необходимые шаги, которые вам нужны.

0

вот мое решение .... просто, но работает ... просто поместите это или что-то вроде этого в /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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .