[Pdns-users] Trouble with TCP requests and recursor
Sergey Belyaev
sb at iskratelecom.ru
Fri Nov 4 09:39:31 UTC 2005
Hello.
I use PowerDNS 2.9.18 and I have problems with TCP queries.
When I make a query through UDP, PowerDNS gives me the zone. For example, I
have the zone binary.ru which is hosted on this server:
binary at ns:/home/binary> nslookup
> set type=any
> binary.ru
Server: localhost
Address: 127.0.0.1#53
binary.ru mail exchanger = 20 relay1.iskratelecom.ru.
binary.ru mail exchanger = 10 mail.binary.ru.
Name: binary.ru
Address: 82.199.96.133
binary.ru
origin = ns.binary.ru
mail addr = postmaster.ns.binary.ru
serial = 2005102000
refresh = 3600
retry = 6000
expire = 864000
minimum = 86400
binary.ru nameserver = ns2.binary.ru.
binary.ru nameserver = ns.binary.ru.
When I query the same zone over TCP I receive the following:
binary at ns:/home/binary> nslookup -vc
> set type=any
> binary.ru
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
binary.ru
origin = ns.binary.ru
mail addr = postmaster.ns.binary.ru
serial = 2005102000
refresh = 3600
retry = 6000
expire = 864000
minimum = 86400
binary.ru nameserver = ns2.binary.ru.
Name: binary.ru
Address: 82.199.96.133
binary.ru mail exchanger = 20 relay1.iskratelecom.ru.
binary.ru mail exchanger = 10 mail.binary.ru.
binary.ru nameserver = ns.binary.ru.
Authoritative answers can be found from:
ns.binary.ru internet address = 82.199.96.131
relay1.iskratelecom.ru internet address = 82.199.108.4
ns2.binary.ru internet address = 82.199.108.4
mail.binary.ru internet address = 82.199.96.133
That is making the query over TCP, PowerDNS immediately transmits it to
recursor omitting the query to the database (gmysql).
Switching on debug I see that the query to the database is performed only
at attempt to receive the zone over UDP but at attempt to do the same
over TCP the db query isn't performed.
If I switch off recursor everything is all right but recursor is necessary
to me.
System: FreeBSD 5.4, PowerDNS 2.9.18, gmysql backend.
Servers: 82.199.96.131, 82.199.108.4
Config:
#################################
# allow-axfr-ips If disabled, DO allow zonetransfers from these IP addresses
#
allow-axfr-ips=82.199.108.4
#################################
# allow-recursion List of netmasks that are allowed to recurse
#
allow-recursion=82.199.96.0/19, 10.0.0.0/8, 11.11.11.0/24, 127.0.0.1
#################################
# cache-ttl Seconds to store packets in the PacketCache
#
cache-ttl=20
#################################
# chroot If set, chroot to this directory for more security
#
# chroot=
#################################
# config-dir Location of configuration directory (pdns.conf)
#
config-dir=/usr/local/etc
#################################
# config-name Name of this virtual configuration - will rename the binary image
#
# config-name=
#################################
# control-console Debugging switch - don't use
#
# control-console=no
#################################
# daemon Operate as a daemon
#
daemon=yes
#################################
# default-soa-name name to insert in the SOA record if none set in the backend
#
# default-soa-name=a.misconfigured.powerdns.server
#################################
# disable-axfr Disable zonetransfers but do allow TCP queries
#
# disable-axfr=no
#################################
# disable-tcp Do not listen to TCP queries
#
disable-tcp=no
#################################
# distributor-threads Default number of Distributor (backend) threads to start
#
# distributor-threads=3
#################################
# fancy-records Process URL and MBOXFW records
#
# fancy-records=no
#################################
# guardian Run within a guardian process
#
guardian=yes
#################################
# launch Which backends to launch and order to query them in
#
launch=gmysql
#################################
# lazy-recursion Only recurse if question cannot be answered locally
#
lazy-recursion=yes
#################################
# load-modules Load this module - supply absolute or relative path
#
#################################
# local-address Local IP address to which we bind
#
local-address=0.0.0.0
#################################
# local-ipv6 Local IP address to which we bind
#
# local-ipv6=
#################################
# local-port The port on which we listen
#
local-port=53
#################################
# log-dns-details If PDNS should log failed update requests
#
log-dns-details=yes
#################################
# log-failed-updates If PDNS should log failed update requests
#
log-failed-updates=yes
#################################
# logfile Logfile to use
#
logfile=/var/log/pdns.log
#################################
# logging-facility Log under a specific facility
#
# logging-facility=
#################################
# loglevel Amount of logging. Higher is more. Do not set below 3
#
loglevel=2
#################################
# master Act as a master
#
master=yes
#################################
# max-queue-length Maximum queuelength before considering situation lost
#
# max-queue-length=5000
#################################
# max-tcp-connections Maximum number of TCP connections
#
max-tcp-connections=10
#################################
# module-dir Default directory for modules
#
# module-dir=/usr/local/bin/../lib
#################################
# negquery-cache-ttl Seconds to store packets in the PacketCache
#
negquery-cache-ttl=60
#################################
# only-soa Make sure that no SOA serial is less than this number
#
# only-soa=org
#################################
# out-of-zone-additional-processing Do out of zone additional processing
#
# out-of-zone-additional-processing=no
#################################
# query-cache-ttl Seconds to store packets in the PacketCache
#
query-cache-ttl=20
#################################
# query-logging Hint backends that queries should be logged
#
#query-logging=yes
#################################
# queue-limit Maximum number of milliseconds to queue a query
#
queue-limit=1500
#################################
# receiver-threads Number of receiver threads to launch
#
# receiver-threads=1
#################################
# recursive-cache-ttl Seconds to store packets in the PacketCache
#
recursive-cache-ttl=10
#################################
# recursor If recursion is desired, IP address of a recursing nameserver
#
recursor=127.0.0.1:5053
#################################
# setgid If set, change group id to this gid for more security
#
setgid=nogroup
#################################
# setuid If set, change user id to this uid for more security
#
setuid=nobody
#################################
# skip-cname Do not perform CNAME indirection for each query
#
# skip-cname=no
#################################
# slave Act as a slave
#
slave=yes
#################################
# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
#
slave-cycle-interval=60
#################################
# smtpredirector Our smtpredir MX host
#
# smtpredirector=a.misconfigured.powerdns.smtp.server
#################################
# soa-minimum-ttl Default SOA mininum ttl
#
# soa-minimum-ttl=3600
#################################
# soa-serial-offset Make sure that no SOA serial is less than this number
#
# soa-serial-offset=0
#################################
# socket-dir Where the controlsocket will live
#
# socket-dir=/var/run
#################################
# strict-rfc-axfrs Perform strictly rfc compliant axfrs (very slow)
#
# strict-rfc-axfrs=no
#################################
# urlredirector Where we send hosts to that need to be url redirected
#
# urlredirector=127.0.0.1
#################################
# use-logfile Use a log file
#
use-logfile=yes
#################################
# webserver Start a webserver for monitoring
#
webserver=yes
#################################
# webserver-address IP Address of webserver to listen on
#
webserver-address=82.199.96.131
#################################
# webserver-password Password required for accessing the webserver
#
# webserver-password=
#################################
# webserver-port Port of webserver to listen on
#
webserver-port=8081
#################################
# webserver-print-arguments If the webserver should print arguments
#
webserver-print-arguments=yes
#################################
# wildcard-url Process URL and MBOXFW records
#
# wildcard-url=no
#################################
# wildcards Honor wildcards in the database
#
# wildcards=
gmysql-host=localhost
gmysql-user=xxxxx
gmysql-password=xxxx
gmysql-dbname=xxxxx
--
Sincerely yours,
Sergey Belyaev,
System Administrator,
ISP Iskratelecom, JSC.
phone: +7 (095) 540-68-64, ext. 007
sb at iskratelecom.ru, http://www.iskratelecom.ru
More information about the Pdns-users
mailing list