PDNSD.CONF(5) File Formats Manual PDNSD.CONF(5) (NAME) pdnsd.conf - pdnsd (DESCRIPTION) pdnsd(8) . /etc/pdnsd.conf . -c . pdnsd.conf pdnsd /etc/pdnsd.conf.sample . (FILE FORMAT) . ({) (}) . : option_name=option_value; . pdnsd (") 1.1.10 ",;{}\" . 1.2.9 (\) (escape) ( ) . C \t (tab) \n . . : s () m () h () d () w (). . 2h30m 2*60*60 + 30*60 = 9000 . . : (option1|option2|option3|...) true|false yes|no on|off . /* */ . # (//) . (sample config file) . global global . global . : perm_cache=(number|off); () . . . 2048 ( ) . cache_dir=string; . "/var/cache/pdnsd" ( pdnsd ). server_port=number; . (root) . uptest=ping . 53 ( RFC) . NS A . server_ip=string; interface=string; IP pdnsd . pdnsd . pdnsd 127.0.0.2 BIND . server_ip=any pdnsd . pdnsd server_ip=any . IP 1.1.10 . pdnsd IPv4 IPv6 IPv6 pdnsd IPv6 -6 run_ipv4=off ( ) IPv6 . pdnsd IPv6 IPv4 IPv6 . 1.2: IP "lo" "eth0" ( ). pdnsd . pdnsd pdnsd . pdnsd . outgoing_ip=string; outside_interface=string; 1.2.9: IP pdnsd . pdnsd . pdnsd IP 192.168.1.1 IP 123.xxx.yyy.zzz server_ip=192.168.1.1 outgoing_ip=123.xxx.yyy.zzz pdnsd . any . server_ip IP . linkdown_kluge=(on|off); (kluge) : (down) DNS . ( rr source ) . off . max_ttl=timespec; . DNS (time to live) . max_ttl max_ttl . . 604800s ( ) . min_ttl=timespec; . DNS . min_ttl min_ttl . 120 . neg_ttl=timespec; . SOA pdnsd . SOA ttl SOA . neg_rrs_pol=(on|off|auth|default); RR pdnsd . off on auth (authoritative) . 1.2.8: (default) "recursion available" (recursion) . "default" ( auth ). neg_domain_pol=(on|off|auth); neg_rrs_pol . (on) . auth . run_as=string; pdnsd . . . : ( ) (thread) (gid) (uid) . uid gid . FreeBSD strict_setuid off ( on ) exec . (manager thread) . (status pipe ) . "permission denied" "operation not permitted" . strict_setuid=(on|off); run_as run_as . run_as . run_as . on . . paranoid=(on|off); pdnsd (recursive) ( ) . (cache poisoning) : DNS . DNS IP . . . . DNS "" ( DNS ). . ( ). pdnsd TCP . pdnsd . . pdnsd ( pdnsd TCP ). paranoid off . ignore_cd=(on|off); 1.2.8: CD DNS . pdnsd FORMERR . CD 'Checking Disabled' . on . ( 1.2.8) . scheme_file=string; (uptests) (scheme) pcmcia-cs ( ). pdnsd pcmcia . /var/lib/pcmcia/scheme /var/state/pcmcia/scheme. status_ctl=(on|off); -s : on . Paul Rombouts: pdnsd-ctl pdnsd IP . pdnsd-ctl . . daemon=(on|off); -d : on . off . tcp_server=(on|off); tcp_server=on -t --tcp : TCP . tcp_server=off --notcp . on . pid_file=string; -p : pdnsd (pid) . verbosity=number; -v : (verbosity) pdnsd . 0 ( ) 3 ( ) . query_method=(tcp_only|udp_only|tcp_udp|udp_tcp); -m . . tcp_only to udp_only uo tcp_udp tu udp_tcp ut . query_method=tcp_udp (global timeout) . run_ipv4=(on|off); -4 -6 : on IPv4 IPv6 ( ) . off IPv4 IPv6 . pdnsd . pdnsd IPv4 IPv6 IPv6 run_ipv4=off IPv6 . debug=(on|off); -g : on . ctl_perms=number; pdnsd . . run_as pdnsd . ( ) (0600 600!). . 0600 ( ). . . proc_limit=number; pdnsd . . procq_limit . 40 . procq_limit=number; (proc_limit) pdnsd . . (drop ). tcp udp . proc_limit . proc_limit+procq_limit ( ). 60 . tcp_qtimeout=timespec; tcp . tcp . --with-tcp-qtimeout (configure) . par_queries=number; pdnsd . 1.1.11 . (timeout) . server1, server2, server3, par_queries=2 pdnsd server1 server2 . pdnsd server3 server4 server1, server2, server3 server4 . . ( ) . . (global timeout) . 1 2 . --with-par-queries configure . timeout=timespec; dns . pdnsd . . server ( ). pdnsd ( ). pdnsd . query_method=tcp_udp TCP pdnsd UDP . 0 . randomize_recs=(on|off); pdnsd . Round-robin DNS IP . on . query_port_start=(number|none); pdnsd . >= 1024 . . (bind) (stateful) / uid . pdnsd (query_port_end ) . pdnsd . pdnsd query_port_start query_port_end (par_queries * proc_limit) . . . 1024 . query_port_end pdnsd . none pdnsd pdnsd . query_port_end=number; query_port_start none . query_port_start pdnsd . 65535 . query_port_start . delegation_only=string; Paul Rombouts: "delegation- only" ( ) . pdnsd "delegation-only" (authority) NS pdnsd NXDOMAIN ( ) . "wildcard" DNS . "delegation-only" . (root servers) server root_server=on . : delegation_only="com","net"; . pdnsd . ipv4_6_prefix=string; -i . pdnsd IPv6 pdnsd IPv4 ( pdnsd-ctl) IPv6 . IPv6 . . IPv4 . "::ffff.0.0.0.0" . use_nss=(on|off); pdnsd initgroups() ( run_as ). initgroups() NSS (Name Service Switch) NSS DNS . . use_nss=off initgroups() ( 1.2.5 ). Jan-Marek Glogowski . on . udpbufsize=number; 1.2.9: UDP DNS . 1024 . edns_query . server server pdnsd . ( ) . . dns (LAN) dns server . : label=string; server . pdnsd-ctl ( pdnsd) . server server ( ip ) "pdnsd-ctl server label up dns1,dns2,..." . ip=string; IP ( ) . IP server . ip=string; : ip=string,string,string; IP . server IP pdnsd-ctl ( pdnsd) . pdnsd IPv4 IPv6 IPv6 pdnsd IPv6 . pdnsd IPv6 -6 run_ipv4=off ( global ) IPv6 . pdnsd IPv6 IPv4 IPv6 . file=string; 1.2: resolv.conf . nameserver IP ip= . . pdnsd pdnsd-ctl ( pdnsd) pdnsd . "pdnsd-ctl config" DNS . ppp DNS /etc/ppp/resolv.conf /etc/ppp/ip-up . pdnsd server file=/etc/ppp/resolv.conf "pdnsd-ctl config" /etc/ppp/ip-up . port=number; . 53 ( dns) . uptest=(ping|none|if|dev|diald|exec|query); . : o ping: ICMP_ECHO . . o none: . o if: ( interface=) . "" ( ppp?) isdn ( 2.2) . /dev/isdninfo (major#45, minor#255) isdn . o dev diald: if () . ( if "ppp0") /dev ( "modem" /dev/modem device= ). pdnsd pid /var/lock ( /var/run/ppp0.pid) ( /var/lock/LCK..modem) pid . if . dev (dial-on-demand) pppd diald diald . o exec: /bin/sh ( /bin/sh -c ) ( ) 0 . uptest_sh . uptest_cmd ( ). . o query: 1.2: ping DNS () . ( SERVFAIL) . ICMP_ECHO . DNS . query_test_name ( ). . none . : none if dev diald exec ping query ! ping_timeout=number; ping ( ). 600 ( ) . ping_ip=string; IP ping. IP . query_test_name=string; 1.2.9: uptest=query . none ( ) A . A . query_test_name="." ( ) . uptest_cmd=string,string; uptest_cmd=string; uptest=exec . . (root) . . setuid setgid setuid/gid ( setuid ). pdnsd setuid setgid . /bin/sh . interval=(timespec|onquery|ontimeout); . . onquery . (diald/pppd ippp) dns . . uptest=exec . onquery uptest=ping uptest=query ( ). onquery . dns ( ) pdnsd dns pdnsd . . 1.2.3: interval=ontimeout . / DNS . (refused connection) . (dead) pdnsd-ctl config server . . interface=string; ( "eth0") uptest=if. uptest=if . device=string; () dev . ppp ( uptest=dev) pppd modem /dev/modem. uptest=dev . timeout=timespec; dns . . . . . (global timeout) . timeout global . purge_cache=(on|off); dns . purge_cache off ( ). ( ) . off . caching=(on|off); . on . lean_query=(on|off); "" (lean) . pdnsd . . (A) . pdnsd ( ). . CNAME . . : pdnsd . on . edns_query=(on|off); 1.2.9: EDNS ( DNS) . UDP . pdnsd . off (payloads) UDP on . . pdnsd EDNS EDNS . udpbufsize . scheme=string; pcmcia-cs . . (* ?) . scheme_file global . preset=(on|off); . on . on . uptest=none; pdnsd-ctl . proxy_only=(on|off); on ( NS ) . pdnsd ( ANY) . ( ) pdnsd . lean_query . off . root_server=(on|off|discover); on . (TLD) . root_server=on pdnsd . "dig . ns" . delegation_only . 1.2.8: "discover" . pdnsd ip= . ip= . "pdnsd-ctl config" . ip= . pdnsd root_server=on . off . randomize_servers=(on|off); 1.2.6: on . . . . . () . off on . root_server=on . reject=string; 1.2.6: IP pdnsd . IP / (address/mask) . IP . IP IPv4 IPv6 ( C AAAA ). . / reject=string; : reject=string,string,string; pdnsd reject_policy . reject_policy=(fail|negate); 1.2.6: pdnsd ( ). fail pdnsd SERVFAIL . negate pdnsd NXDOMAIN ( ) . fail . negate IP . server reject_recursively ( ) true . fail . reject_recursively=(on|off); 1.2.6: pdnsd ( ) . (on) pdnsd NS ( ) . off . policy=(included|excluded|simple_only|fqdn_only); pdnsd / (inclusion/exclusion) server : include= exclude= ( ) . ( include exclude server ). policy= included excluded . simple_only ( / single-label) fqdn_only ( ) . pdnsd ( libc resolv.conf ). . : simple_only fqdn_only Paul Rombouts . ( ) pdnsd () . fqdn_only "fully qualified domain name only" . pdnsd (fully qualified) . simple_only fqdn_only . included . include=string; / . ( policy ). ".foo.bar." a.foo.bar. a.b.c.foo.bar. foo.bar. . ( ) (: exclude include : exclude="foo.bar."; include=".foo.bar.";). pdnsd 1.1.8b1-par8 pdnsd . pdnsd "include" : include=".foo",".bar",".my.dom"; exclude=string; / . ( policy ). ".foo.bar." a.foo.bar. a.b.c.foo.bar. foo.bar. . ( ) (: include exclude : include="foo.bar."; exclude=".foo.bar.";). pdnsd "exclude" : exclude=".foo",".bar",".my.dom"; rr rr dns . dns pdnsd . A PTR CNAME MX NS SOA . RR 1.0.0.127.in-addr.arpa. localhost. ( ) named . . name=string; . a ptr cname mx ns soa . ( pdnsd ). (: venera.isi.edu.). pdnsd 1.1.8b1-par8 pdnsd . 1.2: * . (wildcard) . * . * * . *.mydomain a.mydomain www.a.mydomain mydomain . *.a*.mydomain www.a*.mydomain www.ab.mydomain . *a.mydomain . rr name=*.mydomain mydomain NS / SOA. : rr { name = mydomain; ns = localhost; soa = localhost, root.localhost, 42, 86400, 900, 86400, 86400; } rr { name = *.mydomain; a = 192.168.1.10; } www.mydomain ftp.mydomain 192.168.1.10 ( rr www.mydomain ftp.mydomain ). mydomain A rr . ttl=timespec; (ttl) . . ( ) . authrec=(on|off); pdnsd (authoritative) rr . pdnsd . : A AAAA ( IPv6 ) . on . name ! reverse=(on|off); 1.2: reverse=on A ( ) . PTR . off . a=string; A ( ) . IPv4 . pdnsd name . C AAAA IPv6 AAAA . rr . rr rr . ptr=string; PTR ( ) . (name ). ptr . 127.0.0.1 localhost localhost 127.0.0.1 : rr { name = localhost; a = 127.0.0.1; owner = localhost; soa = localhost, root.localhost, 42, 86400, 900, 86400, 86400; } rr { name = 1.0.0.127.in-addr.arpa; ptr = localhost; owner = localhost; soa = localhost, root.localhost, 42, 86400, 900, 86400, 86400; } ptr . rr reverse=on . : IP (1.0.0.127 127.0.0.1) in- addr.arpa . ip ( 1.2.3.4) (4.3.2.1) in-addr.arpa. (4.3.2.1.in-addr.arpa.). rr name ip ptr . cname=string; CNAME ( ) . (FQDN) (name ). CNAME DNS (alias) (symlink) . CNAME . "news" "nntp2.myisp.com" . A "news" "nntp2.myisp.com" CNAME "nntp2.myisp.com" IP "news" . pdnsd : rr { name = news; cname = nntp2.myisp.com; owner = localhost; } mx=string,number; MX ( ) . (name ). (preference level) . SMTP . SMTP MX . joe@example.com MX example.com mail.example.com . SMTP A mail.example.com . MX SMTP ( ). MX pdnsd . owner=string; ns=string; NS ( ) . rr (authoritative) . pdnsd . : pdnsd a ptr cname mx soa . 1.2 name= . owner= name= . NS ( ). soa=string,string,number,timespec,timespec,timespec,timespec; soa ( / start of authority) . owner . . @ (.) . ( ) . . (refresh timeout) . . . . ttl rr ttl ( ttl 86400 ). txt=string,...,string; 1.2.9: TXT . . neg neg dns dns . . neg pdnsd-ctl . RR . : Netscape Communicator news mail . dns : neg { name = news; types = domain; } neg { name = mail; types = domain; } ! 1.1.11 (negate) . : neg {name=example.com; types=domain;} www.example.com xxx.adserver.example.com . name=string; . types . ( pdnsd ). (: venera.isi.edu.). pdnsd 1.1.8b1-par8 pdnsd . ttl=timespec; (ttl) . . ( ) . types=(domain|rr_type[,rr_type[,rr_type[,...]]]); : domain RR . types domain RR . RR RFC A CNAME NS PTR MX AAAA . pdnsd-ctl list-rrtypes . pdnsd-ctl pdnsd make install pdnsd . source source pdnsd /etc/hosts . pdnsd . rr localhost FQDN /etc/hosts . : # . . ( ) IP ( ) FQDN ( ) IP . ( /etc/hosts pdnsd ). owner=string; pdnsd dns ( ) . file . ( pdnsd ). (: venera.isi.edu.). pdnsd 1.1.8b1-par8 pdnsd . ttl=timespec; (ttl) . . ( ) . file=string; . file source pdnsd . . serve_aliases=(on|off); pdnsd hosts . hosts " " . domain-search . pdnsd . Bert Frederiks . off . authrec=(on|off); pdnsd hosts (authoritative) . rr . file . on . include . global server include . include . file=string; . file include pdnsd . include pdnsd . (VERSION) 1.2.9b-par pdnsd . (SEE ALSO) pdnsd(8), pdnsd-ctl(8) doc/ /usr/share/doc/pdnsd . (AUTHORS) pdnsd Thomas Moestl <> Paul A. Rombouts <> ( 1.1.8b1-par ). pdnsd /usr/share/doc/pdnsd . html pdnsd Perl Paul A. Rombouts . : Paul A. Rombouts pdnsd 1.2.9b-par Apr 2012 PDNSD.CONF(5)