DNS基础

DNS


在这里插入图片描述

DNS协议

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

DNS的一个基本特性是使用超高速缓存。即当一个名字服务器收到有关映射的信息(主机名字到IP地址)时,它会将该信息存放在高速缓存中。这样若以后遇到相同的映射请求,就能直接使用缓存中的结果而无需通过其他服务器查询

DNS域名结构

域名系统必须要保持唯一性,为了达到唯一性的目的,因特网在命名的时候采用了层次结构的命名方法:

  1. 每一个域名(本文只讨论英文域名)都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成
  2. 标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label)
  3. 每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名
  4. 级别最低的域名写在左边,级别最高的域名写在右边,域名服务主要是基于UDP实现的,服务器的端口号为53

在这里插入图片描述

例如:xxx.yyy.zzz.com
从右边的com是顶级域名,到左依次是:二级域名,三级域名,四级域名

域名的分级:域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等

其中顶级域名分为:国家顶级域名、通用顶级域名、反向域名

域名服务器
域名是分层结构,域名服务器也是对应的层级结构。
有了域名结构,还需要有一个东西去解析域名,域名需要由遍及全世界的域名服务器去解析,域名服务器实际上就是装有域名系统的主机。

由高向低进行层次划分,可分为以下几大类:

分类作用
根域名服务器最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助
顶级域名服务器负责管理在该顶级域名服务器下注册的二级域名
权限域名服务器负责一个区的域名解析工作
本地域名服务器当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器

分类 作用
根域名服务器 最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助
顶级域名服务器 负责管理在该顶级域名服务器下注册的二级域名
权限域名服务器 负责一个区的域名解析工作
本地域名服务器 当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器
注:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区
需要注意:

  1. 每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
  2. 每一级域名服务器都知道下级域名服务器的IP地址
  3. 为了容灾, 每一级至少设置两个或以上的域名服务器

DNS查询过程

由于 ICANN 管理着所有的顶级域名,所以它是最高一级的域名节点,被称为根域名(root domain)。在有些场合,www.example.com 被写成www.example.com. ,即最后还会多出一个点。这个点就是根域名。

理论上,所有域名查询都必须先查询根域名,因为只有根域名才能告诉你,某个顶级域名由哪台服务器管理。事实上也确实如此,ICANN 维护着一张列表,里面记载着顶级域名和对应的托管商。

比如,我要访问www.example.com ,就必须先询问 ICANN 的根域名列表,它会告诉我.com域名由 Verisign 托管,我必须去找 Verisign,它会告诉我example.com服务器在哪里。

由于根域名列表很少变化,大多数 DNS 服务商都会提供它的缓存,所以根域名的查询事实上不是那么频繁。

保存 DNS 根区文件的服务器,就叫做 DNS 根域名服务器(root name server)。

递归查询:客户端向本地 DNS 服务器(即首选DNS服务器)发出请求后,一直处于等待状态,直到本地名称服务器返回查询结果。当客户端向本地 DNS 服务器发出请求后,本地 DNS 服务器查询本机缓存,如果有记录,则直接返回;如果没有,则本地 DNS 服务器以客户端的身份将查询请求发给根域名服务器,这个过程是递归查询过程。如果递归查询未查出结果,则开始进行迭代查询。

迭代查询:本地 DNS 服务器以客户端的身份将查询请求发给根域名服务器后,根域名服务器通过查询返回给本地 DNS 服务器 .com 顶级名称服务器的IP地址;本地DNS服务器收到 .com 顶级名称服务器的IP地址后继续向.com顶级名称服务器发出请求,顶级名称服务器收到请求后查询缓存,如果有记录则直接返回本地DNS服务器,如果没有,则返回baidu.com二级名称服务器的IP地址;本地名称服务器继续发出请求,二级名称服务器同样查找缓存返回www.baidu.com的IP地址。(最多127级域)。本地 DNS 服务器向根服务器的查询就是迭代查询。

一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根–> 顶级域名DNS–>二级域名DNS…

DNS小实验

正向解析

yum -y install bind bind-untils或者yum install bind都可以
vim /etc/named.conf
listen-on port 53 { any; }
allow-query  { any; }

vim /etc/named.rfc1912.zones
zone "wpc.com" IN {
        type master;
        file "wpc.com.zone";
};
cd /var/named
cp -p named.localhost wpc.com.zone

vim wpc.com.zone

$TTL 1D
@       IN SOA master admin.wpc.com.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.78.100
www		A		192.168.78.101
*       A       192.168.78.101
ftp     CNAME   www
@       A       3.3.3.3


vi /etc/sysconfig/network-scripts/ifcfg-ens33 
DNS1=192.168.78.100
systemctl restart network
systemctl start named
rndc reload
验证:
host wwww.wpc.com
host www.wpc.com

反向解析(用处不多,这里不做实验,有兴趣可以自己了解)

主从同步

######主机192.168.78.100#####
yum -y install bind
vim /etc/named.rfc1912.zones
zone "wpc.com" IN {
        type master;
        file "wpc.com.zone";
};


cd /var/named/
cp -p named.localhost   wpc.com.zone
vim wpc.com.zone
$TTL 1D
@       IN SOA  master admin.wpc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.78.100
www     A       192.168.78.101
ftp		CNAME	www
*		A		192.168.78.101

vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.78.100
DNS2=192.168.78.103

systemctl restart network
###虚拟机看一下网络是不是变到了配置1上,重新勾到ens33上###
systemctl start named
rndc reload
host验证一下



###客户机192.168.78.103###
yum -y install bind
vim /etc/named.conf
listen-on port 53 { any; }
allow-query  { any; }

vim /etc/named.rfc1912.zones 
zone "wpc.com" IN {
        type slave;
        file "slaves/run.com.zone";
        masters { 192.168.78.100; };
};


systemctl start named
ls /var/named/slaves/




###到192.168.78.100这台主机里###
systemctl stop named
##回到192.168.78.103###
dig www.wpc.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值