DNS :
功能
正向解析:根据域名查找对应IP地址
反向解析:根据IP地址查找对应的域名
DNS端口:TCP53端口用于连接DNS服务器
UDP53端口用于解析DNS
域名的结构
是一种树形结构 以根域. 为起点 每个域之间用” . “来间隔
DNS域名解析工作原理:
客户端会先讲DNS解析请求发送给本地缓存域名服务器 如果本地缓存域名服务器有相关记录则直接返回给服务器 否则讲请求发送给根域服务器进行解析 根域服务器会根据域名的*域再将DNS解析请求委派给相对应的*域服务器进行解析 *域服务器也会根据域名的二级域或子域再讲DNS解析请求委派给 相对应的二级域或子域的服务器进行解析 最后子域服务器会根据域名的主机名解析出响应的IP地址 再返回给本地缓存域名服务器和客户端
DNS域名解析查询方式:
1.递归查询:本地域名服务器先将DNS解析请求发送给根域名服务器 根域名服务器再将解析请求转发给相对应的*域名服务器 *域名服务器再将解析请求转发给相对应的二级域名或子域名服务器 最后子域名服务器会根据域名的主机名解析出响应的IP地址后 再逐层返回给本地域名服务器
总结:一探到底逐层返回
2.迭代查询:本地域名服务器先将DNS解析请求发送给根域名服务器 根域名服务器再返回响应并告知本地服务器去找相对应的*域 本地域名服务器再将DNS请求寻找相对应的*域服务器 *域服务器响应并告知本地服务器去找相对应的二级域或子域 本地服务器讲DNS请求寻找对应的子域或者二级域 最后子域名或二级域名服务器得到响应解析出IP地址并返回本地域名服务器
总结:次次寻找都有回应
根据域名查找IP地址的方法: 先使用本机本地的hosts文件查找相关记录 再使用DNS服务进行解析
实验正向解析:
先初始化操作
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
然后yum安装 bind
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# yum install -y bind
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 bind.x86_64.32.9.11.4-26.P2.el7_9.9 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
bind x86_64 32:9.11.4-26.P2.el7_9.9 ren1 2.3 M
事务概要
================================================================================
安装 1 软件包
总下载量:2.3 M
安装大小:5.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 32:bind-9.11.4-26.P2.el7_9.9.x86_64 1/1
验证中 : 32:bind-9.11.4-26.P2.el7_9.9.x86_64 1/1
已安装:
bind.x86_64 32:9.11.4-26.P2.el7_9.9
完毕!
然后cd进到这个目录然后修改三个配置文件
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
以此修改第二个,第四个第九个配置文件
第一个配置文件
vim /etc/named.conf
options {
listen-on port 53 { any }; #any表示监听所有地址
#listen-on-v6 port 53 { ::1; }; #ipv6z我们现在用不到直接注释
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; #允许那些客户端能够访问
recursion yes; #表示递归查询
修改第四个配置文件
vim /etc/named.rfc1912.zones
zone "localhost.localdomain" IN {
type master; #代表组域名服务器
file "named.localhost"; #域名解析数据文件放在那个文件
allow-update { none; }; #是否允许更新
然后我们需要再中间插入几行命令
zone "ren1.com" IN { #名字自取
type master;
file "ren1.com.zone";
allow-update { none; };
}
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN
#表示解析ipv6
{
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
}; ##上面几行表示方向解析
然后
$TTL 1D #代表生命周期
@ IN SOA @ rname.invalid. ( #@代表域名 rname.invalid代表管理员邮箱
soa代表主从域名服务器
0 ; serial
1D ; refresh#刷新时间
1H ; retry#
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1 #a代表解析记录
AAAA ::1
NS ren1.com.
A 192.168.80.66
www IN A 192.168.80.67
mail IN A 192.168.80.68
news IN A 192.168.80.69
ftp IN CNAME www
* IN A 192.168.80.70
~
#IN 代表正向解析
*代表除了上面的域名 其他的所有域名都解析成一个地址
[root@localhost Packages]# cd /var/named/
[root@localhost named]# ll
总用量 16
drwxrwx---. 2 named named 6 2月 24 2022 data
drwxrwx---. 2 named named 6 2月 24 2022 dynamic
-rw-r-----. 1 root named 2253 4月 5 2018 named.ca
-rw-r-----. 1 root named 152 12月 15 2009 named.empty
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 6 2月 24 2022 slaves
[root@localhost named]# cp -p named.localhost ren1.com.zone
然后修改[root@localhost named]# vim ren1.com.zone这个文键
然后重启配置
[root@localhost ~]# systemctl start named
[root@localhost ~]# systemctl status named.service^C
[root@localhost ~]# ^C
[root@localhost ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
这时候重新开一个虚拟机