DNS解析原理与Bind部署DNS服务

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       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns.test.com.          //域名服务器记录:表示该域名由哪台DNS进行解析ns      IN A    192.168.41.10IN MX 10 mail.test.com.       //邮箱交换记录,用于邮件系统解析mail    IN A    192.168.41.10www     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.comServer:		192.168.41.10Address:	192.168.41.10#53Name:	www.test.comAddress: 192.168.41.10> bbs.test.comServer:		192.168.41.10Address:	192.168.41.10#53Name:	bbs.test.comAddress: 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       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns.test.com.ns      A       192.168.41.1010      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.10Server:		192.168.41.10Address:	192.168.41.10#5310.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.20Server:		192.168.41.10Address:	192.168.41.10#5320.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;};  //主服务器IPfile "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]# ls192.168.41.arpa  test.com.zone		// 主服务器数据文件已经同步过来了[root@localhost slaves]# nslookup	> www.test.comServer:		192.168.41.30Address:	192.168.41.30#53Name:	www.test.comAddress: 192.168.41.10> bbs.test.comServer:		192.168.41.30Address:	192.168.41.30#53Name:	bbs.test.comAddress: 192.168.41.10> 192.168.41.10Server:		192.168.41.30Address:	192.168.41.30#5310.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.confzone "." 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     
... ...

 

转载于:https://www.cnblogs.com/Peter2014/p/7561597.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt 获取本机的wifi密码_还在记密码?这款开源免费的账号密码管理神器赶紧收了...

工作中涉及到得账号密码,你是怎么记录得?如果是文档word或者excel记录,那么回非常麻烦,每次还得打开。如果是浏览器自己记录,如果更新密码,又记不得。尴尬!今天大卫给大家推荐一款开源免费得账号…

adaptec raid linux,adaptecraid卡管理软件在windows和linux下的安装使用介绍(7页)-原创力文档...

adaptec raid卡管理软件在 windows和linux下的安装使用文档l.adaptec raid卡的管理软件在 windows下安装后的运行界面如下图:adaplecadaplec点击connect后,便可进入管理软件的主界面,如下图:在这个主界面中可以选择要操作的 raid卡,例如本例中…

think queue 消息队列初体验

使用的是tp5 自带的消息队列 thinkphp top里的 消息队列框架 think-queue 这是thinkphp官方团队开发的一个专门支持队列服务的扩展包 消息队列应用场景: 消息队列适用于大并发或者返回结果 时间有点长并需要批量操作的第三方接口。 当前使用快递单号获取&#xf…

Linux快速计算MD5和Sha1命令

Linux计算MD5和Sha1的命令 MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。 S…

win10无法运行C语言文件,主编告诉你win10打不开pdf文件的详尽处理办法

win10打不开pdf文件的问题大家有没有发现呢?今天有一个网友就来向小编询问处理办法。其实不知都还有多少用户遇到了win10打不开pdf文件的问题,我们可以尝试着自己来处理win10打不开pdf文件的问题,我们其实只需要这样操作:1、2、就…

MySQL 自带的四个数据库 介绍

背景 通过终端登录mysql数据库(或直接用客户端工具)查看全部数据库,如下: 5.7及以上自带库为:information_schema、mysql、performance_schema、sys; 5.6自带的库为:information_schema、mysql、performa…

简单绘图软件实现mfc大作业_纸笔书写|可直播可微课可写作业可批改的手写板,快来爱“我”吧...

线上教学进入下半场,我们需要什么?走过线上教育的探索期,相信不少老师已经对线上教学驾轻就熟了,但对于线上教学来说,合适的教学支持工具始终是必不可少的。不论是文科教师,还是理科教师,对于真…

一道多线程通信实例分析

程序如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354public static void main(String[] args) throws Exception{ final List list new ArrayList(); final Object lock new Object(); Thread t1 …

react native (一)

开始接触app方面的工作,真心塞~又开始了周而复始的死磕一个问题专坐一整天的节奏,关键是还没有成绩,实在无语。╮(╯▽╰)╭,还是总结一下最近心塞历程吧……react native中文网:http://reactnative.cn/docs/0.48/gett…

2台电脑一根网线传文件_「教程」如何快速的在两台电脑间传输大文件?

两台电脑如何传输文件我们常见的就是使用U盘或者网盘进行传输但是速度非常的慢我们需要一种文件可以直接复制到另一台设备的方法首先准备一根网线然后将两台电脑连接到同一局域网内在右下角的小电脑打开网络设置找到共享选项然后将公用文件夹共享开启在下面密码保护的共享中你可…

C语言信息系统贴吧,急 c语言学生信息管理系统

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼scanf("%s",s.name);printf("请输入学生的性别:");scanf("%s",s.sex);printf("请输入学生的班级:");scanf("%s",s.grade);printf("请输入学生的成绩…

Python 内置模块之 re

前言 输入一个手机号18333333333,你是怎么知道这串数字是手机号呢,假如现在你用python写一段代码,类似: phone_number input(please input your phone number:) 你怎么判断这个phone_number是合法的呢?…

mysqld_safe启动mysql

/home/data_mysql/mysql_3306/bin/mysqld_safe --defaults-file/home/data_mysql/mysql_3306/my.cnf --userroot & 原来的 /home/data_mysql/mysql_3306/bin/mysqld --defaults-file/home/data_mysql/mysql_3306/my.cnf --basedir/home/data_mysql/mysql_3306 --datadir/ho…

订阅内容解码失败(非base64码)_【火眼金睛】超强解码能力——邦纳全新ABR系列读码器来袭!...

点击关注▲ “邦纳”,开启智造之旅邦纳全新ABR系列读码器具有超强的解码能力,两种不同子系列产品,具有多重分辨率和镜头配置。从此读码不再是难题!产品特点超强的解码能力使其可以读取困难的1D/2D码,包括DPM码和低对比…

程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结

程序员面试、算法研究、编程艺术、红黑树4大经典原创系列集锦与总结 作者:July--结构之法算法之道blog之博主。 时间:2010年10月-2011年6月。 出处:http://blog.csdn.net/v_JULY_v 。 声明:版权所有,侵犯必究。 前言 …

android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...

在android开发中进行数据存储与访问的多种方式介绍更新时间:2013年06月07日 16:24:23 作者:很多时候我们的软件需要对处理后的数据进行存储或再次访问,Android为数据存储提供了多种方式,首先给大家介绍使用文件如何对数据进行存…

MySQL5.6主从复制(读写分离)方案

MySQL5.6主从复制(读写分离)方案 https://yq.aliyun.com/articles/24255 摘要: 一、前言:为什么MySQL要做主从复制(读写分离)? 通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务…

Python 内置模块之 os

os.walk os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。简单来说,就是挨个遍历指定路径下的目录(文件夹)和文件。用于通过在目录树中游走输出在目录中的目录名,文件名…

[arm驱动]linux内核时钟

《[arm驱动]linux内核时钟》涉及内核驱动函数四个,内核结构体一个,分析了内核驱动函数一个;可参考的相关应用程序模板或内核驱动模板一个,可参考的相关应用程序模板或内核驱动一个 一、内核定时器 意义:内核定时器是软件意义上…

企业网站 源码 服务邮箱:_公司企业邮箱购买,外贸企业邮箱用哪家服务好?

企业日常办公,经常会用到各种办公软件,而企业邮箱便是最常用的产品。公司在购买企业邮箱时需要考虑哪些方面,尤其是对于外贸行业的企业邮箱,应该如何选择呢?1. 安全保障公司企业邮箱购买时,首先要关注的就是…