blob: 157d43b51cb573d6d6726c1ed3f8087c3d98a841 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#!/usr/bin/perl
use strict;
BEGIN {
require "include/config.pm";
eval {
require "include/config.local.pm";
};
}
use Net::IP;
use Getopt::Long;
my ($delete);
if (@ARGV > 0) {
GetOptions(
'del|delete' => \$delete,
)
}
print "server $nms::config::pri_v4\n";
while (<STDIN>)
{
my ( $sysname, $distro, $ponum, $cidr, $ipaddr, $gwaddr, $v6addr, @ports ) = split;
my $ip = new Net::IP($ipaddr);
my $v4gw = new Net::IP($gwaddr);
( my $gw6 = $v6addr ) =~ s/\/.*//;
my $v6gw = new Net::IP($gw6);
my $fqdn = $sysname . "." . $nms::config::tgname . ".gathering.org.";
my $sw_fqdn = $sysname . "-sw." . $fqdn;
my $text_info = $distro . " - " . join(' + ', @ports) . ", po" . $ponum . ", gwaddr " . $gwaddr;
# A-record to the switch
print "prereq nxdomain sw." . $fqdn . "\n" unless $delete;
print "update add sw." . $fqdn . " \t 3600 IN A \t " . $ipaddr . "\n" unless $delete;
print "update delete sw." . $fqdn . " \t IN A\n" if $delete;
print "send\n";
# PTR to the switch
print "prereq nxdomain " . $ip->reverse_ip() . "\n" unless $delete;
print "update add " . $ip->reverse_ip() . " \t 3600 IN PTR \t sw." . $fqdn . "\n" unless $delete;
print "update delete " . $ip->reverse_ip() . " \t IN PTR\n" if $delete;
print "send\n";
# TXT-record with details
print "update delete sw." . $fqdn . " IN TXT\n" unless $delete;
print "update add sw." . $fqdn . " \t 3600 IN TXT \t \"" . $text_info . "\"\n" unless $delete;
print "update delete sw." . $fqdn . " \t IN TXT\n" if $delete;
print "send\n";
# A and AAAA-record to the gateway/router
print "prereq nxrrset gw." . $fqdn . " IN A\n" unless $delete;
print "update add gw." . $fqdn . " \t 3600 IN A \t " . $gwaddr . "\n" unless $delete;
print "update delete gw." . $fqdn . " \t IN A\n" if $delete;
print "send\n";
print "prereq nxrrset gw." . $fqdn . " IN AAAA\n" unless $delete;
print "update add gw." . $fqdn . " \t 3600 IN AAAA \t " . $gw6 . "\n" unless $delete;
print "update delete gw." . $fqdn . " \t IN AAAA\n" if $delete;
print "send\n";
# PTR to the gateway/router
print "prereq nxdomain " . $v4gw->reverse_ip() . "\n" unless $delete;
print "update add " . $v4gw->reverse_ip() . " \t 3600 IN PTR \t gw." . $fqdn . "\n" unless $delete;
print "update delete " . $v4gw->reverse_ip() . " \t IN PTR\n" if $delete;
print "send\n";
print "prereq nxdomain " . $v6gw->reverse_ip() . "\n" unless $delete;
print "update add " . $v6gw->reverse_ip() . " \t 3600 IN PTR \t gw." . $fqdn . "\n" unless $delete;
print "update delete " . $v6gw->reverse_ip() . " \t IN PTR\n" if $delete;
print "send\n";
}
|