一、DNS:域名系统。
主要用来记录(登记)域名和IP地址的映射关系(对应关系)。
功能:域名解析。
正向解析:根据域名来解析出IP地址。域名----->IP
反向解析:根据IP地址来解析出域名。IP----->域名
------------------------------------------------------------------------------------------------------------
二、DNS解析过程
递归查询:服务器和客户机之间的查询过程。由主DNS服务器直接将域名对应的IP地址告诉给客户机。
迭代查询:DNS服务器和服务器之间的查询过程。由DNS服务器向互联网中的根域、顶级域、二级域依次发出查询请求,最终获取到域名所对应的IP地址的过程。
(注:图片来源于网络)
------------------------------------------------------------------------------------------------------------
三、DNS服务器的部署
1、软件
DNS服务器软件:bind、bind-chroot 服务名称:named
DNS客户端软件:bind-utils 可用命令:nslookup、dig、host
注:服务名称中的d是daemon守护进程的缩写。如named是name daemon的缩写。
2、网络拓扑结构:
DNS服务器:192.168.10.7(虚拟机)
DNS客户机:192.168.10.8(虚拟机) 、192.168.10.1(物理机)
3、DNS服务器安装:
0)、临时关闭安全防护功能
setenforce 0 #临时关闭selinux
getenforce #查selinux状态
systemctl stop firewalld #临时关闭firewalld
systemctl status firewalld #查firewalld状态
1)、查软件是否已安装
rpm -q bind
2)、安装软件
yum info bind #查bind软件简介
yum install -y bind #安装bind软件
rpm -q bind #查询结果如下
bind-9.9.4-37.el7.x86_64
3)、启动服务
systemctl restart named #重启named服务
systemctl enable named #设置named开机启动
4)、查状态
systemctl status named
lsof -i:53 或 netstat -atnlp | grep :53
5)、熟悉配置文件
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 #DNS远程管理的配置文件
/etc/rndc.key #远程管理的密钥文件
/etc/sysconfig/named
/var/named/named.ca #根域服务器的解析文件
/var/named/named.empty
/var/named/named.localhost #localhost域名正向解析配置文件(资源记录文件)
/var/named/named.loopback #127.0.0.0网段的反向解析配置文件(资源记录文件)
------------------------------------------------------------------------------------------------------------
案例:在192.168.10.7这台DNS服务器上注册登记域名baidu.com(正向解析),需要做如下管理操作。
1、修改/etc/named.conf主配置文件,将文件中所有的127.0.0.1和localhost修改成any。
cp -v /etc/named.conf{,.bak} 备份此配置文件
cp -v /etc/named.conf /etc/named.conf.bak (功能同上)
vim /etc/named.conf 修改后的结果如下(红字部分,共修改了4处),用man named.conf查帮助手册
options { 选项设置
listen-on port 53 { any; }; #IPv4监听端口和IP地址,多个IP用;分号分隔,any为监听所有的IP地址。默认是127.0.0.1。
listen-on-v6 port 53 { ::1; }; #IPv6监听端口和IP地址
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; }; #允许查询的域名,默认是localhost。
recursion yes; #允许递归查询
#dnssec-enable yes; #启用dns安全策略(本案例注释掉此行)
#dnssec-validation yes; #启用dns的valid安全策略(本案例注释掉此行)
bindkeys-file "/etc/named.iscdlv.key"; #密钥文件
managed-keys-directory "/var/named/dynamic"; #管理密钥的工作目录
pid-file "/run/named/named.pid"; #进程pid文件
session-keyfile "/run/named/session.key"; #会话密钥文件
};
logging { 日志设置
channel default_debug { #通道为debug调试模式
file "data/named.run"; #文件路径
severity dynamic; #模式为动态
};
};
zone "." IN { #根域设置
type hint; #类型为hint是根域,类型通常有hint、master主、slave从(辅助).
file "named.ca"; #文件名,文件位于/var/named目录中
};
include "/etc/named.rfc1912.zones"; #包含的子配置文件,这个区域配置文件
include "/etc/named.root.key"; #包含的密钥文件
重启服务:systemctl restart named
2、在/etc/named.rfc1912.zones文件最后添加baidu.com域名的配置信息。
cp -v /etc/named.rfc1912.zones{,.bak}
vim /etc/named.rfc1912.zones #添加如下内容
zone "baidu.com" IN { #声明区域名(或称为区域名设置)
type master; #类型为master主DNS服务器
file "baidu.com.zx"; #解析的资源配置文件,文件位于/var/named目录中
allow-update { none; }; #不允许update更新
allow-transfer { none;}; #允许传输。通常是指辅助DNS服务器的IP地址。
};
注:此步骤执行完毕后,并不能正常重启named服务,因为baidu.com.zx这个解析的资源配置文件还未创建。
3、在/var/named目录中创建baidu.com域名正向解析的资源记录配置文件baidu.com.zx。
cd /var/named
ls
cp -pv named.localhost baidu.com.zx #用-p实现带属性的复制(必须这样做)
vim baidu.com.zx #修改后的参考内容如下(红字为修改后的内容)
$TTL 1D
@ IN SOA dns1.baidu.com. 12700696.qq.com. (
2017112701 ; serial 版本序号,通常用年月日数字(必须是10位以内的数字)
1D ; refresh 刷新时间为1天
1H ; retry 重试时间为1小时
1W ; expire 过期时间
3H ) ; minimum 最小缓存时间(即TTL的最小值)
NS dns1.baidu.com. ;NS记录(Name Server),指定DNS服务器的名称
dns1 A 192.168.10.7 ;A记录(Address),指定域名、主机名对应的IP地址
AAAA ::1 ;IPv6的A记录
www A 192.168.10.7
ftp A 192.168.10.8
mail A 192.168.10.9
linux A 192.168.10.1
w CNAME www ;CNAME别名记录(canonical name),格式为 “别名 CNAME 原名”
ww CNAME www
web CNAME www
技巧:当正向解析配置文件中A记录左边的名称为空时,表明是同上。
内容解释:
$TTL 1D:最大生命周期为1天
@:是变量,代表named.rfc1912.zones文件中zone “baidu.com” IN定义的域名baidu.com.
SOA:是起始授权机构的缩写。用来指定本例的域名baidu.com是保存在dns1.baidu.com这台主机中。
12700696.qq.com:是DNS服务器管理员的邮箱。由于@在DNS解析配置文件中有特殊意义,所以邮箱的@必须用.来表示。
FQDN:全质量域名Full Quality Domain Name(即完整域名)。例:dns1.baidu.com.,最右边点是根域。
NS记录:记录域名信息保存在的哪台DNS服务器上
A记录:记录主机名对应的IP地址
CNAME:主机名的别名
PTR记录:指针记录,用来实现反向解析的,格式是“IP地址中的主机号 PTR 完整域名”
MX记录:邮件交换记录,用于指定邮件服务器。
4、重启named服务。
systemctl restart named
5、用dns客户端命令测试正向解析。
rpm -q bind-utils 查bind客户端软件
yum install -y bind-utils 安装
DNS解析的临时测试:
nslookup命令:nslookup 要解析的域名或IP DNS服务器IP地址
注:nslookup命令在linux和windows系统中都可以用。
例:nslookup www.baidu.com 192.168.10.7 #结果如下
Server: 192.168.10.7 #DNS服务器的IP
Address: 192.168.10.7#53 #DNS服务器的IP和端口号
Name: www.baidu.com #要解析的域名
Address: 192.168.10.7 #解析出来的域名的IP地址
例:执行如下解析测试命令,看解析结果是什么。
nslookup web.baidu.com 192.168.10.7
nslookup dns1.baidu.com 192.168.10.7
------------------------------------------------------------------------------------------------------------
nslookup交互式操作:
nslookup #打开nslookup软件,执行如下操作
server #查看网卡设置中当前的dns服务器IP
server 192.168.10.7 #临时设置dns服务器的IP
www.baidu.com #正向解析测试
web.baidu.com #正向解析测试
127.0.0.1 #反向解析测试
exit #退出软件
------------------------------------------------------------------------------------------------------------
host命令:host [选项] 域名 DNS服务器IP
例:host www.baidu.com 192.168.10.7
host web.baidu.com 192.168.10.7
------------------------------------------------------------------------------------------------------------
dig命令:dig @server domain query-type query-class
注: dig @服务器IP 域名 查询类型 网络等级
功能:发送域名查询信息包到域名服务器。
例:dig @192.168.10.7 www.baidu.com
------------------------------------------------------------------------------------------------------------
小结:
DNS正向解析要处理三个配置文件:
1、/etc/named.conf 主配置文件(主要改了4行代码,只需要改一次)
2、/etc/nemed.rfc1912.zones 区域配置文件(用来登记区域名称及其相关参数的设置)
3、/var/named/* 区域解析的资源记录文件(用来登记主机名和IP地址的对应关系)
注意:
1、解析的资源记录文件中如果是FQDN完整域名,必须把根域的.点写上,否则named服务运行不了。
2、NS记录对应的域名必须有对应的A记录。
DNS客户端解析测试命令:nslookup、dig、host
------------------------------------------------------------------------------------------------------------
案例:在192.168.10.7这台DNS服务器上登记sina.com这个域名的正向解析功能。其解析的资源记录文件中的主机名和IP地址自己随便定。最终用nslookup命令做正向解析测试。
第1步:vim /etc/named.rfc1912.zones #添加如下内容
zone "sina.com" IN { #声明区域名(或称为区域名设置)
type master #类型为master主DNS服务器
file "sina.com.zx"; #解析的资源配置文件,文件位于/var/named目录中
allow-update { none; }; #不允许update更新
allow-transfer { none;}; #允许传输。通常是指辅助DNS服务器的IP地址。
};
第2步:执行如下操作。
cd /var/named
cp -pv named.localhost sina.com.zx
vim sina.com.zx 修改后的内容如下
$TTL 1D
@ IN SOA dns1.sina.com. 12700696.qq.com. (
2017112701 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1.sina.com.
dns1 A 192.168.10.7
AAAA ::1
www A 1.1.1.1
ftp A 1.1.1.2
mail A 1.1.1.3
linux A 1.1.1.4
w CNAME www
ww CNAME www
web CNAME www
第3步:平滑重启named服务
systemctl reload named
第4步:解析测试
nslookup www.sina.com 192.168.10.7
nslookup web.sina.com 192.168.10.7
来源:CSDN
作者:coisini_覔
链接:https://blog.csdn.net/qq_34889607/article/details/78649152