- webserver.example.com A records pointing to 192.0.2.4, 192.0.2.5, 192.0.2.6
- www.example.com CNAME pointing to webserver.example.com
-- MBOXFW (mailbox forward) records pointing to powerdns@example.com. See the smtpredir documentation for information about MBOXFW.
## PipeBackend protocol
PowerDNS Authoritative Server 3.0 comes with DNSSEC support, but this has required big changes to database schemas. Each backend lists the changes required. To facilitate a smooth upgrade, the old, non-DNSSEC schema is used by default. Features like per-domain metadata, TSIG and DNSSEC itself however need the new schema. Consult your backend documentation for the correct 'alter table' statements. Afterwards, set the relevant '-dnssec' setting for your backend (for example: gmysql-dnssec).
-In version 3.0, "Fancy Records", like URL, CURL and MBOXFW are no longer supported. Support may come back in later versions. In addition, the LDAP Backend has moved to 'unmaintained' status.
+In version 3.0, "Fancy Records", like URL, CURL and MBOXFW are no longer supported. In addition, the LDAP Backend has moved to 'unmaintained' status.
##Â Frequently Asked Questions about 3.0
print STDERR "$$ Sent CNAME records\n";
print "DATA $qname $qclass CNAME 3600 -1 webserver.example.com\n";
}
- elsif($qtype eq "MBOXFW") {
- print STDERR "$$ Sent MBOXFW records\n";
- print "DATA $qname $qclass MBOXFW 3600 -1 powerdns\@example.com\n";
- }
print STDERR "$$ End of data\n";
return ac & 0xFFFF;
}
-// "fancy records"
-boilerplate_conv(URL, QType::URL,
- conv.xfrLabel(d_url);
- )
-
-boilerplate_conv(MBOXFW, QType::MBOXFW,
- conv.xfrLabel(d_mboxfw);
- )
-
-
-
bool getEDNSOpts(const MOADNSParser& mdp, EDNSOpts* eo)
{
if(mdp.d_header.arcount && !mdp.d_answers.empty()) {
MINFORecordContent::report();
}
-void reportFancyTypes()
-{
- URLRecordContent::report();
- MBOXFWRecordContent::report();
-}
-
void reportAllTypes()
{
reportBasicTypes();
private:
};
-
-class URLRecordContent : public DNSRecordContent // Fake, 'fancy record' with type 256
-{
-public:
- includeboilerplate(URL)
-private:
- string d_url;
-};
-
-class MBOXFWRecordContent : public DNSRecordContent // Fake, 'fancy record' with type 256
-{
-public:
- includeboilerplate(MBOXFW)
-private:
- string d_mboxfw;
-};
-
class EUI48RecordContent : public DNSRecordContent
{
public:
void reportBasicTypes();
void reportOtherTypes();
void reportAllTypes();
-void reportFancyTypes();
#endif
}
}
- if(rr.qtype.getCode() == QType::URL || rr.qtype.getCode() == QType::MBOXFW) {
- cout<<"[Error] The recordtype "<<rr.qtype.getName()<<" for record '"<<rr.qname<<"' is no longer supported."<<endl;
- numerrors++;
- continue;
- }
-
if (rr.qname[rr.qname.size()-1] == '.') {
cout<<"[Error] Record '"<<rr.qname<<"' has a trailing dot. PowerDNS will ignore this record!"<<endl;
numerrors++;
#undef DS
enum typeenum {A=1, NS=2, CNAME=5, SOA=6, MR=9, WKS=11, PTR=12, HINFO=13, MINFO=14, MX=15, TXT=16, RP=17, AFSDB=18, SIG=24, KEY=25, AAAA=28, LOC=29, SRV=33, NAPTR=35, KX=36,
CERT=37, A6=38, DNAME=39, OPT=41, DS=43, SSHFP=44, IPSECKEY=45, RRSIG=46, NSEC=47, DNSKEY=48, DHCID=49, NSEC3=50, NSEC3PARAM=51,
- TLSA=52, SPF=99, EUI48=108, EUI64=109, TSIG=250, IXFR=251, AXFR=252, MAILB=253, MAILA=254, ANY=255, URL=256, MBOXFW=257, CURL=258, ADDR=259, ALIAS=260, DLV=32769} types;
+ TLSA=52, SPF=99, EUI48=108, EUI64=109, TSIG=250, IXFR=251, AXFR=252, MAILB=253, MAILA=254, ANY=255, ADDR=259, ALIAS=260, DLV=32769} types;
typedef pair<string,uint16_t> namenum;
static vector<namenum> names;
qtype_insert("MAILB", 253);
qtype_insert("MAILA", 254);
qtype_insert("ANY", 255);
- qtype_insert("URL", 256);
- qtype_insert("MBOXFW", 257);
- qtype_insert("CURL", 258);
qtype_insert("ADDR", 259);
qtype_insert("ALIAS", 260);
qtype_insert("DLV", 32769);
MRRecordContent::report();
IPSECKEYRecordContent::report();
KXRecordContent::report();
- URLRecordContent::report();
- MBOXFWRecordContent::report();
DHCIDRecordContent::report();
TSIGRecordContent::report();
(CASE_S(QType::EUI64, "00-11-22-33-44-55-66-77", "\x00\x11\x22\x33\x44\x55\x66\x77",false))
(CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 0 0", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\x00\x00\x00\x51\x8f\xed\x8c\x00\x3c\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86\x30\x39\x00\x00\x00\x00",false))
(CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 18 16 TkbpD66/Mtgo8GUEFZIwhg==", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\x00\x00\x00\x51\x8f\xed\x8c\x00\x3c\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86\x30\x39\x00\x12\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86",true))
-/* (CASE_S(QType::URL, "http://server.rec.test/", "\x17http://server.rec.test/",false))
- (CASE_S(QType::MBOXFW, "you@yourcompany.com", "line format",false))
- (CASE_S(QType::CURL, "http://server.rec.test/", "\x17http://server.rec.test/",false))
- (CASE_S(QType::ADDR, "zone format", "line format",false)) */
+/* (CASE_S(QType::ADDR, "zone format", "line format",false)) */
(CASE_S(QType::DLV, "20642 8 2 04443abe7e94c3985196beae5d548c727b044dda5151e60d7cd76a9fd931d00e", "\x50\xa2\x08\x02\x04\x44\x3a\xbe\x7e\x94\xc3\x98\x51\x96\xbe\xae\x5d\x54\x8c\x72\x7b\x04\x4d\xda\x51\x51\xe6\x0d\x7c\xd7\x6a\x9f\xd9\x31\xd0\x0e",false))
;
BOOST_AUTO_TEST_CASE(test_tng_record_types) {
reportAllTypes();
- reportFancyTypes();
std::ostringstream pathbuf;
const char* p = std::getenv("SRCDIR");
4bc48a8d9b8d04b553be67639e5656e8 ../regression-tests/zones/example.com
-c5d5a2a68d72760b5f6f563eb0a1b6d5 ../regression-tests/zones/test.com
+a51bf8c9748e21582250c11f97de6e39 ../regression-tests/zones/test.com
005b3381db2a7dc70b690484f6ab7770 ../regression-tests/zones/test.dyndns
0861783f9f83acd9044278cda2528ee2 ../regression-tests/zones/wtest.com
42b442de632686e94bde75acf66cf524 ../regression-tests/zones/nztest.com
$ nameserver=127.0.0.1 port=5300 ./runtests
```
-The BIND backend can't do MBOXFW. The `any-query` test is known to fail
-with bind,gsqlite3.
-
Analysing results
-----------------
+++ /dev/null
-#!/bin/sh
-cleandig auto.test.com MX
-
+++ /dev/null
-Test for the "MBOXFW" fancy-record in PowerDNS
+++ /dev/null
-0 auto.test.com. IN MX 7200 25 a.misconfigured.powerdns.smtp.server.
-Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
-Reply to question for qname='auto.test.com.', qtype=MX
+++ /dev/null
-#!/bin/sh
-cleandig images.test.com A
+++ /dev/null
-Test for the "URL" fancy-record in PowerDNS
+++ /dev/null
-0 images.test.com. IN A 3600 127.0.0.1
-Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
-Reply to question for qname='images.test.com.', qtype=A
_root._tcp.dc IN SRV 0 0 0 .
blah IN NS blah
blah IN A 192.168.6.1
-;images IN URL "http://www.ds9a.nl"
-;bert@auto.test.com. IN MBOXFW "bert@ds9a.nl"
very-long-txt IN TXT "A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long!"
within-server IN CNAME outpost.example.com.
_underscore IN TXT "underscores are terrible"
_root._tcp.dc IN SRV 0 0 0 .
blah IN NS blah
blah IN A 192.168.6.1
-;images IN URL "http://www.ds9a.nl"
-;bert@auto.test.com. IN MBOXFW "bert@ds9a.nl"
very-long-txt IN TXT "A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long. A very long TXT record! boy you won't believe how long!"
within-server IN CNAME outpost.example.com.
_underscore IN TXT "underscores are terrible"