Changeset 1046
- Timestamp:
- 04/22/07 21:48:50 (3 years ago)
- Location:
- trunk/pdns/pdns
- Files:
-
- 2 modified
-
docs/pdns.sgml (modified) (29 diffs)
-
qtype.cc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pdns/pdns/docs/pdns.sgml
r1042 r1046 35 35 The PowerDNS daemon is a versatile nameserver which supports a large number 36 36 of backends. These backends can either be <link linkend="bindbackend">plain zonefiles</link> or be 37 <link linkend="pipebackend">more dynamic</link> in nature. 37 <link linkend="pipebackend">more dynamic</link> in nature. Additionally, through use of clever programming techniques, 38 PowerDNS offers very high domain resolution performance. 38 39 </Para> 39 40 <Para> 40 Prime examples of backends include relational databases, but also 41 loadbalancing and failover algorithms. 41 Prime examples of backends include relational databases, but also (geographical) loadbalancing and failover algorithms. 42 42 </Para> 43 43 <para> 44 The company is called PowerDNS BV, the nameserver daemon is called PDNS.44 The company is called PowerDNS.COM BV, the nameserver daemon is called PDNS. 45 45 </para> 46 46 47 47 <sect1 id="function-design"><title>Function & design of PDNS</title> 48 48 <para> 49 PDNS is an authoritative only nameserver. It will answer questions about domains it knows about, 49 PowerDNS consists of two parts: the Authoritative Server and the Recursor. Other nameservers 50 fully combine these functions, PowerDNS offers them separately, but can mix both authoritative and recursive 51 usage seamlessly. 52 53 The Authoritative Server will answer questions about domains it knows about, 50 54 but will not go out on the net to resolve queries about other domains. However, it can use a 51 55 <link linkend="recursion">recursing backend</link> to provide that functionality. Depending … … 53 57 </para> 54 58 <para> 55 When PDNSanswers a question, it comes out of the database, and can be trusted as being authoritative. There is59 When the Authoritative Server answers a question, it comes out of the database, and can be trusted as being authoritative. There is 56 60 no way to pollute the cache or to confuse the daemon. 57 61 </para> 62 <para> 63 The Recursor, conversely, by default has no knowledge of domains itself, but will always consult other authoritative servers 64 to answer questions given to it. 58 65 <para> 59 66 PDNS has been designed to serve both the needs of small installations by being easy to setup, as well as … … 82 89 Before proceeding, it is advised to check the release notes for your PDNS version, as specified in the name of the distribution 83 90 file. 91 </para> 92 <para> 93 Beyond PowerDNS 2.9.20, the Authoritative Server and Recursor are released separately. 84 94 </para> 85 95 <sect2 id="changelog-2-9-21"><title>PowerDNS Authoritative Server version 2.9.21</title> … … 5730 5740 </screen> 5731 5741 5742 <warning> 5743 <para> 5744 As of 2.9.21, the BIND backend no longer features the 'bind-example-zones' command. These will return in 2.9.22. 5745 </para> 5746 </warning> 5747 5732 5748 This configures powerdns to 'launch' the bindbackend, and enable the example zones. To fire up PDNS in testing mode, execute: 5733 5749 <command>/etc/init.d/pdns monitor</command>, where you may have to substitute the location of your SysV init.d location you … … 6356 6372 6357 6373 <Chapter id="monitoring"> 6358 <title>Logging & Monitoring PDNSperformance</title>6374 <title>Logging & Monitoring Authoritative Server performance</title> 6359 6375 <para> 6360 6376 In a production environment, you will want to be able to monitor PDNS performance. For this purpose, currently … … 6783 6799 To migrate, the <command>zone2sql</command> tool is provided. 6784 6800 </para> 6801 <para> 6802 Additionally, the PowerDNS source comes with a number of diagnostic tools, which can be helpful in verifying proper 6803 PowerDNS operation, versus incumbent nameservers. See <xref linkend="analysis"> for more details. 6804 </para> 6785 6805 <sect1 id="zone2sql"><title>Zone2sql</title> 6786 6806 <para> … … 7301 7321 </varlistentry> 7302 7322 <varlistentry> 7303 <term>serve-rfc 1918</term>7323 <term>serve-rfc<emphasis>1918</emphasis></term> 7304 7324 <listitem> 7305 7325 <para> … … 8070 8090 </para> 8071 8091 </chapter> 8072 <chapter id="all-settings"><title>Index of all settings</title>8092 <chapter id="all-settings"><title>Index of all Authoritative Server settings</title> 8073 8093 <para> 8074 All PDNS settings are listed here, excluding those that originate from backends, which are documented in the relevant chapters.8094 All PDNS Authoritative Server settings are listed here, excluding those that originate from backends, which are documented in the relevant chapters. 8075 8095 <variablelist> 8076 8096 <varlistentry> … … 8350 8370 </para> 8351 8371 </chapter> 8352 <chapter id="metrics"><title>Index of all internalmetrics</title>8372 <chapter id="metrics"><title>Index of all Authoritative Server metrics</title> 8353 8373 <sect1 id="counters-variables"><title>Counters & variables</title> 8354 8374 <para> 8355 A number of counters and variables are set during PDNS operation. These can be queried with the init.d8375 A number of counters and variables are set during PDNS Authoritative Server operation. These can be queried with the init.d 8356 8376 <command>dump</command>, <command>show</command> and <command>mrtg</command> commands, or viewed with the 8357 8377 webserver. … … 8503 8523 This chapter lists all record types PDNS supports, and how they are stored in backends. The list is mostly alphabetical but 8504 8524 some types are grouped. 8525 </para> 8526 <para> 8527 The PowerDNS Recursor can serve and store all record types, regardless of wether these are explicitly supported. 8505 8528 <variablelist> 8506 8529 <varlistentry> … … 8522 8545 </varlistentry> 8523 8546 <varlistentry> 8547 <term>AFSDB (since 2.9.21)</term> 8548 <listitem> 8549 <para> 8550 Specialised record type for the 'Andrew Filesystem'. Stored as: '#subtype hostname', where subtype is a number. 8551 </para> 8552 </listitem> 8553 </varlistentry> 8554 <varlistentry> 8555 <term>CERT (since 2.9.21)</term> 8556 <listitem> 8557 <para> 8558 Specialised record type for storing certificates, defined in RFC 2538. 8559 </para> 8560 </listitem> 8561 </varlistentry> 8562 <varlistentry> 8524 8563 <term>CNAME</term> 8525 8564 <listitem> … … 8531 8570 </varlistentry> 8532 8571 <varlistentry> 8572 <term>DNSKEY (since 2.9.21)</term> 8573 <listitem> 8574 <para> 8575 The DNSKEY DNSSEC record type is fully supported, as described in RFC 3757. Note that while PowerDNS can store, retrieve 8576 and serve DNSSEC records, no further DNSSEC processing is performed. 8577 </para> 8578 </listitem> 8579 </varlistentry> 8580 <varlistentry> 8581 <term>DS (since 2.9.21)</term> 8582 <listitem> 8583 <para> 8584 The DS DNSSEC record type is fully supported, as described in RFC 3757. Note that while PowerDNS can store, retrieve 8585 and serve DNSSEC records, no further DNSSEC processing is performed. 8586 </para> 8587 </listitem> 8588 </varlistentry> 8589 <varlistentry> 8533 8590 <term>HINFO</term> 8534 8591 <listitem> … … 8536 8593 Hardware Info record, used to specify CPU and operating system. Stored with a single space separating these two, 8537 8594 example: 'i386 Linux'. 8595 </para> 8596 </listitem> 8597 </varlistentry> 8598 <varlistentry> 8599 <term>KEY (since 2.9.21)</term> 8600 <listitem> 8601 <para> 8602 The LOC record is fully supported. For its syntax, see RFC 2535. 8603 </para> 8604 </listitem> 8605 </varlistentry> 8606 <varlistentry> 8607 <term>LOC</term> 8608 <listitem> 8609 <para> 8610 The LOC record is fully supported. For its syntax, see RFC 1876. A sample content would be: '51 56 0.123 N 5 54 0.000 E 4.00m 1.00m 10000.00m 10.00m' 8538 8611 </para> 8539 8612 </listitem> … … 8572 8645 </varlistentry> 8573 8646 <varlistentry> 8647 <term>NSEC (since 2.9.21)</term> 8648 <listitem> 8649 <para> 8650 The NSEC DNSSEC record type is fully supported, as described in RFC 3757. Note that while PowerDNS can store, retrieve 8651 and serve DNSSEC records, no further DNSSEC processing is performed. 8652 </para> 8653 </listitem> 8654 </varlistentry> 8655 <varlistentry> 8574 8656 <term>PTR</term> 8575 8657 <listitem> … … 8587 8669 pointer. Example 'peter.powerdns.com peter.people.powerdns.com', to indicate that peter@powerdns.com is responsible and that more 8588 8670 information about peter is available by querying the TXT record of peter.people.powerdns.com. 8671 </para> 8672 </listitem> 8673 </varlistentry> 8674 <varlistentry> 8675 <term>RRSIG (since 2.9.21)</term> 8676 <listitem> 8677 <para> 8678 The RRSIG DNSSEC record type is fully supported, as described in RFC 3757. Note that while PowerDNS can store, retrieve 8679 and serve DNSSEC records, no further DNSSEC processing is performed. 8589 8680 </para> 8590 8681 </listitem> … … 8643 8734 </varlistentry> 8644 8735 <varlistentry> 8736 <term>SPF (since 2.9.21)</term> 8737 <listitem> 8738 <para> 8739 SPF records can be used to store Sender Permitted From details. 8740 </para> 8741 </listitem> 8742 </varlistentry> 8743 <varlistentry> 8744 <term>SSHFP (since 2.9.21)</term> 8745 <listitem> 8746 <para> 8747 The SSHFP record type, used for storing Secure Shell (SSH) fingerprints, is fully supported. A sample from RFC 4255 is: 8748 '2 1 123456789abcdef67890123456789abcdef67890'. 8749 </para> 8750 </listitem> 8751 </varlistentry> 8752 <varlistentry> 8645 8753 <term>SRV</term> 8646 8754 <listitem> … … 8673 8781 </para> 8674 8782 <para> 8675 Some users may not have experience in interacting with developers or the open source community. This FAQ is to be considered 8676 MANDATORY READING before asking us for help. 8677 </para> 8678 <para> 8679 You are also advised to look at <ulink url="http://wiki.powerdns.com">the Wiki</ulink> for more information. 8783 The PowerDNS company provides free support on the public mailing lists, and can help or support you in private as well. 8784 For first class and rapid support, please contact pdns.bd@trilab.com. 8785 </para> 8786 <para> 8787 More information about the PowerDNS community, and its mailing lists, can be found on <ulink url="http://wiki.powerdns.com">its Wiki</ulink>. 8788 </para> 8789 <para> 8790 Below, please find a list of common questions asked on our public mailing lists. 8680 8791 </para> 8681 8792 <variablelist> … … 8684 8795 <listitem> 8685 8796 <para> 8686 A: Please try harder . Specifically, before people will be able to help you, they need to know a lot about your system.8687 Things you may find irrelevant. But, as you have a problem, you are not in a good position to know what is relevant and what not.8797 A: Please try harder :-) Specifically, before people will be able to help you, they need to know a lot about your system. If you 8798 list more details, chances are you'll get better answers. 8688 8799 </para> 8689 8800 </listitem> … … 8698 8809 </para> 8699 8810 <para> 8700 In the Open Source community, not supplying vital details is interpreted as a lack of respect for those willing to take8701 time to answer your questions!8702 </para>8703 <para>8704 8811 If at *all* possible, supply the actual name of your domain and the IP address of your server(s). 8705 8812 </para> … … 8711 8818 <listitem> 8712 8819 <para> 8713 A: To a mailinglist. Do not mail the authors directly unless you previously entered a support contract with them! 8714 For subscription details, see <ulink url="http://mailman.powerdns.com/mailman/admin/">the mailinglists page</ulink>. 8820 A: To a mailinglist. Please email the authors directly only if you previously entered a support contract with them, or 8821 are considering doing so. 8822 For mailing list details, see <ulink url="http://mailman.powerdns.com/mailman/admin/">the mailinglists page</ulink>. 8715 8823 </para> 8716 8824 <para> … … 8719 8827 </para> 8720 8828 <para> 8721 Before posting, read all FAQs and tell people you did.8829 Before posting, read all FAQs. 8722 8830 </para> 8723 8831 </listitem> 8724 8832 </varlistentry> 8725 8833 <varlistentry> 8726 <term>Q: I'm special, I don't email to mailinglists!</term>8834 <term>Q: My information is confidential, must I send it to the mailing list?</term> 8727 8835 <listitem> 8728 8836 <para> 8729 We're special too, and we ask you to mail the mailinglists. If you need privacy, consider entering a support8730 relationship with us, in which case you can email <email>support@powerdns.com</email>.8837 If you desire privacy, please consider entering a support relationship with us, 8838 in which case you can email <email>pdns.bd@trilab.com</email>. 8731 8839 </para> 8732 8840 </listitem> … … 8799 8907 </varlistentry> 8800 8908 <varlistentry> 8801 <term>Q: I try to launch the pgmysqlbackend and it can't find it!</term> 8802 <listitem> 8803 <para> 8804 A: You did not read the changelog, nor the README. The 'pgmysql' backend is no more and has been split 8805 into the gmysql and gpgsql backends, with the common code residing within PowerDNS itself. 8806 </para> 8807 </listitem> 8808 </varlistentry> 8809 <varlistentry> 8810 <term>Q: PowerDNS compiles under OpenBSD, but crashes immediately, now what?</term> 8811 <listitem> 8812 <para> 8813 A: Reasons behind this are somewhat unclear but we hear they go away if you use a more recent compiler. Let us know 8814 on <email>pdns-dev@mailman.powerdns.com</email>. See also 8815 <ulink url="http://www.codeninja.nl/openbsd/powerdns/">here</ulink>. 8816 </para> 8817 </listitem> 8818 </varlistentry> 8819 <varlistentry> 8820 <term>Q: I'm trying to build from CVS but I get lots of weird errors!</term> 8909 <term>Q: I'm trying to build from SVN but I get lots of weird errors!</term> 8821 8910 <listitem> 8822 8911 <para> 8823 8912 A: Read the 'HACKING' file, it lists the build requirements (mostly autoconf, automake, libtool). In many cases, 8824 it may be easier to build from the source distribution though. 8825 </para> 8826 </listitem> 8827 </varlistentry> 8828 <varlistentry> 8829 <term>Q: I'm on Solaris 7 and AAAA records do not work</term> 8830 <listitem> 8831 <para> 8832 A: Indeed, and this is pretty sad. Either upgrade to Solaris 8 or convince people to write the replacement functions 8833 needed to encode AAAA if the host operating system does not offer them. 8913 it may be easier to build from the source distribution though. More information for developers 8914 is available on <ulink url="http://wiki.powerdns.com">the PowerDNS Open Source Community Wiki</ulink>. 8834 8915 </para> 8835 8916 </listitem> … … 8840 8921 <para> 8841 8922 A: Your gcc is too old. Versions 2.95.2 and older are not supported. Many distributions have improved gcc 2.95.2 8842 with an ostringstream implementation, in which case their 2.95.2 is also supported. We like gcc 3.2.1 best. 8843 </para> 8844 </listitem> 8845 </varlistentry> 8846 <varlistentry> 8847 <term>Q: Ok, I've installed gcc 3.2.1 but now the gpgsql backend won't link</term> 8848 <listitem> 8849 <para> 8850 A: Sadly, the gcc C++ on-disk object format has changed a few times since the 2.95 days. This means that 8851 gcc 3.2.1 cannot link against libpq++.so compiled with 2.95. The trick is to recompile PostgreSQL with 3.2.1 8852 too and have it install in a separate location. Then reconfigure the pdns compile to look there, with 8853 <command>./configure --with-pgsql-lib=/opt/postgresql-with-3.2.1/lib</command> 8854 </para> 8855 </listitem> 8856 </varlistentry> 8857 <varlistentry> 8858 <term>Q: I've installed PostgreSQL 7.3 but it has no libpq++.so</term> 8859 <listitem> 8860 <para> 8861 A: As of 7.3, libpq++ has been split out of the main PostgreSQL distribution. See <ulink url="http://gborg.postgresql.org/">here</ulink>. 8862 It would in fact be a great idea to move the gpgsql backend to the C interface instead of the C++ one. On Debian 'Sid', libpq++.so 8863 hides in the libpqpp-dev package. 8923 with an ostringstream implementation, in which case their 2.95.2 is also supported. 8864 8924 </para> 8865 8925 </listitem> … … 8956 9016 <para> 8957 9017 Writing backends without access to the full PDNS source means that you need to write code that can be loaded by PDNS at runtime. 8958 This in turn means that you need to use the same compiler that we do. For linux, this is currently GCC 3.0.4, although any 3.0.x 8959 compiler is probably fine. In tests, even 3.1 works. 8960 </para> 8961 <para> 8962 For FreeBSD we use GCC 2.95.2. 9018 This in turn means that you need to use the same compiler that we do. 8963 9019 </para> 8964 9020 <para> … … 9023 9079 </varlistentry> 9024 9080 <varlistentry> 9025 <term>Q: My backend compiles but when I try to load it, it says 'undefined symbol: _Z13BackendMakersv'</term>9026 <listitem>9027 <para>9028 A: Your pdns_server binary is static and cannot load a backend driver at runtime. Get a dynamic version of pdns, or complain9029 to pdns@powerdns.com if one isn't available. To check what kind of binary you have, execute 'file $(which pdns_server)'.9030 </para>9031 </listitem>9032 </varlistentry>9033 <varlistentry>9034 9081 <term>Q: My backend compiles but when I try to load it, it says 'undefined symbol: BackendMakers__Fv'</term> 9035 9082 <listitem> … … 9061 9108 <listitem> 9062 9109 <para> 9063 A: Yes, we also do custom development. Contact us at pdns @powerdns.com.9110 A: Yes, we also do custom development. Contact us at pdns.bd@trilab.com. 9064 9111 </para> 9065 9112 </listitem> … … 9096 9143 <para> 9097 9144 A: Far from it. In fact, we expect development to speed up now that we have joined the open source community. 9098 </para>9099 </listitem>9100 </varlistentry>9101 <varlistentry>9102 <term>Q: Why is the nameserver now open source?</term>9103 <listitem>9104 <para>9105 A: In the current economic climate and also the way the Internet is built up right now, selling software is very hard. Most potential9106 customers had never before bought a piece of software for their UNIX internet setup. Even though we know (from the recent survey) that9107 nameserver operators love PowerDNS, their suggested price for it is in the $100 range.9108 </para>9109 <para>9110 For us, it makes far more sense to open source PowerDNS than to ask $100 for it. It is expected that open sourcing PowerDNS will lead9111 to far higher adoption rates. We hope that PowerDNS will soon be included in major Linux and UNIX distributions.9112 </para>9113 </listitem>9114 </varlistentry>9115 <varlistentry>9116 <term>Q: How does PowerDNS.COM BV expect to make money now that the nameserver is free?</term>9117 <listitem>9118 <para>9119 A: In fact, we don't expect to in the near future. We also don't have a lot of expenses, basically9120 some hosting and a few domain names.9121 </para>9122 <para>9123 However, we are available for consulting work, for example to help a large registrar or registry migrate to PowerDNS, or to help9124 integrate our software in existing provisioning systems.9125 </para>9126 <para>9127 Furthermore, non-GPL licenses are available for those needing to do closed source modifications, or for customers9128 uncomfortable with the GPL. This is much like what <ulink url="http://www.mysql.com/company/index.html">MySQL AB</ulink> is doing now.9129 </para>9130 <para>9131 In fact, their strategy is a lot like ours in general.9132 9145 </para> 9133 9146 </listitem> … … 10728 10741 <row><entry>Slave</entry><entry>Yes</entry></row> 10729 10742 <row><entry>Superslave</entry><entry>Yes</entry></row> 10730 <row><entry>Module name</entry><entry>gsqlite </entry></row>10731 <row><entry>Launch name</entry><entry>gsqlite </entry></row>10743 <row><entry>Module name</entry><entry>gsqlite and gsqlite3</entry></row> 10744 <row><entry>Launch name</entry><entry>gsqlite and gsqlite3</entry></row> 10732 10745 </tbody> 10733 10746 </tgroup> … … 10744 10757 <para> 10745 10758 SQLite exists in two incompatible versions, numbered 2 and 3, and from 2.9.21 onwards, PowerDNS supports both. It is recommended to go with version 3 10746 as it is newer, has better performance and is actively maintained. 10759 as it is newer, has better performance and is actively maintained. To use version 3, choose 'launch=gsqlite3'. 10747 10760 </para> 10748 10761 <sect2> -
trunk/pdns/pdns/qtype.cc
r978 r1046 57 57 insert("LOC",29); 58 58 insert("SRV",33); 59 insert("CERT", 37); 59 60 insert("A6",38); 60 61 insert("NAPTR",35); 62 insert("DS", 43); 63 insert("SSHFP", 44); 64 insert("RRSIG", 46); 65 insert("DNSKEY", 48); 61 66 insert("SPF",99); 62 67 insert("AXFR",252);