puppet:建立一个 pdns-recursor 的实例
[撰文/hmy]
通过 puppet 脚本,在本地建立一个 dns 缓存服务器,本文针对 debian、ubuntu。
步骤如下:
- 更新 /etc/apt/sources.list
# apt-get update - 安装 puppet 软件包
# apt-get install puppet - 复制下面内容存为”/tmp/dns.pp”文件
# start package { "pdns-recursor": ensure => installed; } file { "/etc/resolv.conf": require => Service["pdns-recursor"], content => “nameserver 127.0.0.1\n”; } service { “pdns-recursor”: ensure => running, pattern => “pdns_recursor” , require => Package["pdns-recursor"]; } # end - 执行下面命令完成配置
# puppet /tmp/dns.pp
附加内容:
简单解释一下上面这个 puppet 文件的内容:
- package 段,指定了一个 package “pdns-recursor”,要求这个包的状态是”installed”,表示要求这个包是安装好的。也可以把 installed 换成 latest,表示让这个包保持最高的版本。
- file 段,指定了一个文件”/etc/resolv.conf”,设置其内容为”nameserver 127.0.0.1″。require 这行表示只有在 service pdns-recursor 正确运行的情况下才会修改文件内容。否则不做任何操作。
- service 段,指定了一个服务 pdns-recursor,保证这个服务的状态是”running”,既运行中。另外 require 这行的意思是这个 service 依赖 package pdns-recursor 正确被安装。
在本机运行这样一个服务有什么作用呢?
@如是
dns服务器就不使用isp提供的公网dns服务器,增加安全性。也不用受烦人的dns劫持。
比如上海电信的dns,如果你查询一个不存在的域名,就会给你返回他们114站点的ip.很烦人。
这样做似乎跟OPENDNS没啥区别,反而比OPENDNS设置起来麻烦多了,还要多开服务。速度的提升更是有限的很,我这里没什么感觉。
@rgaobj
是的,速度的提升不会太明星,毕竟都是毫秒级的.提供这个文章只是给大家多一个思路:D
大量应用 djbdns 的飘过… gentoo 编译好的打成 pkg, 然后集体安装就好.
如果单纯是为自己服务为加速上网不如使用dnsmsq