I'm trying to use IPv6 addresses in Net::DNS::Resolver and it's not working. Help?
%tld_v4_masters = (
"server1" => "10.1.1.1",
"server2" => "10.1.1.2",
"server3" => "10.1.1.3",
"server4" => "10.1.1.4",
);
%tld_v6_masters = (
"server1" => "2620:10a:aaaa::1",
"server1" => "2620:10a:aaaa::2",
"server1" => "2620:10a:aaaa::3",
"server1" => "2620:10a:aaaa::4",
);
######################################################################
+####################
### SUB: &verifymasters; - Verify and Determine which zone masters to
+compare myself against
######################################################################
+####################
sub verifymasters {
print "Running verifymasters...\n";
foreach $tryzm (values %$prizms) {
print "[DEBUG(verifymasters)] Verifying ZM $tryzm with test candid
+ate zone $testcandidate...\n" if ($debug);
$res = new Net::DNS::Resolver;
$res->tcp_timeout (1) ;
$res->retry (1) ;
$res->retrans (1) ;
$query = $res->nameservers($tryzm);
$query = $res->query($testcandidate, "SOA");
my $serial=($query->answer)[0]->serial, if ($query);
if (length($serial) > 2) {
print "[DEBUG(verifymasters)] Marking ZM $tryzm as GOOD!\n" if (
+$debug);
$goodzms++;
}
else {
print "[DEBUG(verifymasters)] Marking ZM $tryzm as BAD!\n" if ($
+debug);
}
}
if ($goodzms < 4) {
foreach $tryzm (values %$seczms) {
print "[DEBUG(verifymasters)] Verifying ZM $tryzm with test cand
+idate zone $testcandidate...\n" if ($debug);
$res = new Net::DNS::Resolver;
$res->tcp_timeout (1) ;
$res->retry (1) ;
$res->retrans (1) ;
$query = $res->nameservers($tryzm);
$query = $res->query($testcandidate, "SOA");
my $serial=($query->answer)[0]->serial, if ($query);
if (length($serial) > 2) {
print "[DEBUG(verifymasters)] Marking ZM $tryzm as GOOD!\n" if
+ ($debug);
$goodzms++;
}
else {
print "[DEBUG(verifymasters)] Marking ZM $tryzm as BAD!\n" if
+($debug);
}
}
}
}
I end up with the IPv4 checks being marked as GOOD, an the IPv6 tests being marked as BAD.