IPv6 Scamper
Introduction
We have written a tool, called scamper, to traceroute through a large
address list in an efficient manner by conducting traceroutes in
parallel - as the need dictates - to fill a packets-per-second rate.
Scamper is quite similar to skitter, except that scamper can
traceroute to IPv6 addresses as well as IPv4 addresses. The focus of
the current research is in providing insight into the behaviour and
growth patterns of the IPv6 Internet.
We have composed an address list, which has been scampered from six
locations at various times.
- sorcerer.cs.waikato.ac.nz, via freenet6, on 8th of June 2003
- nysernet.org (New York, US) on 9th of June 2003
- n6pc.otemachi.wide.ad.jp (Japan) on 18th of June 2003
- ryouko.imsb.nrc.ca (Canada) on the 24th of July 2003
- ipv6.surf.net (Amsterdam) on the 3rd of August 2003
- nlnet.net (Amsterdam) on the 5th of August 2003
The address list
The address list is composed of addresses from a number of sources:
- 6bone.db: addresses harvested from the application and tunnel
addresses in the 6bone.db file, from Feb 2003.
- DNS walk NS: addresses collected by resolving NS records returned
in a DNS walk of ip6.arpa for IPv6 addresses.
- DNS walk rev-fwd: addresses collected by taking the name supplied
in PTR records in a DNS walk of ipv6.arpa for IPv6 addresses.
- google IPv6: addresses collected by taking the first 1000 unique
sites returned in a google search for "IPv6" and resolving them for IPv6
addresses
- henk at ripe: RIPE TTM monitors that are part of RIPE's IPv6 test
traffic program
- mjl: addresses that I've collected from a variety of sources,
including preliminary scamper runs and AMP IPv6 monitors
- ::1: addresses that were manually created by taking prefixes not
represented in the address list but are seen by routeviews and adding
::1 to the prefix
The following table gives some idea as to how useful the address sources
have been so far.
| Address Source |
count |
sorcerer |
nysernet |
wide |
nrc |
surfnet |
nlnet |
| 6bone.db | 867 |
66.90% |
68.40% |
61.36% |
64.48% |
64.48% |
67.36% |
| DNS walk NS | 144 |
62.50% |
61.11% |
42.36% |
59.72% |
59.72% |
67.36% |
| DNS walk rev-fwd | 2445 |
73.82% |
72.35% |
67.93% |
69.37% |
70.96% |
74.40% |
| google IPv6 | 123 |
86.99% |
87.80% |
70.73% |
71.54% |
78.05% |
73.17% |
| henk at ripe | 11 |
90.91% |
90.91% |
72.73% |
90.91% |
90.91% |
90.91% |
| mjl | 486 |
93.75% |
93.54% |
80.42% |
87.50% |
89.17% |
90.21% |
| ::1 | 153 |
N/A |
N/A |
26.14% |
34.64% |
39.22% |
34.64% |
Basic Statistics
 |
| date: | 8th Jun 2003 |
| dead paths: | 511 |
| network loops: | 907 |
| network unreachable: | 1 |
| admin prohib: | 12 |
| address unreachable: | 108 |
| |
| loop length | frequency |
| 1 | 830 |
| 2 | 66 |
| 3 | 6 |
| 6 | 2 |
| 15 | 2 |
| 16 | 1 |
|
 |
| date: | 9th Jun 2003 |
| dead paths: | 522 |
| network loops: | 899 |
| network unreachable: | 53 |
| admin prohib: | 0 |
| address unreachable: | 89 |
| |
| loop length | frequency |
| 1 | 806 |
| 2 | 73 |
| 3 | 5 |
| 4 | 3 |
| 6 | 3 |
| 7 | 2 |
| 11 | 1 |
| 12 | 1 |
| 13 | 2 |
| 16 | 1 |
| 18 | 1 |
|
 |
| date: | 18th Jun 2003 |
| dead paths: | 503 |
| network loops: | 1297 |
| network unreachable: | 12 |
| admin prohib: | 0 |
| address unreachable: | 126 |
| |
| loop length | frequency |
| 1 | 1228 |
| 2 | 53 |
| 3 | 1 |
| 4 | 7 |
| 11 | 1 |
| 15 | 2 |
| 16 | 1 |
| 17 | 1 |
| 18 | 2 |
| 21 | 1 |
|
 |
| date: | 24th Jul 2003 |
| dead paths: | 628 |
| network loops: | 1029 |
| network unreachable: | 140 |
| admin prohib: | 0 |
| address unreachable: | 123 |
| |
| loop length | frequency |
| 1 | 959 |
| 2 | 62 |
| 3 | 1 |
| 4 | 2 |
| 15 | 2 |
| 16 | 2 |
| 17 | 1 |
|
 |
| date: | 3rd Aug 2003 |
| dead paths: | 673 |
| network loops: | 1033 |
| network unreachable: | 2 |
| admin prohib: | 0 |
| address unreachable: | 207 |
| |
| loop length | frequency |
| 1 | 875 |
| 2 | 149 |
| 3 | 3 |
| 9 | 2 |
| 15 | 2 |
| 16 | 1 |
| 17 | 1 |
|
 |
| date: | 5th Aug 2003 |
| dead paths: | 577 |
| network loops: | 920 |
| network unreachable: | 1 |
| admin prohib: | 0 |
| address unreachable: | 190 |
| |
| loop length | frequency |
| 1 | 846 |
| 2 | 68 |
| 3 | 1 |
| 4 | 1 |
| 6 | 1 |
| 15 | 2 |
| 16 | 1 |
|
The interesting things in these graphs are the horizontal bands that
are above the average delay seen for a hop. We presume these are tunnel
exit points, but further analysis is needed.
The figures presented in the tables beside each graph show that loops
are the primary reason a traceroute will fail in this address list.
Prevalence of /127 Routing Prefix Length Between Routers
draft-savola-ipv6-127-prefixlen-04.txt, which has been
submitted to the RFC editor as a non-working group informational
draft, suggests that the use of a /127 routing prefix should be
avoided. We have run scamper, our IPv6 topology mapping tool that
works similar to traceroute, across a target address list of
4241 IPv6 addresses, and found the following hops that might
indicate the use of a /127 routing prefix.
Questions:
- is this analysis completely broken? surely we would not see /127s
in a traceroute as it HLIM expires at the ingress interface, and a
/127 consists of one outgoing and one incoming interface.
To do this, I have filtered out all hops in the traceroutes where subsequent
hops have 127 bits of matching address; that is, the 128th bit is different
but the first 127 match, and the second hop is itself a router and not
an end host, and presented them in a table below
Id From -> To : Count # Guess who
------------------------------------------------------------------------------
0 3ffe:b00:c18::6e -> 3ffe:b00:c18::6f : 5 # VIAGENIE
1 3ffe:b00:c18::6f -> 3ffe:b00:c18::6e : 5 # VIAGENIE
2 3ffe:1800:ffff::b -> 3ffe:1800:ffff::a : 2 # NTT-ECL
3 3ffe:2d00:1::8 -> 3ffe:2d00:1::9 : 4 # GRNET
4 3ffe:3200::2 -> 3ffe:3200::3 : 1 # CERNET
5 3ffe:3600::4 -> 3ffe:3600::5 : 1 # CHTTL-TW
6 3ffe:3600::5 -> 3ffe:3600::4 : 12 # CHTTL-TW
7 3ffe:2e01:10:e::2 -> 3ffe:2e01:10:e::3 : 2 # DACOM-KR
8 3ffe:2e01:10:e::3 -> 3ffe:2e01:10:e::2 : 2 # DACOM-KR
9 3ffe:830f::3 -> 3ffe:830f::2 : 7 #
10 2001:610:1108:562a:: -> 2001:610:1108:562a::1 : 12 # luijten.org
11 2001:730::1:21 -> 2001:730::1:20 : 3 # ipv6.aorta.net
12 2001:730::1:39 -> 2001:730::1:38 : 79 # ipv6.aorta.net
13 2001:730::1:44 -> 2001:730::1:45 : 1 # ipv6.aorta.net
14 2001:730::1:60 -> 2001:730::1:61 : 115 # ipv6.aorta.net
15 2001:730::1:62 -> 2001:730::1:63 : 1 # ipv6.aorta.net
16 2001:450:1:2001::a4 -> 2001:450:1:2001::a5 : 55 # GBLX
17 2001:470:1f00:ffff::507 -> 2001:470:1f00:ffff::506 : 1 # tunnel.tserv1.fmt.ipv6.he.net
18 3ffe:8270:0:1::14 -> 3ffe:8270:0:1::15 : 1 #
19 2001:780::b -> 2001:780::a : 1 # ipv6.noris.de
20 2001:288:3b0::c -> 2001:288:3b0::d : 15 # ipv6.ascc.net
21 2001:288:3b0::d -> 2001:288:3b0::c : 19 # ipv6.ascc.net
22 2001:288:3b0::55 -> 2001:288:3b0::54 : 40 # ipv6.ascc.net
23 2001:8a0:10:101::1 -> 2001:8a0:10:101:: : 22 # ipv6.telepac.pt
24 2001:7a8:1:8::34 -> 2001:7a8:1:8::35 : 1 # ipv6.nerim.net
25 2001:7a8:1:8::35 -> 2001:7a8:1:8::34 : 4 # ipv6.nerim.net
26 2001:7a8:2d45:5555::4 -> 2001:7a8:2d45:5555::5 : 15 # tunnel*.u-picardie.fr
27 2001:7a8:2d45:5555::5 -> 2001:7a8:2d45:5555::4 : 15 # tunnel*.u-picardie.fr
28 2001:7b0:1ff::22 -> 2001:7b0:1ff::23 : 9 # muc.CompleTel.de
29 2001:7b0:1ff::23 -> 2001:7b0:1ff::22 : 9 # muc.CompleTel.de
30 2001:7f8:2:c01f::2 -> 2001:7f8:2:c01f::3 : 3 # v6-tunnel*.ipv6.btexact.com
31 2001:7f8:2:c01f::3 -> 2001:7f8:2:c01f::2 : 3 # v6-tunnel*.ipv6.btexact.com
Table 1: Hops that might indicate the use of a /127 routing prefix.
ipv6.aorta.net diagram