DNS是什么?

DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址、反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提供服务称为可能,例如网站访问、邮件服务等。

DNS解析原理

DNS系统由两部分组成,一是Resolver解析器,作为DNS请求的客户端,负责从DNS记录中解析出IP或别名等信息;二是NS域名服务器,提供域名解析服务,例如Bind。

DNS服务器分为三类:一是权威域名服务器,用于解析域名或使用NS记录进行授权;二是缓存域名服务器,用于递归查询并缓存DNS记录;三是转发域名服务器,仅用于转发DNS请求给指定的上级域名服务器。

DNS记录类型

1.A记录:指定域名对应IP的记录

2.PTR记录:指定IP对应域名的记录

3.MX记录:邮件交换记录,也叫邮件路由记录,指向邮件服务器的IP

4.CNAME记录:别名记录,用于指向另一个域名

5.NS记录:域名服务器记录,指定该域名由哪个DNS服务器来解析

Bind部署DNS域名解析

Bind是什么?

BIND伯克利互联网域名服务(Berkeley Internet Name Domain)是一款全球互联网使用最广泛、能够提供安全可靠、快捷高效的域名解析的服务程序。

安装Bind服务程序

[root@localhost ~]# yum install -y bind-chroot

修改主配置文件

[root@localhost ~]# vim /etc/named.conf 

 12 options {
13 listen-on port 53 { any; }; //监听53端口所有来源信息
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 allow-query { any; }; //允许所有来源访问

正向解析:由域名到IP

配置区域文件

[root@localhost ~]# vim /etc/named.rfc1912.zones 

 zone "test.com" IN{

 type master;         //服务器类型:主服务器
file "test.com.zone"; // 数据文件名称
allow-update {none;}; // 是否允许从服务器更新解析数据 };

配置域名解析文件

[root@localhost ~]# cd /var/named
[root@localhost named]# cp -a named.localhost test.com.zone
[root@localhost named]# vim test.com.zone $TTL 1D
@ IN SOA test.com. root.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com. //域名服务器记录:表示该域名由哪台DNS进行解析
ns IN A 192.168.41.10 IN MX 10 mail.test.com. //邮箱交换记录,用于邮件系统解析
mail IN A 192.168.41.10 www IN A 192.168.41.10 //地址记录,表明三级域名www.test.com 对应的解析地址
bbs IN A 192.168.41.10

重启服务,进行测试

 [root@localhost named]# systemctl restart named
[root@localhost named]# systemctl enable named
[root@localhost ~]# nslookup //常用解析器
> www.test.com
Server: 192.168.41.10
Address: 192.168.41.10#53 Name: www.test.com
Address: 192.168.41.10
> bbs.test.com
Server: 192.168.41.10
Address: 192.168.41.10#53 Name: bbs.test.com
Address: 192.168.41.10
> #测试前记得修改DNS或者直接在/etc/resolve.conf中添加

反向解析:由IP到域名

配置区域文件

 [root@localhost ~]# vim /etc/named.rfc1912.zones 

 zone "41.168.192.in-addr.arpa" IN{

 type master;
file "192.168.41.arpa";
allow-update {none;}; };

配置反向解析文件

[root@localhost ~]# cd /var/named
[root@localhost named]# cp -a named.loopback 192.168.41.arpa
[root@localhost named]# vim 192.168.41.arpa $TTL 1D
@ IN SOA test.com. root.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com.
ns A 192.168.41.10
10 PTR ns.test.com.
10 PTR mail.test.com.
10 PTR www.test.com.
20 PTR bbs.test.com.

重启服务,进行测试

 [root@localhost named]# systemctl restart named
[root@localhost named]# nslookup
> 192.168.41.10
Server: 192.168.41.10
Address: 192.168.41.10#53 10.41.168.192.in-addr.arpa name = www.test.com.
10.41.168.192.in-addr.arpa name = ns.test.com.
10.41.168.192.in-addr.arpa name = mail.test.com.
> 192.168.41.20
Server: 192.168.41.10
Address: 192.168.41.10#53 20.41.168.192.in-addr.arpa name = bbs.test.com.
>

部署从服务器

配置主服务器区域文件

[root@localhost named]# vim /etc/named.rfc1912.zones 

 zone "test.com" IN{

 type master;
file "test.com.zone";
allow-update {192.168.41.30;}; //允许从服务器更新 }; zone "41.168.192.in-addr.arpa" IN{ type master;
file "192.168.41.arpa";
allow-update {192.168.41.30;}; };

配置从服务器区域文件

[root@localhost ~]# vim /etc/named.rfc1912.zones 

 zone "test.com" IN{

 type slave;          //服务器类型:从服务器
masters {192.168.41.10;}; //主服务器IP
file "slaves/test.com.zone"; //同步的文件保存的地址 }; zone "41.168.192.in-addr.arpa" IN{ type slave;
masters {192.168.41.10;};
file "slaves/192.168.41.arpa"; };

重启服务,进行测试

 [root@localhost slaves]# cd /var/named/slaves/
[root@localhost slaves]# systemctl restart named
[root@localhost slaves]# ls
192.168.41.arpa test.com.zone // 主服务器数据文件已经同步过来了
[root@localhost slaves]# nslookup
> www.test.com
Server: 192.168.41.30
Address: 192.168.41.30#53 Name: www.test.com
Address: 192.168.41.10
> bbs.test.com
Server: 192.168.41.30
Address: 192.168.41.30#53 Name: bbs.test.com
Address: 192.168.41.10
> 192.168.41.10
Server: 192.168.41.30
Address: 192.168.41.30#53 10.41.168.192.in-addr.arpa name = www.test.com.
10.41.168.192.in-addr.arpa name = mail.test.com.
10.41.168.192.in-addr.arpa name = ns.test.com.
> #测试前记得修改DNS或者直接在/etc/resolve.conf中添加
#同步之前记得设置或关闭主服务器防火墙,主从服务器都要重启named服务

几点说明

1./etc/resolve.conf是设置DNS的文件,解析器需要读取该文件请求DNS服务。

2.当网卡重启时,/etc/resolve.conf文件内的设置将会被网卡配置文件中的DNS设置覆盖,所以如果希望DNS设置永久生效,则要在网卡配置文件中配置DNS;如果只是临时修改或添加DNS,则直接配置/etc/resolve.conf文件即可。

3.Bind服务默认开启递归查询功能,所以既是缓存域名服务器,又是权威域名服务器。如果仅作为权威服务器用于域名解析,则可以关闭递归查询功能;

vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
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; };
recursion no; // 关闭递归查询功能 dnssec-enable yes;
dnssec-validation yes;

4.DNS服务器中存放着全球13组根域名服务器的NS记录,保存在域名解析文件named.ca中。

vim /etc/named.conf

zone "." IN {
type hint;
file "named.ca";
}; vim /var/named/named.ca ; formerly NS.INTERNIC.NET
;
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
;
; FORMERLY NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:84::b
;
; FORMERLY C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2::c
"/var/named/named.ca" 92L, 3289C
... ...

DNS解析原理与Bind部署DNS服务的更多相关文章

  1. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  2. DNS解析原理和流程

    DNS解析原理和流程   DNS解析其实就是将IP地址(202.96.134.133)变成域名(www.xxxxx.com)   网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所 ...

  3. 使用bind部署DNS主从服务器

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建主从DNS服务器的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查看相关软件版 ...

  4. 用户上网的基本流程图与DNS解析原理

    1.用户上网发送请求,首先确认本地的hosts中是否含有域名,有则进行ip访问,如果没有呢?看本机的display缓存中有没有访问网站的ip,有就直接去访问 那么如果本地的hosts和缓存都没有呢?这 ...

  5. Linux 系统DNS解析原理

    DNS:域名的解析,也称A记录,CDN服务器   配置文件位置:       vi /etc/resolv.conf 解析原理 DNS就像一个倒挂的树,定点是点. www.baidu.com ==&g ...

  6. DNS解析原理

    1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 2.如果hosts里没有这个域名的映射,则 ...

  7. bind域名dns解析及主从服务的配置

    bind域名dns解析及主从服务的配置 1.dns解析介绍     人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...

  8. DNS解析全过程及原理

    DNS解析原理及过程. 当用户访问我们网站一个网页时,他需要经过以下步骤: 1)找到这个网页的存放服务器: 2)服务器将用户的请求信息接入: 3)服务器通过文件路径(URL)查找用户请求网页: 4)用 ...

  9. 分析DNS解析时间

    提高网页的打开速度,一般地我们会选择使用CDN,利用“就近原则”让用户在最短的时间内获取到服务器资源,实际应用当中采用CDN的方式提高网站访问速度的效果也是最明显的.这也就是为什么国外的空间打开速度远 ...

随机推荐

  1. 【题解】HNOI2018转盘

    何学长口中所说的‘一眼题’……然而实际上出出来我大HN全省也只有一个人A…… 首先我们需要发现一个性质:我们永远可以在最后一圈去标记所有的物品.倘若我们反复转圈,那么这完全是可以省下来的.所以我们破环 ...

  2. 【luogu2181】对角线

    首先由于不会有三条对角线交于一点,所以过某一个交点有且只能有2条对角线 而这两条对角线实质上是确定了4个顶点(也可以看做是一个四边形的两条对角线交于一点,求四边形的数量). 因此我们只需要确定4个顶点 ...

  3. BZOJ4755: [JSOI2016]扭动的回文串——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4755 JYY有两个长度均为N的字符串A和B. 一个“扭动字符串S(i,j,k)由A中的第i个字符到 ...

  4. BZOJ4337:[BJOI2015]树的同构——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4337 树是一种很常见的数据结构. 我们把N个点,N-1条边的连通无向图称为树. 若将某个点作为根, ...

  5. [usaco] 2008 Dec Largetst Fence 最大的围栏 2 || dp

    原网站大概已经上不了了-- 题目大意: 求出平面上n个点组成的一个包含顶点数最多的凸多边形.n<=250. 考虑我们每次枚举凸包的左下角为谁(参考Graham求凸包时的左下角),然后像Graha ...

  6. std::string::find() 和 std::string::npos

    npos是一个常数,用来表示不存在的位置,string::npos代表字符串到头了结束了.   int idx = str.find("abc");if (idx == strin ...

  7. ACM1004 Let the balloons fly

    These code is for the problem "Let the balloons Fly" in ACM 1004 which need deal with stri ...

  8. CSS3知识之折角效果

    CSS3折角效果:可兼容不同背景

  9. mysql 压缩包免安装版 安转步骤

    一. 下载 MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会有几个版本的选择. 1. MySQL Community Server 社区版本 ...

  10. 2017 济南综合班 Day 1

    送分题(songfen) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK喜欢干一些有挑战的事,比如说求区间最大子段和.它知道这个题目有O(n)的做法.于 ...