DNS und TTL

Ich kann ja verstehen, dass Google und auch OpenDNS mit ihren öffentlich zugänglichen Resolvern sich nicht so ganz an die Regeln halten (siehe unten). Sie behaupten zwar das Gegenteil:

Does Google Public DNS comply with the DNS standards set forth by the IETF?
Yes.

Aber so ganz stimmen tut das meines Erachtens nicht. Ich musste einen Dienst von einem Server auf einen anderen umziehen. So bin ich vorgegangen:

  1. Am Tag vorher TTL auf 300 Sekunden (5 Minuten) für den A record heruntersetzen und Seriennummer aktualisieren
  2. Am Tag der Umschaltung auf den Webservern (um die geht es hier) eine Baustellenseite einrichten
  3. Den DNS record umstellen, Zone neu laden und auch auf dem secondary einen Zonenrefresh anstossen
  4. Prüfen, dass die beiden autoritativen DNS Server richtig reagieren
  5. warten, dass 8.8.8.8 endlich auch die neuen Daten liefert

Dummerweise hatte ich vergessen, noch einen Hostnamen für den alten Server einzurichten, also alt.meine-domain.tld, damit ich dort noch Zugriff auf die Seite habe. Also:

  1. DNS Eintrag für A record alt eintragen

Mein SOA sieht so aus:

;; ANSWER SECTION:

meine-domain.tld. 86400 IN SOA adns1.eu-rack.com. ns.eu-rack.co.il. 2016081801 28800 7200 604800 86400

Der A record für www so:

;; ANSWER SECTION:

www.meine-domain.tld. 300 IN A 11.12.13.14

Passt also. Aber: 8.8.8.8 macht aus den 300 Sekunden eine Zufallszahl kleiner 300. Und sowohl der neue A record Eintrag für alt. und der veränderte A record für www. wurden erst nach über vier Stunden aktiv! Dabei habe ich auf der von Google bereitgestellten URL den Cache „geflushed“, wie sie es nennen: https://developers.google.com/speed/public-dns/cache

Vier Stunden passen mit keinem der Zeiten in meinem SOA zusammen. Dort gibt es 24h, 2h und noch andere, aber keine 4h. Alles ziemlich doof. Der Grund ist wohl, dass sie damit effektiv DNS tunneling und DNS DDoS Angriffe vereiteln. Aber dass es mir so das Leben zur Hölle macht, ist doch auch nicht wirklich cool.

iptables auf dem alten Server hat mir dann den Arsch gerettet. Alle Anfragen auf die IP werden weiter geleitet. Das ging aber nur, weil ich eine eigene IP für diese Webseite hatte und keine anderen Vhost darüber liefen:

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d [OLD_IP] -p tcp --dport 80 -j DNAT --to-destination [NEW_IP]:80
iptables -t nat -A PREROUTING -d [OLD_IP] -p tcp --dport 443 -j DNAT --to-destination [NEW_IP]:443
iptables -t nat -A POSTROUTING -j MASQUERADE

Als Google dann sich endlich erbarmt hat, habe ich sie wieder gelöscht mit

iptables -t nat --flush

Den Eintrag für alt. konnte ich natürlich in der Zeit vergessen.

Gibt es eine Möglichkeit, dafür zu sorgen, dass das beim nächsten Umzug nicht wieder passiert? Wie bekomme ich Google und OpenDNS dazu, sich so zu verhalten, wie es sich gehört?

DNS und TTL

Grafische Oberfläche auf CentOS

Das CentOS Installationsmedium mit allen Paketen für die grafische Oberfläche ist zu groß für einen 4GB USB Stick. Daher installiere ich meist nur die Minimal-Installation. Um danach doch noch klickibunti machen zu können, muss man die Pakete nachinstallieren. Das geht so:

yum -y groups install "GNOME Desktop"
yum -y update

Dann muss man noch dafür sorgen, dass das System auch in den grafischen Modus bootet:

sudo systemctl set-default graphical.target
Grafische Oberfläche auf CentOS

Frage: MAC Tabelle in Linux?

cisco_3548xl_mac_after

Wo ist die Tabelle mit allen MAC Adressen, die in letzter Zeit mit meiner Linux-Kiste kommuniziert haben?

Es geht nicht um die arp Tabelle. Die bekomme ich mit

arp

oder dem neuen Befehl

ip neigh show

heraus. Es geht um das, was auf einer Cisco der Befehl

show mac-address-table

auswirft. Etwa, wenn ich einen transparenten Proxy baue und wissen will, welche MAC hinter welchem Interface ist oder wenn ich einfach nur sehen will, welche MAC-Adressen ohne IP was von mir gewollt haben könnten.

Ich habe mich im /proc totgesucht, das ethtool befragt, Tante Google gequält, Kollegen ausgequetscht und es hat alles nichts gebracht. Wer hat eine Idee?

Frage: MAC Tabelle in Linux?

bye bye, netstat

Mit netstat kann man sehen, welche Verbindungen gerade aktiv sind und auf welchen Ports ein Prozess horcht.

Aber netstat ist langsam. Ich habe einen Server, auf dem einige 10k TCP Verbindungen offen sind und der trotz fantastischer CPU und RAM Ausstattung geschlagene 2 Minuten braucht, um netstat auszuführen (mit -n, also ohne Namensauflösung!).

Deutlich schneller, nämlich unter einer Sekunde, schafft das der Nachfolger ss, was wohl eine Abkürzung von socket stat oder so ähnlich sein soll. Die manpage sagt nur „another utility to investigate sockets“.

Das Gute ist, es versteht alle Optionen von netstat. Wer also historisch bedingte Schwierigkeiten hat, ss zu tippen oder bloss ein Gewohnheitstier ist, macht sich einfach ein alias in der .bashrc:

alias netstat=ss
bye bye, netstat

find nur eins

Ich musste in einem Ordner alle Dateien durchsuchen nach einem String, interessierte mich aber nur dafür, ob es überhaupt eine Datei gibt, die diesen String hat. Leider waren es zu viele Dateien für ein fgrep *, also musste ich mit find und exec arbeiten. Aber da find eine Schleife durch alle gefundenen Dateien macht, muss man es irgendwie nach dem ersten Treffer abwürgen. So gehts:

find . -type f -exec bash -c 'fgrep -lv <string> {} && kill $PPID ' \;
find nur eins