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

DNS解析原理与Bind部署DNS服务相关推荐

  1. Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统

    Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...

  2. kubernetes集群内部DNS解析原理

    kubernetes集群内部DNS解析原理 当kubernetes初始化完成后,在kube-system名称空间下会出现kube-dns的service服务与coredns的pod $ kubectl ...

  3. 命令理解DNS解析原理

    通过执行下面的命令可以清晰地理解DNS解析原理 dig @8.8.8.8 www.baidu.com +trace 执行结果 ~ $ dig @8.8.8.8 www.baidu.com +trace ...

  4. DNS协议从入门到部署DNS服务器

    目录 一.入门知识 二.部署DNS服务器 三.抓包DNS实验 四.部署DNS缓存域名服务器 一.入门知识 1. DNS概念 2.域名空间 3.DNS查询过程 其中1.8是递归查询,2-7是迭代查询 4 ...

  5. jtextpane设置不能选中_电脑为什么打不开指定的网站?什么是DNS解析我要如何设置DNS...

    每天都浏览的一个网站突然间打不开了,明明网络没有问题,打开其它的网站都是正常的,为什么就突然打不开了呢? 电脑为什么打不开指定的网站?什么是DNS解析我要如何设置DNS 这时候我们要了解一下什么是DN ...

  6. dns辅助服务器的配置时,主dns配置的区域文件不能复制过来,使用bind部署DNS主从服务器...

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

  7. 剖析 kubernetes 集群内部 DNS 解析原理

    作者 | 江小南 来源 | 江小南和他的小伙伴们 引言 说到DNS域名解析,大家想到最多的可能就是/etc/hosts文件,并没有什么错,但是/etc/hosts只能做到本机域名解析,如果跨机器的解析 ...

  8. 购买域名之后如何设置DNS,DNS解析原理与dig命令使用

    关于域名注册之后,DNS设置解析设置的一些问题 域名解析 域名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站.IP地址是网络上标识服务器的 ...

  9. linux看dns解析的时间,curl测试dns解析时间

    经查遇到需要测量网络请求时间的问题,包括DNS解析.连接.传输等时间.Linux下的curl命令可以很好的测量网络请求. 如下: curl -o /dev/null -s -w %{time_conn ...

最新文章

  1. 【Android Binder 系统】一、Binder 系统核心 ( IPC 进程间通信 | RPC 远程调用 )
  2. 非静态方法可以调用静态变量吗
  3. 2.Rails程序框架
  4. 申请软著源程序量一般填多少
  5. 能上QQ但打不开网页的简单修复方法
  6. 【项目管理/PMP/PMBOK第六版/新考纲】计算题! 项目章程/变更/工作绩效报告/项目范围说明书/工作分解结构WBS/最小浮动时间/挣值分析/采购
  7. Java如何打印输出九九乘法表
  8. MATLAB--数字图像处理 特征点匹配
  9. html生成真正的空图片代码 用canvas和script生成无实质性的空白图像 比图像透明处理还要牛 那种空白透明头像就是这么做出来的
  10. python24点游戏
  11. 腾讯QQ屏幕识图工具,对开发用处很多,特别对于需要图片文字识别的
  12. 用excel来构建柯布-道格拉斯Cobb-Douglas生产函数的可视化
  13. c#移动鼠标到指定坐标并点击
  14. Latex中三线表制作
  15. 解决华硕前置音频没声音,但后置音频有声音,没有Realtak音频管理器如何处理的问题
  16. 833C语言程序设计与数据结构,2018年北方民族大学计算机技术833C语言程序设计与数据结构之C程序设计考研核心题库...
  17. 论黄金分割的设计使用
  18. 2015百度校招产品经理笔试题
  19. Windows操作系统cmd/Dos批处理命令与脚本手册bat
  20. Dlib学习人脸比对

热门文章

  1. 【POJ - 3342】Party at Hali-Bula(树形dp,最大独立集,是否有唯一解)
  2. 两阶段3D目标检测网络 SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud
  3. 4.1)深度卷积网络:卷积神经网络基础
  4. Apollo进阶课程⑪ | Apollo地图生产技术
  5. 4)机器学习基石笔记 Lecture4:Feasibility of Learning
  6. 吴恩达机器学习作业(五):支持向量机
  7. 吴恩达机器学习作业(3):逻辑回归
  8. mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决
  9. redis 哨兵 异步_突破Java面试(23-8) - Redis哨兵主备切换的数据丢失问题-阿里云开发者社区...
  10. leetcode326. 3的幂 如此6的操作你想到了吗