В конце концов, я немного упростил свою настройку, чтобы действовать при изменении IP-адресов.
Internet NAT был изменен на MASQUERADE, поэтому мне не нужно его использовать; правила iptables
оставили dhclient-exit-hooks.d
, установив iptables-persistent
.
iptables -A POSTROUTING -o eth0.101 ! -p esp -j MASQUERADE
apt-get install iptables-persistent
iptables-save > /etc/iptables/rules.v4
BIND перестал давать сбой при загрузке, потому что теперь он распознает зависимости от iptables.
Я тоже сейчас не перезапускаю BIND. Более того, BIND теперь зависит от крипты dnscrypt-proxy
для передачи в Интернет, поэтому он привязан только к внутренним интерфейсам (которые не меняются).
В то время как переменная exit_status
упоминается в документации dhclient-exit-hooks.d
, очевидно, есть некоторая путаница, и она используется только для передачи статуса выхода в DHCP, и не получить.
Итак, окончательный сценарий:
#!/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
Что касается отсутствия exit_status
, это переменные, представленные в dhclient-exit-hooks.d
при загрузке:
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
Метод 1 Я обнаружил, что, поскольку Systemd был реализован на рабочем столе * buntu, он разблокирует все дополнительные разделы LUKS , если
Это не работает для меня в Ubuntu Server 16.04
Способ 2 Используя приложение gnome-disk-utility (GUI)...
Метод 3Использование keyutils.
Я не проверял это. Из https://www.redpill-linpro.com/techblog/2016/08/12/btrfs-and-encryption.html
~# apt-get install keyutils
и добавьте параметр keyscript=decrypt_keyctl в оба зашифрованных тома, перечисленных в /etc/crypttab.~# update-initramfs -u -k все
чтобы обновить ваши initramfs, чтобы включить keyutils.