Seit einer Woche vertiefe ich meine Routingkenntnisse im »DN42« …
Äh, was, DN42?
dn42 is a big dynamic VPN, which employs Internet technologies (BGP, whois database, DNS, etc). Participants connect to each other using network tunnels (GRE, OpenVPN, Tinc, IPsec) and exchange routes thanks to the Border Gateway Protocol. Network addresses are assigned in the
172.22.0.0/15and172.20.0.0/16range and private AS numbers are used (see registry).A number of services are provided on the network: see internal (only available from within dn42). Also, dn42 is interconnected with other networks, such as ChaosVPN or some Freifunk networks.
Still have questions? We have a FAQ.

Kurz: DN42 ist ein »Darknet«, ein »Internet neben dem Internet«, in dem man sich seine Meriten bzgl. Routing durch Try & Error verdienen kann, ohne gleich das Internet lahm zu legen.
Statt tatsächlichen Verbindungen, z. B. über Dark Fiber, nutzt man in DN42 Tunnel, beliebt sind OpenVPN und GRE-over-IPsec.
Ich habe zu dem Zweck meine beiden Raspberry Pis in Graz & Amsterdam aktiviert, sowie auf meinem VPN-Server in Gütersloh »bird« installiert. Um mehr »Spielmasse« zu haben, habe ich in den USA und Frankreich VMs/Server gebucht, sowie auf meinem Server in Nürnberg eine weitere VM hochgefahren.
Kurzum: im DN42 bin ich jetzt quasi ein multi-nationaler ISP mit Peerings in US (Atlanta), FR (Roubaix, Paris), DE (Gütersloh, Nürnberg), NL (Amsterdam), AT (Graz) ;)
wusel@ponder:~$ traceroute io.nixnodes.dn42 traceroute to io.nixnodes.dn42 (172.22.177.3), 30 hops max, 60 byte packets 1 gw-b.uu.dn42 (172.20.41.145) 0.848 ms 0.943 ms 1.354 ms 2 gw-alice-b.vpn.uu.org (192.251.226.173) 31.603 ms 33.436 ms 34.675 ms 3 hulk-routing.mhm.dn42 (172.23.67.43) 43.379 ms 43.770 ms 45.470 ms 4 gige-le0-edge1.core.nixnodes.dn42 (172.22.177.201) 65.760 ms 68.908 ms 69.478 ms 5 gige-le0-vce0.nixnodes.dn42 (172.22.177.202) 70.755 ms 72.509 ms 72.828 ms 6 nixnodes.dn42 (172.22.177.3) 75.733 ms 76.067 ms 81.382 ms
Simuliert man einen Linkausfall (und wartet einen Moment – ca. 240 Sekunden –, bis sich die fehlende Route im Netz verteilt hat), nehmen die Daten einen anderen Weg; da die Kenntnisse in DN42 variieren, nicht zwingend den besten (von Berlin über Gütersloh und Frankfurt nach San Franciso ist sicherlich eine schicke Strecke für die IP-Pakete, aber auch mit einer gewissen Latenz verbunden):
wusel@ponder:~$ traceroute io.nixnodes.dn42 traceroute to io.nixnodes.dn42 (172.22.177.3), 30 hops max, 60 byte packets 1 gw-b.uu.dn42 (172.20.41.145) 0.939 ms 1.626 ms 1.772 ms 2 gw-alice-b.vpn.uu.org (192.251.226.173) 38.734 ms 38.921 ms 39.421 ms 3 core1.fra.flo.dn42 (172.20.2.1) 45.250 ms 47.497 ms 48.838 ms 4 core.sf.flo.dn42 (172.20.2.49) 212.654 ms 216.073 ms 216.874 ms 5 gige-edge-us-1.core.nixnodes.dn42 (172.23.4.131) 294.366 ms 294.639 ms 296.092 ms 6 172.23.3.1 (172.23.3.1) 237.755 ms 239.757 ms 243.656 ms 7 gige-le0-vce0.nixnodes.dn42 (172.22.177.202) 247.146 ms 217.969 ms 226.232 ms 8 nixnodes.dn42 (172.22.177.3) 226.747 ms 226.337 ms 225.643 ms
Multinationales Routing »richtig« hinzubekommen, steht auch bei mir als nächstes auf dem »Lehrplan« … denn aus NL & AT ist der Weg über ein deutsches/europäisches Peering i. d. R. sinnvoller, das kann das Routingprotokoll aber leider schlecht riechen:
| Hop | NL | AT | Berlin |
|---|---|---|---|
| 1 | us1-nl1.dn42.uu.org 95.118 ms | us1-at1.dn42.uu.org 113.300 ms | gw-b.uu.dn42 0.992 ms |
| 2 | us-atl2.tombii.dn42 95.576 ms | us-atl2.tombii.dn42 113.790 ms | gw-alice-b.vpn.uu.org 35.237 ms |
| 3 | 172.22.102.35 116.528 ms | 172.22.102.35 134.133 ms | hulk-routing.mhm.dn42 45.462 ms |
| 4 | gige-edge-us-1.core.nixnodes.dn42 123.047 ms | gige-edge-us-1.core.nixnodes.dn42 141.178 ms | gige-le0-edge1.core.nixnodes.dn42 70.133 ms |
| 5 | gige-le0-edge1.core.nixnodes.dn42 135.716 ms | gige-le0-edge1.core.nixnodes.dn42 152.600 ms | gige-le0-vce0.nixnodes.dn42 74.627 ms |
| 6 | gige-le0-vce0.nixnodes.dn42 137.726 ms | gige-le0-vce0.nixnodes.dn42 152.392 ms | nixnodes.dn42 86.110 ms |
| 7 | nixnodes.dn42 138.392 ms | nixnodes.dn42 159.354 ms | — |
Ja, das ist offensichtlich tricky, den bevor ein neues Peering in Frankreich und den USA hinzu kam, sah der Weg aus Holland noch so aus:
root@rpi-nl:~# traceroute io.nixnodes.dn42 traceroute to io.nixnodes.dn42 (172.22.177.3), 30 hops max, 60 byte packets 1 de1-nl1.dn42.uu.org (193.26.120.212) 13.586 ms 13.426 ms 13.248 ms 2 hulk-routing.mhm.dn42 (172.23.67.43) 25.237 ms 24.793 ms 24.886 ms 3 gige-le0-edge1.core.nixnodes.dn42 (172.22.177.201) 44.792 ms 44.406 ms 44.773 ms 4 gige-le0-vce0.nixnodes.dn42 (172.22.177.202) 46.307 ms 45.853 ms 46.015 ms 5 nixnodes.dn42 (172.22.177.3) 45.055 ms 44.670 ms 46.314 ms

Nun ist das nur zum Teil Spiel & Spaß; für Freifunk Gütersloh haben wir uns vorgenommen, ein mehrstufiges Setup mit Routing-Knoten, die auch den IPv4- und IPv6-Übergang ins Internet regeln, aufzubauen, was nach außen BGP spricht, nach innen OSPF (denn bei BGP hat man durchaus mal 3-4 Minuten Wartezeit, bis sich Routen ändern; bei OSPF geht das binnen Sekunden).
Um also mit BGP (und ggf. OSPF) sinnvoll experimentieren zu können, brauche ich ein eigenes Netz von »Standorten« und Peers, damit ich überprüfen kann, ob der Link von A nach B über C auch nach den Änderungen noch funktioniert; da kommt dann DN42 ins Spiel.
Das Schöne ist, daß hier alle nur mit Wasser kochen, (fast) alle das auch wissen und DN42 als Spielwiese sehen, und so kommen dann auch mal solche Chats zustande ;)
<wusel> Hmm, do we have a routing issue? <xxxx> We might <wusel> traceroute to 172.23.xxx.5 (172.23.xxx.5), 30 hops max, 60 byte packets <wusel> 3 nl1-de1.dn42.uu.org (193.26.120.213) 59.577 ms 59.616 ms 60.484 ms <wusel> 4 172.23.215.226 (172.23.215.226) 64.937 ms 65.382 ms 67.090 ms <wusel> 5 * * * <wusel> And from US: <wusel> traceroute to 172.23.xxx.5 (172.23.xxx.5), 30 hops max, 60 byte packets <wusel> 1 172.23.215.224 (172.23.215.224) 22.037 ms 22.035 ms 22.040 ms <wusel> 2 * * * <xxxx> It must be my internal routing <xxxx> grah <wusel> Sorry ;) <xxxx> I'll live. ;) <wusel> I'm rather sure that I do announce my networks, I use a /28 per site, and announce the /25 per site as well. I think ... <xxxx> I will take a look at it tomorrow
