Αυτή η ενότητα καλύπτει τρόπους που βοηθούν στην εύρεση της αιτίας όταν δημιουργούνται προβλήματα με το DNS και το BIND9.
Το πρώτο βήμα για να δοκιμάσετε το BIND9 είναι να προσθέσετε τη διεύθυνση IP του εξυπηρετητή ονομάτων σε έναν επιλυτή (hosts resolver). Ο Κύριος εξυπηρετητής ονομάτων θα πρέπει να είναι ρυθμισμένος όπως και ένας άλλος υπολογιστής για να ελέγχονται δύο φορές τα πράγματα. Απλά επεξεργαστείτε το /etc/resolv.conf και προσθέστε τα ακόλουθα:
nameserver 192.168.1.10 nameserver 192.168.1.11
|
|
|
Θα πρέπει επίσης να προσθέσετε την διεύθυνση IP του δευτερεύοντος εξυπηρετητή ονομάτων για την περίπτωση που ο πρωτεύων δεν είναι διαθέσιμος. |
Αν εγκαταστήσατε το πακέτο dnsutils, μπορείτε να ελέγξετε την εγκατάστασή σας χρησιμοποιώντας το εργαλείο αναζήτησης DNS dig:
-
Αφού εγκαταστήσετε το BIND9 χρησιμοποιήστε το dig με την διεπαφή loopback για να σιγουρευτείτε πως αναμένει για συνδέσεις στην θύρα 53. Σε ένα τερματικό πληκτρολογήστε:
dig -x 127.0.0.1Θα πρέπει να δείτε γραμμές παρόμοιες με τις παρακάτω στο αποτέλεσμα της εντολής:
;; Query time: 1 msec ;; SERVER: 192.168.1.10#53(192.168.1.10)
-
Αν έχετε ρυθμίσει το BIND9 ως εξυπηρετητή ονομάτων προσωρινής αποθήκευσης (Caching), «κάντε» dig σε ένα εξωτερικό όνομα τομέα για να ελέγξετε τον χρόνο του ερωτήματος:
dig ubuntu.comΠαρατηρήστε τον χρόνο του ερωτήματος προς το τέλος του αποτελέσματος της εντολής:
;; Query time: 49 msec
Μετά από μία δεύτερη εκτέλεση του dig θα πρέπει να υπάρχει βελτίωση:
;; Query time: 1 msec
Τώρα για να δείτε πώς οι εφαρμογές χρησιμοποιούν το DNS για να αναλύσουν ένα όνομα υπολογιστή χρησιμοποιήστε το εργαλείο ping για να στείλετε ένα αίτημα echo ICMP. Σε ένα τερματικό πληκτρολογήστε:
ping example.com
Αυτό ελέγχει αν ο εξυπηρετητής ονομάτων μπορεί να επιλύσει το όνομα ns.example.com σε διεύθυνση IP. Το αποτέλεσμα της εντολής θα πρέπει να μοιάζει με:
PING ns.example.com (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.800 ms 64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.813 ms
Ένας πολύ καλός τρόπος για να ελέγξετε τα αρχεία ζώνης σας είναι χρησιμοποιώντας το εργαλείο named-checkzone που εγκαθίσταται με το πακέτο bind9. Αυτό το εργαλείο σας επιτρέπει να σιγουρευτείτε πως οι ρυθμίσεις είναι σωστές πριν επανεκκινήσετε το BIND9 και να κάνετε τις αλλαγές άμεσα.
-
Για να ελέγξετε το παράδειγμά μας αρχείου ζώνης Forward πληκτρολογήστε το παρακάτω σε μία γραμμή εντολών:
named-checkzone example.com /etc/bind/db.example.comΑν τα πάντα είναι σωστά ρυθμισμένα, θα πρέπει να δείτε αποτέλεσμα παρόμοιο με:
zone example.com/IN: loaded serial 6 OK
-
Παρομοίως, για να ελέγξετε το αρχείο ζώνης Reverse πληκτρολογήστε το ακόλουθο:
named-checkzone example.com /etc/bind/db.192Η έξοδος πρέπει να είναι παρόμοια με:
zone example.com/IN: loaded serial 3 OK
|
|
|
Ο σειριακός αριθμός της ζώνης σας πιθανότατα θα είναι διαφορετικός. |
Το BIND9 έχει μια μεγάλη ποικιλία επιλογών για τη ρύθμιση της καταγραφής. Υπάρχουν δύο κύριες επιλογές. Η επιλογή channel ρυθμίζει πού πάνε οι καταγραφές και η επιλογή category καθορίζει τι πληροφορίες θα καταγράφονται.
Αν δεν οριστεί επιλογή καταγραφής, η προεπιλεγμένη επιλογή είναι:
logging {
category default { default_syslog; default_debug; };
category unmatched { null; };
};
Αυτή η ενότητα καλύπτει τη ρύθμιση του BIND9 ώστε να στέλνει πληροφορίες αποσφαλμάτωσης σχετικές με τα ερωτήματα DNS σε ένα ξεχωριστό αρχείο.
-
Πρώτα, χρειάζεται να ρυθμίσουμε ένα κανάλι (channel) για να ορίσουμε σε ποιο αρχείο θα στέλνονται τα μηνύματα. Επεξεργαστείτε το
/etc/bind/named.conf.localκαι προσθέστε το ακόλουθο:logging { channel query.log { file "/var/log/query.log"; severity debug 3; }; }; -
Μετά, ρυθμίστε μια κατηγορία (category) που θα στέλνει όλα τα ερωτήματα DNS στο αρχείο ερωτημάτων:
logging { channel query.log { file "/var/log/query.log"; severity debug 3; }; category queries { query.log; }; };
|
|
|
Σημείωση: Η επιλογή debug μπορεί να πάρει τιμή από 1 έως 3. Αν δεν οριστεί επίπεδο, η προεπιλογή είναι το επίπεδο 1. |
-
Αφού η υπηρεσία named εκτελείται ως ο χρήστης bind, το αρχείο
/var/log/query.logπρέπει να δημιουργηθεί και να αλλαχτεί ο ιδιοκτήτης του:sudo touch /var/log/query.log sudo chown bind /var/log/query.log
-
Πριν η υπηρεσία named μπορέσει να γράψει στο νέο αρχείο καταγραφής, το προφίλ του AppArmor πρέπει να ενημερωθεί. Πρώτα, επεξεργαστείτε το
/etc/apparmor.d/usr.sbin.namedκαι προσθέστε:/var/log/query.log w,
Μετά, επαναφορτώστε το προφίλ:
cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser -rΓια περισσότερες πληροφορίες σχετικά με το AppArmor δείτε το “AppArmor”
-
Τώρα επανεκκινήστε το BIND9 για να τεθούν σε ισχύ οι αλλαγές:
sudo /etc/init.d/bind9 restart
Θα πρέπει να δείτε το αρχείο /var/log/query.log να γεμίζει με πληροφορίες ερωτημάτων. Αυτό είναι ένα απλό παράδειγμα των επιλογών καταγραφής που προσφέρει το BIND9. Για κάλυψη προχωρημένων επιλογών δείτε το “Περισσότερες πληροφορίες”.

