创建DNS域名解析服务

大数据平台严重依赖于DNS,在正常的操作期间会执行许多次DNS查找,我们必须为集群内的所有主机配置正向和方向DNS,完成主机名(Fully Qualified Domain Name)到IP地址的映射。要达到这个目的,可以通过编辑集群中所有主机上的/etc/hosts文件或者创建一个DNS服务器来解决,这里我们来详细描述利用bind9来创建DNS服务器,配置集群内的bigdata.wh.com子域,以及结果测试的过程。

  • 系统安装后配置hostname
hostnamectl set-hostname dns.bigdata.wh.com  #设置主机名
  • 编辑/etc/hosts文件

首先编辑hosts文件添加本地源的IP地址和主机名之间的映射关系。

[root@dns ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.36.247 repo.bigdata.wh.com  repo
  • 下载本地源repo文件,更新yum缓存
wget -O /etc/yum.repos.d/ambari.repo http://repo.bigdata.wh.com/resource/ambari-2.5.0.3.repo
yum clean all
yum repolist
  • 安装bind及相关工具
yum install -y bind         #提供DNS服务,程序名named
yum install -y bind-utils   #测试域名的周边工具,如dig、host、nslookup

bind安装完成后,其包含的配置文件和区域文件如下。

[root@dns etc]# rpm -ql bind
/etc/logrotate.d/named
/etc/named
/etc/named.conf                   #bind主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones          #区域(zone)配置文件
/etc/named.root.key
/etc/rndc.conf                    #rndc配置文件
/etc/rndc.key
/etc/rwtab.d/named
/etc/sysconfig/named
/run/named
/usr/lib/systemd/system/named-setup-rndc.service  #服务脚本文件
/usr/lib/systemd/system/named.service
/usr/sbin/ddns-confgen             #生成rndc密钥
/usr/sbin/named
/usr/sbin/named-checkconf          #检测/etc/named.conf文件语法
/usr/sbin/named-checkzone          #检测zone和对应zone文件的语法
/usr/sbin/named-compilezone
/usr/sbin/named-journalprint
/usr/sbin/nsec3hash
/usr/sbin/rndc                     #远程dns管理工具
/usr/sbin/rndc-confgen             #生成rndc密钥
/var/log/named.log
/var/named
/var/named/data
/var/named/dynamic
/var/named/named.ca                #根区域文件
/var/named/named.empty
/var/named/named.localhost         #默认的本地主机解析库
/var/named/named.loopback          #添加区域后新建一个该区域的解析库文件
/var/named/slaves                  #从文件夹
  • 修改主配置文件/etc/named.conf
[root@dns named]# cat /etc/named.conf
options {
    listen-on port 53 { 127.0.0.1;192.168.36.149; };   #添加本机内网IP
    listen-on-v6 port 53 { ::1; };
    directory     "/var/named";
    dump-file     "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { localhost; any; };   #添加允许查询的主机地址,以分号分隔
                                           #可以是某个主机:192.168.36.x
                                           #或某个网段:192.168.36.0/255
                                           #或所有主机:any
   allow-transfer {};  #允许区域传送主机, 白名单
   allow-recursion {}; #允许递归的主机
   allow-update {};    #允许更新区域数据库中的内容
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
  • 追加区域bigdata.wh.com的正向解析定义。
cat << eof >> /etc/named.rfc1912.zones
zone "bigdata.wh.com" IN {
     #设置类型为master
     type master;

    #解析库文件名称为bigdata.wh.com.zone,默认的存储目录为/var/named/
    file "bigdata.wh.com.zone";
    allow-update { none; };
};
eof
  • 创建区域的正向解析库文件。
cat << 'eof' > /var/named/bigdata.wh.com.zone
$TTL 600 #定义全局默认超时时间
$ORIGIN bigdata.wh.com. #定义域名后缀
@   IN  SOA    dns.bigdata.wh.com. admin.bigdata.wh.com. (
                20170510 #序列号
                1H       #刷新时
                5M       #重试时间
                1W       #超时时间
                10M )    #否定答案缓存TTL值
        IN      NS      dns            #定义区域内的一台nameserver
dns     IN      A       192.168.36.149 #dns这台nameserver所对应的IP
admin   IN      CNAME   dns            #admin是dns的别名,admin.bigdata.wh.com.将解析到dns.bigdata.wh.com.
*       IN      A       192.168.30.1   #泛域名解析,以上都不是的解析到192.168.30.1
eof
  • 检测配置及启动DNS服务。
#检查主配置文件语法
named-checkconf

#检查区域所对应的解析库文件
named-checkzone "bigdata.wh.com" /var/named/bigdata.wh.com.zone
systemctl enable named.service
systemctl start named.service
  • 测试域名解析成IP是否正常,如果遇到错误,可以观察日志文件/var/log/message的内容来分析问题。
[root@dns named]# host -t NS bigdata.wh.com 192.168.36.149
Using domain server:
Name: 192.168.36.149
Address: 192.168.36.149#53
Aliases: 

bigdata.wh.com name server dns.bigdata.wh.com.
[root@dns named]# host -t A dns.bigdata.wh.com 192.168.36.149
Using domain server:
Name: 192.168.36.149
Address: 192.168.36.149#53
Aliases: 

dns.bigdata.wh.com has address 192.168.36.149
  • 追加区域bigdata.wh.com的反向解析定义。
cat << eof >> /etc/named.rfc1912.zones
zone "168.192.in-addr.arpa" IN {
type master;
file "168.192.in-addr.arpa.zone";
allow-update { none; };
};
eof
  • 创建区域的反向解析库文件。
cat << 'eof' > /var/named/168.192.in-addr.arpa.zone
$TTL 600
$ORIGIN 168.192.in-addr.arpa.
@ IN SOA dns.bigdata.wh.com. admin.bigdata.wh.com. (
20170510
1H
5M
1W
10M )
IN NS dns.bigdata.wh.com.
149.36  IN PTR dns.bigdata.wh.com.  #ip到hostname的反向记录
eof
  • 修改新增区域文件的所有者和权限。
[root@dns named]# ps aux|grep named
named 2668 0.0 1.4 165652 15008 ? Ssl 12:13 0:00 /usr/sbin/named -u named
root 2680 0.0 0.0 112640 960 pts/0 S+ 12:14 0:00 grep --color=auto named

chown :named bigdata.wh.com.zone
chmod 640 bigdata.wh.com.zone

chown :named 68.192.in-addr.arpa.zone
chmod 640 168.192.in-addr.arpa.zone
  • 检测新增配置并重启DNS服务。
named-checkconf
named-checkzone "168.192.in-addr.arpa" /var/named/168.192.in-addr.arpa.zone

systemctl restart named.service
  • 测试IP反向解析成域名是否正常
[root@dns named]# host -t PTR 192.168.36.149 192.168.36.149
Using domain server:
Name: 192.168.36.149
Address: 192.168.36.149#53
Aliases: 

149.36.168.192.in-addr.arpa domain name pointer dns.bigdata.wh.com.
  • bigdata.wh.com区域内为集群其他主机添加A记录和PTR记录
[root@dns named]# cat bigdata.wh.com.zone 
$TTL 600
$ORIGIN bigdata.wh.com.
@   IN  SOA    dns.bigdata.wh.com. admin.bigdata.wh.com. (
                20170510
                1H
                5M
                1W
                10M )
        IN      NS      dns
dns     IN      A       192.168.36.149
repo    IN      A       192.168.36.247  #区域内其他主机的A记录
proxy   IN      A       192.168.36.132
db      IN      A       192.168.36.101
admin   IN      CNAME   dns
*       IN      A       192.168.30.1


[root@dns named]# cat 168.192.in-addr.arpa.zone 
$TTL 600
$ORIGIN 168.192.in-addr.arpa.
@ IN SOA dns.bigdata.wh.com. admin.bigdata.wh.com. (
20170510
1H
5M
1W
10M )
    IN NS  dns.bigdata.wh.com.
149.36  IN PTR dns.bigdata.wh.com.
247.36  IN PTR repo.bigdata.wh.com.  #区域内其他主机的PTR记录
132.36  IN PTR proxy.bigdata.wh.com.
101.36  IN PTR db.bigdata.wh.com.

results matching ""

    No results matching ""