DNS服务实验
该文章将介绍DNS服务的正向和反向解析实验、主从实验、转发服务器实验以及Web解析实验
正向解析实验:将域名解析为对应的IP地址
反向解析实验:将IP地址解析为对应的域名
主从实验:主服务器区域数据文件发送给从服务器,从服务器通过区域传输(Zone Transfer)机制从服务器获取最新的数据
转发服务器实验:接收客户端的请求,并将这些请求转发到指定的目标服务器
Web解析实验:通过配置DNS服务器,将域名解析为对应的Web服务器IP地址,实现用户通过域名访问Web服务的过程
本篇文章目录
安装软件包(准备工作)
实验部分
正向解析实验
反向解析实验
主从实验
转发服务器实验
Web解析实验
安装软件包(准备工作)
[root@Jian ~]# dnf install bind -y
安装后,该软件包有个配置文件/etc/named.conf
查看该配置文件的相关信息
[root@Jian ~]# ll /etc/named.conf
-rw-r-----. 1 root named 1722 Sep 20 2023 /etc/named.conf
查看named服务的运行状态
[root@Jian ~]# systemctl status named
○ named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; preset: disabled)
Active: inactive (dead)
注意:该配置文件名称和软件不一样,服务名称和软件也不一样
查看配置文件里面的内容
[root@Jian ~]# vim /etc/named.conf
option里重要的是listen-on和directory
把zone留下,剩下的东西如下所示
options {listen-on port 53 { 127.0.0.1; };directory "/var/named";
};
zone "." IN {type hint;file "named.ca";
};
options 选项
DNS服务默认的端口——UDP53号端口(本地的IP地址)
注意:IP地址是对外提供服务的IP,127.0.0.1是一个环回地址只能在本机进行使用
directory定义了一个目录,用于保存正向解析文件和反向解析文件
zone区域,例如:zhangsan.com
. 根
type 该区域的类型
file 解析的文件
解析文件named.ca
“.”的字段是区域/主机名,红色显示字段的是超时时间,IN字段是关键字,NS(nameserver),“名称服务器”“DNS服务器”,NS字段是记录类型,最后一个字段是纯正的主机名
实验部分
正向解析实验
配置文件书写
[root@Jian ~]# vim /etc/named.conf
[root@Jian ~]# cat /etc/named.conf
options {listen-on port 53 { 192.168.72.136; };directory "/var/named";
};
zone "." IN {type hint;file "named.ca";
};
zone "haha.com" IN {type master;file "named.haha";
};
主服务器:master
从服务器:slave
注意:文件名可以随便写,但是最后在目录底下应该有对应的文件
在DNS服务器上配置正向解析区域文件
1D 变量表示一天的意思
@ 引用区域“haha.com”
SOA 起始授权记录 定义一个区域的授权信息
[root@Jian ~]# cd /var/named
[root@Jian named]# vim named.haha
[root@Jian named]# cat named.haha
$TTL 1D@ IN SOA @ admin.haha.com.(01111)IN NS ns.haha.com.IN MX 10 mail.haha.com.
ns IN A 192.168.72.136
mail IN A 192.168.72.141
www IN A 192.168.72.142
ftp IN CNAME www
重启服务
[root@Jian named]# systemctl restart named
正向解析
[root@Jian named]# dig -t NS haha.com @192.168.72.136
[root@Jian named]# dig -t MX haha.com @192.168.72.136
[root@Jian named]# dig -t A www.haha.com @192.168.72.136
[root@Jian named]# dig -t CNAME ftp.haha.com @192.168.72.136
反向解析实验
配置文件书写
[root@Jian named]# vim /etc/named.conf
[root@Jian named]# cat /etc/named.conf
options {listen-on port 53 { 192.168.72.136; };directory "/var/named";
};
zone "." IN {type hint;file "named.ca";
};
zone "haha.com" IN {type master;file "named.haha";
};
zone "72.168.192.in-addr.arpa" IN {type master;file "named.fanxiang";
};
在DNS服务器上配置反向解析区域文件
[root@Jian named]# vim /var/named/named.fanxiang
[root@Jian named]# cat /var/named/named.fanxiang
$TTL 1D@ IN SOA @ admin.haha.com.(01111)IN NS ns.haha.com.IN MX 10 mail.haha.com.
ns IN A 192.168.72.136
136 IN PTR ns.haha.com.
141 IN PTR mail.haha.com.
142 IN PTR www.haha.com.
142 IN PTR ftp.haha.com.
重启服务
[root@Jian named]# systemctl restart named
反向解析
[root@Jian named]# dig -x 192.168.72.136 @192.168.72.136
[root@Jian named]# dig -x 192.168.72.141 @192.168.72.136
[root@Jian named]# dig -x 192.168.72.142 @192.168.72.136
主从实验
主:关闭防火墙
[root@master ~]# systemctl stop firewalld
加上日志:[root@master ~]# tail -f /var/log/messages
从设备:
[root@slave ~]# vim /etc/named.conf
[root@slave ~]# cat /etc/named.conf
options {listen-on port 53 { 192.168.72.135; };directory "/var/named";
};
zone "haha.com" IN {type slave;masters { 192.168.72.136; };file "slaves/named.haha";
};
zone "72.168.192.in-addr.arpa" IN {type slave;masters { 192.168.72.136; };file "slaves/named.fanxiang";
};
重启服务
[root@slave ~]# systemctl restart named
主上面能够显示日志
从机上面多出一些相应的文件
[root@slave ~]# ll /var/named/slaves/
total 8
-rw-r--r--. 1 named named 521 Apr 23 17:10 named.fanxiang
-rw-r--r--. 1 named named 366 Apr 23 17:10 named.haha
注意:从服务器的这两个文件是不可以自己去编辑,所以服务器防止这样做会将其加密
[root@slave ~]# vim /var/named/slaves/named.haha
将从的防火墙关闭,主机可以对其进行解析操作
[root@slave ~]# systemctl stop firewalld
[root@master ~]# dig -t A mail.haha.com @192.168.72.135
注意:主从复制使用的是TCP协议,没有使用UDP传数据
转发服务器实验
需求:135不对外提供查询服务,所有的请求全部传给136
[root@slave ~]# vim /etc/named.conf
[root@slave ~]# cat /etc/named.conf
options {listen-on port 53 { 192.168.72.135; };forward only;forwarders { 192.168.72.136; };directory "/var/named/";
};
重启服务[root@slave ~]# systemctl restart named
解析:
通过解析可以判断是否能够转发成功
[root@slave ~]# dig -t A www.haha.com @192.168.72.135
[root@slave ~]# dig -t NS haha.com @192.168.72.135
Web解析实验
添加一个192.168.72.142的地址
[root@master ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.72.142/24
[root@master ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path:/org/freedesktop/NetworkManager/ActiveConnection/3)
开启Nginx服务写入显示内容
[root@master ~]# systemctl start nginx
[root@master ~]# cd /usr/share/nginx/html/
[root@master html]# echo hello > index.html
[root@master html]# curl localhost
hello
[root@master html]# curl 192.168.72.142
hello
通过地址访问页面会失败
[root@master html]# curl www.haha.com
添加DNS服务网址
[root@master ~]# nmcli connection modify ens160 ipv4.dns 192.168.72.135
[root@master ~]# nmcli connection up ens160
[root@master html]# nmcli connection show ens160 | grep DNS
现在就能通过网址访问内容
[root@master html]# curl www.haha.com
hello #访问成功