如何清空linux中dns缓存

如何清空linux中dns缓存,第1张

Linux下DNS缓存实现通常有两种方式:

一种是用DNS缓存程序NSCD(name service cache daemon)负责管理DNS缓存。

一种实现DNS缓存则是用Bind来架设Caching Name Server来实现。

如果是清除NSCD上的Cache,可重新启动NSCD服务来达成清除DNS Cache的效果。用这个命令:

# service nscd restart

或是

#/etc/init.d/nscd restart

如果是清除BIND服务器上的CACHE,用这个命令:

# rndc flush

如果你的DNS服务器是用dnsmasq实现的,用下面这个命令:

$ sudo /etc/init.d/dnsmasq restart

注:DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务。

BIND安装

软件下载地址:http://www.isc.org/software/bind,目前最新版本是BIND 9.8.1-P1。

安装依赖:

yum -y install gcc openssl-devel

开始安装bind.

wget ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz

tar xzf bind-9.8.1-P1.tar.gz

cd bind-9.8.1-P1

./configure --prefix=/usr/local/bind

make &&make install

执行完成后,bind已经安装到了/usr/local/bind目录。

配置主dns服务器

配置bind主要是两种文件,一是主配置文件named.conf,二是区域文件zone(包括正解析,反解析)。

在下面的配置中,我们的主dns服务器是ns1.qbtop.com 23.19.81.191,从dns服务器是ns2.qbtop.com 23.19.81.194(这两个dns都已经在godaddy注册好了)。

下面 *** 作仅在主dns服务器23.19.81.191执行。

主配置文件named.conf

首先执行rndc-confgen -a生成/etc/rndc.key密钥文件。

/usr/local/bind/sbin/rndc-confgen -a

vi /usr/local/bind/etc/named.conf

写入如下内容:

include "/usr/local/bind/etc/rndc.key"

controls { inet 127.0.0.1 port 953 allow { 127.0.0.1} keys { "rndckey"}}

logging {

channel default_syslog { syslog local2severity notice}

channel audit_log { file "/var/log/bind.log"severity noticeprint-time yes}

category default { default_syslog}

category general { default_syslog}

category security { audit_logdefault_syslog}

category config { default_syslog}

category resolver { audit_log}

category xfer-in { audit_log}

category xfer-out { audit_log}

category notify { audit_log}

category client { audit_log}

category network { audit_log}

category update { audit_log}

category queries { audit_log}

category lame-servers { audit_log}

}

options {

directory "/usr/local/bind/etc"

pid-file "/usr/local/bind/var/run/bind.pid"

transfer-format many-answers

interface-interval 0

allow-query { any}

}

zone "qbtop.com" {

type master

file "qbtop.com.zone"

allow-transfer { 23.19.81.194}

}

zone "81.19.23.in-addr.arpa" {

type master

file "81.19.23.in-addr.arpa"

allow-transfer { 23.19.81.194}

}

named.conf文件说明:

上面的named.conf文件包括三部分:key,controls,logging,options,zone。

logging:设置日志服务器和日志信息的发送地。

options:控制服务器的全局配置选项和为其它语句设置默认值

zone:定义一个域,比如正解析域和反解析域。

logging是定义日志的,不需要深究,主要是options和zone。

在options中:

directory "/usr/local/bind/etc":定义bind的工作目录为/usr/local/bind/etc,配置文件中所有使用的相对路径,指的都是在这里配置的目录下。

pid-file "/usr/local/bind/var/run/bind.pid":把bind程序运行的pid写入文件bind.pid。

transfer-format many-answers:使用更加有效的域传输格式many-answers。

allow-query { any}:允许所有用户查询dns。

在zone中:

这里定义了两个zone,一个是正解析zone qbtop.com,一个是反解析zone 81.19.23.in-addr.arpa。

他们的参数基本相同:

type master:定义dns服务器为主dns。

file "qbtop.com.zone":定义此zone的文件名。

allow-transfer { 23.19.81.194}:允许向从dns 23.19.81.194传输dns数据。

唯一不同的是zone名称的定义,正解析zone名称的定义是受权的域名,可以是顶级域名,也可以是二级域名,或多级。反解析zone名称定义规定前部分ip倒着写。如ip 192.168.1.2,名称定义为1.168.192.in-addr.arpa。

正解析qbtop.com.zone

vi /usr/local/bind/etc/qbtop.com.zone

写入如下内容:

$TTL 3600

@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (

2012022301 Serial

3600 Refresh

900 Retry

3600000 Expire

3600 ) Minimum

@ IN NS ns1.qbtop.com.

@ IN NS ns2.qbtop.com.

ns1 IN A 23.19.81.191

ns2 IN A 23.19.81.194

aaa IN A 23.19.81.191

bbb IN A 23.19.81.191

文件说明:

$TTL 3600:指示为每个没有特殊TTL设置的RR给出了一个默认的TTL。

@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (

2012022301 Serial

3600 Refresh

900 Retry

3600000 Expire

3600 ) Minimum

定义SOA记录,包括Zone的名字,一个技术联系人和各种不同的超时值。

@ IN NS ns1.qbtop.com.

@ IN NS ns2.qbtop.com.

设置两个ns记录ns1.qbtop.com和ns2.qbtop.com。

ns1 IN A 23.19.81.191

ns2 IN A 23.19.81.194

aaa IN A 23.19.81.191

bbb IN A 23.19.81.191

设置主机为ns1,ns2,aaa和bbb的A记录。

反解析文件81.19.23.in-addr.arpa

反解析zone可以不设置。

vi /usr/local/bind/etc/81.19.23.in-addr.arpa

写入如下内容:

$TTL 3600

@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (

2012022301 Serial

3600 Refresh

900 Retry

3600000 Expire

3600 ) Minimum

@ IN NS ns1.qbtop.com.

@ IN NS ns2.qbtop.com.

191 IN PTR ns1.qbtop.com.

194 IN PTR ns2.qbtop.com.

说明:

上部分是定义SOA记录,下部分是设置IP反解析。

如设置IP 23.19.81.191反解析成ns1.qbtop.com,23.19.81.194反解析成ns2.qbtop.com。

配置从DNS服务器

下面我们来配置从DNS服务器。配置从DNS服务器只需要配置主配置文件named.conf,zone文件不需配置,因为这是从主DNS服务器获取的。

首先建立目录slaves用来存放从主dns获取的zone文件。

mkdir /usr/local/bind/etc/slaves

写入如下内容:

logging {

channel default_syslog { syslog local2severity notice}

channel audit_log { file "/var/log/bind.log"severity noticeprint-time yes}

category default { default_syslog}

category general { default_syslog}

category security { audit_logdefault_syslog}

category config { default_syslog}

category resolver { audit_log}

category xfer-in { audit_log}

category xfer-out { audit_log}

category notify { audit_log}

category client { audit_log}

category network { audit_log}

category update { audit_log}

category queries { audit_log}

category lame-servers { audit_log}

}

options {

directory "/usr/local/bind/etc"

pid-file "/usr/local/bind/var/run/bind.pid"

transfer-format many-answers

interface-interval 0

allow-query { any}

}

zone "qbtop.com" {

type slave

file "slaves/qbtop.com.zone"

masters { 23.19.81.191}

}

zone "81.19.23.in-addr.arpa" {

type slave

file "slaves/81.19.23.in-addr.arpa"

masters { 23.19.81.191}

}

文件说明:

从dns跟主dns主要的区别是zone的定义,type slave定义此dns服务器为从dns,masters { 23.19.81.191}定义主dns的IP。

启动BIND

1、在启动BIND之前,我们需要执行/usr/local/bind/sbin/named-checkconf检查named.conf配置文

件,和执行/usr/local/bind/sbin/named-checkzone zone名称

zone文件名,如/usr/local/bind/sbin/named-checkzone qbtop.com

/usr/local/bind/etc/qbtop.com.zone。

然后调试模式启动bind,/usr/local/bind/sbin/named -g,g参数的意思是前台执行bind,这会输出启动的信息,发现没有严重的错误后,再把g参数删除重新以/usr/local/bind/sbin/named方式后台启动bind。

2、设置开机启动,在/etc/rc.d/rc.local中加入/usr/local/bind/sbin/named。

手动添加记录

1、直接添加删除或修改zone文件里的记录

2、执行rndc reload zone名称重载,如rndc reload qbtop.com

在linux系统中一般通过bind软件包来提供dns服务。

1、环境准备:

临时关闭selinux和iptables

#setenforce 0

#service iptables stop

2、查询相关软件包:

[root@localhost ~]# yum search bind

Loaded plugins: product-id, refresh-packagekit, subscription-manager

Updating Red Hat repositories.

====================================================================================== N/S Matched: bind ======================================================================================

PackageKit-device-rebind.i686 : Device rebind functionality for PackageKit

bind.i686 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server

bind-chroot.i686 : A chroot runtime environment for the ISC BIND DNS server, named(8)

bind-utils.i686 : Utilities for querying DNS name servers

其中各软件包的作用如下:

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

2)、bind-chroot:为bind提供一个伪装的根目录以增强安全性。

3)、bind-utils:提供对DNS服务器测试的工具程序(如nslookup、dig等)。

3、安装BIND软件包

#yum install *bind*

4、配置DNS服务器:

1)、bind服务器端程序

主要执行程序:/usr/sbin/named

服务脚本:、etc/init.d/named

默认监听端口:53

主配置文件: /etc/named.conf

保存DNS解析记录的数据文件: /var/named/chroot/var/named

2)、查询bind程序的配置文件列表

[root@localhost ~]# rpm -qc 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

3)、查看主配置文件named.conf

#vim /etc/named.conf

4)、主配置文件解析:

a、全局配置部分,默认的全局配置项如下:

options {

 11         listen-on port 53 { 127.0.0.1 }                 //监听的端口和接口IP地址

 12         listen-on-v6 port 53 { ::1 }

 13         directory       "/var/named"                       //dns区域的数据文件默认存放位置

 14         dump-file       "/var/named/data/cache_dump.db"

 15         statistics-file "/var/named/data/named_stats.txt"

 16         memstatistics-file "/var/named/data/named_mem_stats.txt"

 17         allow-query     { localhost }                 //允许dns查询的客户机列表,any表示所有

 18         recursion yes                                       //是否允许客户机进行递归查询

 19

 20         dnssec-enable yes

 21         dnssec-validation yes

 22         dnssec-lookaside auto

 23

 24         /* Path to ISC DLV key */

 25         bindkeys-file "/etc/named.iscdlv.key"

 26 }

全局配置中还有如下选项:

     //将本域名服务器不能解析的条目转发给其它DNS服务器的IP地址

     forwarders {202.102.24.6812.3.3.3}

b、默认的区域配置项如下:

 35 zone "." IN {

 36         type hint      //区域类型。hint为根区域;master为主区域 slave为辅助区域

 37         file "named.ca"          //该区域对应的区域数据配置文件名

 38 }

区域配置中还有如下选项:

//允许下载区域数据库的从域名服务器IP地址

allow-transfer {189.98.90.23}              

//允许动态更新的客户端IP地址(none表示全部禁止)

allow-update {none}

添加如下区域配置:

zone “my.com” IN {

         type master                      //主区域

         file “my.com”                    //该区域对应的区域数据配置文件名

allow-transfer {192.168.153.1}           //允许下载区域数据库的从域名服务器IP地址

         allow-update {none}

}

zone “153.168.192.in-addr.arpa” IN {       //表示针对IP192.168.153.130反向解析

         type master                      //主区域

         file “192.168.153.my.arpa”       //该区域对应的区域数据配置文件名

}

5)、配置完了,可以执行如下命令对named.conf文件进行语法检查。

#named-checkconf

注意:倒序网络地址.in-addr.arpa 表示反向区域

主配置文件最后还有一行是:

//该文件包含/etc/named.rfc1912.zones文件

include “/etc/named.rfc1912.zones”

区域数据配置文件:

先看一下named.localhost的内容:

$TTL 1D             //time to live 生存时间

@       IN SOA  @ rname.invalid. (                    //”rname.invalid”DNS区域地址

                                        0        serial      //更新序列号

                                        1D       refresh  //更新时间

                                        1H       retry      //重试延时

                                        1W       expire   //失效时间

                                        3H )     minimum          //无效地址解析记录的默认缓存时间

        NS      @              //name server 域名服务记录

        A       127.0.0.1                   //address 只用在正向解析的区域数据文件中

        AAAA    ::1

新建2个对应的区域数据配置文件:

#touch my.com

#touch 192.168.153.my.arpa

#vim my.com

$TTL 86400

@ IN SOA my.com. admin.my.com (        //admin.my.cm为该区域管理员的邮箱地址

        200900201

        3H

        15M

        1W

        1D

)

@       IN      NS      ns1.my.com.           //当前域的DNS服务器地址

        IN      MX      10      mail.my.com.         //用于设置当前域的邮件服务器域名地址,数字10表示优先级别,数字越大优先级越低

ns1     IN      A       192.168.153.130

mail    IN      A       192.168.153.130

www     IN      A       192.168.153.130

ftp     IN      CNAME   www                 //CNAME别名(canonical name)记录,表示ftp.my.com和www.my.com对应同一个IP.

 

[root@localhost named]# vim 192.168.153.my.arpa

$TTL 86400

@ IN SOA my.com. admin.my.com (

        200900201

        3H

        15M

        1W

        1D

)

@       IN      NS      ns1.my.com.

130     IN              PTR     ftp.my.com

启动DNS服务

[root@localhost ~]# service named start

4、测试:

配置一台ftp服务器用于测试:

#service vsftpd start            //启动vsftpd服务 当前网卡的配置:

eth0: 192.168.0.1/24

eth1: 192.168.153.130/24 [root@localhost named]# nslookup 192.168.153.130

Server:               127.0.0.1

Address:  127.0.0.1#53

 

130.153.168.192.in-addr.arpa         name = www.my.com.

 

[root@localhost ~]# nslookup ftp.my.com

Server:               127.0.0.1

Address:  127.0.0.1#53

 

ftp.my.com       canonical name = www.my.com.

Name:      www.my.com

Address: 192.168.153.130


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7152065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存