Sonntags um 03:00 Uhr - das eigene Monitoring klingelt:
Internet gibt es nur noch so halb und alles alles an Maschinerie benimmt sich sehr sehr eigenartig.
5 Minuten später ist das Problem erkannt:
Der hauseigene mini-DNSrelay hat versagt und ich schwenke erst einmal voll um auf die Fritzbox bzw. Telekom. Doch was war passiert?
Aus unerklärlichen Gründen hatte sich beim Update der DNS-Rootserer-Einträge die /var/named/named.ca "aufgelöst" und somit konnten keine DNS-Rootserver mehr gefunden werden; was natürlich die entsprechenden Folgen hatte.
Hrm....
Also - ein neues Update-Script für die Ermittlung der DNS-Rootserver....! :-)
#!/bin/bash
#
# update-dns-roots
# Script zum Aktualisieren der DNS-Root-Adressen
#
# 2021-02-21 Oliver Lenz
#
# contab ->
# 0 10 1 * * /root/bin/update-dns-roots.bash >/dev/null 2>&1 || echo "Probleme in update-dns-roots.bash"
#
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
destination="69.58.179.79" # ftp.rs.internic.net
dt=$(date "+%Y%m%d%H%M%S")
filter="FILTER:$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
errorlevel=255
echo "Setup Firewall for ftp-Communication with ${destination}"
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -A OUTPUT -p tcp --sport 1024:65535 -d ${destination} --dport 20 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "${filter}"
iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 -d ${destination} --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT -m comment --comment "${filter}"
iptables -A OUTPUT -p tcp --sport 1024:65535 -d ${destination} --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "${filter}"
iptables -A INPUT -p tcp -s ${destination} --sport 20 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "${filter}"
iptables -A INPUT -p tcp -m tcp -m multiport -s ${destination} --sports 21,1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "${filter}"
echo "Getting ca-File from ${destination}"
wget -q --timeout=4 --tries=3 --waitretry=2 --user=ftp --password=ftp ftp://69.58.179.79/domain/db.cache -O /var/named/named.ca.tmp &>/dev/null
if [ "$?" == "0" ]; then
if cmp -s /var/named/named.ca /var/named/named.ca.tmp; then
echo "No changes."
rm -f /var/named/named.ca.tmp
else
cp -f /var/named/named.ca /var/named/named.ca.${dt}
mv -f /var/named/named.ca.tmp /var/named/named.ca
/usr/bin/systemctl restart named-chroot.service
echo "Update ca-file successfully."
fi
errorlevel=0
else
echo "Problems getting new ca-file via /root/bin/update-dns-roots.bash"
errorlevel=1
fi
echo "Remove Firewall-Rules for ftp-Communication with ${destination}."
while read rule; do
echo "${rule}" | xargs iptables
done< <( iptables-save | grep " --comment \"${filter}\"" | sed "s/-A /-D /g" )
exit ${errorlevel}
Update: 2022-01-16 Typo in der Dateiausleitung nach /dev/null in der wget-zeile.