DNS域名解析

域名服务

何为DNS

DNS域名系统是因特网的一项核心服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用记住能够被机器直接读取的IP数串。

全球13台DNS根服务器分布:
美国VeriSign公司 2台
网络管理组织IANA(Internet Assigned Number Authority) 1台
欧洲网络管理组织RIPE-NCC(Resource IP Europeens Network Coordination Centre) 1台
美国PSINet公司 1台
美国ISI(Information Sciences Institute) 1台
美国ISC(Internet Software Consortium) 1台
美国马里兰大学(University of Maryland) 1台
美国太空总署(NASA) 1台
美国国防部 1台
美国陆军研究所 1台
挪威NORDUnet 1台
日本WIDE(Widely Integrated Distributed Environments)研究计划 1台

“全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本

DNS的作用

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名(反垃圾邮件的验证)

DNS使用的协议及端口号

DNS的默认的端口为53,端口分为TCP和UDP

TCP用来区域传送,多用于主从同步

在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息.

UDP用来做DNS解析

域名:通常由一个完全合格域名(FQDN)标识。FQDN 全称 Fully Qualified Domain Name ,它能准确表示出其相对于 DNS 域树根的位置, 也就是节点到DNS 树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用“.”分隔,对于DNS 域google来说,其完全正式域名(FQDN)为google.com。
例如,google 为 com 域的子域,其表示方法为 google.com,而 www 为 google 域中的子域, 可以使用www.google.com. 表示。

域名构成

1 http://www.sina.com.cn./
2 http://主机.子域.二级域.顶级域 根域/

DNS域名解析过程

正向解析:FQDN--------IP(一对多)------一般使用正向解析
反向解析:IP------------FQDN

FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。从全限定域名中包含的信息可以看出主机在域名树中的位置。

正向解析过程:

1)先查询本地的缓存记录;

2)查询hosts文件;

3)查询dns域名服务器,交给dns域名服务器处理

4)这个dns服务器可能是本地域名服务器,也有个缓存,若有直接返回结果,若无,进行下一步

客户端—本地dns服务器:属于递归查询

5)求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器,让他去找顶级域服务器

6)求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器,让他去找二级域服务器

7)求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的IP地址返回给本地域名服务器

8)本地域名服务器将结果记录到缓存,然后把域名和IP的对应关系返回给客户端

本地dns服务器----外网:属于迭代查询

两种查询方式

1)递归查询

DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机;

若DNS服务器本地没有存储查询DNS信息,服务器会询问其他服务器,并返回查询结果提交给客户机

客户机发送请求后,只有等待结果即可,中间的具体过程交给服务器实现

2)迭代查询(重指引)

客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告知客户机另一台DNS服务器地址;

客户机再向在这台DNS服务器提交请求,依次循环直到返回查询的结果为止

客户机的请求需要自己挨个去查询才会得到结果,服务器没有结果时只会给你通过其他服务器的地址,而不是帮你请求查询

综上:

递归查询时,返回的结果只有两种:查询成功或查询失败
迭代查询又称作重指引,返回的是最佳的查询点或者主机地址

【windows系统查询dns缓存命令:ipconfig /displaydns
windows系统清理dns缓存命令:ipconfig /flushdns

linux清dns缓存需要安装nscd软件,启动、执行nscd -i hosts

域名体系结构

DNS的分布式互联网解析库

根. 根域名DNS服务器:

位于域名空间最顶层,一般用一个“.” 表示;专门负责根域名

一级DNS服务器(顶级域):

专门负责一级域名解析(一种类型的组织机构或国家地区)

.com(工商 企业)   .net(网络供应商)   .edu(教育机构)    .cn(中国国家域名)   .org(团体组织)      .gov (政府部门)

二级DNS服务器:

明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理;专门负责二级域名的解析

顶级域名下面设置的二级域名: .com.cn  .net.cn   .edu.cn

**子域名DNS服务器:**亦称为三级域名

各个组织或用户可以自由申请注册自己的域名

域名体系结构
所有的域名必须以点结尾:www.qq.com.   www.baidu.com
根域名(.)
一级域名:.cn(中国) .kr(韩国) .jp(日本) .hk(香港).uk(英国) 
二级域名:.com.cn(中国商业组织) edu.cn(教育机构)  .org.cn(非盈利) .net.cn(中国运营商)
三级域名:sina.com.cn nb.com.cn haixi.com.cn .........
组织域:.com .org .net .CC
国家域:.cn .tw(台湾) .hk(香港) .iq .ir .jp(日本)
反向域

常见的:

114.114.114.114是国内移动、电信和联通通用的DNS

8.8.8.8是GOOGLE公司提供的DNS,该地址全球通用

223.5.5.5 和 223.6.6.6:阿里云DNS

江苏省南京市(中国电信)首选DNS为:218.2.135.1 备用DNS为:61.147.37.1

DNS服务器类型

主域名服务器:

负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

从域名服务器:

当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。

从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

缓存域名服务器:

**只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。**它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

转发域名服务器:

负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

提高集群速度:host文件里配置主机名+IP地址

实验

DNS正反向解析

BIND的软件包如下
bind-9.9.4-37.el7.x86_64.rpm    //提供了域名服务的主要程序及相关文件。
bind-utils-9.9.4-37.el7.x86_64.rpm  // 提供了对 DNS 服务器的测试工具程序,如 nslookup 等
bind-libs-9.9.4-37.el7.x86_64.rpm   //提供了 bind、bind-utils 需要使用的库函数。
bind-chroot-9.9.4-37.el7.x86_64.rpm  // 为 BIND 服务提供一个伪装的根目录(将/var/named/chroot/文件夹 作为 BIND 服务的根目录),以提高安全性。 

配置:
安装bind软件包
 yum  install  bind -y (必须网络源或光盘挂载)  或rpm -ivh 前提挂载光盘(系统盘ISO镜像)


修改主要配置文件 
vim /etc/named.conf
options {
listen-on port 53 { 192.168.10.10; }; ●监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; #ipv6行如不使用可以注释掉或者删除
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 { 192.168.10.0/24; 172.16.30.0/24; };● 允许使用本DNS解析服务的网段,也可用any代表所有
}


zone "." IN {#正向解析“."根区域
type hint;#类型为根区域
file "named.ca";#区域数据文件为named.ca,#记录了13台根域服务器的域名和IP地址等信息
};


include "/etc/named. rfc1912. zones"; #包含区域配置文件里的所有配置

配置正向区域数据文件
cd /var/ named/
cp -p named.localhost ceshi.com.zone               #保留源文件的权限和属主的属性复制
vim /var/named/ceshi.com.zone
$TTL 1D                                            #有效解析记录的生存周期
@   in SOA ceshi.com. admin.ceshi.com. (   #“@"符号表示当前的DNS区域名
                     0   ; serial              #更新序列号,可以是10位以内的整数
                    1D   ; refresh             #刷新时间,重新下载地址数据的间隔
                    1H   ; retry               #重试延时,下载失败后的重试间隔
                    1W   ; expire              #失效时间,超过该时间仍无法下载则放弃#
					3H)  ; minimum             #无效解析记录的生存周期,
        NS      ceshi.com.                     #记录当前区域的DNS服务器的名称
        A     192.168.10.10                   #记录主机IP地址
IN   MX 10    mail.ceshi.com.            #MX为邮件交换记录,数字越大优先级越低
www  IN A     192.168.10.10              #记录正向解析www.ceshi.com对应的IP
mail IN A     192.168.10.11              #MX为邮件交换记录,数字越大优先级低 
ftp  IN CNAME  www                       #CNAME使用别名,ftp 是www的别名
*    IN A   192.168.10.100               #泛域名解析,“*"代表任意主机名

启动服务,关闭防火墙
systemctl start named
systemctl stop firewalld
setenforce 0
#如果服务启动失败,可以查看日志文件来排查错误
tail -f /var/log/messages

在客户端的域名解析配置文件中添加DNS服务器地址
vi /etc/resolv .conf
#修改完后立即生效
nameserver 192.168.10.10
或
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改完后需要重启网卡

测试DNS解析
host  www.ceshi.com
nslookup www.ceshi.com

反向解析
vim /etc/named.rfc1912.zones
// 192.168.10.0 反向则是 10.168.192
zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "ceshi.com.zone.local";    //指定反向解析的数据文件,也可以跟正向解析的数据文件相同
        allow-update { none; };
};

cd /var/named/
cp -p ceshi.com.zone ceshi.com.zone.local
$TTL 1D   #有效解析记录的生存周期,默认单位为秒
@       IN SOA  ceshi.com. admin.ceshi.com. (    #SOA标记、域名和管理员邮箱,@变量表示域名
                                        0       ; serial      #更新序列号,10位以内数字,用于主从同步,主服务器这个数值要大于从服务器否则无法同步
                                        1D      ; refresh  #刷新时间
                                        1H      ; retry     #重试刷新时间间隔
                                        1W      ; expire   #失效时间,超过该时间则放弃
                                        3H )    ; minimum   #无效解析记录的生存周期
        NS      ceshi.com.
        A       192.168.10.10
100 IN PTR   www.ceshi.com.
200 IN PTR   mail.ceshi.com.
# 20是192.168.10.10的意思
# PTR反向指针 功能:反向解析


systemctl restart named   //rndc reload也可以重载配置文件


host 192.168.10.10
// 将会反向解析出域名www.ceshi.com

DNS主从服务器

实验环境:
主服务器:192.168.10.20
从服务器:192.168.10.21

配置主服务器192.168.10.20

vim /etc/named.conf
listen-on port 53{} 中值为any
allow-query{}中值改为any

vim /etc/named.rfc1912.zone
zone "benet.com" IN { 
        type master;                              //类型为主区域                      
        file "benet.com.zone"; 
        allow-transfer { 192.168.10.21; };        //设置从服务器地址
};

zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "benet.com.zone.local";
        allow-transfer{ 192.168.10.21; };
};



配置从服务器192.168.10.21

yum install -y bind
vim /etc/named.conf
options {
listen-on port 53 { 192.168.10.21; };         ●监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; };               #ipv6行如不使用可以注释掉或者删除
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; };            ● 允许使用本DNS解析服务的网段,也可用any代表所有
}



修改从域名服务器区域配置文件,添加正、反区域配置


vim /etc/named.rfc1912.zone
zone "benet.com" IN {
        type slave;                        //类型为从区域
        file "slaves/benet.com.zone";       //下载的区域数据文件保存到slaves/目录下
        masters { 192.168.10.20; };        //设置主服务器地址
};

zone "10.168.192.in-addr.arpa" IN {
        type slave;                        
        file "benet.com.zone.local";        
        masters { 192.168.10.20; };        




###主、从都重启动服务,并查看区域数据文件是否已下载成功
systemctl restart named
ls -1 /var/named/slaves/

#####在客户端的域名解析配置文件中添加从DNs服务器地址
echo "nameserver 192.168.10.21" >> /etc/ resolv.conf

####测试
host 192.168.10.20
nslookup 192.168.10.21

#停止主服务器的服务,模拟主服务器故障

DNS分离解析

实验环境:
主服务器:192.168.10.20         网卡vmnet2     192.168.20.21
Web服务器:192.168.10.21        网卡vmnet3      10.0.0.101



分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网
和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。\\

注:DNS分离解析即将内外网的相同域名解析为不同的IP地址。现实网络中一些电商网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度

配置网关服务器搭建DNS分离解析
在网关服务器搭建DNS分离解析,使局域网主机解析www.benet.com为192.168.10.20,外网主机解析www.benet.com
为10.0.0.100。

1.为网关服务器配置双网卡
在关机状态下再添加一-块网卡,重启系统
ens33   192.168.20.21
ifconfig ens37 10.0.0.1/24
ifconfig

2.安装bind软件包
yum install -y bind
3.修改主配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; }; ●监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
#listen-on-v6 port 53 { ::1; }; #ipv6行如不使用可以注释掉或者删除
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; };● 允许使用本DNS解析服务的网段,也可用any代表所有
}
 

include "/etc/named. rfc1912. zones";
4.修改区域配置文件
vim /etc/named.rfc1912.zones
view "lan" {                                  #定义内网view,view代表容器分割
match-clients { 192.168.80.0/24; } ;          #匹配内网网段
zone "benet.com" IN {                        #设置要解析的区域
   type master;
   file "benet.com.zone.lan";              #数据配置文件
};

zone "." IN {                                 #可将根域配置从主配置文件剪切过来,dd+p
type hint;                                    #hint是根区域类型
file "named.ca";
};


view "wan" {                                #定义外网view .
match-clients { any; } ;                    #匹配除了内网网段以外的任意地址
zone "benet.com" IN {
type master;
file "benet.com.zone.wan";
};
};
#注意:一旦启用view,所有的zone必须都在view下,所以要把系统默认的自检用的zone也放在view下或者删55





# 修改区域数据配置文件
cd /var/named
cp -p named.localhost benet.com.zone.lan
cp -p named.localhost benet.com.zone.wan
vim benet.com.zone.lan
$TTL 1D                                            #有效解析记录的生存周期
@   in SOA benet.com. admin.benet.com. (   #“@"符号表示当前的DNS区域名
                     0   ; serial              #更新序列号,可以是10位以内的整数
                    1D   ; refresh             #刷新时间,重新下载地址数据的间隔
                    1H   ; retry               #重试延时,下载失败后的重试间隔
                    1W   ; expire              #失效时间,超过该时间仍无法下载则放弃#
                    3H)  ; minimum             #无效解析记录的生存周期,
        NS      benet.com.                     #记录当前区域的DNS服务器的名称
        A     192.168.80.10                   #记录主机IP地址
www  IN A     192.168.80.10              #记录正向解析www.benet.com对应的IP



vim benet.com.zone.wan
$TTL 1D                                            #有效解析记录的生存周期
@   in SOA benet.com. admin.benet.com. (   #“@"符号表示当前的DNS区域名
                     0   ; serial              #更新序列号,可以是10位以内的整数
                    1D   ; refresh             #刷新时间,重新下载地址数据的间隔
                    1H   ; retry               #重试延时,下载失败后的重试间隔
                    1W   ; expire              #失效时间,超过该时间仍无法下载则放弃#
                    3H)  ; minimum             #无效解析记录的生存周期,
        NS      benet.com.                     #记录当前区域的DNS服务器的名称
        A     10.0.0.1                   #记录主机IP地址
www  IN A     10.0.0.100              #记录正向解析www.benet.com对应的IP

###启动服务
systemctl start named

###在内、外网客户端的域名解析配置文件中添加DNS服务器地址
echo "nameserver 192.168.80.10" >> /etc/resolv.conf               #内网客户端

echo "nameserver 10.0.0.1" >> /etc/resolv.conf      #外网客户端

####在内、外网客户端上测试
nslookup www.benet.com
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值