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记录,那么回非常麻烦,每次还得打开。如果是浏览器自己记录,如果更新密码,又记不得。尴尬!今天大卫给大家推荐一款开源免费得账号…

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大作业_纸笔书写|可直播可微课可写作业可批改的手写板,快来爱“我”吧...

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

react native (一)

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

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

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

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

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

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

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

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

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

微软公司等数据结构+算法面试100题2010版全部出炉

微软等公司数据结构算法面试100题2010版首次完整亮相 作者:July、2010年12月6日。 更新:现今,这100题的答案已经全部整理出来了,微软面试100题2010年版全部答案集锦:http://blog.csdn.net/v_july_v/arti…

android横竖屏切换布局闪退,Android-Activity横竖屏切换不杀死Activity 并监听横竖屏切换...

在上一篇博客,Android-Activity临时数据的保存,中讲解到,当发生横竖屏切换的时候,系统会杀死Activity并重新启动Activity系统会杀死Activity12-12 08:11:50.441 3347-3347/liudeli.activity D/TempDataActivity: onPause12-12 08:…

基于web的新闻发布系统_终极Linux系统ExTiX 19.8发布,基于深度操作系统deepin15.11...

近日,GNU/Linux开发人员Arne Exton发布了他的ExTiX 终极Linux系统的新版本,带有全新的底层和更新的组件。ExTiX Deepin 19.8基于Deepin Linux操作系统,更具体地说,ExTiX Deepin 19.8基于最新的Deepin 15.11版本,它增加…

Python 之内置函数和匿名函数

内置函数 截止到python3.6.2,python一共为我们提供了68个内置函数。它们就是python提供可以直接拿来使用的所有函数 Built-in Functions abs()dict()help()min()setattr()all()dir()hex()next()slice()any()divmod()id()object()sorted()ascii()enumerate()input(…

“西邮漫记”--自由照耀中国

"西邮漫记"--自由照耀中国九月初在北京linuxWorld大会上我遇见了久违的陈莉君教授,陈教授是西安邮电学院计算机系教授Linux内核的老师,上次相识是在广州参加广东Linux推进中心举办的“Linux文化节”,当时陈教…

numpy 是否为零_如果不懂 numpy,请别说自己是 python 程序员

(给Python开发者加星标,提升Python技能)作者:牧马人 (本文来自作者投稿)0. 前言大约七八年前,我曾经用 pyOpenGL 画过地球磁层顶的三维模型,这段代码至今仍然还运行在某科研机构里。在那之前,我一直觉得自己是一个合(y…

android 编译luajit,Android 嵌入 LuaJIT 的曲折道路

相关链接:Windows 下编译 LuaJIT懒人与伸手党可以直接看最底部。为什么使用 LuaJITLua 官方版的编译嵌入相对简单,但是为什么要用 LuaJIT 呢?我所了解到的优势有:更高的运行效率。支持运行 Lua 编译后的机器码。虽然 Lua 也支持编…

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)

前言 记得刚来这家公司的时候,我部门就我一个运维工程师,然后就是经理,刚开始公司平台什么监控都没有,在我与经理的努力下,先搭建nagioscacti监控平台,后来随着公司业务的增加,平台的功能与服务…

Redis Python

Python操作Redis 安装Python使用Redis的库 sudo pip install redis or sudo easy_install redis or 源码安装 详见:https://github.com/WoLpH/redis-py 1.1 操作模式 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大…

js更新数组对象_7 种Vue 数据已更新而页面没有更新的情况及深化总结(收藏)

作者:前端1943链接:https://segmentfault.com/a/1190000022772025如果你发现你自己需要在 Vue 中做一次强制更新,99.9% 的情况,是你在某个地方做错了事。1. Vue 无法检测实例被创建时不存在于 data 中的 property原因:…

从P560小型机B181201B故障代码识别手把手详解

背景:生产小型机发生宕机事件,现场发现液晶面板存在B181201B代码,可是查看网络,未见有权威的参考文章,通过管理口登录HMC管理界面,发现错误代码B181201B,同时提示可能是电源故障,后登…