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: 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 ) by smtp.bsws.de (qmail-ldap-1.03) with SMTP for ; 28 Aug 2000 09:11:10 -0000 Bcc: X-Mailer: Lotus Notes Release 5.0.4a July 24, 2000 Message-ID: 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 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/; } # 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"; } # #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"; } # if ( $typ eq "MX" ) { print OF "\@"; print OF "$host\.$zone\:\:$value\:10\:\:\n"; } # } $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: 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 ) by smtp.bsws.de (qmail-ldap-1.03) with SMTP for ; 28 Aug 2000 09:31:50 -0000 Bcc: X-Mailer: Lotus Notes Release 5.0.4a July 24, 2000 Message-ID: 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" 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 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.