We were checking out the various servers that we administer and noticed that one of our hosts is not up to the latest version of BIND. Yum update wasn’t giving us joy, so we grabbed the latest version of BIND:
# wget http://ftp.isc.org/isc/bind9/9.5.0-P2/bind-9.5.0-P2.tar.gz --07:10:17-- http://ftp.isc.org/isc/bind9/9.5.0-P2/bind-9.5.0-P2.tar.gz Resolving ftp.isc.org... 204.152.184.110, 2001:4f8:0:2::18 Connecting to ftp.isc.org|204.152.184.110|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 6627081 (6.3M) [application/x-gzip] Saving to: `bind-9.5.0-P2.tar.gz' 100%[=======================================>] 6,627,081 1.75M/s in 4.3s 07:10:22 (1.46 MB/s) - `bind-9.5.0-P2.tar.gz' saved [6627081/6627081] |
What we want to do is see if we can compile on the current host, install in /usr/local so that we don’t interfere with the current version of BIND, then remove the RPMs and get the system set up in the same exact way, with the same exact init script (only slightly different). Just to be safe, we want to make sure that we know where the configuration files are:
# ls /var/named chroot localdomain.zone named.broadcast named.ip6.local named.zero data localhost.zone named.ca named.local slaves |
How is named running?
# ps -ef UID PID PPID C STIME TTY TIME CMD . . . named 13407 1 0 Jun16 ? 00:00:04 /usr/sbin/named -u named . . . root 17925 9801 0 Jul21 pts/0 00:00:00 ps -ef |
Back up the zones and configuration files:
# cp /var/named -r /root/ # ls /root/named chroot localdomain.zone named.broadcast named.ip6.local named.zero data localhost.zone named.ca named.local slaves # cp /etc/named.conf /root/ # cp /etc/rc.d/init.d/named /root/namedinit |
Let’s get on with the compile. Note that we went through this dance back in 2001, right after Agatha shut down a data center and was unemployed for awhile in this article. This time we are simply hacking on a Fedora Core 6 install, which, by default, has a chrooted configuration. This is better anyway. On a side note, Agatha would like to point out that the last octet on the DNS server used in 2001 was 52:
100.50.10.in-addr.arpa. 86400 IN NS srv-3.signalq.com. ;; ADDITIONAL SECTION: srv-3.signalq.com. 86400 IN A 10.50.100.52 |
OK. Maybe this is only a three on the Carl Jung One-to-Ten Synchronicity Meter, but, well, one has to pay attention to these kind of things. Let’s get on to the compile. Extract the tarball, configure, make, install:
# tar -xzf bind-9.5.0-P2.tar.gz # ls bind-9.5.0-P2 bind-9.5.0-P2.tar.gz # cd bind*2 # ./configure config.status: creating dst/Makefile config.status: creating include/Makefile config.status: creating inet/Makefile config.status: creating irs/Makefile config.status: creating isc/Makefile config.status: creating nameser/Makefile config.status: creating port_after.h config.status: creating port_before.h config.status: creating resolv/Makefile config.status: creating port/Makefile config.status: creating port/linux/Makefile config.status: creating port/linux/include/Makefile config.status: creating include/isc/platform.h config.status: creating config.h # make making all in /usr/local/src/bind-9.5.0-P2/make make[1]: Entering directory `/usr/local/src/bind-9.5.0-P2/make' make[1]: Leaving directory `/usr/local/src/bind-9.5.0-P2/make' making all in /usr/local/src/bind-9.5.0-P2/lib make[1]: Entering directory `/usr/local/src/bind-9.5.0-P2/lib' making all in /usr/local/src/bind-9.5.0-P2/lib/isc make[2]: Entering directory `/usr/local/src/bind-9.5.0-P2/lib/isc' making all in /usr/local/src/bind-9.5.0-P2/lib/isc/include make[3]: Entering directory `/usr/local/src/bind-9.5.0-P2/lib/isc/include' making all in /usr/local/src/bind-9.5.0-P2/lib/isc/include/isc make[4]: Entering directory `/usr/local/src/bind-9.5.0-P2/lib/isc/include/isc' make[4]: Leaving directory `/usr/local/src/bind-9.5.0-P2/lib/isc/include/isc' make[3]: Leaving directory `/usr/local/src/bind-9.5.0-P2/lib/isc/include' making all in /usr/local/src/bind-9.5.0-P2/lib/isc/unix make[3]: Entering directory `/usr/local/src/bind-9.5.0-P2/lib/isc/unix' making all in /usr/local/src/bind-9.5.0-P2/lib/isc/unix/include make[4]: Entering directory `/usr/local/src/bind-9.5.0-P2/lib/isc/unix . . . making all in /usr/local/src/bind-9.5.0-P2/doc/xsl make[2]: Entering directory `/usr/local/src/bind-9.5.0-P2/doc/xsl' make[2]: Leaving directory `/usr/local/src/bind-9.5.0-P2/doc/xsl' making all in /usr/local/src/bind-9.5.0-P2/doc/doxygen make[2]: Entering directory `/usr/local/src/bind-9.5.0-P2/doc/doxygen' make[2]: Leaving directory `/usr/local/src/bind-9.5.0-P2/doc/doxygen' make[1]: Leaving directory `/usr/local/src/bind-9.5.0-P2/doc' # # make install making all in /usr/local/src/bind-9.5.0-P2/make make[1]: Entering directory `/usr/local/src/bind-9.5.0-P2/make' make[1]: Leaving directory `/usr/local/src/bind-9.5.0-P2/make' making all in /usr/local/src/bind-9.5.0-P2/lib . . . make[2]: Entering directory `/usr/local/src/bind-9.5.0-P2/doc/doxygen' make[2]: Leaving directory `/usr/local/src/bind-9.5.0-P2/doc/doxygen' make[1]: Leaving directory `/usr/local/src/bind-9.5.0-P2/doc' /bin/sh ./mkinstalldirs /usr/local/bin \ /var/run /etc /usr/bin/install -c isc-config.sh /usr/local/bin # |
Verify the version:
# /usr/local/sbin/named -version BIND 9.5.0-P2 # |