当前位置: 首页 > 工具软件 > pdnsd > 使用案例 >

pdnsd (转

章学义
2023-12-01

// pdnsd 配置 By Mokii 2014.08.02

global {
perm_cache=10240; //缓存大小,单位KB
cache_dir="/var/cache/pdnsd"; //缓存目录
run_as="pdnsd"; //运行用户,建议使用一个无权限用户运行
server_ip = 192.168.1.38; //监听地址
server_port = 53; //监听端口
query_method=tcp_only; //向上级dns upstream请求的方式:
// tcp_only(只用TCP),udp_only(只用UDP),tcp_udp(tcp优先),udp_tcp(udp优先)
status_ctl = on; //pdnsd运行时通过pdnsd-ctl进行管理
tcp_server = on; //是否打开TCP DNS
min_ttl=600; //最小TTL缓存时间,建议设置在1m~15m(默认单位秒,m=分钟,d=天,w=周)
max_ttl=1w; //最大TTL缓存时间,一般来讲不影响性能和表现(默认单位秒,m=分钟,d=天,w=周)
paranoid=on; //缓存污染预防
timeout=10; //全局超时时间,建议时长大于upstream超时时长,如果使用tcp_udp建议大于upstream超时的两倍
randomize_recs = on; //在返回多个ip的时候会随机重新排序缓存
debug = off; //调试模式,打开你会发现你的/var/log会以大概一小时1G的速度写入log文件。除非调试否则打开就是作死
daemon = off; //以后台模式运行,除非需要调试否则不要打开
verbosity = 1; //日志的详细程度,1感觉挺好
udpbufsize=1024; //UDP报文大小的上限
}

/* ---------------------以下server部分是用于配置递归服务器, 可以有多个server block以区分不同的upstream
在没有配置policy的情况下,多个server之间不存在先后关系,以谁先返回记录为准。
label 是每个server block的一个标签,在debug中有用,亦可起到对每个upstream命名的作用。
policy 用于控制在没有server block的include满足当前请求的情况下,是否使用这个server block的服务器。included(默认)表示使用,excluded表示不使用。
include/exclude 逗号分隔的字符串,每个表示一个域名。如果请求的域名match了列表中的域名则会 使用/跳过 当前server block。注意,如果policy是included,则只当域名在exclude中才会跳过,policy是excluded则是只有域名在列表中才会使用。
timeout 是到这个服务器连接的超时时间
proxy_only 是个坑。强烈建议设置为on,否则pdnsd会根据upstream返回的Authority Section进行验证,在一般情况下这种验证并没有必要,反而会造成极大的性能损失。
ip 用逗号分隔的IP地址,用于指明DNS服务器地址。
caching 控制这个server block的记录是否被缓存,建议设置为on。
randomize_servers 每次选择随机的服务器进行请求
国内用户也许需要的配置选项:
reject 一个逗号分隔的字符串,每部分可以是一个IP,IP段或者IP/CIDR,如果服务器返回的结果中有这些IP,或者落在了IP段内,则这个请求会被标记为拒绝。
reject_policy fail或者negate。fail表示放弃这个服务器返回的结果尝试下一个服务器,如果没有更多服务器可以尝试则返回SERVFAIL。negate则会立刻返回NXDOMAIN。reject配合fail能够有效处理一些被污染的域名。
*/

server{ //河南移动DNS,会劫持到他们的cache加速
label = "ha.cmcc dns";
ip = 211.138.24.66;
proxy_only = on;
policy = included; //以下网站排除
exclude = .taobao.com,
.tmall.com,
.tbcdn.cn,
.alicdn.com,
.tanx.com,
.mmcdn.cn,
.mmstat.cn,
.taobaocdn.com,

.gmail.com,
.google-analytics.com,
.google.cn,
.google.com;
}

server{ //114dns,只解析其他server排除的
label = "114 DNS";
ip = 114.114.114.114;
proxy_only = on;
policy = included; //以下网站排除
exclude = .gmail.com,
.google-analytics.com,
.google.cn,
.google.com;
}

server { //谷歌dns,只解析下面指定的域
label = "Google Dns";
ip = 8.8.4.4,8.8.8.8;
proxy_only = on;
edns_query = on;
policy = excluded;
include = .gmail.com,
.google-analytics.com,
.google.con,
.google.com;

reject_policy=fail; // 检测到以下污染源就跳过
reject=4.36.66.178,8.7.198.45,37.61.54.158,46.82.174.68,59.24.3.173,
64.33.88.161,64.33.99.47,64.66.163.251,65.104.202.252,65.160.219.113,
66.45.252.237,72.14.205.99,72.14.205.104,78.16.49.15,93.46.8.89,
128.121.126.139,159.106.121.75,169.132.13.103,192.67.198.6,202.106.1.2,
202.181.7.85,203.98.7.65,203.161.230.171,207.12.88.98,208.56.31.43,
209.36.73.33,209.145.54.50,209.220.30.174,211.94.66.147,213.169.251.35,
216.221.188.182,216.234.179.13,243.185.187.39;
}

/*
server { //使用根查询
label = "root-servers";
root_server = discover;
randomize_servers = on;
ip = 198.41.0.4,192.228.79.201,192.33.4.12,199.7.91.13,
192.203.230.10,192.5.5.241,192.112.36.4,128.63.2.53,192.36.148.17,
192.58.128.30,193.0.14.129,199.7.83.42,202.12.27.33;
timeout = 5;
uptest = query;
query_test_name = .;
interval = 30m;
ping_timeout = 300;
purge_cache = off;
edns_query = yes;
exclude = .localdomain;
policy = included;
preset = off;
}

*/

/* ---------------------以下rr部分是用于添加静态记录,可以有多个rr block来配置不同的静态记录。
name 域名记录,支持wildcard但是不支持partial wildcard,即*bar.example.com并不会匹配foobar.example.com,实际上他只能匹配一个非法的域名: 他自己。*.example.com可以匹配 foo.exmaple.com,也可以匹配 level4.level3.exmaple.com。
ttl 结果在返回时的TTL值,TTL只对在条目后的记录有效,所以可以有多条ttl指定不同的记录有不同的ttl
a 添加一条A记录,如果后面是IPv4地址,或者一条AAAA记录,如果后面是IPv6地址
reverse on时会对A/AAAA记录添加一条配套的PTR记录,需在需要添加reverse记录的条目之前指明
ptr 差不多干和reverse同样的事情,只是条目内容不是name而是你指定的域名
cname 添加一条CNAME记录
mx 添加一条MX记录,格式为 domain,priority
*/

rr {
name=localhost;
reverse=on;
a=127.0.0.1;
owner=localhost;
soa=localhost,root.localhost,42,86400,900,86400,86400;
}
rr { //Mokii's Blog
name=leeraw.com;
reverse=on;
a=103.11.229.4;
}

/* ---------------------source可以用于导入一个hosts格式的文件中的静态记录

source {
owner=localhost;
# serve_aliases=on;
file="/etc/hosts";
}

*/

/* ---------------------以下neg部分和rr部分差不多均为添加静态记录,与之不同的是neg表示强制指定该域名/请求类型不存在,可以有多个neg block配置不同的静态记录。
name 需要无效化的域名,内容同rr部分
types 可以为domain或者逗号分隔的RR类型(A, AAAA, MX…),domain表示所有请求到这个域名及其子域名都会被返回NXDOMAIN,而RR类型则只会对该域名的特定类型返回NXDOMAIN。
ttl 这个记录的TTL

neg {
name=doubleclick.net;
types=domain;
}
neg {
name=bad.server.com;
types=A,AAAA;
}

*/

/* ---------------------include可以用于导入其他文件中的配置,注意导入的配置文件中不能包含global和server部分,即只有rr,source和neg部分能被包含

include {file="/etc/pdnsd.include";}

ps:

 global {
perm_cache = 1024;
cache_dir = "arnsd";
run_as = "nobody";
debug = off;
server_port = 1053; # 使用 1053 作为 dns 端口, 默认是 53
server_ip = any;
status_ctl = on;
# query_method=tcp_only; # 最重要的配置, 只使用 tcp 查询上级 dns
neg_domain_pol = off;
paranoid = on;
par_queries = 1;
min_ttl = 6h;
max_ttl = 12h;
timeout = 10;
}server {
label = "routine"; # 这个随便写
ip = 114.114.114.114; # 这里为上级 dns 的 ip 地址
timeout = 5;
reject = 74.125.127.102,
74.125.155.102,
74.125.39.102,
74.125.39.113,
209.85.229.138,
128.121.126.139,
159.106.121.75,
169.132.13.103,
192.67.198.6,
202.106.1.2,
202.181.7.85,
203.161.230.171,
203.98.7.65,
207.12.88.98,
208.56.31.43,
209.145.54.50,
209.220.30.174,
209.36.73.33,
211.94.66.147,
213.169.251.35,
216.221.188.182,
216.234.179.13,
243.185.187.39,
37.61.54.158,
4.36.66.178,
46.82.174.68,
59.24.3.173,
64.33.88.161,
64.33.99.47,
64.66.163.251,
65.104.202.252,
65.160.219.113,
66.45.252.237,
69.55.52.253,
72.14.205.104,
72.14.205.99,
78.16.49.15,
8.7.198.45,
93.46.8.89,
37.61.54.158,
243.185.187.39,
190.93.247.4,
190.93.246.4,
190.93.245.4,
190.93.244.4,
65.49.2.178,
189.163.17.5,
23.89.5.60,
49.2.123.56,
54.76.135.1,
77.4.7.92,
118.5.49.6,
159.24.3.173,
188.5.4.96,
197.4.4.12,
220.250.64.24,
243.185.187.30,
249.129.46.48,
253.157.14.165;
reject_policy = fail;
exclude = ".google.com",
".cn", #排除国内DNS解析,如果正常翻,则可以在前面加#注释
".baidu.com", #排除国内DNS解析,如果正常翻,则可以在前面加#注释
".qq.com", #排除国内DNS解析,如果正常翻,则可以在前面加#注释
".gstatic.com",
".googleusercontent.com",
".googlepages.com",
".googlevideo.com",
".googlecode.com",
".googleapis.com",
".googlesource.com",
".googledrive.com",
".ggpht.com",
".youtube.com",
".youtu.be",
".ytimg.com",
".twitter.com",
".facebook.com",
".fastly.net",
".akamai.net",
".akamaiedge.net",
".akamaihd.net",
".edgesuite.net",
".edgekey.net";
}

 

server {
# Better setup dns server(DON'T USE PORT 53) on your own vps for faster proxying
label = "special"; # 这个随便写
ip = 208.67.222.222,208.67.220.220; # 这里为上级 dns 的 ip 地址
port = 5353;
proxy_only = on;
timeout = 5;
}

source {
owner = localhost;
file = "/etc/hosts";
}

rr {
name = localhost;
reverse = on;
a = 127.0.0.1;
owner = localhost;
soa = localhost,root.localhost,42,86400,900,86400,86400;
}

转载于:https://www.cnblogs.com/suzy1990/p/5460495.html

 类似资料: