目录
一、DNS
1.DNS简介
DNS是“域名系统”的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。
每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
2.域名结构
以http://www.sina.com.cn./为例
http://主机名.子域.二级域.顶级域 根域/
3.DNS 数据结构分布
树状结构最顶层称为根域,用“.”表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将com域的解析权委派给com域服务器,以后但凡根服务器收到以com结尾的域名解析请求,都会转发给com域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。
根域
位于域名空间最顶层,一般用一个 “.” 表示
顶级域
一般代表一种类型的组织机构或国家地区,
如 .net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)
二级域
用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,
如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn
子域
二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
主机
主机位于域名空间最下层,就是一台具体的计算机,如 www、mail都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名,是指包含了所有域的主机名,其中包括根域),也是这台主机在域名中的全名
4.DNS 域名解析方式
正向解析:根据域名查找对应的IP地 (域名 ----> IP)
反向解析:根据IP地址查找对应的域名(IP----->域名)
5.DNS域名解析工作原理
客户端会先将DNS解析请求发送给本地缓存域名服务器,如果本地缓存域名服务器有相关记录则直接返回给客户端,否则会将DNS解析请求发送给根域名服务器进行解析,根域名服务器会根据域名的顶级域再将DNS解析请求委派给相对应的顶级域名服务器进行解析,顶级域名服务器也会根据域名的二级域或子域再将DNS解析请求委派给相对应的二级域名或子域名服务器进行解析,最后子域名服务器会根据域名的主机名解析出相对应的IP地址,再返回给本地缓存域名服务器和客户端。
6.DNS的查询方式
递归查询:(简单来说就是将DNS解析请求一探到底,再逐层返回)
本地域名服务器先将DNS解析请求发送给根域名服务器,根域名服务器再将解析请求转发给相对应的顶级域名服务器,顶级域名服务器再将解析请求转发给相对应的二级域名或子域名服务器,最后子域名服务器会根据域名的主机名解析出相对应的IP地址后,再逐层返回给本地域名服务器。
迭代查询:(简单来说就是每次DNS解析请求都会用相对应的响应回复)
本地域名服务器先将DNS解析请求发送给根域名服务器,根域名服务器会返回响应消息给本地域名服务器并告知去找相对应的顶级域名服务器;
本地域名服务器再将DNS解析请求发送给相对应的顶级域名服务器,顶级域名服务器会返回响应消息给本地域名服务器并告知去找相对应的二级域名或子域名服务器
最后本地域名服务器将DNS解析请求发送给相对应的子域名服务器,子域名服务器会根据域名的主机名解析出相对应的IP地址后,直接返回给本地域名服务器
二、配置DNS
1.配置正向解析
关闭防火墙和核心防护
修改主配置 /etc/named.conf
listen-on port 53 { any; }; #设置监听IP地址和端口
allow-query { any; }; #设置允许访问DNS服务器的客户端
修改区域配置文件 /etc/named.rfc1912.zones
zone "xy101.com" IN { #正向解析配置
type master;
file "xy101.com.zone"; #设置区域数据文件名称
};
复制文件
cd /var/named
cp -p named.localhost xy101.com.zone
修改区域数据文件 /var/named/xy101.com.zone
vim xy101.com.zone
....
NS xy101.com. #设置当前区域名称
A 192.168.80.20 #设置DNS服务器IP地址
www IN A 192.168.80.30 #设置正向解析的主机名与IP地址的映射记录
xxx IN CNAME www #设置主机名 xxx 是 www 的别名
客户端设置DNS服务器地址 /etc/resolv.conf ,并验证 nslookup host dig
[root@localhost ~]# nslookup www.xy101.com
Server: 192.168.10.125
Address: 192.168.10.125#53
Name: www.xy101.com
Address: 192.168.10.130
[root@localhost ~]# nslookup news.xy101.com
Server: 192.168.10.125
Address: 192.168.10.125#53
Name: news.xy101.com
Address: 192.168.10.150
[root@localhost ~]# nslookup ftp.xy101.com
Server: 192.168.10.125
Address: 192.168.10.125#53
ftp.xy101.com canonical name = www.xy101.com.
Name: www.xy101.com
Address: 192.168.10.130
[root@localhost ~]# nslookup zhangsan.xy101.com
Server: 192.168.10.125
Address: 192.168.10.125#53
Name: zhangsan.xy101.com
Address: 192.168.10.200
[root@localhost ~]#
[root@localhost ~]# host www.xy101.com
www.xy101.com has address 192.168.10.130
[root@localhost ~]# host ftp.xy101.com
ftp.xy101.com is an alias for www.xy101.com.
www.xy101.com has address 192.168.10.130
[root@localhost ~]# dig www.xy101.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> www.xy101.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23378
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.xy101.com. IN A
;; ANSWER SECTION:
www.xy101.com. 86400 IN A 192.168.10.130
;; AUTHORITY SECTION:
xy101.com. 86400 IN NS xy101.com.
;; ADDITIONAL SECTION:
xy101.com. 86400 IN A 192.168.10.125
;; Query time: 0 msec
;; SERVER: 192.168.10.125#53(192.168.10.125)
;; WHEN: 四 4月 25 14:44:23 CST 2024
;; MSG SIZE rcvd: 88
[root@localhost ~]#
2.配置反向解析
[root@localhost named]# cp -p xy101.com.zone xy101.com.zone.local
[root@localhost named]# ll
总用量 24
drwxrwx---. 2 named named 23 4月 25 14:35 data
drwxrwx---. 2 named named 60 4月 25 14:35 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 10月 16 2023 slaves
-rw-r-----. 1 root named 294 4月 25 14:47 xy101.com.zone
-rw-r-----. 1 root named 294 4月 25 14:47 xy101.com.zone.local
[root@localhost named]#
反向解析配置,地址倒写
zone "80.168.192.in-addr.arpa" IN {
type master;
file "xy101.com.zone.local";
};
修改区域数据文件
vim xy101.com.zone.local
....
130 IN PTR www.xy101.com. #设置IP地址与域名的反向解析记录
客户端设置DNS服务器地址 /etc/resolv.conf ,并验证 nslookup host dig
[root@localhost ~]# nslookup www.xy101.com
Server: 192.168.10.125
Address: 192.168.10.125#53
Name: www.xy101.com
Address: 192.168.10.130
[root@localhost ~]# nslookup 192.168.10.130
130.10.168.192.in-addr.arpa name = www.xy101.com.
[root@localhost ~]# nslookup 192.168.10.140
140.10.168.192.in-addr.arpa name = mail.xy101.com.
[root@localhost ~]# nslookup 192.168.10.150
150.10.168.192.in-addr.arpa name = new.xy101.com.
[root@localhost ~]# host www.xy101.com
www.xy101.com has address 192.168.10.130
[root@localhost ~]# host 192.168.10.130
130.10.168.192.in-addr.arpa domain name pointer www.xy101.com.
[root@localhost ~]#
3.搭建主从域名服务器
主服务器配置
vim /etc/named.rfc1912.zones
zone "xy101.com" IN {
type master;
file "xy101.com.zone";
allow-transfer { 192.168.10.126; }; #允许从服务器同步数据文件
};zone "10.168.192.in-addr.arpa" IN {
type master;
file "benet.com.zone.local";
allow-transfer { 192.168.10.126; };
};
修改区域数据文件
修改反向配置文件
从服务器配置
修改从域名服务器区域配置文件,添加正、反区域配置
vim /etc/named.rfc1912.zones
zone "benet.com" IN {
type slave; ●类型为从区域
masters { 192.168.80.125; }; ●指定主服务器的IP地址
file "slaves/benet.com.zone"; ●下载的区域数据文件保存到slaves/目录下
};zone "80.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.80.125; };
file "slaves/benet.com.zone.local";
};
修改区域数据文件
主、从都重启动服务,并查看区域数据文件是否已下载成功
在客户端的域名解析配置文件中添加从DNS服务器地址
echo "nameserver 192.168.10.125" >> /etc/resolv.conf
测试
停止主服务器的服务,模拟主服务器故障
systemctl stop named
host 192.168.100.150
nslookup 192.168.10.150
总结
DNS域名解析工作原理
递归查询与迭代查询
搭建本地DNS服务器
搭建主从域名服务器