CentOS 6.10搭建本地DNS缓存服务器
系统环境

1 [root@test ~]# cat /etc/redhat-release
2 CentOS release 6.10 (Final)
3 [root@test ~]# uname -r
4 2.6.32-754.el6.x86_64
5 [root@test ~]# getenforce
6 Disabled
7 [root@test ~]# /etc/init.d/iptables stop

安装DNS服务包

1 [root@test ~]# yum -y install bind bind-libs bind-utils

修改配置文件
bind DNS服务的主配置文件是/etc/named.conf,默认情况下是已经启用了本地缓存功能。不过为了加快查询速度和解决一些报错,通常情况下我们还需要一些调整。

 1 [root@test ~]# cat /etc/named.conf
2 //
3 // named.conf
4 //
5 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
6 // server as a caching only nameserver (as a localhost DNS resolver only).
7 //
8 // See /usr/share/doc/bind*/sample/ for example named configuration files.
9 //
10
11 options {
12 listen-on port 53 { any; };
13 // listen-on-v6 port 53 { ::1; };              #不监听IPv6的端口
14 directory "/var/named";
15 dump-file "/var/named/data/cache_dump.db";
16 statistics-file "/var/named/data/named_stats.txt";
17 memstatistics-file "/var/named/data/named_mem_stats.txt";
18 allow-query { any; };                     #允许任意主机向我查询
19 recursion yes;                          #开启递归查询
20 forworders { 114.114.114.114; 8.8.8.8; };          #开启转发,启用forwarders查询会减少本地流量的浪费,直接从转发的服务器上查询的结果返回;
21 dnssec-enable no;                         #关闭
22 dnssec-validation yes;
23
24 /* Path to ISC DLV key */
25 bindkeys-file "/etc/named.iscdlv.key";
26
27 managed-keys-directory "/var/named/dynamic";
28 };
29
30 logging {
31 channel default_debug {
32 file "data/named.run";
33 severity dynamic;
34 };
35 };
36
37 zone "." IN {
38 type hint;
39 file "named.ca";
40 };
41
42 include "/etc/named.rfc1912.zones";
43 include "/etc/named.root.key";

此时已完成了一个本地缓存服务器的配置。
测试本地缓存服务器

 1 [root@test ~]# ip a
2 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
3 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4 inet 127.0.0.1/8 scope host lo
5 inet6 ::1/128 scope host
6 valid_lft forever preferred_lft forever
7 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
8 link/ether 00:0c:29:18:98:2b brd ff:ff:ff:ff:ff:ff
9 inet 10.0.0.77/24 brd 10.0.0.255 scope global eth0
10 inet6 fe80::20c:29ff:fe18:982b/64 scope link
11 valid_lft forever preferred_lft forever
12
13 [root@test ~]# cat /etc/resolv.conf        #设置本机使用的DNS服务器为刚刚搭建的DNS
14 nameserver 10.0.0.77
15
16 [root@test ~]# nslookup                
17 > www.baidu.com
18 Server: 10.0.0.77
19 Address: 10.0.0.77#53
20
21 Non-authoritative answer:
22 www.baidu.com canonical name = www.a.shifen.com.
23 Name: www.a.shifen.com
24 Address: 115.239.210.27
25 Name: www.a.shifen.com
26 Address: 115.239.211.112
27 [root@test ~]# ping baidu.com            #这里你可能会看到这次解析出的IP和前面的不一样,这是因为百度的集群负载均衡调度的结果
28 PING baidu.com (220.181.57.216) 56(84) bytes of data.
29 64 bytes from 220.181.57.216: icmp_seq=1 ttl=128 time=30.5 ms
30 64 bytes from 220.181.57.216: icmp_seq=2 ttl=128 time=30.9 ms

禁用IPv6解析
1)注释主配置文件的IPv6选项
2)修改/etc/sysconfig/named文件
OPTIONS="whatever" 改为 OPTIONS="-4"
# 注意OPTIONS选项的值可以是:whatever、-4、-6中的一个
禁用dnssec功能
为什么禁用?

如果不禁用,日志里面会报下面的错误

1 Dec 20 14:52:22 test named[2159]: error (insecurity proof failed) resolving 'in-addr.arpa/DNSKEY/IN': 114.114.114.114#53
2 Dec 20 14:52:22 test named[2159]: validating @0x7fc654456820: 123.in-addr.arpa SOA: got insecure response; parent indicates it should be secure
3 Dec 20 14:52:22 test named[2159]: error (no valid RRSIG) resolving '125.123.in-addr.arpa/DS/IN': 114.114.114.114#53
4 Dec 20 14:52:22 test named[2159]: validating @0x7fc6544574b0: 123.in-addr.arpa DNSKEY: got insecure response; parent indicates it should be secure

dnssec功能会对解析结果进行验证,是否为权威解答,不是就会报错,虽然不影响使用,但是看着不爽。
怎么禁用?
修改主配置文件

1 # vim /etc/named.conf
2 dnssec-enable no;
3 dnssec-validation no;

创建本地DNS服务器,解析本地DNS记录
我们只需要在上面的DNS缓存服务器上增加个zone区域文件即可。

1 # vim /etc/named.rfc1912.zones
2 # 最后面加上这个zone
3 zone "test" IN {
4 type master;
5 file "test.zone";
6 allow-update { none; };
7 };

# 创建对应的test.zone文件(配置解析记录)

1 [root@test ~]# cp -a /var/named/named.localhost /var/named/test.zone

把要解析的记录写进该文件
重启DNS服务即可
listen与query项出于安全考虑,也可以将any设置为192.168.1.0/24这样的格式;
dump-file项需要注意的是默认情况下dns本地缓存数据都是存放在内存中,只有在使用rndc dumpdb -all 时才会将内存中的数据保存在本地盘中,保存的路径就是该项配置的名称;
启用forwarders查询会减少本地流量的浪费,直接从转发的服务器上查询的结果返回;

Linux下搭建DNS缓存服务器的更多相关文章

  1. linux下搭建svn本地服务器

    在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local  # svnadmin create led_diplay ...

  2. Centos下搭建DNS域名解析服务器

    Centos下搭建DNS域名解析服务器 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域 ...

  3. Linux下刷新DNS缓存(Ubuntu/CentOS)

    现在很多Linux发行版都没有内置DNS本地缓存,Linux不像Windows那样可以使用ipconfig /flushdns来刷新,在Linux下无需刷新,因为本身没有缓存: 当然,如果非要缓存刷新 ...

  4. Linux下清除DNS缓存

    通常有的时候我们通过域名打不开网页,有可能使DNS缓存的原因(DNS解析的ip地址变了),解决办法如下: 方法一:$nslookup ecafe.pub(这里是你要打开的域名) 方法二:$sudo / ...

  5. Linux下搭建DNS服务器

    1. 安装需要的软件 由于实验过程是在自己电脑进行的,所以需要安装bind bind-chroot,以下为安装过程. 图1-1 安装bind 图1-2 安装bind-chroot 2.修改DNS主配置 ...

  6. Linux下搭建Memcached缓存系统

    首先说下抱歉,博主近期单位经常加班.博客更新有点慢.希望大家理解,草稿箱里存了不少内容,等不忙时候一点点填坑~ 在一般的站点开发学习时候.都会把数据存放在RDBMS(关系型数据库系统(Relation ...

  7. Linux下搭建Windows KMS服务器

    这几天微软发布了Windows 10 RedStone 1 Build 14390, 于是我第一时间下载进行了试用.和之前那种不激活也没有任何异样不同,现在的版本如果不激活有些功能就受限了,比如你无法 ...

  8. Linux下搭建ntp时间同步服务器

    1.ntpd软件安装(略过) 2.修改ntp.conf配置文件 vi /etc/ntp.conf 第一种配置:允许任何IP的客户机都可以进行时间同步将“restrict default kod nom ...

  9. Linux 下搭建jsp服务器(配置jsp开发环境)

    Linux 做为服务器的高效一直时为人所熟知的了,在linux 上搭建各种各样的服务器和开发环境也时学计算机的人常做的.以下时最近在linux配置jsp服务器的全过程,包含一些基本步骤和排错过程: 1 ...

随机推荐

  1. python小结 1

    1.变量 记录状态 类型:数字,字符串,元组,列表,字典 可变不可变(内存地址不变的情况下,值能不能改变): 不可变:字符串,数字,元组 可变:列表,字典 访问顺序: 直接访问:数字 有序:字符串,列 ...

  2. Python:每日一题001

    题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? **程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 个人解 ...

  3. boost asio 学习(四)使用strand将任务排序

    http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio?pg=5 4. Seri ...

  4. leveldb 学习记录(一) skiplist

    leveldb LevelDb是一个持久化存储的KV系统,并非完全将数据放置于内存中,部分数据也会存储到磁盘上. 想了解这个由谷歌大神编写的经典项目. 可以从数据结构以及数据结构的处理下手,也可以从示 ...

  5. WPF图片拖拉变形、合成

    使用WPF的装饰器(Adorner)实现图片拖拉变形,DrawingVisual高保真合成图片.效果如下: 源码:https://gitee.com/orchis/ImageFotoMix.git

  6. zabbix简介与部署

    zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管 ...

  7. python中使用OpenCV处理图片

    1.导入OpenCV包 import cv2 2.读取图片 cv2.imread(image_path, mode)        读入函数,包含两个参数,第一个为图片路径及图片名,第二个为读取图片方 ...

  8. Alpha项目冲刺

    一.团队成员 学号 姓名 211606361 何承华(队长) 211606356 陈宇 211606360 丁培辉 211606333 温志铭 211606343 杨宇潇 211606391 张主强 ...

  9. 源码管理工具Git-客户端GitBash常用命令

    1.配置用户名和邮箱地址(第一次启动程序时配置,以后使用不用配置)git config --global user.name "dolen"git config --global ...

  10. XamlWriter-将对象树写入Xaml

    WPF通常用Xaml格式创建对象树.您还可以使用XamlWriter类进行反方向操作——将对象树写入Xaml. 对于XamlWriter来说,将对象转换成良好的Xaml表示形式通常很容易.但是,您不能 ...