BIND

From TBP Wiki
Revision as of 14:45, 5 January 2019 by Goldbolt (talk | contribs)
Jump to: navigation, search

BIND (/ˈbaɪnd/), or named (pronounced name-dee, short for name daemon: /ˈneɪmdiː/), is the most widely used Domain Name System (DNS) software on the Internet. On Unix-like operating systems it is the de facto standard. It performs both of the main DNS server roles - acting as an authoritative name server for one or more specific domains, and acting as a recursive resolver for the DNS system generally.

The software was originally designed at the University of California, Berkeley (UCB) in the early 1980s. The name originates as an acronym of Berkeley Internet Name Domain, reflecting the application's use within UCB. The software consists, most prominently, of the DNS server component, called named, a contracted form of name daemon. In addition the suite contains various administration tools, and a DNS resolver interface library. The latest version of BIND is BIND 9, first released in 2000. BIND 9 is actively maintained, with new releases issued several times a year.

Starting in 2009, the Internet Software Consortium (ISC) developed a new software suite, initially called BIND10. With release version 1.2.0 the project was renamed Bundy to terminate ISC involvement in the project.

Dig

dig (domain information groper) is a flexible tool for interrogating DNS name servers. It performs DNS lookups and displays the answers that are returned from the name server(s) that were queried.

Using Dig

   dig tbpchan.cz

Dig all domains within named configs if named/BIND is installed:

   for i in `ls /var/named | cut -f1-2 -d'.' | grep ".com\|.net\|.org\|.net\|.us\|.biz"`; do echo "$i :   " |tr -d '\n';dig "$i" +short; done

Update the SOA serial for all domains

   newSerial="20$(date +"%y%m%d")01"; for domain in `/bin/ls -1 /var/named/ | grep ".db"`; do echo -n $domain" "; egrep -io "[0-9]{10}.*serial" /var/named/$domain | awk '{print $1}'; done | awk -v newSerial=$newSerial '{ if ( $2 < newSerial ) print $0}' > /var/named/UPDATE_DNS; \ OLDIFS=$IFS; IFS=$'\n'; for zone in `cat /var/named/UPDATE_DNS`; do zoneFile=$(echo $zone | awk '{print $1}'); oldSerial=$(echo $zone | awk '{print $2}'); replace $oldSerial $newSerial -- /var/named/$zoneFile; done; IFS=$OLDIFS; rm -rv /var/named/UPDATE_DNS