# -*- mmm-classes: donuts-perl -*-
# Copyright 2006-2011 SPARTA, Inc. All rights reserved.
# See the COPYING file included with the DNSSEC-Tools package for details.
#
# This file checks for basic DNS errors that are easy to overlook
#
# how they ever got this far, I'm not sure...
name: DNS_SOA_REQUIRED
level: 2
ruletype: name
desc: Checks for the existence of an SOA record in a zone.
if ($recordname eq $current_domain && $#{$records->{'SOA'}} == -1) {
donuts_error("A SOA record for $current_domain is required");
}
#
# memorize NS records for a zone
#
name: MEMORIZE_NS_CNAME_RECORDS
internal: yes
level: 1
type: NS
if ($record->name eq $current_domain) {
$DONUTS::DNSSEC::NSCNAMECHECK{$record->nsdname} = $record->name;
}
return;
#
# memorize NS records for a zone
#
name: DNS_NS_NO_CNAME
level: 4
type: CNAME
desc: Checks to make sure that NS records don't point to CNAMEs
if (exists($DONUTS::DNSSEC::NSCNAMECHECK{$record->name})) {
donuts_error("A NS record for " .
$DONUTS::DNSSEC::NSCNAMECHECK{$record->name} .
" points to " . $record->name .
" which is a CNAME instead of an address record");
}
return;