Revision [1028]
This is an old revision of mkmockdb made by ChristopherTheodore on 2008-01-16 18:45:13.
- This is a perl script that generates a file that can be filled with 100s - 10,000s of zone's and their resource records (SOA,NS,A,AAAA,MX, and TXT). Its purpose is to give a somewhat realistic idea of the size of a "type master;" or a "type slave;" zone file for a TLD so people can plan accordingly.
#!/usr/bin/perl -w
# mkmockdb v1.0
# by Christopher Theodore: Rhodes
# This script (**$total_zones=100000** and **$records_per_zone=30**), generated a file that was **2.2gb** in size.
# You can use it mock up a zone.db to see how much space a zone.db might be take up if you are thinking about
# running a TLD or setting up a Secondary Master (slave) zone for one.
#
# For the first run, use the current defaults and take a look at what is being printed into the mock.db and then
# change the $total_zones and $records_per_zone
#
use strict;
# Total number of mock zones
my $total_zones = 1;
# Number of "sets" of sub-domains resource records for each mock zone
my $records_per_zone = 1;
# mock Resource Record data by type
my $domain_record = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEF";
my $A_record = "IN A\t000.000.000.000";
my $NS_record = "IN NS\tns00.ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEF";
my $AAAA_record = "IN AAAA 0000:0000:0000:0000:0000:0000:0000:0000";
my $MX_record = "IN MX\t10 mail.ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEF";
my $TXT_record = "IN TXT\t\"###################################################################################################\"";
my $SOA_record = "\$TTL 0h\n $domain_record\t IN SOA\t $NS_record hostmaster.$MX_record \( 0000000000 0h 0h 0w 0h \)";
my $file_out = "mock.db";
if (open(OUTFILE, ">$file_out")) {
# Loop to generate mock zones
for (my $a=0;$a <= $total_zones;$a++) {
# Print out a standard Source of Authority for the record - you only need one per zone.
print OUTFILE "#\n#ZONE NUMBER: $a \n#\n";
print OUTFILE "$SOA_record \n";
print OUTFILE "\t\t $NS_record \n";
print OUTFILE "\t\t $NS_record \n";
print OUTFILE "\t\t $MX_record \n";
print OUTFILE "\t\t $TXT_record \n";
print OUTFILE "\t\t $A_record \n";
print OUTFILE "\t\t $AAAA_record \n";
# Loop to generate some sets of sub-domains in the resource record of each mock zone
for (my $b=0;$b <= $records_per_zone;$b++) {
# Print out a common set of resource records
print OUTFILE "#\n#RECORD NUMBER: $a \n#\n";
print OUTFILE "$domain_record\t\t $NS_record \n";
print OUTFILE "$domain_record\t\t $NS_record \n";
print OUTFILE "$domain_record\t\t $MX_record \n";
print OUTFILE "$domain_record\t\t $TXT_record \n";
print OUTFILE "$domain_record\t\t $A_record \n";
print OUTFILE "$domain_record\t\t $AAAA_record \n";
}
}
close(OUTFILE);
} else {
print "ERROR\: $!\n"; die;
}CategoryArchitecture