Subject: A6 TTL timeout

From: [email-masked]
Date: Wed, 23 May 2001 17:36:19 +0900

while I'm working on A6/AAAA thing, I found an interesting complication
	in A6 and timeout management.  I could not find any relevant notes in
	RFC2874.

	for example, I have the following zone definition.
	a.deadbeef.itojun.org. has 16 A6 fragments.  when I configure another
	recursive-lookup nameserver (BIND 9.2.0 beta, feb2001, marked as
	"resolver" in tcpdump output) for AAAA synthesis, I guess BIND
	9.2.0 violates TTL in cache management.  it consults already-expired
	A6 fragments for the lower bits.  by the time "resolver" machine
	gets the A6 fragments for the higher bits (like
	a0.deadbeef.itojun.org.), lower bits (like a120.deadbeef.itojun.org.)
	has already been expired (as TTL = 0 and nearly 1 second has passed).
	it will get serious if we have more delays between "resovler" machine
	and "nameserver" machine.

	if we implement cache management in "resolver" machine naively,
	AAAA synthesis can be used as DoS attack - native implementation
	may try to query A6 forever.  luckily BIND 9.2.0 was okay.

	also, I have no idea the following timeout parameter should interact.
	- the original querier, waiting for full 128bit IPv6 address
	- AAAA query from the original querier
	- each query for A6 fragment
	- TTL management for A6 fragments in the cache
	even without AAAA synthesis, timeout parameter management bothers
	me a lot.  i can say that AAAA synthesis is not that simple.

	after I get some clarification on this, I will submit my take on
	AAAA/A6 thing as the draft (before redmond ipngwg interim).

	btw: BIND9 resolver limits # of A6 fragments to 16 (NOTE: it is not
	the protocol parameter, but implementation choice), so it won't
	resolve d.deadbeef.itojun.org.  is it a reasonable limitation?

itojun
17:21:08.281899 resolver.53 > nameserver.53:  [udp sum ok] 28363 [1au] A6? a.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (50) (len 58, hlim 64)
17:21:08.353121 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 18724 [1au] A6? a120.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (53) (len 61, hlim 64)
17:21:13.583570 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:501:410:0:2ae:d0ff:fe00:3b.53:  [udp sum ok] 9362 [1au] ANY? a.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (50) (len 58, hlim 64)
17:21:13.630058 3ffe:501:410:0:2ae:d0ff:fe00:3b.53 > 3ffe:507:0:1:290:27ff:fe96:1ce1.53:  [udp sum ok] 9362* q: ANY? a.deadbeef.itojun.org. 1/1/3 a.deadbeef.itojun.org. CNAME a120.deadbeef.itojun.org. ns: deadbeef.itojun.org. NS localhost. ar: localhost. A 127.0.0.1, localhost. AAAA ::1, . OPT UDPsize=4096 (136) (len 144, hlim 61)
17:21:17.444923 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 37449 [1au] A6? a.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (50) (len 58, hlim 64)
17:21:17.507019 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:501:410:0:2ae:d0ff:fe00:3b.53:  [udp sum ok] 30375 [1au] A6? a120.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (53) (len 61, hlim 64)
17:21:17.554481 resolver.53 > nameserver.53:  [udp sum ok] 21729 [1au] A6? a112.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (53) (len 61, hlim 64)
17:21:17.601010 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:501:410:0:2ae:d0ff:fe00:3b.53:  [udp sum ok] 61936 [1au] A6? a104.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (53) (len 61, hlim 64)
17:21:17.646330 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 15449 [1au] A6? a96.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.689837 resolver.53 > nameserver.53:  [udp sum ok] 50135 [1au] A6? a88.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.737314 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:501:410:0:2ae:d0ff:fe00:3b.53:  [udp sum ok] 51117 [1au] A6? a80.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.779700 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 55354 [1au] A6? a72.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.823451 resolver.53 > nameserver.53:  [udp sum ok] 27677 [1au] A6? a64.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.862526 nameserver.53 > resolver.53:  [udp sum ok] 27677* q: A6? a64.deadbeef.itojun.org. 1/1/11 a64.deadbeef.itojun.org. A6 64 :: a56.deadbeef.itojun.org. ns: deadbeef.itojun.org. NS localhost. ar: a56.deadbeef.itojun.org. A6 56 :: a48.deadbeef.itojun.org., a48.deadbeef.itojun.org. A6 48 :: a40.deadbeef.itojun.org., a40.deadbeef.itojun.org. A6 40 :: a32.deadbeef.itojun.org., a32.deadbeef.itojun.org. A6 32 :: a24.deadbeef.itojun.org., a24.deadbeef.itojun.org. A6 24 :: a16.deadbeef.itojun.org., a16.deadbeef.itojun.org. A6 16 :: a8.deadbeef.itojun.org., a8.deadbeef.itojun.org. A6 8 :: a0.deadbeef.itojun.org., a0.deadbeef.itojun.org. A6 0 ::, localhost. A 127.0.0.1, localhost. AAAA ::1, . OPT UDPsize=4096 (542) (len 550, hlim 61)
17:21:17.864428 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:501:410:0:2ae:d0ff:fe00:3b.53:  [udp sum ok] 23606 [1au] A6? a56.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.905337 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 44571 [1au] A6? a48.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.946513 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:501:410:0:2ae:d0ff:fe00:3b.53:  [udp sum ok] 27260 [1au] A6? a40.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:17.986522 resolver.53 > nameserver.53:  [udp sum ok] 46398 [1au] A6? a32.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:18.024515 nameserver.53 > resolver.53:  [udp sum ok] 46398* q: A6? a32.deadbeef.itojun.org. 1/1/7 a32.deadbeef.itojun.org. A6 32 :: a24.deadbeef.itojun.org. ns: deadbeef.itojun.org. NS localhost. ar: a24.deadbeef.itojun.org. A6 24 :: a16.deadbeef.itojun.org., a16.deadbeef.itojun.org. A6 16 :: a8.deadbeef.itojun.org., a8.deadbeef.itojun.org. A6 8 :: a0.deadbeef.itojun.org., a0.deadbeef.itojun.org. A6 0 ::, localhost. A 127.0.0.1, localhost. AAAA ::1, . OPT UDPsize=4096 (352) (len 360, hlim 61)
17:21:18.026435 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 60737 [1au] A6? a24.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:18.062738 3ffe:507:1:1:2ae:d0ff:fe00:3b.53 > 3ffe:507:0:1:290:27ff:fe96:1ce1.53:  [udp sum ok] 60737* q: A6? a24.deadbeef.itojun.org. 1/1/6 a24.deadbeef.itojun.org. A6 24 :: a16.deadbeef.itojun.org. ns: deadbeef.itojun.org. NS localhost. ar: a16.deadbeef.itojun.org. A6 16 :: a8.deadbeef.itojun.org., a8.deadbeef.itojun.org. A6 8 :: a0.deadbeef.itojun.org., a0.deadbeef.itojun.org. A6 0 ::, localhost. A 127.0.0.1, localhost. AAAA ::1, . OPT UDPsize=4096 (302) (len 310, hlim 61)
17:21:18.065764 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 60180 [1au] A6? a16.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (52) (len 60, hlim 64)
17:21:18.100412 3ffe:507:1:1:2ae:d0ff:fe00:3b.53 > 3ffe:507:0:1:290:27ff:fe96:1ce1.53:  [udp sum ok] 60180* q: A6? a16.deadbeef.itojun.org. 1/1/5 a16.deadbeef.itojun.org. A6 16 :: a8.deadbeef.itojun.org. ns: deadbeef.itojun.org. NS localhost. ar: a8.deadbeef.itojun.org. A6 8 :: a0.deadbeef.itojun.org., a0.deadbeef.itojun.org. A6 0 ::, localhost. A 127.0.0.1, localhost. AAAA ::1, . OPT UDPsize=4096 (251) (len 259, hlim 61)
17:21:18.101777 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 30090 [1au] A6? a8.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (51) (len 59, hlim 64)
17:21:18.135728 3ffe:507:1:1:2ae:d0ff:fe00:3b.53 > 3ffe:507:0:1:290:27ff:fe96:1ce1.53:  [udp sum ok] 30090* q: A6? a8.deadbeef.itojun.org. 1/1/4 a8.deadbeef.itojun.org. A6 8 :: a0.deadbeef.itojun.org. ns: deadbeef.itojun.org. NS localhost. ar: a0.deadbeef.itojun.org. A6 0 ::, localhost. A 127.0.0.1, localhost. AAAA ::1, . OPT UDPsize=4096 (199) (len 207, hlim 61)
17:21:18.139242 3ffe:507:0:1:290:27ff:fe96:1ce1.53 > 3ffe:507:1:1:2ae:d0ff:fe00:3b.53:  [udp sum ok] 15045 [1au] A6? a0.deadbeef.itojun.org. ar: . OPT UDPsize=2048 (51) (len 59, hlim 64)
17:21:18.172713 3ffe:507:1:1:2ae:d0ff:fe00:3b.53 > 3ffe:507:0:1:290:27ff:fe96:1ce1.53:  [udp sum ok] 15045* q: A6? a0.deadbeef.itojun.org. 1/1/3 a0.deadbeef.itojun.org. A6 0 :: ns: deadbeef.itojun.org. NS localhost. ar: localhost. A 127.0.0.1, localhost. AAAA ::1, . OPT UDPsize=4096 (147) (len 155, hlim 61)
;	$NetBSD$

$TTL 0

@	IN	SOA	netbsd.org. hostmaster.netbsd.org.  (
				2001052300	; Serial
				3600		; Refresh
				300		; Retry
				3600000		; Expire
				3600 )		; Minimum
	IN	NS	localhost.

$ORIGIN deadbeef.itojun.org.
a		IN CNAME	a120.deadbeef.itojun.org.
a120		IN A6 120 ::1	a112.deadbeef.itojun.org.
a112		IN A6 112 ::	a104.deadbeef.itojun.org.
a104		IN A6 104 ::	a96.deadbeef.itojun.org.
a96		IN A6 96 ::	a88.deadbeef.itojun.org.
a88		IN A6 88 ::	a80.deadbeef.itojun.org.
a80		IN A6 80 ::	a72.deadbeef.itojun.org.
a72		IN A6 72 ::	a64.deadbeef.itojun.org.
a64		IN A6 64 ::	a56.deadbeef.itojun.org.
a56		IN A6 56 ::	a48.deadbeef.itojun.org.
a48		IN A6 48 ::	a40.deadbeef.itojun.org.
a40		IN A6 40 ::	a32.deadbeef.itojun.org.
a32		IN A6 32 ::	a24.deadbeef.itojun.org.
a24		IN A6 24 ::	a16.deadbeef.itojun.org.
a16		IN A6 16 ::	a8.deadbeef.itojun.org.
a8		IN A6 8 ::	a0.deadbeef.itojun.org.
a0		IN A6 0 ::
d		IN CNAME	d127.deadbeef.itojun.org.
d127		IN A6 127 ::1	d126.deadbeef.itojun.org.
d126		IN A6 126 ::	d125.deadbeef.itojun.org.
d125		IN A6 125 ::	d124.deadbeef.itojun.org.
d124		IN A6 124 ::	d123.deadbeef.itojun.org.
d123		IN A6 123 ::	d122.deadbeef.itojun.org.
d122		IN A6 122 ::	d121.deadbeef.itojun.org.
d121		IN A6 121 ::	d120.deadbeef.itojun.org.
d120		IN A6 120 ::	d119.deadbeef.itojun.org.
d119		IN A6 119 ::	d118.deadbeef.itojun.org.
d118		IN A6 118 ::	d117.deadbeef.itojun.org.
d117		IN A6 117 ::	d116.deadbeef.itojun.org.
d116		IN A6 116 ::	d115.deadbeef.itojun.org.
d115		IN A6 115 ::	d114.deadbeef.itojun.org.
d114		IN A6 114 ::	d113.deadbeef.itojun.org.
d113		IN A6 113 ::	d112.deadbeef.itojun.org.
d112		IN A6 112 ::	d111.deadbeef.itojun.org.
d111		IN A6 111 ::	d110.deadbeef.itojun.org.
d110		IN A6 110 ::	d109.deadbeef.itojun.org.
d109		IN A6 109 ::	d108.deadbeef.itojun.org.
d108		IN A6 108 ::	d107.deadbeef.itojun.org.
d107		IN A6 107 ::	d106.deadbeef.itojun.org.
d106		IN A6 106 ::	d105.deadbeef.itojun.org.
d105		IN A6 105 ::	d104.deadbeef.itojun.org.
d104		IN A6 104 ::	d103.deadbeef.itojun.org.
d103		IN A6 103 ::	d102.deadbeef.itojun.org.
d102		IN A6 102 ::	d101.deadbeef.itojun.org.
d101		IN A6 101 ::	d100.deadbeef.itojun.org.
d100		IN A6 100 ::	d99.deadbeef.itojun.org.
d99		IN A6 99 ::	d98.deadbeef.itojun.org.
d98		IN A6 98 ::	d97.deadbeef.itojun.org.
d97		IN A6 97 ::	d96.deadbeef.itojun.org.
d96		IN A6 96 ::	d95.deadbeef.itojun.org.
d95		IN A6 95 ::	d94.deadbeef.itojun.org.
d94		IN A6 94 ::	d93.deadbeef.itojun.org.
d93		IN A6 93 ::	d92.deadbeef.itojun.org.
d92		IN A6 92 ::	d91.deadbeef.itojun.org.
d91		IN A6 91 ::	d90.deadbeef.itojun.org.
d90		IN A6 90 ::	d89.deadbeef.itojun.org.
d89		IN A6 89 ::	d88.deadbeef.itojun.org.
d88		IN A6 88 ::	d87.deadbeef.itojun.org.
d87		IN A6 87 ::	d86.deadbeef.itojun.org.
d86		IN A6 86 ::	d85.deadbeef.itojun.org.
d85		IN A6 85 ::	d84.deadbeef.itojun.org.
d84		IN A6 84 ::	d83.deadbeef.itojun.org.
d83		IN A6 83 ::	d82.deadbeef.itojun.org.
d82		IN A6 82 ::	d81.deadbeef.itojun.org.
d81		IN A6 81 ::	d80.deadbeef.itojun.org.
d80		IN A6 80 ::	d79.deadbeef.itojun.org.
d79		IN A6 79 ::	d78.deadbeef.itojun.org.
d78		IN A6 78 ::	d77.deadbeef.itojun.org.
d77		IN A6 77 ::	d76.deadbeef.itojun.org.
d76		IN A6 76 ::	d75.deadbeef.itojun.org.
d75		IN A6 75 ::	d74.deadbeef.itojun.org.
d74		IN A6 74 ::	d73.deadbeef.itojun.org.
d73		IN A6 73 ::	d72.deadbeef.itojun.org.
d72		IN A6 72 ::	d71.deadbeef.itojun.org.
d71		IN A6 71 ::	d70.deadbeef.itojun.org.
d70		IN A6 70 ::	d69.deadbeef.itojun.org.
d69		IN A6 69 ::	d68.deadbeef.itojun.org.
d68		IN A6 68 ::	d67.deadbeef.itojun.org.
d67		IN A6 67 ::	d66.deadbeef.itojun.org.
d66		IN A6 66 ::	d65.deadbeef.itojun.org.
d65		IN A6 65 ::	d64.deadbeef.itojun.org.
d64		IN A6 64 ::	d63.deadbeef.itojun.org.
d63		IN A6 63 ::	d62.deadbeef.itojun.org.
d62		IN A6 62 ::	d61.deadbeef.itojun.org.
d61		IN A6 61 ::	d60.deadbeef.itojun.org.
d60		IN A6 60 ::	d59.deadbeef.itojun.org.
d59		IN A6 59 ::	d58.deadbeef.itojun.org.
d58		IN A6 58 ::	d57.deadbeef.itojun.org.
d57		IN A6 57 ::	d56.deadbeef.itojun.org.
d56		IN A6 56 ::	d55.deadbeef.itojun.org.
d55		IN A6 55 ::	d54.deadbeef.itojun.org.
d54		IN A6 54 ::	d53.deadbeef.itojun.org.
d53		IN A6 53 ::	d52.deadbeef.itojun.org.
d52		IN A6 52 ::	d51.deadbeef.itojun.org.
d51		IN A6 51 ::	d50.deadbeef.itojun.org.
d50		IN A6 50 ::	d49.deadbeef.itojun.org.
d49		IN A6 49 ::	d48.deadbeef.itojun.org.
d48		IN A6 48 ::	d47.deadbeef.itojun.org.
d47		IN A6 47 ::	d46.deadbeef.itojun.org.
d46		IN A6 46 ::	d45.deadbeef.itojun.org.
d45		IN A6 45 ::	d44.deadbeef.itojun.org.
d44		IN A6 44 ::	d43.deadbeef.itojun.org.
d43		IN A6 43 ::	d42.deadbeef.itojun.org.
d42		IN A6 42 ::	d41.deadbeef.itojun.org.
d41		IN A6 41 ::	d40.deadbeef.itojun.org.
d40		IN A6 40 ::	d39.deadbeef.itojun.org.
d39		IN A6 39 ::	d38.deadbeef.itojun.org.
d38		IN A6 38 ::	d37.deadbeef.itojun.org.
d37		IN A6 37 ::	d36.deadbeef.itojun.org.
d36		IN A6 36 ::	d35.deadbeef.itojun.org.
d35		IN A6 35 ::	d34.deadbeef.itojun.org.
d34		IN A6 34 ::	d33.deadbeef.itojun.org.
d33		IN A6 33 ::	d32.deadbeef.itojun.org.
d32		IN A6 32 ::	d31.deadbeef.itojun.org.
d31		IN A6 31 ::	d30.deadbeef.itojun.org.
d30		IN A6 30 ::	d29.deadbeef.itojun.org.
d29		IN A6 29 ::	d28.deadbeef.itojun.org.
d28		IN A6 28 ::	d27.deadbeef.itojun.org.
d27		IN A6 27 ::	d26.deadbeef.itojun.org.
d26		IN A6 26 ::	d25.deadbeef.itojun.org.
d25		IN A6 25 ::	d24.deadbeef.itojun.org.
d24		IN A6 24 ::	d23.deadbeef.itojun.org.
d23		IN A6 23 ::	d22.deadbeef.itojun.org.
d22		IN A6 22 ::	d21.deadbeef.itojun.org.
d21		IN A6 21 ::	d20.deadbeef.itojun.org.
d20		IN A6 20 ::	d19.deadbeef.itojun.org.
d19		IN A6 19 ::	d18.deadbeef.itojun.org.
d18		IN A6 18 ::	d17.deadbeef.itojun.org.
d17		IN A6 17 ::	d16.deadbeef.itojun.org.
d16		IN A6 16 ::	d15.deadbeef.itojun.org.
d15		IN A6 15 ::	d14.deadbeef.itojun.org.
d14		IN A6 14 ::	d13.deadbeef.itojun.org.
d13		IN A6 13 ::	d12.deadbeef.itojun.org.
d12		IN A6 12 ::	d11.deadbeef.itojun.org.
d11		IN A6 11 ::	d10.deadbeef.itojun.org.
d10		IN A6 10 ::	d9.deadbeef.itojun.org.
d9		IN A6 9 ::	d8.deadbeef.itojun.org.
d8		IN A6 8 ::	d7.deadbeef.itojun.org.
d7		IN A6 7 ::	d6.deadbeef.itojun.org.
d6		IN A6 6 ::	d5.deadbeef.itojun.org.
d5		IN A6 5 ::	d4.deadbeef.itojun.org.
d4		IN A6 4 ::	d3.deadbeef.itojun.org.
d3		IN A6 3 ::	d2.deadbeef.itojun.org.
d2		IN A6 2 ::	d1.deadbeef.itojun.org.
d1		IN A6 1 ::	d0.deadbeef.itojun.org.
d0		IN A6 0 ::

---

From: Rob Austein <[email-masked]>
Date: Sun, 27 May 2001 16:15:45 -0400

Itojun,

Yeah, TTL processing is almost certainly underspecified for all of DNS
let alone for AAAA -> A6 synthesis, unless some recent clarification
document has changed the landscape from what I think I remember.

Background: we've known for a long time (since the late '80s, at
least) that TTL handling by a full-service (iterative) resolver during
query processing isn't as simple as just comparing

  RR.time_received + RR.TTL > current_time

at least not for any "complex" query that can generate other queries
as side effects (eg, for additional section processing).  As you
stated, the basic problem is that the clock keeps running while the
resolver is performing the second (third, ...) query, which can cause
nonsensical results with very short TTLs.

The implementation technique that seems to work (JEEVES, CHIVES, and
at least some versions of BIND, dunno about other implementations) is
to do per-query TTL calculations based on the starting time of the
original query.  That is, one keeps track of the time at which the
original query started, and the RR expiration check for RRs retrieved
as part of processing that query becomes 

  RR.time_received + RR.TTL > query.start_time

One still has to use the current wall time when calculating the TTLs
that one hands back to the client that invoked the resolver, to avoid
inflating TTLs beyond what was specified in the original zone.  The
net effect of all of the above is that the client may well get an
answer with a zero TTL, but at least the client does get back an
answer.

This certainly is not the only possible interpretation or
implementation choice, it's just the one that (IMHO) comes closest to
filling in the blank parts of the spec without making total nonsense
of other parts of the spec or violating the robustness principle.  I
have a strong memory of receiving verbal confirmation from Paul
Mockapetris back in the late '80s that the above algorithm is
consistant with what he'd intended, but that's just folklore.

For AAAA -> A6 synthesis there's the additional issue of which of the
A6 TTLs you should use in the synthesized AAAA.  If one believes the
above handwaving (YMMV), I think there's a straightforward solution:
you figure out what the TTLs of all the A6 RRs involved would be if
you were going to insert them all into the response, then you take the
minimum TTL of that set and use it as the TTL of the synthesized AAAA.

--Rob

to unsubscribe send a message to [email-masked] with
the word 'unsubscribe' in a single line as the message text body.

---

From: Paul A Vixie <[email-masked]>
Date: Mon, 28 May 2001 11:59:46 -0700

> consistant with what he'd intended, but that's just folklore.

rob's got me humming along with this.

> minimum TTL of that set and use it as the TTL of the synthesized AAAA.

and with this.