#################################

####### 配置高速缓存DNS ########

#################################

################

### DNS总揽 ###

################

##权威名称服务器

-存储并提供某个区域整个DNS域或DNS域的一部分的实际数据。权威名称服务器的类型包括

*Master包含原始区域数据。有时称作“主要”名称服务器

*Slaver备份服务器通过区域传送从Master服务器获得的区域数据的副本。有时称作“次要”名称服务器

##非权威/递归名称服务器

-客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括

*仅缓存名称服务器仅用于查找对于非数据之外的任何内容都不具有权威性

##DNS查找

-客户端上的Stub解析器将查询发送至/etc/resolv.conf中的名称服务器

-如果名称服务器

#########环境搭建##########

1.client端

ip172.25.254.119

dns/etc/resolv.conf172.25.254.219

1)修改主机名为client

[root@localhost ~]# hostnamectl set-hostname client.example.com

[root@localhost ~]# reboot

Connection to 172.25.254.119 closed by remote host.

Connection to 172.25.254.119 closed.

2配置client端的DNS服务器的地址

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

# Generated by NetworkManager

domain example.com

search example.com

nameserver 172.25.254.219

2.server端

ip172.25.254.219

dhs172.25.254.219

yum仓库/etc/yum.repos.d/rhel_dvd.repohttp://172.25.254.250/rhel7

1修改主机名为dns-server

[root@localhost ~]# hostnamectl set-hostname dns-server.example.com

[root@localhost ~]# reboot

Connection to 172.25.254.219 closed by remote host.

Connection to 172.25.254.219 closed.

2)配置yum仓库

[root@dns-server ~]# vim /etc/yum.repos.d/rhel_dvd.repo

# Created by cloud-init on Thu, 10 Jul 2014 22:19:11 +0000

[rhel_dvd]

gpgcheck = 0

enabled = 1

baseurl = http://172.25.254.19/rhel7.0

name = Remote cla***oom copy of dvd

[root@dns-server ~]# yum clean all##注意要刷新yum源

3安装bind9DNS服务软件

[root@dns-server ~]# yum install bind -y

4开启DNS服务

[root@dns-server ~]# systemctl status named

named.service - Berkeley Internet Name Domain (DNS)

Loaded: loaded (/usr/lib/systemd/system/named.service; disabled)

Active: inactive (dead)

[root@dns-server ~]# systemctl start named

--------------------------------------------------------------------------

注意启动过程太慢也许是因为系统刚开机所以加密字符不够导致的。可以通过在server端上敲击键盘或移动鼠标来增加无序字符来解决该问题。

系统会将无序字符存储在/dev/ramdom中可以cat /dev.random查看

[root@dns-server ~]# cat /dev/random

3:HxYK)T

加密字符存放在/etc/rndc.key中可以cat /etc/rndc.key查看

[root@dns-server ~]# cat /etc/rndc.key

key "rndc-key" {

algorithm hmac-md5;

secret "SriFRo71w6fL0Gf8tAeapA==";

};

---------------------------------------------------------------------------

5配置防火墙

[root@dns-server ~]# firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client ftp ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

[root@dns-server ~]# firewall-cmd --permanent --add-service=dns

success

[root@dns-server ~]# firewall-cmd --reload

success

[root@dns-server ~]# firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client dns ftp ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

6)修改selinux为警告模式非必要

[root@dns-server ~]# setenforce 0

#########DNS本地高速缓存服务器##########

1开启dns在所有端口上的tcp-53端口

[root@client ~]# dig www.baidu.com

connection timed out; no servers could be reached

##此时显示没有dns server可达是因为DNS server的tcp端口未开启

[root@dns-server ~]# netstat -antuple | grep named

##此处显示named的tcp-53端口只在127.0.0.1环回口开启了。

[root@dns-server ~]# rpm -qc bind##查看bind的配置文件都有哪些

/etc/logrotate.d/named

/etc/named.conf##此文件为主配置文件

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named

/var/named/named.ca

/var/named/named.empty

/var/named/named.localhost

/var/named/named.loopback

[root@dns-server ~]# vim /etc/named.conf

11         listen-on port 53 { 127.0.0.1; };

||

\/

11         listen-on port 53 { any; };

[root@dns-server ~]# systemctl restart named##重启服务后生效

2)配置DNS server回答所有人的dns请求

[root@client ~]# dig www.baidu.com

status: REFUSED

##此时client的dns请求被拒绝了是因为DNS server的配置未设置为响应所有人的dns请求

[root@dns-server ~]# vim /etc/named.conf

17         allow-query     { localhost; };

||

\/

17         allow-query     { any; };

[root@dns-server ~]# systemctl restart named##重启服务后生效

3)配置本地高速缓存DNS server获取dns的途径

[root@client ~]# dig www.baidu.com

status: SERVFAIL

##此时DNS server提供服务失败了是因为本地高速缓存DNS需要从其他DNS服务器上获取dns信息

[root@dns-server ~]# vim /etc/named.conf

18         forwarders      { 172.25.254.250; };##在18行添加该信息

[root@dns-server ~]# systemctl restart named##重启服务后生效

[root@client ~]# dig www.baidu.com##验证成功获取到dns解析

最后注意因为是本地高速缓存DNS所以在公网上未注册所以要关闭dns安全认证

4)关闭DNS安全认证(dnssec-validation)

[root@dns-server ~]# vim /etc/named.conf

33         dnssec-validation yes;

||

\/

33         dnssec-validation no;

[root@dns-server ~]# systemctl restart named##重启服务后生效

#########DNS正向解析##########

[root@dns-server ~]# vim /etc/named.conf

51 zone "." IN {

52         type hint;

53         file "named.ca";

54 };

55

56 include "/etc/named.rfc1912.zones";##指向了该文件

57 include "/etc/named.root.key";

[root@dns-server ~]# vim /etc/named.rfc1912.zones

19 zone "localhost" IN {

20         type master;

21         file "named.localhost";

22         allow-update { none; };

23 };

24

25 zone "tbr.com" IN {

26         type master;

27         file "tbr.com.zone";##指向了该文件

28         allow-update { none; };

29 };

##25-29行是模仿19-23行的模板而来的

[root@dns-server ~]# cd /var/named/

[root@dns-server named]# ls

data      named.empty      slaves

dynamic   named.localhost

named.ca  named.loopback

[root@dns-server named]# cp -p named.localhost tbr.com.zone

##注意此处cp一定要加-p保证通过模板复制的文件的所属组为named

[root@dns-server named]# ll

total 32

drwxrwx---. 2 named named   22 11月 20 01:23 data

drwxrwx---. 2 named named 4096 11月 21 02:55 dynamic

-rw-r-----. 1 root  named 2076 1月  28 2013 named.ca

-rw-r-----. 1 root  named  152 12月 15 2009 named.empty

-rw-r-----. 1 root  named  152 6月  21 2007 named.localhost

-rw-r-----. 1 root  named  168 12月 15 2009 named.loopback

drwxrwx---. 2 named named    6 1月  29 2014 slaves

-rw-r-----. 1 root  named  210 11月 20 03:15 tbr.com.zone

否则的话会变成

-rw-r-----. 1 root  root   210 11月 20 03:15 tbr.com.zone

[root@dns-server named]# vim tbr.com.zone

$TTL 1D

@       IN SOA  @ rname.invalid. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

NS      @

A       127.0.0.1

AAAA    ::1

||

\/

$TTL 1D

@       IN SOA  dns.tbr.com. root.tbr.com. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

NS      dns.tbr.com.

dns             A       172.25.254.219

www           A       172.25.254.19

wwwA172.25.254.18

bbs             CNAME   www.tbr.com.

tbr.com.        MX 1    172.25.254.219.

##dns.tbr.com.指的是dns server的名称

##注意此处的域名都是以.结尾的否则的话系统会自动加上/etc/named.rfc1912.zones文件中配置的后缀.tbr.com

##注意当多个ANAME的一个域名对应多个ip时此时DNS server会对该条dns解析进行轮询机制。现象如下

当频繁地执行dig www.tbr.com时两个ip的先后顺序会不断轮询变换。如图

[root@dns-server ~]# systemctl restart named##重启服务后生效

测试

[root@client ~]# dig -t mx tbr.com

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -t mx tbr.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41997

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;tbr.com.INMX

;; ANSWER SECTION:

tbr.com.86400INMX1 172.25.254.219.

;; AUTHORITY SECTION:

tbr.com.86400INNSdns.tbr.com.

;; ADDITIONAL SECTION:

dns.tbr.com.86400INA172.25.254.219

;; Query time: 1 msec

;; SERVER: 172.25.254.219#53(172.25.254.219)

;; WHEN: 一 11月 21 04:06:07 EST 2016

;; MSG SIZE  rcvd: 100

[root@client ~]# dig www.tbr.com ##测试ANAME

[root@client ~]# dig bbs.tbr.com##测试CNAME

[root@client ~]# mail root@tbr.com##测试MX邮件解析

Subject: dawda

fdawda

caw

.

EOT

[root@client ~]# mailq

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------

C8A7717E849      462 Sun Nov 20 03:05:10  root@localhost.localdomain

(connect to 172.25.254.219[172.25.254.219]:25: No route to host)

root@tbr.com

0938717E857      437 Mon Nov 21 04:09:23  root@client.example.com

(connect to 172.25.254.219[172.25.254.219]:25: No route to host)

root@tbr.com

-- 1 Kbytes in 2 Requests.

#########DNS反向解析##########

[root@dns-server named]# vim /etc/named.rfc1912.zones

37 zone "1.0.0.127.in-addr.arpa" IN {

38         type master;

39         file "named.loopback";

40         allow-update { none; };

41 };

42

43 zone "254.25.172.in-addr.arpa" IN {##表示172.25.254.0网段

44         type master;

45         file "tbr.comNaNr";

46         allow-update { none; };

47 };

##43-47行是模仿37-41行的模板而来的

[root@dns-server ~]# cd /var/named/

[root@dns-server named]# ls

data      named.empty      slaves

dynamic   named.localhost  tbr.com.zone

named.ca  named.loopback

[root@dns-server named]# cp -p named.localhost tbr.comNaNr##注意此处一定要加-p

[root@dns-server named]# vim tbr.com.zone

$TTL 1D

@       IN SOA  dns.tbr.com. root.tbr.com. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

NS      dns.tbr.com.

A       172.25.254.219

19      PTR     www.tbr.com.

18      PTR     www.hello.com.

##ip地址172.25.254.19---->www.tbr.com

##ip地址172.25.254.18---->www.hello.com

[root@dns-server ~]# systemctl restart named##重启服务后生效

测试

[root@client ~]# dig -x 172.25.254.19##反向查询域名

#########DNS的内网外网解析##########

假设172.25.254.119为内网测试主机172.25.254.219为外网测试主机

1.主配置文件修改

[root@dns-server named]# vim /etc/named.conf

51 /*\

52 zone "." IN {|

53         type hint;|

54         file "named.ca";|

55 };|->这部分注释掉

56 |

57 include "/etc/named.rfc1912.zones";|

58 include "/etc/named.root.key";|

59 *//

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

60 view localnet {

61         match-clients { 172.25.254.119;  };##client端匹配172.25.254.119的主机

62         zone "." IN {\

63         type hint|

64         file "named.ca";|->从52-55行复制而来

65 };/

66 include "/etc/named.rfc1912.zones";

67 };

68

69

70 view internet {

71         match-clients { 172.25.254.219;  };##client端匹配172.25.254.219的主机

72         zone "." IN {

73         type hint;

74         file "named.ca";

75 };

76 include "/etc/named.rfc1912.zones.inter";

77 };

##6171行中可以写成网段{ 172.25.254.0/24; };

/client端是172.25.254.119的区查看/etc/named.rfc1912.zones文件

##此部分的意义是|

\client端是172.25.254.119的区查看/etc/named.rfc1912.zones.inter文件

2./etc/named.rfc1912.zone与etc/named.rfc1912.zone.inter文件的配置

[root@dns-server named]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter##注意此处一定要加-p

##以/etc/named.rfc1912.zones为模板复制出外网主机读取的文件

[root@dns-server named]# vim /etc/named.rfc1912.zones.inter

25 zone "tbr.com" IN {

26         type master;

27         file "tbr.com.zone.inter";##外网主机再区查看该文件

28         allow-update { none; };

29 };

3./var/named/tbr.com.zone.inter文件的配置

[root@dns-server named]# ls

data      named.empty      slaves

dynamic   named.localhost  tbr.comNaNr

named.ca  named.loopback   tbr.com.zone

[root@dns-server named]# cp -p tbr.com.zone tbr.com.zone.inter##注意此处一定要加-p

[root@dns-server named]# ls

data      named.empty      slaves        tbr.com.zone.inter

dynamic   named.localhost  tbr.comNaNr

named.ca  named.loopback   tbr.com.zone

[root@dns-server named]# vim tbr.com.zone.inter

$TTL 1D

@       IN SOA  dns.tbr.com. root.tbr.com. (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

NS      dns.tbr.com.

dns             A       172.25.0.219

www            A       172.25.0.19

www            A        172.25.0.18

bbs             CNAME   www.tbr.com.

tbr.com.        MX 1    172.25.0.219.

[root@dns-server ~]# systemctl restart named##重启服务后生效

《总结》

各个文件之间的逻辑关系

/client端是172.25.254.119的区查看/etc/named.rfc1912.zones文件

|                                    ||

|                                    \/

|                    /var/named/tbr.com.zone

/etc/named.conf -->|

(主配置文件)  |                                    /var/named/tbr.com.zone.inter

|                                /\

|                                ||

\client端是172.25.254.119的区查看/etc/named.rfc1912.zones.inter文件

补充

man 5 named.conf##查看named.conf文件的信息

转载于:https://blog.51cto.com/10664148/1876284

西部开源学习笔记BOOK3《DNS本地高速缓存服务器》相关推荐

  1. 西部开源学习笔记BOOK3《unit 4.SMTP》

    ################################ ########## unit4.SMTP ########## ################################ # ...

  2. 西部开源学习笔记BOOK2-《unit 4》

    ############################## ##### unit4.管理系统存储 ##### ############################## #########1.分区 ...

  3. 西部开源学习笔记《unit 2》

    ############################# ########## unit 2 ########### ############################# ########## ...

  4. Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)

    Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程) 一.TCP服务器(一请求一线程) 的原理 二.完整代码 三.测试 四.补充 一.TCP服务器(一请求一线 ...

  5. TCP/IP详解--学习笔记(8)-DNS域名系统

    前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...

  6. TCP/IP详解学习笔记(8)-DNS域名系统

    前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...

  7. 开源 - 学习笔记 - 青阳网络文件传输系统初体验

    青阳网络文件传输系统 - 学习笔记 创建个启动脚本 账号权限配置 服务配置 参考资料 创建个启动脚本 @echo off title 青阳网络文件传输系统 start /B java -server ...

  8. Mr.J-- HTTP学习笔记(五)-- Web服务器

    Web 服务器实现了 HTTP 和相关的 TCP 连接处理. 负责管理 Web 服务器提供的资源, 以及对 Web 服务器的配置. 控制及扩展方面的管理. 我的专栏:  HTTP学习笔记 Web服务器 ...

  9. Linux学习笔记(一)(服务器环境搭配 常用命令 文件属性)

    Linux学习笔记(一) 概述 Linux发行版 Linux应用 Linux系统运行级别 远程环境配置 连接服务器 安装宝塔 配置环境 测试 测试连接Tomcat 测试访问网站 测试上传 学习Linu ...

最新文章

  1. 使用FortJs使用现代JavaScript开发Node.js
  2. 使用 AppFuse 的七个理由
  3. 用C#语言构造蜘蛛程序
  4. 笔记-项目配置管理-创建基线或发行基线的主要步骤
  5. 使用NetronGraphLib类库开发Qfd质量屋编制工具
  6. 为什么这么多应届生要进入互联网行业?
  7. Cocos2d-x windows + vs2010 配置图文详解
  8. (20)python_matplotlib解决中文乱码问题
  9. Java继承的基本概念及其限制(基础语法二)
  10. dskinlite(uieasy mfc界面库)使用记录4:绘制动态元素(listbox)
  11. 微信照片打印服务器端,基于微信平台的自助照片打印系统
  12. 微信自动发卡机器人说明
  13. 根据配置好的图层文件(*.lyr),对加载的栅格数据进行渲染!
  14. 怎样在富文本编辑器插入图片
  15. 特别详细的数据中心运维管理方案
  16. mysql主从配置duxi_​WordPress大前端主题DUX 5.1
  17. 第二十九讲 求方程组通解和特解的公式(矩阵指数)
  18. js实现在微信中下载app
  19. 在Excel Power Query中提取数据
  20. Arcgis中碎小斑块的处理

热门文章

  1. Go语言的中文编码问题
  2. 程序启动时的黑屏问题
  3. 基于android公交车线路查询论文文献,基于Android手机的实时公交查询系统设计与实现...
  4. 红蓝演习对抗之溯源篇
  5. keysight-34461A使用感受
  6. Javascript的调试利器:Firebug使用详解(上)
  7. 表格式计算机教案模板,教案的表格格式_教案的表格模板
  8. MySQL 实验四数据库的数据查询
  9. 季度工作总结PPT模板,懂你所需
  10. 遨博机器人执行线程_遨博机器人报错代码:If命令 if…else和条件选择命令Switch...Case...Default...