munin plugin to monitor dns response times

A munin plugin that allows you to monitor the response time of any DNS that allows you to recurse.

dnsresponse_ — it’s a poor man’s smokeping DNS probe :)
(wordpress.com does not allow arbitrary file uploads, so grab it from munin-exhange)

To install it, place it in /usr/share/munin/plugins/ and run «munin-node-configure –shell«.

By default it graphs the Average, Median and StdDev of 20 DNS queries.

sample dnsresponse_ graph
sample dnsresponse_ graph

Resolvers vs. Authoritative DNS

Γιατί στην Ελλάδα (σχεδόν) όλοι πιστεύουν ότι οι DNS που πρέπει να έχουν στη σύνδεσή τους είναι αυτοί που έχει δηλώσει ο ISP τους για το κύριο domain name του; Είναι ένας μύθος που δεν ισχύει..

Μάλλον γιατί μέχρι τώρα, όλοι οι ISP έδιναν στους πελάτες τους τους ίδιους Name Servers και για τη σύνδεσή από το σπίτι, και για τα domains που έκαναν Register..

Κάποιοι έχουν έναν physical server με δύο διαφορετικές virtual IPs από το ίδιο LAN..

Περισσότεροι έχουν δύο physical servers στο ίδιο Data Center..

Λιγότεροι έχουν δύο ή παραπάνω physical servers σε διαφορετικά Data Centers σε διαφορετικές πόλεις..

Συνήθως λοιπόν, οι ISPs, αφού έμπαιναν στον «κόπο» να φτιάξουν και να διαχειριστούν αυτή την υποδομή από DNS Servers, τους χρησιμοποιούσαν και για τους access πελάτες (pstn, isdn, adsl) αλλά και για τα domain hostings.. Και το recursive DNS ήταν ανοιχτό για όλους, από όπου κι αν ερχόταν το request..

Ομως σιγά σιγά τα πράγματα αλλάζουν.. Εμφανίζονται Amplification Attacks.. Τα νούμερα (domains + χρήστες) μεγαλώνουν.. Η κίνηση εκτοξεύεται (από χιλιάδες queries σε εκατόμύρια)..

Για να αντιμετωπίσουν τα attacks σιγά σιγά οι ISPs αρχίζουν και κλείνουν το recursion στους μη-πελάτες τους (το αντίστοιχο του open-relay για το email).. Τώρα φτάσαμε στο σημείο που ούτε καν τα αποτελέσματα της cache που έχει ένας DNS δε σου δίνει, εκτός κι αν είσαι πελάτης..

Μετά αρχίζουν να πουλάνε πακέτα web hosting με control panels (plesk, cpanel κλπ).. Και σαν μέρος του control panel, περιέχεται και το DNS του Domain.. Αντί να κάνουν Integration του control panel με τους DNS servers που ήδη έχουν, δίνουν τον DNS του control panel.. Κι έτσι αποκτάνε και άλλο set από DNS servers, ειδικά για domains που γίνονται hosting στο control panel..

Μετά εμφανίζεται το opendns.com. Κάποιοι χρήστες αρχίζουν να αλλάζουν από μόνοι τους τους DNS Servers στη σύνδεσή τους και αγνοούν αυτούς που τους δίνει ο ISP..

Και τέλος, εμφανίζονται ISPs που, επιτέλους, αρχίζουν να δίνουν άλλους DNS στους access πελάτες τους από αυτούς που χρησιμοποιούν για τα domains τους (The importance of separating DNS caches from DNS Servers)..

2011 Update: Resolvers Vs. Authoritative DNS, Part 2

DNS attack avenue-escorts.co.uk

Last night (06 Mar 2009, 18:00 – 21:00 GMT) all our DNS servers were hit by thoudands of queries per minute like these..

client xx.1.178.144#11332: query: XtrkjA.avenue-escorts.co.uk IN NS +
client xx.1.34.160#1024: query: PupxpWqaCy.avenue-escorts.co.uk IN NS +
client xx.92.137.28#32768: query: GWgtomQeLZSDdris.avenue-escorts.co.uk IN NS +
client xx.1.83.145#1025: query: nBgoxan.avenue-escorts.co.uk IN NS +

All queries were from legit clients, that were allowed recursion (so now we know, the number of zombies lurking in our network is quite large)..

I had to declare the authoritative NSs for avenue-escorts.co.uk as bogus in all our NSs, thus stopping all outgoing queries to them (ref). The queries from clients kept hitting our NSs, but since no recursion was performed the load dropped.. Queries stopped about an hour after the fix.

Anyone else seen something similar on their NSs ?

dnsgraph_day

dnsgraph_day_rr

URGENT! Upgrade your DNS

Ξεκίνησα σήμερα διαβάζοντας το παρακάτω επείγον announcement του BIND ..

  URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT
  URGENT                                                                URGENT
  URGENT    THIS ANNOUNCEMENT REFERS TO AN ISSUE THAT MAY AFFECT THE    URGENT
  URGENT           INTEGRITY OF YOUR RECURSIVE DNS SERVICE              URGENT
  URGENT                                                                URGENT
  URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT URGENT

    Thanks to recent work by Dan Kaminsky of IOActive, ISC has become
    aware of a potential attack exploiting weaknesses in the DNS protocol
    itself to enable the poisoning of caching recurive resolvers with
    spoofed data.

    For additional information about this vulnerability, see US-CERT
    (CERT VU#800113 DNS Cache Poisoning Issue).  For more details on
    changes to BIND, see http://www.isc.org/sw/bind/forgery-resilience.php.

    IF YOU ARE RUNNING BIND AS A CACHING RESOLVER YOU NEED TO TAKE ACTION.

Προφανώς δεν είναι μόνο στο bind, αλλά και σε πολλά άλλα DNS implementations (Microsoft, Cisco, etc), aφού το πρόβλημα είναι «in the DNS protocol itself»..

Περισσότερες πληροφορίες για vulnerable systems στο CERT VU#800113 και για το συγκεκριμένο θέμα μετά το Black Hat Conference στις 7 Αυγούστου.

Προσοχή γιατί μπορεί να χρειαστεί αλλαγή στο firewall που έχετε αλλά και στο configuration (βλέπε debian security advisory dsa-1603).

2008 OARC DNS Operations Workshop

Unbound, DSC, Heavy Hitters, Large-Scale DNS Caching Servers, Privacy issues in DNS.. Πολύ ενδιαφέρουσες αυτές και γενικά όλες οι παρουσιάσεις από το 2008 OARC DNS Operations Workshop ..

Μεταξύ άλλων στην παρουσίαση NSF DNSPERF Project Report (Brian Reid, ISC) εμφανίζουν νέα test data από το DNS Performance Testing Project πού είχαμε δει παλιότερα, όπου το Linux-Fedora αυτή τη φορά έχει περισσότερα queries/sec από το FreeBSD 7-RC1 (ρίχνω λάδι στη φωτιά ;))

DNS Performance Testing Project

Σήμερα ένας φίλος sysadmin μου είπε για το DNS Performance Testing Project του ISC. Λέει ότι είναι ακόμα work in progress, αλλά έχει πραγματικά ενδιαφέρον από πολλές απόψεις..

Κατ’ αρχήν μας δείχνει τη μεθοδολογία που χρησιμοποίησε το ISC για να διαλέξει το Server Hardware που θα τρέξει το BIND.

Our experience as authors of the BIND software is that the performance of BIND is limited primarily by the processor and memory performance of the server computer. […] We have identified several candidate server computer configurations based on price and availability and have measured the memory performance (bandwidth, latency, and cache performance) of each.

Και μας δίνει μια σειρά από software tools για να μετρήσουμε κι εμείς στα δικά μας συστήματα ακριβώς αυτά.. memtest86 για memory και cache transfer rates, Calibrator, lmbench και STREAM για (cache-) memory latency και TLB performance.

Μετά, για το Operating System Evaluation, κάνουν capture με tcpdump την κίνηση του F-root και με τη βοήθεια του queryperf το στέλνουν στο BIND που τρέχει σε διάφορα λειτουργικά..

Αφήνω το προφανές σχεδόν ασχολίαστο, γιατί δε θέλω να ξεκινήσουμε Holly War.. Δηλαδή ότι το BIND που έτρεξε σε linux kernel 2.6.x είχε περισσότερα queries/sec απ’ότι σε FreeBSD.. Είναι προφανές ότι δεν το περίμεναν και οι ίδιοι, γιατί λένε ότι θα επαναλάβουν τις μετρήσεις όταν βγει το FreeBSD 7.1.

Σημαντικές παρατηρήσεις είναι ότι

  • Δεν έχει επίπτωση στο server performance το filesize του zone file (αρκεί να είναι μικρότερο από το μέγεθος της physical RAM).
  • Επίσης δεν υπάρχει διαφορά σε performance αν το zone file είναι signed ή unsigned (βλέπε DNSSEC), εκτός του ότι στη signed υπάρχει περισσότερο συνολικό network traffic.
  • Σ’έναν authoritative name server που θέλουμε top performance βάζουμε και τα options
    • check-sibling no;
    • fetch-glue no;
    • recursion no;
    • acache-enable yes;
    • max-acache-size 128M;

    (Για εξηγήσεις βλέπε στο BIND 9.4 Administrator Reference Manual)