ubuntuusers.de

host und cache

Status: Ungelöst | Ubuntu-Version: Xubuntu 12.04 (Precise Pangolin)
Antworten |

glaskugel

Anmeldungsdatum:
8. Juli 2010

Beiträge: 3771

Ich frage per Bash-Script mit host die IP-Adresse eines Servers mit dyn. IP ab. Die korrekte IP wird aber erst nach Minuten angezeigt, anstatt wird die vorherige IP, vermutlich ein Cache, angezeigt. Wie erzwinge ich, dass der Cache ignoriert wird? Als 1. DNS-Server ist eine Fritzbox eingestellt.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14382

glaskugel schrieb:

... erst nach Minuten angezeigt, ...

Kannst Du die TTL für den dns-Eintrag, in deinem ddns-account konfigurieren?

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 3771

Kannst Du die TTL für den dns-Eintrag, in deinem ddns-account konfigurieren?

Keine Ahnung,

ddclient --help zeigt nichts diebzgl.

Ich habe mir auch schon überlegt, ob der DDNS-Anbieter vielleicht einige Zeit braucht, bis es aktuell ist. ddclient im Debug-Mode zeigt mir zwar, dass auf die neu IP-Adresse ein Update durchgeführt wurde, hiost aber nicht.

Ziel meines Scripts ist, dass ich ein Mail erhalte, wenn die IP-Adressen nicht aktuell sind. Meine IP-Adresse ändert sich manchmal 1 Woche nicht, dann kann es wieder mehrmals am Tag sein.

Ich könnte ein sleep im Script angeben, wobei ich mir noch nicht sicher bin, ob ich ddclient via cronjob im Script ausführen will.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14382

glaskugel schrieb:

Kannst Du die TTL für den dns-Eintrag, in deinem ddns-account konfigurieren?

Keine Ahnung,

ddclient --help zeigt nichts diebzgl.

Mit ddns-account meinte ich deinen ddns-Provider. Siehe z. B. auch DNS-Caching. Ich kann bei meinem ddns-Provider, z. B. folgende TTL (Sekunden) konfigurieren:

ttl (Integer)
Mögliche Werte:
60
300,
14400,
86400

glaskugel schrieb:

... dass auf die neu IP-Adresse ein Update durchgeführt wurde, hiost aber nicht.

Du solltest host, erst nach der TTL ausführen. sleep in deinem Script sollte richtig sein.

EDIT:

Das ist auch ein Problem, das manche Programmierer von Router-Firmware nicht verstanden haben. Der ddns-client im Router, fragt sofort nach dem update host (oder gleichwertig) ab, dann kommt vom Router eine Fehlermeldung und der user weiß nicht warum diese Fehlermeldung vom Router kommt.

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 3771

Jetzt frage ich mich, ob ich sleep berechnen kann.

host -t NS -v ubuntuusers.de
Trying "ubuntuusers.de"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41278
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ubuntuusers.de.			IN	NS

;; ANSWER SECTION:
ubuntuusers.de.		62836	IN	NS	dns2.noris.net.
ubuntuusers.de.		62836	IN	NS	dns3.noris.net.
ubuntuusers.de.		62836	IN	NS	dns1.noris.net.

Received 98 bytes from 192.168.178.1#53 in 1 ms
root@sv:~# dig +noauthority +noquestion +nostats ubuntuusers.de @dns2.noris.net.

So wie ich es verstehe sind die 62836 die Sekunden bis der Eintrag aktualisiert wird.

dig +noauthority +noquestion +nostats ubuntuusers.de @dns2.noris.net. 
; <<>> DiG 9.8.1-P1 <<>> +noauthority +noquestion +nostats ubuntuusers.de @dns2.noris.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42490
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; ANSWER SECTION:
ubuntuusers.de.		86400	IN	A	213.95.41.4

;; ADDITIONAL SECTION:
dns1.noris.net.		86400	IN	A	213.95.0.65
dns2.noris.net.		86400	IN	A	192.109.102.65
dns3.noris.net.		86400	IN	A	194.31.2.65

86400 sind wahrscheinlich die maximale TTL-Zeit in Sekunden.

Bei meinem dyn. Server habe ich bei gleichen Optionen mit host 85058 (folgende Abfrage sinkend) und mit dig 300. Das widerspricht meiner Interpretation. Es muss ja auch nicht exakt sein und nach 300 Sekunden hatte ich immer mit host die korrekten IPs. Aber vielleicht hat ja jemand eine Idee.

Antworten |