Ahoj Ondro, se zajmem jsem si precetl vycuc z tve prednasky. Zaujala mne informace ohledne minimalni cache DNS dotazu v Linuxu - mel jsem dojem, ze v libc zadna cache dotazu neni a tudiz skutecne kazdy dotaz se pta znovu.
Ano, taky si myslím, že v glibc žádná cache není. Ale kód jsem nezkoumal.
Za dalsi, tusis proc vyvojari libc nechcou snizit hodnotu timeoutu/retry na DNS servery? Zvykl jsem si na serverech i uz i na ntb provozovat volbu "options timeout:1 attempts:1 rotate" v /etc/resolv.conf, coz situaci dost vyrazne zlepsuje. Jen pozor na pomale pripojeni v hotelech :) Napada te s tim nejaky problem?
Problém je, že jedna sekunda je hooodně krátký timeout. Rekurzivní dotaz na doménu hostovanou v zahraničí, delegovanou přes 3 úrovně (což je třeba pro reverzní adresy poměrně běžné) a s několika nefunkčními autoritativními servery zabere klidně 3-4 sekundy, při DNSSEC validaci ještě o něco víc. Takže se sice systém přestane zasekávat při výpadku DNS serveru, ale zároveň vzroste počet neresolvnutých adres, na což většina aplikací reaguje tak, že skončí na fatalní chybu. Někde to může vadit míň než zablokování celého systému, ale asi se nedá obecně říct, že by to bylo lepší
Jinak dalsi past je, ze libc bere jen max. 3 zaznamy z /etc/resolv.conf, tj. psat tam cokoliv navic je k nicemu :)
Ano, přesně tak.