Linux之DNS——种种

一、DNS基本介绍

1、dns域名结构

• 根域

• 一级域名:Top Level Domain: tld

com, edu, mil, gov, net, org, int,arpa

三类:组织域、国家域(.cn, .jp)地区域(.hk, .tw)、反向域

• 二级域名

• 三级域名

• 最多127级域名

2、dns解析

•DNS查询类型:

   递归查询

   迭代查询

• 名称服务器:域内负责解析本域内的名称的主机 根服务器:13组服务器,1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美 国,欧洲2个,位于英国和瑞典,亚洲1个位于日本

• 解析类型: FQDN --> IP IP –> FQDN

• 注意:正反向解析是两个不同的名称空间,是两棵不同的解析树

3、dns服务器类型

• DNS服务器的类型:

主DNS服务器

从DNS服务器

缓存DNS服务器(转发器)

• 主DNS服务器:管理和维护所负责解析的域内解析库的服务器

• 从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本 序列号:解析库版本号,主服务器解析库变化时,其序列递增 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

• “通知”机制:主服务器解析库发生变化时,会主动通知从服务器

4、dns解析

解析答案分为肯定答案,否定答案;应答分为权威应答和非权威应答。

肯定答案: 一个肯定答案有返回结果

否定答案:请求的条目不存在等原因导致无法返回结果

权威答案: 客户端从指定的dns直接获取的解析

非权威答案:客户端通过指定的dns从其他渠道获得的解析

5、资源记录

区域解析库:由众多RR组成:

资源记录:Resource Record, RR

记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

• SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解 析库的第一条记录

• A:internet Address,作用,FQDN –> IP

• AAAA: FQDN --> IPv6 • PTR: PoinTeR,IP –> FQDN

• NS: Name Server,专用于标明当前区域的DNS服务器

• CNAME:Canonical Name,别名记录

• MX: Mail eXchanger,邮件交换器

SOA记录
• name: 当前区域的名字,例如“magedu.com.”

• value: 有多部分组成

(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;

(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如 linuxedu.magedu.com

(3) 主从服务区域传输相关定义以及否定的答案的统一的TTL

例如: magedu.com.     86400        IN         SOA 

复制代码
ns.magedu.com. nsadmin.magedu.com. (

                                               2015042201                    ;序列号

                                               2H                             ;刷新时间

                                               10M                            ;重试时间

                                               1W                             ;过期时间

                                               1D                             ;否定答案的TTL值

                                                           )在zone文件里,“;”表示注释
复制代码

NS记录

• name: 当前区域的名字

• value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.

• 注意:一个区域可以有多个NS记录

例如:    magedu.com.                  IN                                                  NS                          ns1.magedu.com.

      magedu.com.       IN                       NS             ns2.magedu.com.

• 注意: (1) 相邻的两个资源记录的name相同时,后续的可省略

                 (2) 对NS记录而言,任何一个ns 记录后面的服务器名字,都应该在后续有一个A记录

                 (3) 空格和@都代表当前zone名,如果自己手写注意以 “.” 结束。

A记录

• name: 某主机的FQDN,例如www.magedu.com.

• value: 主机名对应主机的IP地址

例如:

www.magedu.com.               IN                A                          1.1.1.1
www.magedu.com.               IN                A                          2.2.2.2
*.magedu.com.                 IN                A                          5.5.5.5

注意:一般NS记录后必须跟一个A记录;A记录前主机名后跟ip地址;*代表泛域名

PTR

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:inaddr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa. value: FQDN

例如:

4.3.2.1.in-addr.arpa.         IN              PTR                        www.magedu.com.

如1.2.3为网络地址,可简写成:

4                                  IN                 PTR                             www.magedu.com.

• 注意:网络地址及后缀可省略;主机地址依然需要反着写

二、dns实验操作

实验一:在centos7上部署dns实现对magedu.com的正向解析及对192.168.248的反向解析

1、安装bind

[root@localhost(wsy) ~]# yum -y install bind

2、修改etc下named.conf文件

复制代码
[root@localhost(wsy) ~]#vim /etc/named.conf

listen-on port 53 { any; };

allow-query     { any; };

……
include "/etc/named.magedu.zones";
复制代码

3、修改etc下关于域名的文件

复制代码
[root@localhost(wsy) ~]#cp -p /etc/named.rfc1912.zones /etc/named.magedu.zones   -p 表示权限不变
[root@localhost(wsy) ~]#vim /etc/named.magedu.zones
     zone "magedu.com" IN {
             type master;
             file "magedu.com.zone";
     };

     zone "248.168.192.in-addr.arpa" IN {
             type master;
             file "192.168.248.zone";
     };     
复制代码

4、启动named服务

[root@localhost(wsy) ~]#named-checkconf

5、进入var目录并修改相应zone文件

复制代码
[root@localhost(wsy) ~]#cd /var/named/
[root@localhost(wsy) ~]#cp -p named.localhost magedu.com.zone
[root@localhost(wsy) ~]#vim magedu.com.zone
$TTL 1D
     @       IN SOA  @ admin.magedu.com. (
                                             0       ; serial
                                             1D      ; refresh
                                             1H      ; retry
                                             1W      ; expire
                                             3H )    ; minimum
     magedu.com.                NS   ns1.magedu.com.
     ns1.magedu.com.    3600 IN A    192.168.248.7
     www                        A    192.168.248.6
[root@localhost(wsy) ~]#cp -p magedu.com.zone 192.168.248.zone
[root@localhost(wsy) ~]#vim 192.168.248.zone
$TTL 1D
     @       IN SOA  magedu.com. admin.magedu.com. (
                                             0       ; serial
                                             1D      ; refresh
                                             1H      ; retry
                                             1W      ; expire
                                             3H )    ; minimum
     @          NS   ns1.magedu.com.
     7                          PTR  ns1.magedu.com.
     6                          PTR  www.magedu.com.

[root@localhost(wsy) ~]#named-checkzone magedu.com /var/named/magedu.com.zone
zone magedu.com/IN: loaded serial 0
OK
[root@localhost(wsy) ~]#named-checkzone 153.168.192.in-addr.arpa /var/named/192.168.248.zone
zone 248.168.192.in-addr.arpa/IN: loaded serial 0
OK
[root@localhost(wsy) ~]#rndc reload
复制代码

6、客户端测试

[root@localhost(wsy) ~]#dig -t ns magedu.com @192.168.248.7

实验二:动态dns更新

1、进入etc目录下named.conf文件修改配置文件,允许更新。

复制代码
[root@localhost(wsy) ~]#vim /etc/named.conf
Allow-update {any;};
[root@localhost(wsy) ~]#chmod770 /var/named
[root@localhost(wsy) ~]#setsebool -P named_write_master_zones on
[root@localhost(wsy) ~]#nsupdate
>server 127.0.0.1
>zone magedu.com
>update add ftp.magedu.com 88888 IN A 8.8.8.8
>send
>update delete www.magedu.com A
复制代码

测试:

[root@rhel5 ~]#dig ftp.magedu.com @127.0.0.1
[root@localhost(wsy) ~]#ll /var/named/magedu.com.zone.jnl

实验3:DNS的主从

1、安装bind

[root@localhost(wsy) ~]#yum -y install bind

2、修改etc下配置文件

[root@localhost(wsy) ~]#vim /etc/name.conf
allow-transfer { 192.168.248.6; };

3、配置从dns

[root@rhel5 ~]#vim /etc/name.rfc1912.zones
     zone "magedu.com" IN {
         type slave;
         masters { 192.168.248.7; };
         file "slaves/magedu.com.ZONE";
     };

4、重启服务

[root@localhost(wsy) ~]#service named restart

5、测试设置是否成功

[root@rhel5 ~]#dig -t axfr magedu.com @192.168.248.7

实验四:子域委派,部署magedu.com   zz.magedu.com  bj.magedu.com

子域委派一般分为三种方式:
1.子域和父域在一个文件里。

2.子域和父域在同一个机器上。不用委派,直接创建

3.子域和父域不在同一个机器上,要子域委派

在这里以第三种方式来做实践操作。

1、在父dns上做委派

[root@localhost(wsy) ~]#vim /etc/named.conf
dnssec-enable no;
dnssec-validation no;

2.修改var/named下文件里边部署

[root@localhost(wsy) ~]#vim /var/named/magedu.com.zone
zz                      NS      ns.zz.magedu.com.
bj                      NS      ns.bj.magedu.com.
ns.zz                   A       192.168.248.6
ns.bj                   A       172.18.250.42

3、在zz对应主机上修改相应配置

复制代码
[root@centos6(wsy) ~]#vim /etc/named.rfc1912.zones
     zone "zz.magedu.com" IN {
             type master;
             file "zz.magedu.com.zone";
     };
[root@centos6(wsy) ~]#vim /var/named/zz.magedu.com.zone 
     $TTL 1D
     @       IN SOA  ns.zz.magedu.com. admin.zz.magedu.com. (
                                             0       ; serial
                                             1D      ; refresh
                                             1H      ; retry
                                             1W      ; expire
                                             3H )    ; minimum
                   NS      ns.zz.magedu.com.
     ns            A       192.168.153.6
     www           A       2.2.2.2
[root@centos6(wsy) ~]#service named restart
复制代码

4、在bj对应主机上配置

复制代码
[root@centos6(wsy) ~]# vim /etc/named.rfc1912.zones
zone "bj.magedu.com" IN { type master; file "bj.magedu.com.zone"; }; [root@rhel5 ~]#cp -p named.localhost bj.magedu.com.zone [root@rhel5 ~]#vim bj.magedu.com.zone $TTL 1D @ IN SOA ns.bj.magedu.com. admin.bj.magedu.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.bj.magedu.com. ns A 172.18.251.125 www A 3.3.3.3 [root@rhel5 ~]#service named restart
复制代码

实验五:设置转发dns

only: 本机有的结果优先,本机查不到,则交给转发。转发也查不到,则结束,报告查不到。
first: 本机有的结果优先,本机查不到,则交给转发。转发查不到(包含转发自己的以及转发迭代的),则本机再迭代。

1、全局转发

复制代码
[root@localhost(wsy) ~]#vim /etc/named.conf
options {
     ……
     forward only|first;默认是first
     forwarders { x.x.x.x; };
     ……
};
复制代码

2、特定区域转发

zone "mage.com" {
         type forward;
         forwarders { 192.168.248.12; };
};

实验六:设置不同区域记录返回不同结果view(设置view时需要把zone文件写出来)

1、修改配置文件

复制代码
[root@localhost(wsy) ~]#vim /etc/named.conf
view bjview {
     match-clients { beijing; };
     include "/etc/named.bj.zones";
};
view zzview {
     match-clients { zhengzhou; };
     include "/etc/named.zz.zones";
};
复制代码

2、分别编辑对应的域文件

复制代码
[root@localhost(wsy) ~]#vim /etc/named.bj.zones
zone "example.com" IN {
         type master;
         file "example.com.zone";
     };
[root@localhost(wsy) ~]#vim /etc/named.zz.zones
     zone "example.com" IN {
         type master;
         file "example.com.ZONE";
     };
复制代码

3、编辑var下zone文件

复制代码
[root@localhost(wsy) ~]#vim /var/named/example.com.zone
     $TTL 1D
     @    IN SOA    ns.example.com. rname.invalid. (
                         0    ; serial
                         1D    ; refresh
                         1H    ; retry
                         1W    ; expire
                         3H )    ; minimum
                  NS    ns.example.com.
       ns         A    192.168.248.110
       www        A    100.100.100.100
[root@localhost(wsy) ~]#vim /var/named/example.com.ZONE
$TTL 1D
@    IN SOA    ns.example.com. rname.invalid. (
                     0    ; serial
                     1D    ; refresh
                     1H    ; retry
                     1W    ; expire
                     3H )    ; minimum
              NS   ns.example.com.
ns            A    192.168.248.110
www           A    200.200.200.200
复制代码

其实dns相关的实验操作还有很多,不过基本操作也就大致如此,我们可以基于这些基本操作实现多台机器之间主从设置,以及子域父域等相关操作,这里我就不做过多展示了。

原文地址:https://www.cnblogs.com/liuhongru/p/11058310.html