FreeBSD 6.0-RELEASE下建立高速DNS缓存服务器

前阵子将服务器改成通过ipfilter+ipnat+dhcp——freebsd5.4ipfilter+ipnat包过滤、转发和DHCP服务器架构笔记,但最近感觉服务器时常会掉线,就在服务器再开了个dns缓存服务,通过缓存希望能缓解一下目前的状况。

首先介绍在freebsd上如何建立高速dns缓存服务器,引用freebsd中文手册中的话:

缓存域名服务器是对任何域都不提供权威解析的域名服务器。 它自己简单地完成查询, 并记住这些查询以备后续使用。 要建立这样的服务器, 只需像平时一样配置一个域名服务器, 而不配置域就可以了


安装如下:

所使用的软件是BIND,安装完freebsd6.0后BIND是自动安装好的,版本为BIND9,路径一般为/etc/namedb。freebsd5.2及更早版本的用户可以通过到ISC网站上下载BIND9.3目前, BIND Internet Software Consortium http://www.isc.org/ 维护。

1、创建本地DNS反向解析域文件

proxy4bak# cd /etc/namedb
proxy4bak# sh make-localhost

在/etc/namedb/master目录下会生成localhost.rev文件。

2、编辑dns配置文件/etc/namedb/named.conf

内容如下:

options {
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";

//        forwarders {
//                221.228.255.1; 218.2.135.1;
//        };
};

zone "." {
        type hint;
        file "named.root";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "master/localhost.rev";
};

这里我没有用到forwarders(转发),在freebsd中文手册中有这样一段话:

要从上级的缓存中受益, 可以在此处启用 forwarders 在一般情况下, 域名服务器会逐级地查询 Internet 来找到特定的域名服务器, 直到得到答案为止。 启用这个将让它首先查询上级域名服务器 (或另外提供的域名服务器) 从而从它们的缓存中得到结果。 如果上级域名服务器的负载很重, 在更快的域名服务器上启用它将有助于改善服务品质。

3、更改/etc/resolv.conf

将resolv.conf内容更改为:

nameserver 127.0.0.1

3、使named启动

编辑/etc/rc.conf,加入启动内容,如下:

proxy4bak# cd /etc
proxy4bak# ee rc.conf
加入
named_enable="YES"

添加完成后重启服务器,使用top命令可以查看named进程是否启动。也可以通过nslookup查询一个网址,如果可以,说明缓存已经建立了,显示如下:

proxy4bak# nslookup
> set type=any
> www.google.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.

Authoritative answers can be found from:
google.com      nameserver = ns4.google.com.
google.com      nameserver = ns1.google.com.
google.com      nameserver = ns2.google.com.
google.com      nameserver = ns3.google.com.

在搜索相关参考资料时还发现了一个dns缓存软件——djbdns也有朋友已经在用了。我为了方便,就直接用BIND了,因为freebsd安装时就带上了。但在性能上具体还不知道哪个会好些。

第一次建立dns缓存服务器,写的有错误之处请指出。希望这篇笔记能对想要在局域网中建立高速dns缓存服务器的朋友有用。

作者:老管   email:funpower AT gmail.com
参考文章:dns配置全文  域名系统 (DNS) – FreeBSD中文使用手册

One Comment

  1. […] 7、FreeBSD6.0RELEASE下建立高速DNS缓存服务器 […]

Leave a Reply