Ubuntu下Bind DNS域名服务器的安装

预备:相关概念扫盲
DNS, Domain Name System,即域名解析系统,用于实现“域名”与“ip”地址之间的相互解析。
正向解析(正解):将Domain解析为ip。
反向解析(反解):将ip解析为域名。
Zome(区域):一个正解或反解的设定为一个zone。

安装bind9
hadoop@ubuntu:~$ sudo apt-get install bind9
安装完成后,会在/etc/bind目录下生成以下的配置文件
root@ubuntu:/etc/bind# ls -l
total 52
-rw-r--r-- 1 root root 2389 Feb 18 05:45 bind.keys
-rw-r--r-- 1 root root  237 Feb 18 05:45 db.0
-rw-r--r-- 1 root root  271 Feb 18 05:45 db.127
-rw-r--r-- 1 root root  237 Feb 18 05:45 db.255
-rw-r--r-- 1 root root  353 Feb 18 05:45 db.empty
-rw-r--r-- 1 root root  270 Feb 18 05:45 db.local
-rw-r--r-- 1 root root 3048 Feb 18 05:45 db.root
-rw-r--r-- 1 root bind  463 Feb 18 05:45 named.conf
-rw-r--r-- 1 root bind  490 Feb 18 05:45 named.conf.default-zones
-rw-r--r-- 1 root bind  165 Feb 18 05:45 named.conf.local
-rw-r--r-- 1 root bind  890 Apr  3 23:55 named.conf.options
-rw-r----- 1 bind bind   77 Apr  3 23:55 rndc.key
-rw-r--r-- 1 root root 1317 Feb 18 05:45 zones.rfc1918
重要配置文件解释:
named.conf:name参数的设置,配置服务器使用的域数据库信息源。该文件内容以下:

能够看到该文件主要指定了几个named相关配置文件的位置。
named.conf.options:全局选项配置,一般不用修改。
named.conf.local:用于用户配置dns时,添加Zone的配置信息
named.conf.default-zones:正解和反解Zone的配置,该文件的主要格式以下:
zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};
其中,localhost zone表示正解zone,其中的type表示定义域名服务器的类型,可为以下值:
master:主域名服务器
slave:辅助域名服务器
hint:互联网中的根域名服务器
其中,file选项用于指定zone配置文件的位置。
db.local:localhost正向zone文件,用于将localhost解析为127.0.0.1。该文件的内容以下:

其中,几个重要的配置说明:
SOA:主要用户主服务器和从服务器之间的dns数据库资料的同步。该行“@”表示该文件对应的zone,后面指定的是这个zone的 受权主机管理者的邮箱。因为“@”在DNS记录中是一个保留字符,因此SOA中用“.”来代替“@”,因此管理者邮箱为“root@localhost”。
Serial:主服务器的序列号,当从服务器发现主服务器的序列号比自身的大时,就会进行DNS数据库的同步。
Refresh:从服务器请求DNS数据库同步的时间间隔。
Retry:当从服务器进行同步失败,再次进行重试的时间间隔。
Expire:记录的逾期时间,当从服务器一直没法与主服务器取得联系,那么过了该时间后,资料将标识为过时。
NS:表示localhost这个域的主机是localhost
A:标明了IP地址与域名之间的对应关系。
db.127:localhost反向区文件,用于将127.0.0.1解析为localhost。

其中的PTR表示的是反向解析。

实践例子:
假设如今,咱们有三台主机来构建hadoop集群,三台主机之间的域名与ip的对于关系以下:
namenode.hadoop     192.168.3.150     
slave1.hadoop       192.168.3.151
slave2.hadoop       192.168.3.152
根据上面的域名与ip之间的对应关系,这里假设咱们将192.168.3.150也即咱们namenode节点设置为域名服务器,咱们须要经过以下三步来构建该dns服务器:
① 首先添加正向区域"hadoop"和反向区域“3.168.192.in-addr.arpa”相对应的文件。
② 在"hadoop"区域中添加A记录:namenode对于150,slave1对应151,slave2对应152。
③ 在 “3.168.192.in-addr.arpa”区域中添加151对于namenode,151对应slave1,152对应slave2。
1、修改全部机器的/etc/network/interfaces文件,设置各自静态的ip和指定dns-server。以下为slave1节点的该文件的配置信息:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.3.151
netmask 255.255.255.0
gateway 192.168.3.1
dns-nameservers 192.168.3.150
说明:网上说指定dns能够经过设置 /etc/resolv.conf文件,可是发现该文件在系统重启后,由恢复为系统默认设置了,虽然网上又有人说能够将dns服务器信息加在 /etc/resolvconf/resolv.conf.d/base文件后,重启后就不会改变了,可是我尝试了,仍是不行。
2、编辑/etc/bind/named.conf.local文件,该文件的内容以下:
zone "hadoop" {
        type master;
        file "/etc/bind/db.hadoop";
};

zone "3.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192.168.3";
};
3、建立并编辑db.hadoop文件,该文件的内容以下:
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     namenode.hadoop. root.namenode.hadoop. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      namenode.hadoop.
namenode  IN      A       192.168.3.150
slave1    IN      A       192.168.3.151
slave2    IN      A       192.168.3.152
4、建立并编辑 db.192.168.3文件,该文件内容以下:
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     namenode.hadoop. root.namenode.hadoop. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      namenode.hadoop.
150     IN      PTR     namenode.
151     IN      PTR     slave1.
152     IN      PTR     slave2.
5、重启系统并使用nslookup命令测试
首先咱们在namenode机器(192.168.3.150)上测试:

而后,咱们在slave1机器(192.168.3.151)上测试:

说明:咱们的bind9软件只需仅安装在做为dns服务器的一台机器上,其余机器不须要安装.
利用DNS在搭建Hadoop集群就更方面了,利用host文件来管理域名到ip地址之间的映射关系,当咱们的集群须要增长一台机器时,须要修改全部机器的host文件,而利用DNS的话,咱们只须要修改dns服务器下/etc/bind/db.hadoop和/etc/bind/db.3.168.192以及新增机器 /etc/network/interfaces文件便可。




附件列表

相关文章
相关标签/搜索