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* root@172.25.254.74:/mnt/ //将钥匙和锁发送给远程主机
root@172.25.254.74’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 //检测