Linux学习 DNS服务

DNS高速缓存服务器

一、DNS高速缓存

(一)服务端

1.设置网络:ifconfig   eth0  172.25.254.109/24

 systemctl   start   network

2.systemctl   stop   firewalld

3.配置yum 源指向

  yuminstall   bind.x86_64 -y

4.systemctl   start named

5.修改主配置文件

初始内容如下:

vim   /etc/named.conf   #修改主配置文件

options {

       listen-on port 53 { any; };  #监听任何主机的端口

       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     {any; };  #允许任何客户端访问

6.systemctlretart named   #一定要重启服务

7.在服务器端可以使用如下命令查看服务是否开放

  netstat   antlpe  |  grep  named

 

(二)测试端配置

1.编辑/etc/resolve.conf 解析文件,解析地址指向服务端

2.使用如下命令,查看该服务器是否可以解析

  dig网址   #查看该网址的解析地址

(三)高速缓存

图中可以看到解析结果中显示服务失败,因为该服务器中没有该网址的A记录,因此需要继续修改主配置文件,给出更高级的服务器端口。在文件加入命令

 forwarders {172.25.254.250;};  #查找更高级的DNS解析服务器

  systemctl  retart   named   #一定要重启服务

先在一个客户端访问某一网址,看解析时间

再用同一网段的另一客户端访问同一网址,发现解析时间变短甚至为0

二、搭建权威DNS

(一)修改配置文件

1.修改主配置文件

 vim   /etc/named.conf

  zone"." IN {       #该域名所包含的内容

       type hint;   #类型

       file "named.ca";   #DNS域名解析表

};

include"/etc/named.rfc1912.zones";  #DNS表格位置

include "/etc/named.root.key";

 

如主配置文件中格式,先将需要建立的DNS表格写在字配置文件/etc/named.rfc1912.zones中

2.vim  /etc/named.rfc1912.zones 

添加如下内容

zone "westos.com" IN {          #"westos.com"将要建立的域名

       type master;            #类型

       file  "westos.com.zone";#域名解析表在文件/var/named/westos.com.zone中

       allow-update { none; };  #不允许更新

};

注意:为保持文件权限及文件中表格格式一致,可以用如下方式新建westos.com.zone。

 cd/var/named

 ll   #可以查看文件权限

cp -p name.local westos.com.zone   #新建文件,文件内容格式与.name.local中格式相同

3.vim  /var/named/westos.com.zone  #写域名解析表

原内容显示如下

$TTL 1D  #该文件内容即该解析表格可以维持使用的有效时长是一天

@ ##该符号表示域名       IN SOA  @  rname.invalid. (     #授权起始,

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

       NS      @ 

       A       127.0.0.1

       AAAA    ::1

 

修改后内容显示如下:

$TTL 1D    #表示该表格可以维持使用一天

@      IN SOA  dns.westos.com.rname.invalid. (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

       NS      dns.westos.com.

dns    A       172.25.254.109   #A记录

www   A       172.25.254.200

其中:@ 表示westos.com

      Root.westos.com  #该文件维护的用户

注意:在编辑时若域名后不加. 时,系统将会在域名后自动补齐westos.com;加 . 则表示不再自动补齐。

如:dns 表示dns.westos.com

www 表示www.westos.com

dns.westos.com. 表示dns.westos.com,不再自动补齐


3.systemcl  restart   named   #重起服务

4检测:dig www.westos.com   #在服务端或客户端均可检测


三、CNAME域名规范

1.vim  /var/name/westos.com.zone   #编辑域名解析表

$TTL 1D

@      IN SOA  dns.westos.com.rname.invalid. (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

       NS      dns.westos.com.

dns             A       172.25.254.109

www            A       172.25.254.202

edu         CNAME   edu.cn.westos.com. #edu.cn.wetos.com并不是edu.westos.com的规范域名

edu.cn        A       172.25.254.209    #edu.cn.wetos.com的A记录文件位置

2.systemctl  restart  named   #重启服务

3.检测:dig  deu.westos.com   #客户端或服务端执行均可


四、MX邮件解析记录

1.vim   /var/name/westos.com.zone   #编辑域名解析表

在解析表在中增加内容:

westos.com.    MX 1   172.25.254.109.   #westos.com邮箱解析记录在172.25.254.109这台主机中

其中““1”表示优先级。

2.客户端测试:dig   -t    mx westos.com

注意: vim   /var/named/westos.comz.zone

 westos.com.  A  172.25.254.100.   #解析地址一定要加点,否则重启服务后该地址会自动补齐westos.com

五、DNS多方向解析--视图方式

1.服务端添加网卡eth1,并设置网络

vim   /etc/sysconfig/network-scripts/eyh1  #设置新增网卡的IP地址

sytemctl   restart   network


2.修改主配置文件先注释掉如下解析方式

/*zone "." IN {

       type hint;

       file "named.ca";

};

 

include"/etc/named.rfc1912.zones";

include "/etc/named.root.key";

*/

添加内容如下:实现解析两个网段

view clientnet {

                match-clients {172.25.9.0/24;};   #与172.25.9.0/24网段的主机进行匹配

              zone "." IN {

              type hint;

              file "named.ca";

                  };

       include"/etc/named.rfc1912.inter";  #该段网址的解析内容包含在/etc/name.rfc1912.inter文件中

              };

view localnet {

                match-clients {172.25.254.0/24; };  #与该网段主机进行匹配

                zone "." IN {

                 type hint;

                file "named.ca";

                };

       include"/etc/named.rfc1912.zones";  #该段网址的解析内容包含在/etc/name.rfc1912.inter文件中

               };

3.cp  -p   /var/named/westos.com.zone   /var/named/westos.com.inter   #使用cp -p 命令复制文件内容,避免文件权限改变

 cp  -p  /etc/named.rfc1912.zones   /etc/named.rfc1912.inter  #新建文件

4.vim   /etc/named.rfc1912.inter

 

 vim  /var/named/westos.com.inter  


5.systemctl  restart  named  #重启服务

6.客户端172.25.9.10   #172.25.9.0/24网段


 vim  /etc/resolve

  namesever  172.25.9.109


7.测试命令:dig  域名

 

8.在172.25.254.0/24网段的客户端测试

 vim  /etc/resols.conf    #先修改解析文件

 nameserver  172.25.254.109

  :wq


六、反向解析--由IP得到域名

1.vim /etc/named.rfc1912.zone

修改第43行,原内容显示如下

43 zone "0.in-addr.arpa" IN{ 

 44        type master;

 45        file "named.empty";

 46        allow-update { none; };

 47};

修改后内容如下显示:

43 zone "254.25.172.in-addr.arpa"IN {  #反向解析IP地址,注意书写顺序

 44        type master;

 45        file "westos.com.ptr"; #反向解析文件类型为ptr

 46        allow-update { none; };

 47};

2.cp  -p  /var/named/named.loopback   westos.com.ptr

 

3.vim   /var/named/nwestos.com.ptr

4.systemctl  restart  named  #重启服务

5.使用同一网段的客户端测试  #172.25.254.0/24

 dig  -x  172.25.254.111

七、DNS更新

(一)客户端更新解析域名

  先在服务器端执行如下命令

1.getsebool -a | grep named  #查看服务

 setsebool -P named_write_master_zones 1  #打开服务

2.cp -p /var/named/westos.com.zone/mnt/westos.com.zone   #备份

 chmod  770  /var/named

3.vim /etc/named.rfc1912.zones

 zone "westos.com"IN {

              type master;

              file "westos.com.zone";

              allow-update {172.25.254.209;}; #允许指定的主机去更新DNS域名解析表

              };

4.systemctl restart named

5.客户端测试,使用命令nsupdate

(1)添加域名解析

[root@localhost ~]# nsupdate

> server 172.25.254.109

> update add hello.westos.com 86400 A172.25.254.222

#add 表示添加;

#hello.westos.com  新增的域名

#86400 即TTL 1D, 表示该有效期保持一天

#A 172.25.254.222  A记录文件,解析地址是172.25.254.222

> send

在服务器端重启服务并查看是否有更新

systemctl   restart   named

ll   /var/named/

cat   /var/named/westos.com.zone

(2)删除域名解析

[root@localhost ~]# nsupdate

> update delete hello.westos.com  #删除该域名解析

> send


在服务器端重启服务并查看是否有更新

systemctl restart  named

ll  /var/named/

cat  /var/named/westos.com.zone

(二)在服务端恢复更新

1.rm   -fr   /var/named/westos.*  #删除更新后所生成的文件

2.cp   -p    /mnt/westos.com.zone    /var/named/westos.com.zone

3.systemctl   restart    named 

八、加密更新

1.增加key,可以先查看系统默认生成的key文件格式,根据该格式来生成key文件

cat    /etc/rndc.key   #查看系统默认生成的key文件

其中 -a    #加密类型,系统默认类型是hmac-md5

        -b    #密码长度

        -n    #用户

cd  /mnt

dnssec-keygen  -a  HMAC-MD5 -b  256  -n  HOST  westoskey   #钥匙名

ls  #查看生成的钥匙及加密字符文件


注:在执行生成westoskey这条命令时,若westoskey 不能及时生成,则可以任意敲键盘或移动鼠标来完成命令。

3.编辑key 的配置文件

cp   -p   /etc/rndc.key    /etc/westos.key   #以系统生成的默认加密格式生活曾加密文件

vim    /etc/westos.key

[root@localhost ~]# cat  /etc/westos.key

key "westoskey" {     # "key名称"

       algorithm   hmac-md5;  #加密类型是hmac-md5

       secret    "加密字符串";  #生成的加密字符,即公钥

        };


4.设置DNS更新权限

(1)vim   /etc/named.conf

    42行以下的位置添加如下命令:

include  "/etc/westos.key"


(2)vim   /etc/named.rfc1912.zones

修改域名解析内容,显示如下

  zone "westos.com" IN {

       type master;

       file "westos.com.zone";

       allow-update {key westoskey;};  #指定有公钥文件的主机可以更新

       };

(3)重启服务

4.客户端无公钥时测试,更新失败

5.服务端分配钥匙

ls /mnt

scp   /mnt/Kwestoskey.*    root@客户端ip:/mnt/

如:scp   /mnt/Kwestoskey.*  [email protected]:/mnt/

6.有公钥文件的客户端测试,命令格如下:

nsupdate   -k   /mnt/Kwestos.private

九、DNS动态解析

  当域名的解析地址是动态IP时,应允许dhcpd服务器去更新

(一)服务端

1.yum install  dhcp  -y

2.[root@localhost ~]# cp  -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcp.conf

  #生成配置文件,系统会提醒是否覆盖原配置文件,输入y

3.vim /etc/dhcp/dhcp.conf

删除36之后的内容以及27、28行的内容,修改后文件内容显示如下:

[root@localhost ~]# cat/etc/dhcp/dhcpd.conf -n

    7    option domain-name"westos.com";  #域名westos.com

    8    option domain-name-servers172.25.254.109;  #dhcpd服务器主机IP

    10    default-lease-time 600;

   11    max-lease-time 7200;

   14    ddns-update-styleinterim;  #DNS动态更新格式

   22    log-facility local7;

   30    subnet 172.25.254.0 netmask255.255.255.0 {   #dhcp动态分配的IP地址的网段、子网掩码、

   31      range 172.25.254.30 172.25.254.40;     #分配的IP地址的范围

   32      option routers 172.25.254.250;     #分配的IP地址的网关

   33      }

   34           key westoskey {

   35             algorithm hmac-md5;

   36             secretYlWN2shjPdRIG98QBySfHLKncCnxHW+u88riAhIotpM=;

   37           };

   38

   39           zone westos.com. {    #指定更新的IP

   40             primary 127.0.0.1;  #回环接口:实现高效且安全地更新 

   41             key westoskey;      #westoskey更新127.0.0.1中的westos.com的域

42           }

4.重启dhcpd服务

systemctl start dhcpd

5.为实现更新westos.com域,则在/var/named/westos.com中一定不能有westos.com的域名解析

  设置完域名解析文件后,一定要重启named服务

 systemctl restart named

(二)客户端

1.更改主机名,格式:xxx.westos.com

2.vim  /etc/systconfig/network-scripts/eth0

 DEVICE=eth0

 BOOTPROT=dhcp

 ONBOOT=yes

3.systemctl  restart network

4.dig xxx.westos.com  #测试是否可以解析出主机名及该主机IP

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章