Jak długo dnsmasq buforuje dns?


9

Przejrzałem stronę podręcznika i nie mogłem znaleźć, jak długo dnsmasq buforuje dns. jaka jest zasada buforowania i wygasania?

Mam problem polegający na tym, że żądanie wysłania do usługi zewnętrznej czasami zajmuje więcej niż 5 lub 10 sekund na wykonanie namelookup. Mogę zapisać ip usługi zewnętrznej na / etc / hosts, ale obawiam się zmiany ip. Zainstalowanie Dnsmasq usprawnia wyszukiwanie nazw, ale powolne wyszukiwanie nazw wciąż odbywa się z mniejszą częstotliwością.

Jednym z rozwiązań jest ustawienie prostego polecenia ping w zadaniu cron, ale najpierw muszę znaleźć czas wygaśnięcia.

dzięki.

AKTUALIZACJA

dodano wyjście kopania

; <<>> DiG 9.8.1-P1 <<>> api.mch.weixin.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45012
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;api.mch.weixin.qq.com.             IN      A

;; ANSWER SECTION:
api.mch.weixin.qq.com.      0       IN      A       140.207.69.102

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jul 17 19:24:36 2015
;; MSG SIZE  rcvd: 55

AKTUALIZACJA 2

poprzedni wynik wyjściowy zawiera TTL jako 0, co wprowadza w błąd. Opublikowałem kolejny wynik kopania.

; <<>> DiG 9.8.1-P1 <<>> api.mch.weixin.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60900
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;api.mch.weixin.qq.com.             IN      A

;; ANSWER SECTION:
api.mch.weixin.qq.com.      181     IN      CNAME   forward.qq.com.
forward.qq.com.             181     IN      A       101.226.90.149
forward.qq.com.             181     IN      A       101.226.129.200

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 21 12:01:54 2015
;; MSG SIZE  rcvd: 99

Odpowiedzi:


9

DNSmasq używa wartości TTL DNS do określania okresu buforowania. Możesz użyć tego digpolecenia, aby sprawdzić bieżące TTL twojego serwera DNS dla tej domeny.


Czy masz na myśli to, że dnsmasq buforuje tylko dns w okresie TTL? Zaktualizowałem moje pytanie o wynik kopania.
perlwle

1
Tak, do buforowania używany jest tylko okres TTL. Twoje TTL wynosi 0, więc DNSmasq zawsze wykona zapytanie do autorytatywnego serwera DNS.
Tero Kilkanen,

Jednak, jak podano w instrukcji, możesz użyć opcji --max-cache-ttl, aby wymusić niższe TTL dla wartości w pamięci podręcznej (nie testowałem tego osobiście).
sam_pan_mariusz,

@TeroKilkanen Query time: 0msecoznacza trafienie w pamięć podręczną do dnsmasq. ale jak długo dnsmasq będzie przechowywać rekord dns w pamięci podręcznej?
perlwle

@sam_pan_mariusz Myślę, że miałeś na myśli --max_ttlflagę? Wolę zawsze uzyskać właściwy adres IP, niż przegapić zmianę adresu IP usługi zewnętrznej.
perlwle

4

Opcją, którą musisz ustawić dla dnsmasq, jest --min-cache-ttlwartość w sekundach.

Zgodnie z danymi wyjściowymi, TTL wynosi 0, jeśli ustawisz, powiedzmy --min-cache-ttl=600, wtedy wartość TTL, która zostanie zwrócona przez dig, wyniesie 600. TTL dla api.mch.weixin.qq.comskąd jestem to 600, więc ustaw go na 600 sekund sam powinien być wystarczająco bezpieczny, aby uniknąć utraty jakichkolwiek zmian adresu IP. (Zgaduję, że znajdujesz się w Chinach.)

Spowoduje to, że wszystkie rekordy DNS będą uważane za ważne przez 10 minut.

Zobacz komunikat listy adresowej dnsmasq szczegółowo opisujący wprowadzenie tej funkcji.


Mam zamiar pingować co około 10 minut i mam nadzieję, że to naprawi opóźnienie wyszukiwania dns. Jak wspomniano w poprzednim komentarzu, używam starszej wersji, która nie ma tego ustawienia. Popraw mnie, jeśli się mylę. Jeśli jednak jest dostępny, ustawienie go na 600 będzie takie samo, jak w przypadku usługi zewnętrznej TTL. To nie ma znaczenia, prawda?
perlwle

1
@perlwle Nie, nie byłoby, zakładałem, że zawsze otrzymujesz wartość TTL równą zero, zwiększenie jej do 1200 pomoże. Sugerowałbym zajrzenie do DNSCrypt . Bez dalszych informacji na temat czasu wyszukiwania, szybkości połączenia i efektów działania stron trzecich nie mogę udzielić wyraźniejszej odpowiedzi. Jeśli potrzebujesz bardziej wydajnego bufora DNS / resolvera, poleciłbym podstawową część tego samouczka o Unbound, działa on doskonale na Ubuntu 12.04 ze standardowych repozytoriów. (Uwaga: Google DNS poprawnie obsługuje teraz DNSSEC.)
Phizes

1
Zwróć także uwagę na dnsmasq 'local-ttl' dla tych wpisów w pliku hosta
KCD
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.