From dns-return-3457-nelson-lists=crynwr.com@list.cr.yp.to Mon Aug 28 09:15:03 2000
X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
	["4573" "Mon" "28" "August" "2000" "11:12:06" "+0200" "henning.brauer@bsmail.de" "henning.brauer@bsmail.de" nil "142" "Re: large sites---book" "^From:" nil nil "8" nil "large sites---book" nil nil nil]
	nil)
Return-Path: <dns-return-3457-nelson-lists=crynwr.com@list.cr.yp.to>
Delivered-To: nelson-lists@desk.crynwr.com
Received: (qmail 8358 invoked from network); 28 Aug 2000 09:15:03 -0000
Received: from ns1.crynwr.com (HELO ns.crynwr.com) (nelson@192.203.178.14)
  by desk.crynwr.com with SMTP; 28 Aug 2000 09:15:03 -0000
Received: (qmail 32395 invoked by uid 500); 28 Aug 2000 09:14:41 -0000
Delivered-To: nelson-lists@crynwr.com
Received: (qmail 32391 invoked from network); 28 Aug 2000 09:14:41 -0000
Received: from koobera.math.uic.edu (HELO muncher.math.uic.edu) (131.193.178.181)
  by pdam.crynwr.com with SMTP; 28 Aug 2000 09:14:41 -0000
Received: (qmail 21878 invoked by uid 1002); 28 Aug 2000 09:11:46 -0000
Mailing-List: contact dns-help@list.cr.yp.to; run by ezmlm
Delivered-To: mailing list dns@list.cr.yp.to
Received: (qmail 29904 invoked from network); 28 Aug 2000 09:11:46 -0000
Received: from 134.n1.bsws.de (HELO smtp.bsws.de) (213.128.133.134)
  by koobera.math.uic.edu with SMTP; 28 Aug 2000 09:11:46 -0000
Received: (qmail 22998 invoked from network); 28 Aug 2000 09:11:10 -0000
Received: from 131.n1.bsws.de (HELO bss001.bsws.de) ([213.128.133.131]) (envelope-sender <henning.brauer@bsmail.de>)
          by smtp.bsws.de (qmail-ldap-1.03) with SMTP
          for <lylyeoh@mecomb.com>; 28 Aug 2000 09:11:10 -0000
Bcc: 
X-Mailer: Lotus Notes Release 5.0.4a  July 24, 2000
Message-ID: <OFE3FD0729.2EC82D81-ONC1256949.00317C52@bsws.de>
X-MIMETrack: Serialize by Router on LN_ETCSOUND/etc.sound/DE(Release 5.0.4 |June 8, 2000) at
 08/28/2000 11:14:18 AM
MIME-Version: 1.0
Content-type: text/plain; charset=us-ascii
From: henning.brauer@bsmail.de
To: Lincoln Yeoh <lylyeoh@mecomb.com>
Cc: dns@list.cr.yp.to
Subject: Re: large sites---book
Date: Mon, 28 Aug 2000 11:12:06 +0200


> At 10:09 PM 25-08-2000 -0500, Mate Wierdl wrote:
> >On Sat, Aug 26, 2000 at 01:09:48AM +0200, henning.brauer@bsmail.de
wrote:
> >> there are no delete-* and change-*-scripts, so you can't alter
> >> your setup.
> >
> >That is a problem; I am sure Dan will remedy it later.
> >
> >Your scripts adding/removing your million records must do similar
> >(probably better) record keeping as the add-* scripts.  So perhaps Dan
> >will think about how to make them a bit better suited for experienced
> >people too.

> Actually I was thinking of storing everything in a database, and upon a
> trigger a single process rips the data out and creates a DATA file from
> scratch, and just runs make.
Thats the way i've set it up.

See the script here, so nobody needs to think I'm doin' big magic:


#!/usr/bin/perl

# Takes DNS-Info out of the database and creates tinydns' data-file.
# written Henning Brauer, Hostmaster BSWS, in Juli 2000

use bswscc;;
use DBI;

$dbh = bswscc::dbh;

$sth=$dbh->prepare("SELECT serial FROM Domains WHERE changed=1");
$rv=$sth->execute;
$sth->finish;

if ( $rv > 0 ) {
  print "Rewriting Nameserverdata\n";

  #values accepted by DENIC and CORE
  $refresh=10800;
  $retry=3600;
  $expire=604800;
  $min=86400;

  $i=0;
  $j=0;

  system("mv /etc/tinydns/root/data /etc/tinydns/root/data.old");
  system("cp /etc/tinydns/root/data.tl /etc/tinydns/root/data");
  open OF, ">> /etc/tinydns/root/data";

  $sth=$dbh->prepare("SELECT Domain, zonefile, nserver1, nserver2,
nserver3, mx1, mx2, mx3, serial, SOAmail, NS, changed FROM Domains WHERE
NS=1 ORDER BY Domain");
  $sth->execute;
  while ( ( $zone, $file, $ns1, $ns2, $ns3, $mx1, $mx2, $mx3, $serial,
$mail, $ns, $changed ) = $sth->fetchrow_array ) {
    if ( $ns1 =~ /^[^ ]+ +[0-9\.]+/ ) { $ns1=~s/^([^ ]+) +[0-9\.]*/$1/; }
    if ( $ns2 =~ /^[^ ]+ +[0-9\.]+/ ) { $ns2=~s/^([^ ]+) +[0-9\.]*/$1/; }
    if ( $ns3 =~ /^[^ ]+ +[0-9\.]+/ ) { $ns3=~s/^([^ ]+) +[0-9\.]*/$1/; }

    # <BULLSHIT (but works)>
    if ( $ns1 eq "COHO-9697" ) { $ns1="ns.bsws.de"; }
    if ( $ns2 eq "COHO-9697" ) { $ns2="ns.bsws.de"; }
    if ( $ns3 eq "COHO-9697" ) { $ns3="ns.bsws.de"; }
    if ( $ns1 eq "COHO-9698" ) { $ns1="ns2.bsws.de"; }
    if ( $ns2 eq "COHO-9698" ) { $ns2="ns2.bsws.de"; }
    if ( $ns3 eq "COHO-9698" ) { $ns3="ns2.bsws.de"; }
    if ( $ns1 eq "COHO-11509" ) { $ns1="ns.net-activities.com"; }
    if ( $ns2 eq "COHO-11509" ) { $ns2="ns.net-activities.com"; }
    if ( $ns3 eq "COHO-11509" ) { $ns3="ns.net-activities.com"; }
    if ( $ns1 eq "COHO-440" ) { $ns1="ns2.ns2.de"; }
    if ( $ns2 eq "COHO-440" ) { $ns2="ns2.ns2.de"; }
    if ( $ns3 eq "COHO-440" ) { $ns3="ns2.ns2.de"; }
    # </BULLSHIT>

    #SOA
    print OF
"Z$zone\:$ns1\:$mail\:$serial\:$refresh\:$retry\:$expire\:$min\:\:\n";
    #Nameserver
    if ( $ns1 ne "" ) { print OF "."; print OF "$zone\:\:$ns1\:\:\n"; }
    if ( $ns2 ne "" ) { print OF "."; print OF "$zone\:\:$ns2\:\:\n"; }
    if ( $ns3 ne "" ) { print OF "."; print OF "$zone\:\:$ns3\:\:\n"; }
    #MX
    if ( $mx1 ne "" ) { print OF "\@$zone\:\:$mx1\:10\:\:\n"; }
    if ( $mx2 ne "" ) { print OF "\@$zone\:\:$mx2\:20\:\:\n"; }
    if ( $mx3 ne "" ) { print OF "\@$zone\:\:$mx3\:30\:\:\n"; }
    $st2=$dbh->prepare("SELECT Host, Type, Value FROM NSentry WHERE Domain
=\"$zone\" ORDER BY host");
    $st2->execute;
    while ( ( $host, $typ, $value ) = $st2->fetchrow_array ) {
      if ( $typ eq "A" ) {
        print OF "+$host\.$zone\:$value\:\:\n";
      }
      if ( $typ eq "CNAME" ) {
        print OF "\C$host\.$zone\:$value\:\:\n";
      }
      #<BULLSHIT never used>
      if ( $typ eq "MX" ) {
        print OF "\@"; print OF "$host\.$zone\:\:$value\:10\:\:\n";
      }
      #</BULLSHIT>
    }
    $st2->finish;
    if ( $changed eq 1 ) { $chng[$j++]=$zone; }
  }
  $sth->finish;
  close OF;
  chdir("/etc/tinydns/root");
  system("make");
  system("scp /etc/tinydns/root/data bss003:/etc/tinydns/root/");
  system("ssh bss003 \"cd /etc/tinydns/root; make\"");
  $dbh->do("UPDATE Domains SET changed=0 WHERE NOT(changed=0)");
  #ns2.ns2.de is not under our control and runs BIND
  for ( $i=0; $i<=$j; $i++ ) { system("/usr/hosting/dns_notify $chng[$i]
ns2.ns2.de"); }
}
$dbh->disconnect();

If someone want's to use it, do it. (GPL)
If someone want's to inprove it, send the improved version back to me ;-)))

Greetings

Henning Brauer
Hostmaster BSWS


--------------------------------------------------------------------------------------------------------

BS Web Services
Roedingsmarkt 14
20459 Hamburg
Germany

info@bsws.de
www.bsws.de





From dns-return-3458-nelson-lists=crynwr.com@list.cr.yp.to Mon Aug 28 09:35:04 2000
X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
	["5007" "Mon" "28" "August" "2000" "11:32:45" "+0200" "henning.brauer@bsmail.de" "henning.brauer@bsmail.de" nil "107" "Re: large sites---book" "^From:" nil nil "8" nil "large sites---book" nil nil nil]
	nil)
Return-Path: <dns-return-3458-nelson-lists=crynwr.com@list.cr.yp.to>
Delivered-To: nelson-lists@desk.crynwr.com
Received: (qmail 8460 invoked from network); 28 Aug 2000 09:35:04 -0000
Received: from ns1.crynwr.com (HELO ns.crynwr.com) (192.203.178.14)
  by desk.crynwr.com with SMTP; 28 Aug 2000 09:35:04 -0000
Received: (qmail 1380 invoked by uid 500); 28 Aug 2000 09:33:09 -0000
Delivered-To: nelson-lists@crynwr.com
Received: (qmail 1376 invoked from network); 28 Aug 2000 09:33:09 -0000
Received: from muncher.math.uic.edu (131.193.178.181)
  by pdam.crynwr.com with SMTP; 28 Aug 2000 09:33:09 -0000
Received: (qmail 9057 invoked by uid 1002); 28 Aug 2000 09:32:25 -0000
Mailing-List: contact dns-help@list.cr.yp.to; run by ezmlm
Delivered-To: mailing list dns@list.cr.yp.to
Received: (qmail 31759 invoked from network); 28 Aug 2000 09:32:24 -0000
Received: from 134.n1.bsws.de (HELO smtp.bsws.de) (213.128.133.134)
  by muncher.math.uic.edu with SMTP; 28 Aug 2000 09:32:24 -0000
Received: (qmail 28435 invoked from network); 28 Aug 2000 09:31:50 -0000
Received: from 131.n1.bsws.de (HELO bss001.bsws.de) ([213.128.133.131]) (envelope-sender <henning.brauer@bsmail.de>)
          by smtp.bsws.de (qmail-ldap-1.03) with SMTP
          for <spacey@lenin.nu>; 28 Aug 2000 09:31:50 -0000
Bcc: 
X-Mailer: Lotus Notes Release 5.0.4a  July 24, 2000
Message-ID: <OF6B45B32B.53B051CF-ONC1256949.003423F1@bsws.de>
X-MIMETrack: Serialize by Router on LN_ETCSOUND/etc.sound/DE(Release 5.0.4 |June 8, 2000) at
 08/28/2000 11:34:58 AM
MIME-Version: 1.0
Content-type: text/plain; charset=us-ascii
From: henning.brauer@bsmail.de
To: "Peter C. Norton" <spacey@lenin.nu>
Cc: dns@list.cr.yp.to
Subject: Re: large sites---book
Date: Mon, 28 Aug 2000 11:32:45 +0200


The database scheme?
No, but its really simple.

mysql> DESCRIBE Domains;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| ID         | int(11)      |      | PRI | 0       | auto_increment |
| AccName    | varchar(30)  |      |     |         |                |
#customer
| Domain     | varchar(100) |      |     |         |                |
#domain
| CreateDate | datetime     | YES  |     | NULL    |                |
| zonefile   | varchar(100) | YES  |     | NULL    |                | #not
used
| NS         | int(11)      | YES  |     | NULL    |                | #1=we
run primary DNS
| REG        | int(11)      | YES  |     | NULL    |                |
#1=denic, 2=core
| descr1     | varchar(50)  | YES  |     | NULL    |
|#reg-data
| descr2     | varchar(50)  | YES  |     | NULL    |                |
| descr3     | varchar(50)  | YES  |     | NULL    |                |
| descr4     | varchar(50)  | YES  |     | NULL    |                |
| descr5     | varchar(50)  | YES  |     | NULL    |                |
| adminc     | varchar(20)  | YES  |     | NULL    |                |
| techc      | varchar(20)  | YES  |     | NULL    |                |
| zonec      | varchar(20)  | YES  |     | NULL    |                |
| nserver1   | varchar(50)  | YES  |     | NULL    |                |
| nserver2   | varchar(50)  | YES  |     | NULL    |                |
| nserver3   | varchar(50)  | YES  |     | NULL    |                |
| Status     | varchar(100) | YES  |     | NULL    |                |
| WaitFor    | varchar(50)  | YES  |     | NULL    |                |
| lastaction | datetime     | YES  |     | NULL    |                |
| running    | tinyint(1)   | YES  |     | NULL    |                |
| nonotify   | tinyint(1)   | YES  |     | NULL    |                |
| fail       | tinyint(1)   | YES  |     | NULL    |                |
| nextwarn   | datetime     | YES  |     | NULL    |                |
| SOAmail    | varchar(100) | YES  |     | NULL    |
|#mailaddress for soa
| serial     | varchar(100) | YES  |     | NULL    |                |
#serial nr
| mx1        | varchar(100) | YES  |     | NULL    |                |
#mail1..3
| mx2        | varchar(100) | YES  |     | NULL    |                |
| mx3        | varchar(100) | YES  |     | NULL    |                |
| changed    | int(11)      | YES  |     | NULL    |                |
#should be bit instead of int
| mail       | int(11)      | YES  |     | NULL    |                | #type
of mail customer pays for
+------------+--------------+------+-----+---------+----------------+
32 rows in set (0.03 sec)

mysql> DESCRIBE NSentry;
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| ID     | int(11)      |      | PRI | 0       | auto_increment |
| Domain | varchar(100) | YES  |     | NULL    |                |
| Host   | varchar(100) | YES  |     | NULL    |                |
| Type   | varchar(5)   | YES  |     | NULL    |                |
| Value  | varchar(100) | YES  |     | NULL    |                |
+--------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

Greetings

Henning Brauer
Hostmaster BSWS

---------------------------------
BS Web Services
Roedingsmarkt 14
20459 Hamburg
Germany

info@bsws.de
www.bsws.de





                                                                                                                                
                    "Peter C.                                                                                                   
                    Norton"              To:     henning.brauer@bsmail.de                                                       
                    <spacey@lenin        cc:                                                                                    
                    .nu>                 Subject:     Re: large sites---book                                                    
                                                                                                                                
                    28.08.2000                                                                                                  
                    11:16                                                                                                       
                                                                                                                                
                                                                                                                                




Do you have a script to create the scheme?

--
The 5 year plan:
In five years we'll make up another plan.
Or just re-use this one.




