dns:将域名转化成ip地址
目的:因为IP地址太难记忆了
1)方法一:本地host文件
2)方法二 :安装软件服务
#本地名称解析配置文件:hosts
Linux: /etc/hosts
windows: c/windows/system32/drivers/etc/hosts
#格式
IP 地址 域名
[root@www ~]#vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.210.101 www.baidu.com
#连接不上百度
正向解析:根据域名查找对应的ip地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
主域名服务器:管理和维护所负责解析的域内解析库的服务器
从域名服务器
从主服务器或从服务器"复制"(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结
果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动 手)
方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起
进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需
要发起多次查询。(需要自己动手)
#解析www.baidu.com(网络环境)
1.先看host文件,有就直接访问,没有的话先去找缓存服务器
2.dns缓存服务器 有直接告诉你,没有才会去问根域服务器
3.根域服务器管理的主机类型 www. mail. blibli.(主机加.) 他不会直接告诉你答案,会让你去找管理.com的域名服务器 .com .cn .edu
4.根据线索找到.com的域名服务器,他只能解析www.com. mail.com.这样的域名,会让你去找.baidu的域名服务器
5.根据线索找到.baidu服务器,这个主机刚好归我管辖,所以直接反馈结果,这个反馈结果的域名服务器是权威服务器
#3,4这两种找寻方式叫迭代,只会透露线索,不会给直接答案,需要自己去解决问题
正向解析查询过程:
①先查本机的缓存记录
②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理
以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
======DNS的分布式互联网解析库=====
#大型、分布式的互联网DNS解析库
#根. 根域名DNS服务器:专门负责根域名
#一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商 企业)
.net(网络供应商)
.edu(教育机构)
.cn(中国国家域名)
.org(团体组织)
.gov (政府部门)
#二级DNS服务器:专门负责二级域名的解析
.net.cn
.edu.cn
.com.cn
#子域名DNS服务器:专门负责子域名的解析 也称为三级域名
ina.com.cn
.pku.edu.cn
#主机站点
tts9
tts6
mail
www
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。
8.8.8.8是GOOGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
223.5.5.5 和 223.6.6.6:阿里云DNS
IPV6 2400:3200::1 和 2400:3200:baba::1
江苏省南京市(中国电信)
首选DNS为:218.2.135.1 备用DNS为:61.147.37.1
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
主配置文件: /etc/named.conf
域名配置文件: /etc/named.rfc.1912.zones
数据库文件(需要注意权限问题) /var/named/ *.zone(自定义的, 在域名配置文件定义的)
软件名: bind
程序名: named
主要执行程序:/usr/sbin/named
默认监听端口:53
#模拟内网环境,将当前主机7-1作为DNS服务器来解析域名
yum install bind* -y #安装 自带网络解析
systemctl start named #启动服务
cat /etc/resolv.conf #看DNS服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #把DNS服务器修改成192.168.210.101
systemctl restart network #重启网络服务
cat /etc/resolv.conf
vim /etc/named.conf #修改配置文件,把第一条监听改成any
systemctl restart named #重启
dig www.baidu.com
#让7-2也做这个解析,7-1是服务器,所以7-2要指向7-1
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #把DNS服务器修改成192.168.210.101
systemctl restart network #重启网络服务
cat /etc/resolv.conf #看DNS服务器
vim /etc/named.conf #在7-1修改配置文件,把最后一项权限改成any
systemctl reload named #重新加载
ping www.baidu.com #看能否ping通
yum install bind* -y #安装 自带网络解析
systemctl start named #启动服务
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #把DNS服务器修改成192.168.210.101
systemctl restart network #重启网络服务
cat /etc/resolv.conf #看DNS服务器
vim /etc/named.conf #修改配置文件,把第一条监听和最后一条权限改成any或者注释掉
vim /etc/named.rfc1912.zones #编写域名
zone "bkg.com" {
type master;
file "bkg.com.zone";
};
cd /var/named/ #切换目录
ls
vim named.localhost #模板
cp -a named.localhost bkg.com.zone ##保留权限复制
ll
vim bkg.com.zone
#编辑数据库文件,解析记录对应关系
$TTL 1D
@ IN SOA master.bkg.com. admin.kgc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.210.101
mail A 192.168.210.102
db A 192.168.210.103
www A 192.168.210.105
* A 192.168.210.105
systemctl reload named #重载
systemctl status named #查看
host mail.bkg.com
$TTL 1D #生命周期,默认时间是1天,不加D是秒,写在开头是全局设置
@ IN SOA master.bkg.com. admin.kgc.com. ( #这一行是记录 #“@"符号表示当前的DNS区域名
0 ; serial#数据库文件的版本号,主从需要同步,手动
1D ; refresh #刷新时间 拉取时间
1H ; retry #失败后一个小时 后再试一次
1W ; expire#过期时间,老是拉取不了,1周以后过期
3H ) ; minimum#老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到
NS master #记录当前区域的DNS服务器的名称
master A 192.168.210.101 #记录主机IP地址
mail A 192.168.210.102
db A 192.168.210.103
www A 192.168.210.105
* A 192.168.210.105 #泛域名解析,“*"代表任意主机名
#@代表当前的域名
#IN代表使用internet协议
#SOA起始记录,有且唯一,主要记录主从之间的联系
#实验环境:
#主服务器地址:192.168.210.101
#从服务器地址:192.168.210.102
#主服务器配置
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "bkg.com" IN {
type master;
file "bkg.com.zone";
allow-transfer { 192.168.210.102; };
#添加从服务器的地址
};
[root@localhost etc]# vim /etc/named.conf
#两段改成any
listen-on port 53 { any; };
allow-query { any; };
[root@localhost ~]#cd /var/named/
#切换目录
[root@localhost named]#ls
[root@localhost named]#cp -a named.localhost bkg.com.zone
#保留权限复制
[root@localhost named]#vim bkg.com.zone
#编辑数据库文件,解析记录对应关系
$TTL 1D
@ IN SOA master.bkg.com. admin.kgc.com. (
# 1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
# NS slave1
master A 192.168.210.101
#slave1 A 192.168.210.102
www A 192.168.210.101
ftp A 192.168.210.103
[root@localhost named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
#把DNS服务器修改成192.168.210.101
[root@localhost named]#systemctl restart network
#重启网络服务
[root@localhost named]#systemctl start named
###从服务器的配置
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install bind bind-utils.x86_64 -y
#从服务器先安装bind软件
[root@localhost etc]# vim /etc/named.conf
#两段改成any
listen-on port 53 { any; };
allow-query { any; };
[root@localhost etc]# vim /etc/named.rfc1912.zones
#添加从服务器的配置文件
zone "bkg.com" IN {
type slave;
#类型从
file "slaves/kgc.com.zone";
#文件地址在/var/named/slaves/ 下
masters { 192.168.210.101; };
#申明主服务器的地址
};
[root@localhost named]# systemctl start named
[root@localhost named]# ls /var/named/slaves
kgc.com.zone
[root@localhost named]#dig @192.168.210.102 www.bkg.com
#用从服务器去解析www.bkg.com
#在主服务器修改www的IP地址,在从服务器中用主服务器地址去解析www.bkg.com,地址与修改后的一致;用从服务器地址去解析,地址与未修改前的一致,这时候需要去主从服务器里去修改版本,然后刷新。