端口:53

一.DNS服务器

正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。域名的正向解析是DNS服务器最基本的功能,也是最常用的功能。

反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。域名的反向解析不是很常用,只在一些特殊场合才会用到,如可用于反垃圾邮件的验证。

缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都是一样的。关键区别在于,从域名服务器提供的解析结果并不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。

二.DNS服务器的查询模式及域名解析

域名解析过程:

当一个用户的地址输入www.crushlinux.com时,DNS解析有大致是个过程:

1.客户机想要获取ip地址,先找浏览器缓存,然后浏览器先检查自身缓存中中有没有被解析过这个域名,如果有解析结束。

2.如果没有,再找hosts,hosts检查自己有没有解析过这个域名,如果有,解析结束

3.如果没有,再找内网缓存服务器,来解析这个域名,

4.如果没有,缓存服务器就会找根域名服务器请求解析,根域名无法解析,就返回给缓存服务器.com的顶级域

5.缓存服务器再找.com的顶级服务器请求解析,.com域服务器也无法解析,返回给缓存服务器.crushlinux二级域

6.缓存服务器再找.crushlinux.com二级域服务器请求解析,.crushlinux.com域服务器 可以解析,然后就给缓存服务器的ip地址。

7.如果没有不可以解析,二级域会去找主机主服务器,www.crushlinux.com然后解析返回。

三.搭建缓存服务器

在CentOS7.x系统中,系统光盘自带了BIND服务的多个安装文件,各软件包的主要作用如下。

bind:提供了域名服务的主要程序及相关文件。

bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等。

bind-1ibs:提供了bind、bind-utils需要使用的库函数。

bind-chroot:可选软件包,为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND的根目录),以提高安全性。也称为jail(监牢)机制

默认已安装bind-utils和bind-libs,所以只需要安装bind即可。

(1)关闭相关安全机制:

iptables -F

systemctl stop firewalld

setenforce 0

(2)修改主配文件

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

options {

listen-on port 53 { 192.168.200.111; };

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     { 192.168.200.0/24; };

recursion yes;

};

zone "." IN {//正向“.”根区域

type hint;//类型为根区域

file "named.ca";//区域数据文件为named.ca

};

有时候为了提高解析效率,也可以不向根区域查询,而是将来自客户端的查询请求转发给国内电信运营商的DNS服务器(如北京的202.106.0.20、 202.106.148.1),缓存服务器收到返回的查询结果后再传递给客户端。只要去掉“zone "." IN{ ……};”的设置,并在全局配置中正确设置forwarders参数即可实现该功能。

[root@localhost etc]# vim named.conf

options {

……//省略部分内容

forwarders{202.106.0.20;   202.106.148.1;};

};

(3)启动服务

systemctl start named

四.搭建主从服务器

(1)关闭相关安全机制:

iptables -F

systemctl stop firewalld

setenforce 0

主服务器:

(1)安装bind

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

(2)修改相关文件

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

# Generated by NetworkManager

nameserver 192.168.200.111

nameserver 192.168.200.112

[root@localhost ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.200.111 ns1.crushlinux.com

192.168.200.112 ns2.crushlinux.com

(3.)修改主配文件

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

options {

directory "/var/named";

};

zone "crushlinux.com" IN {      //正向"crushlinux.com"区域

type master;            //类型为主区域

file "crushlinux.zheng";      //区域数据文件为crushlinux. com. zone

allow-transfer { 192.168.200.112; };  //允许从服务器地址下载正向域数据

};

zone "200.168.192.in-addr.arpa" IN {     //反向"192.168.200.0/24"区域

type master;

file "crushlinux.fan";

allow-transfer { 192.168.200.112; };   //允许从服务器地址下载反向域数据

};

(4.)创建正向解析

[root@localhost ~]# vim /var/named/crushlinux.zheng

$TTL 86400       //有效解析记录的生存周期

@ IN SOA crushlinux.com. admin.crushlinux.com. (  //SOA标记、域名、管理邮箱

20190817       //更新序列号,可以是10位以内的整数 3H              //刷新时间,重新下载地址数据的间隔

15M            // 重试延时,下载失败后的重试间隔

1W             //失效时间,超过该时间仍无法下载则放弃

1D             //无效解析记录的生存周期

)

IN NS ns1.crushlinux.com.

IN NS ns2.crushlinux.com.

IN MX 10 mail.crushlinux.com.

ns1 IN A 192.168.200.111

ns2 IN A 192.168.200.112

mail IN A 192.168.200.113

www IN A 192.168.200.114

study IN A 192.168.200.115

* IN A 192.168.200.111

ftp IN CNAME www

(5)创建反向解析

[root@localhost ~]# vim /var/named/crushlinux.fan

$TTL 86400

@ IN SOA crushlinux.com. admin.crushlinux.com. (

20190817

3H

15M

1W

1D

)

IN NS ns1.crushlinux.com.

IN NS ns2.crushlinux.com.

IN MX 10 mail.crushlinux.com.

111 IN PTR ns1.crushlinux.com.

112 IN PTR ns2.crushlinux.com.

113 IN PTR mail.crushlinux.com.

114 IN PTR www.crushlinux.com.

115 IN PTR study.crushlinux.com.

111 IN PTR ns1.crushlinux.com.

(6)修改正反向解析的组

[root@localhost ~]# chown :named /var/named/crushlinux.*

[root@localhost ~]# named-checkconf -z /etc/named.conf

[root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.zheng

[root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.fan

[root@localhost ~]# systemctl restart named

===============================================================================

从服务器:

(1)安装bind

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

(2)修改相关关文件

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

# Generated by NetworkManager

nameserver 192.168.200.111

nameserver 192.168.200.112

[root@localhost ~]# vim/etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.200.111 ns1.crushlinux.com

192.168.200.112 ns2.crushlinux.com

(3.)修改主配文件

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

options {

directory "/var/named";

};

zone "crushlinux.com" IN {     //正向"crushlinux.com"区域

type slave;            //类型为从区域

file "slaves/crushlinux.zheng";  //下载的区域文件保存到slave/crushlinux. com. zone

masters { 192.168.200.111; };   //指定主服务器的IP地址

};

zone "200.168.192.in-addr.arpa" IN {  //反向"173.16.16.0/24"区域

type slave;

file "slaves/crushlinux.fan";

masters { 192.168.200.111; };

};

(4)开启服务

[root@localhost ~]# systemctl restart named

Linux网络服务第七章DNS域名解析服务的更多相关文章

  1. 《linux就该这么学》第十四节课:第13章,部署DNS域名解析服务(bind服务)

    (借鉴请改动)  第十二章收尾  12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在  /etc/export  写入格式:共享目录    允许的客户端(参数)  ro        ...

  2. DNS域名解析四种配置实验 ---Linux DNS域名解析服务

    DNS域名解析服务一.BIND域名服务基础1) DNS的定义2)域名结构3)DNS系统的作用① 正向解析:根据域名查找对应的IP地址② 反向解析:根据IP地址查找对应的域名③ DNS系统的分布式数据结 ...

  3. DNS域名解析服务(bind)

    DNS(Domain Name System,域名系统): 用于管理和解析域名与IP地址对应关系的技术. 简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的I ...

  4. DNS域名解析服务以及Bind服务程序

    一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了. DNS域名解析服务( ...

  5. 使用unbound提供DNS域名解析服务

    使用unbound提供DNS域名解析服务 # 作者:Eric # 微信:loveoracle11g # 先配yum仓库 [root@server1 ~]# cd /etc/yum.repos.d/ [ ...

  6. DNS域名解析服务(重点)

    一 .DNS  系统的作用 1.DNS 服务器概述 DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名:与 IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正 ...

  7. 配置DNS域名解析服务

    概:   DNS技术作为互联网基础设施中的重要一环,为用户提供不间断.稳定且快速的域名查询服务,保证互联网正常运转.在互联网中,用户基本上都是基于DNS服务,使用域名访问网络上的计算机,DNS服务是我 ...

  8. Linux内核探讨-- 第七章

    本文是个人分析<Linux内核设计与实现>而写的总结,欢迎转载,请注明出处: http://blog.csdn.net/dlutbrucezhang/article/details/136 ...

  9. Linux内核分析——第七章 链接

    第七章——链接 1.链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载到存储器并执行. 2.链接可以执行于编译时,加载时,运行时. 7.1编译器驱动程序 1.大多数编译系 ...

随机推荐

  1. B 火车

    时间限制 : 10000 MS   空间限制 : 565536 KB 评测说明 : 1.5s,512m 问题描述 A 国有n 个城市,城市之间有一些双向道路相连,并且城市两两之间有唯一路径.现在有火车 ...

  2. php--php设计模式留存

    装饰者模式 <?php interface Decorator { public function display(); } class XiaoFang implements Decorato ...

  3. 【php】面向对象(一)

    1. 学习面向对象的目标: a) 语法的学习: b) 编程思想的学习: i. 过程化: ii. 面向对象:2. 比较(有对象和没对象的区别) a) 没对象: i. 我饿了 自己做饭 ii. 我渴了 自 ...

  4. Java第十天,多态

    多态 一.多态的定义: 一个对象拥有多种形态,这就是对象的多态性.也就是说多态针对的是对象.多态的前提是接口和继承(C++中实行多继承,不存在接口). 二.多态在代码中的形式: 父类 对象名 = ne ...

  5. 这份Java Web必读书单,值得所有Java工程师一看!

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,而目前市面上最流行的Jav ...

  6. python3 进程间通信之socket.socketpair()

    python3 进程间通信之socket.socketpair() socket.socketpair()是什么鬼东西? socket.socketpair()函数仅返回两个已经连接的套接字对象,参数 ...

  7. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  8. 广告行业中那些趣事系列9:一网打尽Youtube深度学习推荐系统

    最新最全的文章请关注我的微信公众号:数据拾光者. 摘要:本篇主要分析Youtube深度学习推荐系统,借鉴模型框架以及工程中优秀的解决方案从而应用于实际项目.首先讲了下用户.广告主和抖音这一类视频平台三 ...

  9. 数据结构和算法(Golang实现)(5)简单入门Golang-接口

    接口 在Golang世界中,有一种叫interface的东西,很是神奇. 一.数据类型 interface{} 如果你事前并不知道变量是哪种数据类型,不知道它是整数还是字符串,但是你还是想要使用它. ...

  10. 【课程学习】课程2:十行代码高效完成深度学习POC

    本文用户记录黄埔学院学习的心得,并补充一些内容. 课程2:十行代码高效完成深度学习POC,主讲人为百度深度学习技术平台部:陈泽裕老师. 因为我是CV方向的,所以内容会往CV方向调整一下,有所筛检. 课 ...