9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] a script to update DNS root hints
@ 2016-05-01 22:48 Skip Tavakkolian
  2016-05-02  0:00 ` cinap_lenrek
  0 siblings, 1 reply; 3+ messages in thread
From: Skip Tavakkolian @ 2016-05-01 22:48 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 412 bytes --]

the /lib/ndb/local.complicated database in the distribution has an
outdated list of root servers.  the attached script reads the latest
list from InterNIC and outputs it in ndb format.

there is a dns bug, that i believe is triggered by the outdated root
server configuration.  it seems like a use-after-free; i've seen
panics due to 'assert(rp->magic == RRmagic)' failure and during
poolcheck.

-Skip

[-- Attachment #2: roothints.sh --]
[-- Type: application/x-shar, Size: 614 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread
* Re: [9fans] a script to update DNS root hints
@ 2016-05-02 11:09 erik quanstrom
  0 siblings, 0 replies; 3+ messages in thread
From: erik quanstrom @ 2016-05-02 11:09 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 221 bytes --]

interesting!  i took a different approach to this issue quite a while
ago, using dns/debug.  this approach should work assuming that it is
run often enough to prevent dropping of old ip addresses between runs.

- erik

[-- Attachment #2: genrootservers --]
[-- Type: text/plain, Size: 802 bytes --]

#!/bin/rc
rfork en

aserver=a.root-servers.net
letters=(a b c d e f g h i j k l m)

fn fatal {
	echo $*>[1=2]
	exit fatal
}

fn get{
	ndb/dnsdebug @$aserver $* | awk '
		$1=="answer" && $(NF-2) == "negative" {next}
		$1=="answer" {printf "dom=%s	%s=%s\n", $2, $(NF-1), $NF}
		'
}

aserver = `{get a.root-servers.net|sed 's/.*=//g'}
if(~ $#aserver 0)
	fatal cant find a.root-servers.net
{
	echo '#'
	echo '#  entries defining the dns root.  these will be overridden by any'
	echo '#  authentic info obtained from the root.'
	echo '#'
	echo 'dom='
	for(letter in $letters)
		echo '	ns='^$letter^'.root-servers.net'
	for(letter in $letters)
		get $letter^.root-servers.net ip
	{
		for(letter in $letters){
			get $letter^.root-servers.net ipv6
		}
	} | sed 's/^/# /g'
}

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-05-02 11:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-01 22:48 [9fans] a script to update DNS root hints Skip Tavakkolian
2016-05-02  0:00 ` cinap_lenrek
2016-05-02 11:09 erik quanstrom

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).