--- a/dns-autoslave Mon Dec 18 08:35:17 2006 +0000
+++ b/dns-autoslave Mon Dec 18 09:42:41 2006 +0000
@@ -129,8 +129,26 @@
}
}
+ # Das, was wir bekommen, ist eine SOA-Query mit dem Opcode "NOTIFY",
+ #
+ # Sollen wir jetzt annehmen, daß der NS in der SOA (MNAME) der Master ist,
+ # oder sollen wir annehmen, daß die IP, von der es kommt, die des Masters
+ # ist? Beides kann falsch sein.
+ #
+ # Bei "hidden" Masters ist der Master höchstwahrscheinlich der interne (und damit
+ # nicht erreichbare) Name des Masters, das würde uns also nichts nützen. Wir könnten
+ # natürlich jetzt eine komplizierte Logik versuchen:
+ # DNS-Anfrage an den, von dem das NOTIFY kam über die IP des MNAME,
+ # wenn die OK ist, dann ... aber woher wissen wir, daß die OK ist.
+ #
+ # Wir gehen also einfach mal davon aus, daß der Master derjenige ist,
+ # welcher uns das NOTIFY geschickt hat. Und haben in der Konfig-Datei ein
+ # Mapping, damit wir die Fälle, wo der Master eine falsche Absender-IP
+ # nutzt (HA-Cluster) auch ordentlich behandeln können.
+
return unless $dns->header->opcode eq "NS_NOTIFY_OP";
+ # Das, was dort kommt, hat eine QUESTION und eine ANSWER, in der ANSWER steckt
foreach my $q ($dns->question) {
next unless $q->qtype eq "SOA";