DNS服务基础 特殊解析 DNS主从架构 DNS子域授权 DNS查询

· DNS服务基础
· 特殊解析
· DNS子域授权
· DNS主从架构

DNS服务基础

DNS 域名---->IP地址
在这里插入图片描述
DNS解析的作用
· 为什么需要DNS系统

  • www.baidu.com 与192.168.5.5,哪个更好记?
  • 互联网中的114查号台/导航员

· DNS服务器的功能

  • 正向解析: 根据注册的域名查找其对应的IP地址
  • 反向解析: 根据IP地址查找对应的注册域名,不常用
www.qq.com. 		浏览器会默认给域名的最后加上.
www.baidu.com.		浏览器会默认给域名的最后加上.
com后面的.就是根域名

· DNS服务器的分类:
根域名服务器(一共13台) 一级DNS服务器 二级DNS服务器 三级DNS服务器

· DNS的分布式结构
在这里插入图片描述

根域名:			.
一级域名:	  .cn(中国)  .us(美国)  .tw(台湾)  .hk(香港)  .com
二级域名:  .net.cn(中国运营商)	.com.cn(中国商业组织)	 .edu.cn(中国教育机构)
三级域名:	  .haha.com.cn		.sb.com.cn

完全合格的主机名(FQDN): 站点名 + 注册的域名
www.haha.com.cn		

DNS域名管理

· IANA,互联网数字分配机构

  • Internet Assigned Numbers Authority
  • 整个域名系统的最高权威机构
  • 主管DNS根、.int、.arpa等国际化域名资源

· CANNIC,中国互联网网络信息中心

  • China Internet Network Infirmation Center
  • 主管国家顶级域 .cn

BIND域名服务

· BIND(Berkeley Internet Name Daemon)

  • 伯克利 Internet 域名服务
  • 官方站点:httpts ://www.isc.org/

· BIND服务端程序

  • 主要执行程序:/usr/sbin/named
  • 系统服务:named
  • 默认端口:TPC/UDP 53
  • 运行时的虚拟根环境:/var/named/chroot/

· 主配置文件:/etc/named.conf(设置负责解析的域名)
· 地址库文件:/var/named/...(设置完全合格的域名和IP地址对应关系)
在这里插入图片描述

虚拟机A来创建服务
在这里插入图片描述

1. 安装软件包
yum -y install bind-chroot bind
rpm -qa bind*	查看所有已经安装的软件包

2.修改主配置文件
vim /etc/named.conf 
配置文件修改完成的完整内容:
options {
        directory       "/var/named";		# 定义地址库存放路径
};

zone "tedu.cn" IN {					# 定义负责解析tedu.cn域名
        type master;				# 类型:master(主服务器),salve(从服务器)
        file "tedu.cn.zone";			# 地址库下的文件名称
};

建立地址库文件
- 保证named用户对地址库文件的读权限
- 所有的域名必须以点结尾
- 如果没有以点作为结尾,那么默认会补全本地址库所负责的域名

ls /var/named
# chroot  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

创建地址库文件
考虑到完全问题,dns的服务所有的运行都会以named这个身份进行运行!!!!
如果直接用cp命令复制,不加-p选项,那么复制的所属主和所属组都是root,named对复制的文件是没有可读权限的。
cp -p /var/named/named.localhost /var/named/tedu.cn.zone		(-p)保持文件权限不变进行拷贝
ls -l /var/named/tedu.cn.zone		
# -rw-r----- 1 root named 152 Jun 21  2007 /var/named/tedu.cn.zone

vim /var/named/tedu.cn.zone
	tedu.cn.          NS    svr7				# 声明DNS服务器为svr7
	svr7             A      192.168.4.7			# svr7解析结果为192.168.4.7
	www              A      1.1.1.1				# 解析记录  完整写法(www.tedu.cn.)	
	vip              A      2.2.2.2				# 解析记录  完整写法(vip.tedu.cn.)	

3. 启动NSD服务
systemctl start named			

虚拟机B来解析服务

/etc/resolv.conf添加一些解析主机的记录

echo namserver 192.168.4.7 > /etc/resolv.conf		添加虚拟机A的主机域名解析记录
# 我们在寻找www.tedu.cn域名的时候,虚拟机B会自动去这个文件目录下的去寻找DNS(虚拟机A)的服务器IP地址

nslookup vip.tedu.cn			  nslookup解析工具
# Server:		192.168.4.7			DNS的服务器的域名解析
# Address:	192.168.4.7#53			DNS服务器的IP地址

# Name:	vip.tedu.cn
# Address: 2.2.2.2


nslookup www.tedu.cn			解析www.tedu.cn域名
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# Name:	www.tedu.cn
# Address: 1.1.1.1

多域名解析

在虚拟机A已经搭建好DNS服务的基础之上再搭建一个新的域名解析
2.修改主配置文件
vim /etc/named.conf 
配置文件修改完成的完整内容:
options {
        directory       "/var/named";		# 定义地址库存放路径
};

zone "tedu.cn" IN {					# 定义负责解析tedu.cn域名
        type master;				# 类型:master(主服务器),salve(从服务器)
        file "tedu.cn.zone";			# 地址库下的文件名称
};
zone "lol.cn" IN {					# 定义负责解析tedu.cn域名
        type master;				# 类型:master(主服务器),salve(从服务器)
        file "lol.cn.zone";			# 地址库下的文件名称
};


建立地址库文件
cp -p /var/named/named.localhost /var/named/lol.cn.zone		(-p)保持文件权限不变进行拷贝

vim /var/named/lol.cn.zone
	tedu.cn.          NS    host			# 声明DNS服务器为svr7
	host             A      192.168.4.7			# svr7解析结果为192.168.4.7
	nana              A      1.1.1.1				# 解析记录  完整写法(nana.tedu.cn.)	
	dada              A      2.2.2.2				# 解析记录  完整写法(dada.tedu.cn.)	

3. 启动NSD服务
systemctl restart named	


虚拟机B已经添加虚拟机A的主机域名解析记录,直接做测试就可以了
nslookup nana.lol.cn
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# Name:	nana.lol.cn
# Address: 1.1.1.1

nslookup www.tedu.cn
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# Name:	www.tedu.cn
# Address: 1.1.1.1

这时候我们发现,域名解析器可以同时解析.lol.cn和.tedu.cn结尾的域名了
  1. 特殊解析 (地址库文件中记录的特殊写法)
  • DNS轮询
    在这里插入图片描述
在虚拟机A的地址库文件在添加三条新的域名记录
vim /var/named/lol.cn.zone
lol.cn. NS     host
	host    A       192.168.4.7
	www     A       3.3.3.3
	www     A       4.4.4.4
	www     A       5.5.5.5

systemctl restart named


在虚拟机B中做测试
nslookup www.lol.cn
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# Name:	www.lol.cn
# Address: 3.3.3.3
# Name:	www.lol.cn
# Address: 4.4.4.4
# Name:	www.lol.cn
# Address: 5.5.5.5
  1. 泛域名解析

泛域名解析记录的优先级是最低的。如果有专门的匹配记录,那就按匹配的记录进行匹配。
如果没有专门匹配到的站点,那就按泛域名进行解析。

在虚拟机A的地址库文件添加通配符*
vim /var/named/lol.cn.zone
	lol.cn. NS     host
	host    A       192.168.4.7
	nana    A       1.1.1.1
	*       A       6.6.6.6			# 通配符*的优先级是最低的

systemctl restart named

在虚拟机B中做测试
nslookup wwhahaha.lol.cn
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# Name:	wwhahaha.lol.cn
# Address: 6.6.6.6

我们虚拟机B中输入任意站点且以.lol.cn结尾的域名,DNS服务器都会返回为6.6.6.6的IP地址
  1. 设置解析记录的别名
在虚拟机A的地址库文件添加mail--->nana
vim /var/named/lol.cn.zone 
	lol.cn. NS     host
	host    A       192.168.4.7
	nana    A       1.1.1.1
	mail    CNAME   nana		# 给站点名nana添加一个mail的别名

systemctl restart named

虚拟机B中做测试
nslookup mail.lol.cn
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# mail.lol.cn	canonical name = nana.lol.cn.
# Name:	nana.lol.cn
# Address: 1.1.1.1

DNS主从架构搭建

  1. 从服务器可以提供域名解析。
  2. 从服务器要备份主服务器DNS数据。

DNS服务器常见的资源解析记录类型都有哪些?
NS : 声明域名服务器
A : 正向解析记录
CNAME : 别名解析记录
。。。。。。

虚拟机 A 主DNS服务器 lol.cn
虚拟机 B 从DNS服务器 lol.cn

  • 虚拟机 A设为主服务器
1. 修改主配置文件,指定从服务器的IP地址
vim /etc/named.conf
options {			
        directory       "/var/named";		# 定义地址库的存放路径
        allow-transfer { 192.168.4.207;  };		# 指定从服务器的IP地址
};

zone "tedu.cn" IN {
        type master;
        file "tedu.cn.zone";
};

zone "lol.cn" IN {
        type master;
        file "lol.cn.zone";
};

named-checkconf /etc/named.conf 	检查主配置文件是否有误

2. 在虚拟机A的地址库文件中声明从DNS服务器的IP地址
vim /var/named/lol.cn.zone
	lol.cn. NS     host
	host    A       192.168.4.7
	lol.cn  NS     pc207
	pc207   A       192.168.4.207
	nana    A       1.1.1.1
	dada    A       2.2.2.2
	www     A       3.3.3.3
	www     A       4.4.4.4
	www     A       5.5.5.5
	*       A       6.6.6.6
	mail    CNAME   nana

named-checkzone lol.cn /var/named/lol.cn.zone 		检查地址库配置文件是否有误
# zone lol.cn/IN: loaded serial 0
# OK

systemctl restart named			
  • 虚拟机B设为从服务器
firewall-cmd --set-default-zone=trusted			关闭防火墙
setenforce 0			关闭selinux

1.装包
yum -y install bind bind-chroot

2.修改配置文件
vim /etc/named.conf
options {
        directory       "/var/named";		指定地址库的存放路径
};

zone "lol.cn" IN {			
        type slave;							该服务器的类型是从服务器
        file "/var/named/slaves/lol.cn.slave";		指定主服务器传输的地址库文件的存放路径
        masters { 192.168.4.7;  };			指定主服务器的IP地址
        masterfile-format text; 		地址库文件以明文的方式存储
};
# ls -ld /var/named/slaves			指定主服务器传输给从服务器的地址库文件的存放路径
# drwxrwx--- 2 named named 6 Oct 13 23:54 /var/named/slaves
# 我们在设置虚拟机B接收虚拟机A的传输的地址库文件的内容时,文件的父目录是要具备读写权限的
# 所以我们可以将虚拟机A传输的地址库文件内容保持到虚拟机B的/var/named/slaves/lol.cn.salv目录下

cat /var/named/slaves/lol.cn.slave		查看虚拟机A的地址库文件内容
#  $ORIGIN .
# $TTL 86400	; 1 day
# lol.cn			IN SOA	lol.cn. rname.invalid. (
# 				0          ; serial
#				86400      ; refresh (1 day)
#				3600       ; retry (1 hour)
#				604800     ; expire (1 week)
#				10800      ; minimum (3 hours)
#				)
# 			NS	host.lol.cn.
# $ORIGIN lol.cn.
# *			A	6.6.6.6
# lol.cn			NS	pc207
# dada			A	2.2.2.2
# host			A	192.168.4.7
# mail			CNAME	nana
# nana			A	1.1.1.1
# pc207			A	192.168.4.207
# www			A	3.3.3.3
# 			A	4.4.4.4
#			A	5.5.5.5

echo nameserver 192.168.4.207 >> /etc/resolv.con	将虚拟机B的DNS服务器添加到虚拟机B的域名解析记录中

systemctl restart named

DNS主从数据同步

虚拟机A
vim /var/named/lol.cn.zone
	。。。。。。。
	dada    A       10.10.10.10			我们把主服务器虚拟机A的域名dada.lol.cn.的IP地址更改为10.10.10.10
	。。。。。。。

systemctl restart named			重启主服务器虚拟机A后,我们再做一次测试


虚拟机B
nslookup dada.lol.cn 192.168.4.207		使用从服务器解析域名====》2.2.2.2
# Server:		192.168.4.207
# Address:	192.168.4.207#53

# Name:	dada.lol.cn
# Address: 2.2.2.2

nslookup dada.lol.cn 192.168.4.7		使用主服务器解析域名====》10.10.10.10
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# Name:	dada.lol.cn
# Address: 10.10.10.10

我们发现主NDS服务器虚拟机A的域名数据更改之后,从DNS服务器虚拟机B的域名数据是没有同步进行更新的。
那么我们有什么解决办法呢?

$TTL 1D				# TTL 数据的生命生存周期为1天(发送数据如果没人接收,那么1天之后,就把数据自动销毁)
@       IN SOA  @ rname.invalid. (					# IN:互联网		SOA:授权信息		@:当前区域的域名lol.cn.
                                        0       ; serial		# 数据的版本号
                                        1D      ; refresh		# 多长时间进行数据的获取
                                        1H      ; retry			# 传送数据失败的时间间隔
                                        1W      ; expire		# 真正数据接收之后失效的时间
                                        3H )    ; minimum		# 失效记录的记录时间
lol.cn. NS     host
host    A       192.168.4.7
。。。。。。。
cat /var/named/slaves/lol.cn.slave 			查看从服务器虚拟机B中已经存在的版本号

在这里插入图片描述

虚拟机B测试
nslookup dada.lol.cn 192.168.4.207			刷新成功
# Server:		192.168.4.207
# Address:	192.168.4.207#53

# Name:	dada.lol.cn
# Address: 25.25.25.25

nslookup dada.lol.cn 192.168.4.7			刷新成功
# Server:		192.168.4.7
# Address:	192.168.4.7#53

# Name:	dada.lol.cn
# Address: 25.25.25.25

DNS子域授权

递归解析

  • 递归查询 :客户端发送请求给首选DNS服务器,首选DNS服务器与其他DNS服务器交互,最终将解析结果带回来过程。
    在这里插入图片描述

  • 迭代查询 : 客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址
    在这里插入图片描述

浏览器DNS查找顺序

  • 浏览器DNS缓存–>本地系统DNS缓存–>本地计算机HOSTS文件–>ISP(互联网供应商) DNS缓存—>递归or迭代搜索

  • /etc/hosts 文件存放的是IP地址与域名之间的对应关系

服务器DNS查找顺序

ping www.baidu.com
# PING www.wshifen.com (45.113.192.101) 56(84) bytes of data.
# 64 bytes from 45.113.192.101 (45.113.192.101): icmp_seq=1 ttl=128 time=236 ms
# 64 bytes from 45.113.192.101 (45.113.192.101): icmp_seq=2 ttl=128 time=235 ms

1. 先查找系统缓存
2. 再查找/etc/hosts文件				
3. 最后再查找/etc/resolv.conf文件			指定运营商的DNS地址

DNS查询的工作方式
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值