Linux初学者学习笔记

20170919 DNS服务(一)

2017-09-25  本文已影响90人  哈喽别样
  • DNS简介
  • DNS解析关键概念
  • BIND

一、DNS简介:

(一)DNS服务

(二)DNS域名

(三)DNS解析

(四)DNS服务器类型

二、DNS解析关键概念:

(一)资源记录(RR, Resource Record)

(二)SOA记录

(三)NS记录

(四)MX记录

(五)A记录和AAAA记录

(六)CNAME记录

(七)PTR记录

三、BIND:

(一)BIND的安装

(二)BIND的配置

(1)配置主配置文件:/etc/named.conf
(2)配置解析库文件:按照资源记录的格式定义
(3)格式检查:
(4)重载配置:

rndc reloadservice named reload

(5)实验:配置基本的DNS服务,DNS正向解析

将192.168.136.230配置为"hellopeiyang.com"域的DNS服务器,本区域主机"websrv"的IP地址为192.168.136.229,"www"是"websrv"的别名,邮件服务器"mailsrv1"的IP地址为192.168.136.100,邮件服务器"mailsrv2"的IP地址为192.168.136.101,mailsrv1的优先级更高

vim /etc/named.conf

options {
        listen-on port 53 { localhost; };
        //修改监听主机IP为localhost,这样网络上的其他主机可以连接本机的DNS服务
        //也可以通过注释本条语句达到相同效果
        allow-query     { any; };
        //修改允许查询的客户端网段,any表示任意客户端可以向本机发起DNS请求,并得到查询结果
};
vim /etc/named.rfc1912.zones

zone "hellopeiyang.com" IN {
        type master;                      //类型为主服务器
        file "hellopeiyang.com.zone";     //必须与/var/named下的文件名相同
};
cp -p /var/named/named.localhost /var/named/hellopeiyang.com.zone  //复制时保留所属组权限
vim /var/named/hellopeiyang.com.zone

$TTL 1D     //DNS缓存生命期的全局设置
@       IN SOA  dns1 admin.hellopeiyang.com. (    
//dns1:主DNS服务器域名
//本配置文件中凡是域名处若末尾不加"."系统识别时自动认为其后增加当前域名,
如这里"dns1"视作"dns1.hellopeiyang.com."
                                        100     ; serial     //序列号,不多于10位
                                        1D      ; refresh    //从DNS服务器更新时间
                                        1H      ; retry      //从DNS服务器重试时间
                                        1W      ; expire     //从DNS服务器失效时间
                                        3H )    ; minimum    //错误的DNS缓存生命期
        NS      dns1             //DNS服务器主机名
dns1    A       192.168.136.230  //DNS服务器的IP地址
websrv  A       192.168.136.229  //本域下的主机websrv的IP地址
www     CNAME   websrv           //主机websrv的别名
@       MX      10 mailsrv1      //邮件服务器mailsrv1.hellopeiyang.com
@       MX      20 mailsrv2      //邮件服务器mailsrv2.hellopeiyang.com
mailsrv1  A     192.168.136.100  //邮件服务器mailsrv1.hellopeiyang.com的IP
mailsrv2  A     192.168.136.101  //邮件服务器mailsrv2.hellopeiyang.com的IP
(6)只允许DNS返回本机存在的DNS记录(适用于企业内网)

修改/etc/named.conf文件options字段recursion选项,修改如下:
recursion no;
此时,请求一个DNS服务器不知道的域名,服务器直接拒绝

(三)测试命令

(1)dig命令
dig -t ns . @114.114.114.114     //查询根DNS服务器域名
dig -t mx hellopeiyang.com @192.168.136.230     //查询hellopeiyang.com域的邮件服务器
(2)host命令
host -t ns . 114.114.114.114     //查询根DNS服务器域名
dig -t mx hellopeiyang.com 192.168.136.230     //查询hellopeiyang.com域的邮件服务器
(3)nslookup命令

(四)反向区域解析

vim /etc/named.rfc1912.zones

zone "136.168.192.in-addr.arpa"{     //反向解析域,IP需要倒写
        type master;
        file "192.168.136.zone";
};
vim /var/named/192.168.136.zone

$TTL 1d
@  IN  SOA dns1.hellopeiyang.com. admin.hellopeiyang.com. (100 3h 1h 12h 1d )
       NS  dns1.hellopeiyang.com.
230    PTR dns1.hellopeiyang.com.
229    PTR websrv.hellopeiyang.com.
100    PTR mailsrv1.hellopeiyang.com.
101    PTR mailsrv2.hellopeiyang.com.

注意:NS和PTR记录的域名应该写全并以"."结束,以防止系统自动视作在其后添加反向解析域

(五)bind-chroot程序包

(六)允许动态更新

nsupdate
>server 192.168.136.230
>zone hellopeiyang.com
>update add ftp.hellopeiyang.com 86400 IN A 192.168.136.150
>send
>update delete ftp.hellopeiyang.com A
>send

(七)从服务器

options {
    listen-on port 53 { localhost; };
    allow-query     { any; };
};
zone "hellopeiyang.com" IN {
    type slave;
    masters {192.168.136.230;};
    file "slaves/hellopeiyang.com.slave.zone";
};
vim /var/named/hellopeiyang.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial     //只要解析库更新,一定要更新序列号
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2                //增加的NS记录
dns1    A       192.168.136.230
dns2    A       192.168.136.130     //增加的A记录
websrv A        192.168.136.229
www     CNAME   websrv
@       MX      10 mailsrv1
@       MX      20 mailsrv2
mailsrv1  A 192.168.136.100
mailsrv2  A 192.168.136.101

(八)子域

(1)子域与父域在一台主机上(适用于子域的流量比较小时)
zone "zhengzhou.hellopeiyang.com" IN {
    type master;
    file "zhengzhou.hellopeiyang.com.zone";
};
cp -p /var/named/hellopeiyang.com.zone /var/named/zhengzhou.hellopeiyang.com.zone
复制一份父域的解析库文件,在其上做修改
vim /var/named/zhengzhou.hellopeiyang.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.230
websrv  A       192.168.136.160
www     CNAME   websrv
@       MX      10 mailsrv1
mailsrv1  A     192.168.136.170
(2)子域与父域不在一台主机上(适用于子域的流量比较大时)

又称作:父域DNS服务器将DNS管理权委派给子域DNS服务器

vim /var/named/hellopeiyang.com.zone

$TTL 1D
@   IN SOA  dns1 admin.hellopeiyang.com. (
                    101 ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  dns1
henan   NS  dns2
dns1    A   192.168.136.230
dns2    A   192.168.136.130
websrv A    192.168.136.229
www CNAME   websrv
@   MX  10 mailsrv1
@   MX  20 mailsrv2
mailsrv1  A 192.168.136.100
mailsrv2  A 192.168.136.101

named-checkzone hellopeiyang.com /var/named/hellopeiyang.com.zone     //检查语法
rndc reload     //重新载入配置
//步骤1:修改主配置文件
vim /etc/named.conf     //修改的内容如下

options {
        listen-on port 53 { localhost; };
        allow-query     { any; };
};

//步骤2:修改独立区域配置文件
vim /etc/named.rfc1912.zones     //增加的内容如下

zone "henan.hellopeiyang.com" IN {
        type master;
        file "henan.hellopeiyang.com.zone";
};

//步骤3:创建解析库文件
vim /var/named/henan.hellopeiyang.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.130
websrv  A       192.168.136.133
www     CNAME   websrv

chgrp named /var/named/henan.hellopeiyang.com.zone     //更改所属组

//步骤4:检查语法
named-checkconf 
named-checkzone henan.hellopeiyang.com /var/named/henan.hellopeiyang.com.zone

//步骤5:重新载入配置
rndc roload

(九)转发服务器

(1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器

实现:修改/etc/named.conf文件

options {
forward first|only;    
//first:转发到达的DNS服务器若解析失败,则自身直接发起DNS解析请求
//only:转发到达的DNS服务器若解析失败,则自身不再发起请求,本次DNS解析结果为失败
forwarders { ip;};
};
(2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高

实现:修改/etc/named.rfc1912.zones文件

zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
(3)实验一:实现全局转发
vim /etc/named.conf
options{
  forward first;
  forwarders {192.168.136.139;};     //凡是不在本区域DNS服务器中的请求一律转发给192.168.136.139
  dnssec-enable no;
  dnssec-validation no;
};
named-checkconf
rndc reload
//步骤1:修改主配置文件
vim /etc/named.conf 

options {
  listen-on port 53 { localhost;};
  allow-query     { any; };
};

//步骤2:修改独立区域配置文件
vim /etc/named.rfc1912.zones

zone "byebye.com" IN {
  type master;
  file "byebye.com.zone";
};

//步骤3:创建解析库文件
vim /var/named/byebye.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                         101     ; serial
                                         1D      ; refresh
                                         1H      ; retry
                                         1W      ; expire
                                         3H )    ; minimum
         NS      dns1
 dns1    A       192.168.136.139
 websrv A        192.168.136.66
 www     CNAME   websrv

chgrp named /var/named/beijing.hellopeiyang.com.zone     //更改所属组

//步骤4:检查语法
named-checkconf
named-checkzone byebye.com /var/named/byebye.com.zone

//步骤5:重新载入配置
rndc reload
(4)实验二:实现特定区域转发
vim /etc/named.rfc1912.zones

zone "byebye.com" IN {
        type forward;
        forward first;
        forwarders {192.168.136.139;}; 
        //仅当请求解析beijing.hellopeiyang.com区域时,转发给192.168.136.224 
};
named-checkconf
rndc reload

(十)bind中的acl

acl acl_name{
  ip;
  net/prelen;
  ……
};
vim /etc/named.conf

acl lan {
        192.168.136.0/24;
};

options {
        listen-on port 53 { localhost; };
        allow-query     { lan;localhost; };     //添加名为lan的acl
};

named-checkconf
rndc reload

此时,只有192.168.136.0/24的网段可以查询DNS其他网段的请求会被服务器拒绝

上一篇 下一篇

猜你喜欢

热点阅读