基于linux下dns域名解析服务

DNS

一个域名和IP地址相互映射的一个分布式数据库,它可以使用户更方便地访问互联网,而不用去记住能够被机器直接读取的IP数串。


DNS服务配置

实验准备:
2台虚拟机,一台作为dns服务器(172.25.254.174),提前配置好yum源;
另一台作为客户端进行访问测试;

首先,对服务端进行配置:
服务端

[root@localhost ~]# yum install bind -y //安装dns服务软件; -y不用与系统进行交互式访问,直接安装
[root@localhost ~]#systemctl start named  //开启服务(在启动过程中,因为加密字符不够,服务重启一直在等待,这时需要打开图形界面敲击键盘)
[root@localhost ~]#systemctl stop firewalld  //关闭防火墙

这里写图片描述

[root@localhost ~]# vim /etc/named.conf  ///编辑修改配置文件
     10  options {
     11     listen-on port 53 { any; };  //将之前默认ip改成any;控制named 侦听的ipv4地址
     12     listen-on-v6 port 53 { ::1; };
     13     directory       "/var/named";
     14     dump-file       "/var/named/data/cache_dump.db";
     15     statistics-file "/var/named/data/named_stats.txt";
     16     memstatistics-file "/var/named/data/named_mem_stats.txt";
     17     allow-query     { any; };    //将允许设置为any;控制那些客户端可以向DNS服务器询问信息
     18     forwarders { 172.25.254.74; };//包含DNS查询将转发至的名称服务器列表(而不是直接联系外部名称服务器;)
     32     dnssec-validation no;  //将yes设置为no

这里写图片描述
这里写图片描述

[root@localhost ~]# vim /etc/resolv.conf  //编辑本地解析文件
      search example.com
      nameserver 172.25.254.74
[root@localhost ~]# systemctl restart named  //重启服务
[root@localhost ~]# systemctl restart network //重启网络

这里写图片描述

客户端:

[root@localhost ~]# vim /etc/resolv.conf
     nameserver 172.25.254.174  //这里的ip是dns服务的主机ip
[root@localhost ~]# dig www.baidu.com  //测试:查询百度的ip信息

这里写图片描述


dns本地正向解析

[root@localhost named]# vim /etc/named.conf //将上一个实验的添加的forwards这一行注释
[root@localhost ~]# vim /etc/named.rfc1912.zones //编辑配置文件,增添这一段
    zone "star.com" IN {    
         type master;
         file "star.com.zone";
         allow-update { none; };
      };

/etc/named.conf 中内容为下图所示:
这里写图片描述
/etc/named.rfc1912.zones中增添的内容如下图所示:
这里写图片描述

[root@localhost ~]# cd /var/named  
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
//新建文件,修改文件
[root@localhost named]# cp -p named.localhost star.com.zone  
[root@localhost named]# vim star.com.zone  //编辑文件 ;其中,@   “”的内容 ;SOA 授权起始主机

这里写图片描述

[root@localhost named]# systemctl restart named //重启dns服务,若重启失败,仔细检查配置文件是否编辑正确
[root@localhost named]# vim /etc/resolv.conf  //修改dns解析地址,ip改为本地ip
     nameserver 172.25.254.174  
[root@localhost named]# dig hello.star.com  //本机测试

这里写图片描述
这里写图片描述
这里写图片描述

轮询

[root@localhost named]# vim star.com.zone

这里写图片描述

[root@localhost named]# systemctl restart named //重启服务
[root@localhost named]# dig www.star.com   // 测试

这里写图片描述
等待1~2s后,再次测试dig www.star.com会发现两个ip位置会调换;


dns本地反向解析

[root@localhost ~]# 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; };
[root@localhost ~]# vim /etc/named.rfc1912.zones 
        zone "254.25.172.in-addr.arpa" IN {  // 添加这一段;逆向输入域名
            type master;
            file "star.com.ptr";
            allow-update { none; };
        };

这里写图片描述
这里写图片描述

[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data     named.ca     named.localhost  slaves
dynamic  named.empty  named.loopback   star.com.zone
[root@localhost named]# cp -p named.loopback star.com.ptr  
[root@localhost named]# vim star.com.ptr //编辑反向解析文件

这里写图片描述
这里写图片描述

[root@localhost ~]# vim /etc/resolv.conf
    search example.com
    nameserver 172.25.254.174   
[root@localhost named]# systemctl restart named //重启服务
[root@localhost named]# dig -x 172.25.254.175  //测试

这里写图片描述


dns双向解析

服务端

[root@localhost ~]#cd /var/named
[root@localhost named]# cp -p star.com.zone star.com.inter //--p 是将文件属性一同复制
[root@localhost named]# vim star.com.inter //让其他主机看到在这个文件里的ip与域名的关系,主机看到的是star.com.zone真实存在的域名关系

这里写图片描述
这里写图片描述

[root@localhost named]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
[root@localhost named]# vim /etc/named.rfc1912.inter

这里写图片描述
在/etc/named.rfc1912.inter配置文件中添加这一段内容:
这里写图片描述
[root@localhost named]# vim /etc/named.conf //修改配置文件
修改文件内容为下图样式:
这里写图片描述

[root@localhost named]# systemctl retstart named //重启服务
[root@localhost named]# vim /etc/resolv.conf
    search example.com
    nameserver 172.25.254.174
[root@localhost named]# dig www.star.com  //本机测试

这里写图片描述
客户端

[root@foundation74 Desktop]# vim /etc/resolv.conf
    search example.com
    nameserver 172.25.254.174
[root@foundation74 Desktop]# dig www.star.com

这里写图片描述
对比两个图,我们可以发现,两台主机dig到的ip是不一样的,这样做的好处是保证另外一定的安全性,如果其他主机可以看到真是的域名和ip的关系,那企业的安全又如何保证呢?


dns集群

服务端

[root@localhost named]# vim /etc/named.conf //恢复主配置文件(将之前的注释删除,两个view注释,为了不影响后面的实验)

这里写图片描述

[root@localhost named]# vim /etc/named.rfc1912.zones

这里写图片描述

[root@localhost named]# systemctl restart named //重启服务

辅助dns端

[root@dns-slave ~]# yum install bind -y  //安装bind
[root@dns-slave ~]#systemctl start named  //开启dns服务
[root@dns-slave ~]#systemctl stop firewalld 
[root@dns-slave ~]#systemctl disable firewalld
[root@dns-slave ~]#vim /etc/named.conf

这里写图片描述
这里写图片描述

[root@dns-slave ~]#vim /etc/named.rfc1912.zones
zone "star.com" IN {
        type slave;
        masters { 172.25.254.174;};
        file "slaves/star.com.zone";
        allow-update { none; };
};
[root@dns-slave ~]#systemctl restart named

测试
在主dns端,修改/var/named/star.com.zone文件:
这里写图片描述
在辅助dns端,dig www.star.com,查看ip是不是修改后的:
这里写图片描述


客户端远程管理dns主机的dns记录(更新)

主dns端:

[root@localhost named]# cp -p star.com.zone /mnt/  //备份
[root@localhost named]# vim /etc/named.rfc1912.zones //修改配置文件
    zone "star.com" IN {
        type master;
        file "star.com.zone";
        allow-update { 172.25.254.74; }; //将原来的none修改为指定的客户端ip
        also-notify{172.25.254.247;};
    };

这里写图片描述

[root@localhost named]# systemctl restart named //重启服务
[root@localhost named]# chmod 770 /var/named   //加上权限,如果不加权限,更新会失败,查看日志信息,会有报错提醒
[root@localhost named]# ll -d /var/named
drwxrwx--- 5 root named 4096 May 23 05:44 /var/named

客户端(172.25.254.74)
这里写图片描述
这个是加了权限之后的效果图,没有出现报错信息,更新成功,dig www.star.com查看一下,可以看到111的那个ip
这里写图片描述
这里写图片描述
辅助dns端:
这里写图片描述


基于key的加密更新

在做这个实验之前,执行以下操作,再开始新的实验:
这里写图片描述
dns主机:

[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
star.com.zone
[root@localhost mnt]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST star 
Kstar.+157+40431   //加密

这里写图片描述
[root@localhost named]# vim /etc/named.rfc1912.zones
这里写图片描述
[root@localhost etc]# vim /etc/named.conf
这里写图片描述
[root@localhost etc]# systemctl restart named //重启服务
[root@localhost etc]# vim /etc/star.key
这里写图片描述
[root@localhost mnt]# scp Kstar* [email protected]:/mnt/ //将钥匙和锁发送给远程主机
[email protected]’s password:
Kstar.+157+40431.key 100% 48 0.1KB/s 00:00
Kstar.+157+40431.private 100% 165 0.2KB/s 00:00
这里写图片描述

远程客户端

[root@foundation74 mnt]# vim /etc/resolv.conf  
  search ilt.example.com example.com
  nameserver 172.25.254.174
[root@foundation74 mnt]# nsupdate -k Kstar.+157+40431.key

这里写图片描述
可以dig www.star.com查看ip信息,看是否已经更新.


dns智能解析(动态域名解析,又名花生壳)

服务端

[root@localhost mnt]# yum install dhcp -y  //安装dhcp服务软件
[root@localhost mnt]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost mnt]# vim /etc/dhcp/dhcpd.conf //编辑配置文件

这里写图片描述
这里写图片描述

[root@localhost mnt]# systemctl restart dhcpd  

客户端

[root@localhost mnt]# hostnamectl set-hostname linux.star.com //修改主机名
[root@localhost mnt]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 //修改静态ip为动态获取ip
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
    NAME=eth0
    ONBOOT=yes
##在这一步的时候,需要拔掉网线,再重启网络,获得ip
[root@localhost mnt]# systemctl retstart network //重启网络
[root@localhost mnt]# ifconfig   //查看是否动态获取到了ip

这里写图片描述
[root@localhost mnt]# dig linux.star.com //检测
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wangkana/article/details/80434835
今日推荐