print "Received query from $peerhost to ". $conn->{"sockhost"}. "\n";
$query->print;
- if ( $qtype eq "A" && $qname eq "pxelator" ) {
- my ($ttl, $rdata) = (3600, "172.16.10.1");
- push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata");
- $rcode = "NOERROR";
- } elsif ( $qname eq "foo.example.com" ) {
- $rcode = "NOERROR";
+ if ( $qname =~ s{\Q$server::domain_name\E$}{} ) {
+ warn "local $qname $qtype";
+ if ( $qtype eq "A" && $qname eq "pxelator." ) {
+ my ($ttl, $rdata) = (3600, "172.16.10.1");
+ push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata");
+ $rcode = "NOERROR";
+ } else {
+ $rcode = "NXDOMAIN";
+ }
} elsif ( my $packet = $res->query( $qname, $qtype ) ) {
$rcode = "NXDOMAIN";
}
+ warn "rcode: $rcode ",dump( @ans );
+
# mark the answer as authoritive (by setting the 'aa' flag
return ($rcode, \@ans, \@auth, \@add, { aa => 1 });
}
Verbose => $debug,
) || die "couldn't create nameserver object\n";
+ warn "DNS $server::domain_name";
+
$ns->main_loop;
}
-1;
+1;
our ( $ip_from, $ip_to ) = ( 10, 100 );
+our $domain_name = 'pxelator.lan';
+
our $base_dir = '/srv/pxelator';
use Module::Refresh qw//;