No final, acabei simplificando um pouco minha configuração para atuar nas mudanças de endereços IP.
O NAT da Internet foi alterado para MASQUERADE, então não tenho que agir sobre isso; as regras iptables
deixaram o dhclient-exit-hooks.d
, instalando iptables-persistent
.
iptables -A POSTROUTING -o eth0.101 ! -p esp -j MASQUERADE
apt-get install iptables-persistent
iptables-save > /etc/iptables/rules.v4
O BIND parou de falhar na inicialização porque reconhece as dependências no iptables que sobem agora.
Eu também não reinicio o BIND agora. Além disso, o BIND agora depende de dnscrypt-proxy
crypt para deixar a Internet, portanto, ele é vinculado apenas às interfaces internas (que não mudam).
Se a variável exit_status
for mencionada na documentação dhclient-exit-hooks.d
, aparentemente haverá alguma confusão e será usada apenas para passar o status de saída para o DHCP e não para obtê-lo.
O script final é:
#!/bin/bash
PATH=$PATH:/usr/bin
IP='ip addr show eth0.101 | grep inet | awk ' { print $2 } ' | cut -f1 -d "/"'
OLDIP='awk ' /xxxx.mooo.com/ { print $1 } ' /etc/hosts'
# if reboot or IP changed
if [ $reason = "REBOOT" ] || [ $reason = "BOUND" ] || [ $IP != $OLDIP ]
then
# put it in hosts
sed -i "s/^[0-9\.]* xxxx.mooo.com/$IP xxxx.mooo.com/g" /etc/hosts
timeout 60 /etc/init.d/ipsec restart
timeout 60 /etc/init.d/asterisk restart
# update FreeDNS service
timeout 60 /usr/bin/wget -O - http://freedns.afraid.org/dynamic/update.php?XXXX > /dev/null
fi
Quanto à ausência de exit_status
, estas são as vars apresentadas em dhclient-exit-hooks.d
no boot:
requested_broadcast_address=1
new_network_number=95.94.xx.0
new_ip_address=95.94.xx.xx
new_dhcp_message_type=5
pid=1100
new_time_offset=0
new_routers=95.94.xx.xx
new_expiry=1462482903
new_subnet_mask=255.255.240.0
interface=eth0.101
requested_time_offset=1
new_domain_name=netcabo.pt
reason=REBOOT
new_time_servers=212.113.176.129 212.113.176.65
requested_routers=1
PATH=/usr/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin
requested_subnet_mask=1
new_log_servers=212.113.188.209
new_dhcp_server_identifier=79.169.255.254
new_domain_name_servers=0.0.0.0 8.8.8.8
new_broadcast_address=95.94.xx.255
new_dhcp_renewal_time=7200
new_dhcp_rebinding_time=12600
PWD=/
new_next_server=0.0.0.0
new_dhcp_lease_time=14400