aboutsummaryrefslogtreecommitdiffstats
path: root/tools/generate-dnsrr.pl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/generate-dnsrr.pl')
-rwxr-xr-xtools/generate-dnsrr.pl149
1 files changed, 0 insertions, 149 deletions
diff --git a/tools/generate-dnsrr.pl b/tools/generate-dnsrr.pl
deleted file mode 100755
index 99ff395..0000000
--- a/tools/generate-dnsrr.pl
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/perl -I /root/tgmanage
-#
-# USAGE:
-# Generate BIND Zone-file data based on the file hosts-to-add.txt
-# cat hosts-to-add.txt | tools/generate-dnsrr.pl
-#
-# Generate input data for nsupdate, to add FORWARD records based on hosts-to-add.txt
-# cat hosts-to-add.txt | tools/generate-dnsrr.pl --domain foo.tgXX.gathering.org -ns
-#
-# Generate input data for nsupdate, to add REVERSE records based on hosts-to-add.txt
-# cat hosts-to-add.txt | tools/generate-dnsrr.pl --domain foo.tgXX.gathering.org -ns -rev
-#
-# Generate input data for nsupdate, to DELETE forward records based on hosts-to-add.txt
-# cat hosts-to-DELETE.txt | tools/generate-dnsrr.pl --domain foo.tgXX.gathering.org -ns -del
-#
-# Generate input data for nsupdate, to DELETE reverse records based on hosts-to-add.txt
-# cat hosts-to-DELETE.txt | tools/generate-dnsrr.pl --domain foo.tgXX.gathering.org -ns -rev -del
-#
-# Command-syntax to send this to nsupdate, running it on the DNS server:
-# cat file.txt | tools/generate-dnsrr.pl --dom foo -ns | ssh $dnsserver "nsupdate -k /etc/bind/Kdhcp_updater.+157+XXXXX"
-#
-# Generate DNS for linknets:
-# cat /tmp/linknets.txt | perl -wple 's,;, ,g' | perl tools/make-linknet-hosts.pl | tools/generate-dnsrr.pl --domain tgXX.gathering.org -ns -rev | ssh $dnsserver "nsupdate -k /etc/bind/Kdhcp_updater.XXXXX"
-#
-# Format of input:
-# hostname ipv4-adress ipv6-address
-# If any of ipv4-address or ipv6-address are NOT set for the host, specify "nope"
-# Lines starting with # will (should) be skipped (comments)
-#
-# Example:
-#
-# host1 192.168.0.1 2001:db8:f00::1
-# host2 nope 2001:db8:f00::2
-# host3 192.168.0.3 nope
-# # comment, to be ignored.
-# host4 192.168.0.4
-
-use strict;
-use warnings;
-use lib '..';
-BEGIN {
- require "include/config.pm";
- eval {
- require "include/config.local.pm";
- };
-}
-use Net::IP;
-use Getopt::Long;
-
-my ($delete, $auto, $nsupdate, $reverse, $domain);
-
-if (@ARGV > 0) {
- GetOptions(
- 'del|delete' => \$delete,
- 'a|auto' => \$auto,
- 'ns|nsupdate' => \$nsupdate,
- 'r|reverse' => \$reverse,
- 'domain=s' => \$domain
- )
-}
-
-if ($nsupdate || $reverse){
- unless (defined($domain)){
- print "Missing domain.\n";
- exit 1 unless defined($domain);
- }
-}
-
-$domain = "." . $domain if defined($domain);
-
-print "server $nms::config::pri_v4\n" if ($nsupdate || $reverse);
-
-while (<STDIN>) {
- next if /^(#|\s+$)/; # skip if comment, or blank line
-
- my ($hostname, $ipv4, $ipv6) = split;
- $hostname = lc($hostname);
-
- unless ($ipv6){
- if ($auto){
- # Get IPv6-address based on IPv4-address
-
- my ($first, $second, $third, $fourth) = split('\.', $ipv4);
- # TODO: Need to do some more logic, since base_ipv6net looks like '2a02:ed02::/32'
- #$ipv6 = $nms::config::base_ipv6net . $third . "::" . $fourth;
- }
- }
-
- if ($reverse){
- # print ptr
- print_ptr($hostname, $ipv4, $ipv6);
- } else {
- # print forward
- print_fwd($hostname, $ipv4, $ipv6);
- }
-}
-
-sub print_ptr{
- my ($hostname, $ipv4, $ipv6) = @_;
-
- # IPv4
- unless ( $ipv4 eq "nope" ) {
- my $v4 = new Net::IP($ipv4);
-
- print "update add " . $v4->reverse_ip() . " 3600 IN PTR " . $hostname . $domain .".\n" unless $delete;
- print "update delete " . $v4->reverse_ip() . " IN PTR\n" if $delete;
- print "send\n";
- }
-
- # IPv6
- if (( not ($ipv6 eq "nope") ) && ( $ipv6 )) {
- my $v6 = new Net::IP($ipv6);
-
- print "update add " . $v6->reverse_ip() . " 3600 IN PTR " . $hostname . $domain . ".\n" unless $delete;
- print "update delete " . $v6->reverse_ip() . " IN PTR\n" if $delete;
- print "send\n";
- }
-}
-
-sub print_fwd{
- my ($hostname, $ipv4, $ipv6) = @_;
-
- if ($nsupdate){
-
- unless ( $ipv4 eq "nope" ) {
- # IPv4
- print "prereq nxrrset " . $hostname . $domain . " IN A\n" unless $delete;
- print "update add " . $hostname . $domain . " 3600 IN A $ipv4\n" unless $delete;
- print "update delete " . $hostname . $domain . " IN A\n" if $delete;
- print "send\n";
- }
- if (( not ($ipv6 eq "nope") ) && ( $ipv6 )) {
- # IPv6
- print "prereq nxrrset " . $hostname . $domain . " IN AAAA\n" unless $delete;
- print "update add " . $hostname . $domain . " 3600 IN AAAA $ipv6\n" unless $delete;
- print "update delete " . $hostname . $domain . " IN AAAA\n" if $delete;
- print "send\n";
- }
- } else {
- # IPv4
- unless ( $ipv4 eq "nope" ) {
- printf ("%-24s%s\t%s\t%s\n", $hostname, "IN", "A", $ipv4);
- }
- # IPv6
- if (( not ($ipv6 eq "nope") ) && ( $ipv6 )) {
- printf ("%-24s%s\t%s\t%s\n", $hostname, "IN", "AAAA", $ipv6) if ($ipv6);
- }
- }
-}