Traffic engineering

Ich habe angefangen, meine PI-Netze in Betrieb zu nehmen …

Zwischen meiner »Heimatbasis« und den Hosts bei Hetzner liegt das peering-feindliche DTAG-Netz.

Hetzner KMS-Hosting
 1  static.217.167.9.5.clients.your-server.de (5.9.167.217) [AS24940]  0.273 ms  0.279 ms  0.275 ms
 2  static.97.67.9.5.clients.your-server.de (5.9.67.97) [AS24940]  0.380 ms  0.378 ms  0.375 ms
 3  core23.hetzner.de (213.239.245.109) [AS24940]  0.396 ms  0.393 ms  0.408 ms
 4  core4.hetzner.de (213.239.203.149) [AS24940]  5.132 ms  5.135 ms  5.131 ms
 5  ix-et-3-1-0-0.tcore1.FR0-Frankfurt.as6453.net (195.219.219.9) [AS6453]  5.125 ms  5.120 ms  5.113 ms
 6  if-ae-4-2.tcore2.FNM-Frankfurt.as6453.net (195.219.87.17) [AS6453]  15.119 ms  14.672 ms  14.589 ms
 7  if-ae-9-3.tcore1.PVU-Paris.as6453.net (195.219.87.14) [AS6453]  14.512 ms if-ae-9-2.tcore1.PVU-Paris.as6453.net (195.219.87.10) [AS6453]  14.381 ms  14.329 ms
 8  80.150.171.221 (80.150.171.221) [AS3320]  32.086 ms  14.366 ms  14.226 ms
 9  91.23.216.217 (91.23.216.217) [AS3320]  21.976 ms  22.081 ms  22.004 ms
10  p5B21F359.dip0.t-ipconnect.de (91.33.243.89) [AS3320]  29.278 ms  29.133 ms  29.560 ms
11  p5B21F359.dip0.t-ipconnect.de (91.33.243.89) [AS3320]  29.690 ms  29.445 ms  29.856 ms

11 Hops, ~29,5 ms

 1  89.33.16.129 (89.33.16.129) [AS30823]  3.022 ms  3.035 ms  3.032 ms
 2  po2-core1-ffm2.edge1.ffm2.combahton.net (89.33.16.85) [AS30823]  0.551 ms  0.502 ms  0.539 ms
 3  ae0-431.fra20.core-backbone.com (81.95.2.85) [AS33891]  0.626 ms  0.500 ms  0.483 ms
 4  f-ed3-i.F.DE.NET.DTAG.DE (62.157.251.157) [AS3320]  0.451 ms  0.443 ms  0.439 ms
 5  91.23.216.217 (91.23.216.217) [AS3320]  6.434 ms  6.413 ms  6.414 ms
 6  p5B21F359.dip0.t-ipconnect.de (91.33.243.89) [AS3320]  13.386 ms  13.887 ms  14.116 ms
 7  p5B21F359.dip0.t-ipconnect.de (91.33.243.89) [AS3320]  14.622 ms  15.131 ms  15.305 ms

7 Hops, ~15 ms

Hmm, wenn meine Daten eh’ einen Umweg nehmen müssen, kann ich den Weg ja abkürzen, indem ich statt über Hetzners Frankreich-Routing in meinem Overlay-Netz einen eigenen Zwischenstopp in Frankfurt einschiebe, der von Hetzner aus in 6 ms erreichbar ist, und nur ca. 15 ms von meinem Telekom-Anschluß entfernt. Dazu muß ich optimalerweise dafür sorgen, daß die Daten nicht mehr über den Link zu Hurricane Electric auf dem Host bei Hetzner ankommen, wie es normalerweise der Fall wäre:

2001:678:2c0::/48  via 2a07:a907:50c:ff04::1 on uu-de5 [i_uu_de5 10:40:24] * (100/0) [AS206740i]
    Type: BGP unicast univ
    BGP.origin: IGP
    BGP.as_path: 206946 206740
    BGP.next_hop: 2001:470:12:f1::2
    BGP.local_pref: 100
root@victor:~# traceroute -A -6 mail.uu.org
traceroute to mail.uu.org (2001:678:2c0:1::42), 30 hops max, 80 byte packets
 1  * * *
 2  po101.gra-g1-a75.fr.eu (2001:41d0::1eb) [AS16276]  0.402 ms  0.562 ms  0.511 ms
 3  be10-20.gra-g1-a9.fr.eu (2001:41d0::232) [AS16276]  2.581 ms  2.749 ms  2.920 ms
 4  be100-1196.ams-1-a9.nl.eu (2001:41d0::295) [AS16276]  6.733 ms  6.903 ms  6.841 ms
 5  30gigabitethernet1-3.core1.ams1.he.net (2001:7f8:1::a500:6939:1) [AS1200]  25.186 ms  25.133 ms  25.073 ms
 6  100ge5-1.core1.fra1.he.net (2001:470:0:2d4::2) [AS6939]  10.524 ms  10.553 ms  10.490 ms
 7  tserv2.fra1.he.net (2001:470:0:3b2::2) [AS6939]  10.651 ms  10.576 ms  10.606 ms
 8  uusix-4-pt.tunnel.tserv18.fra1.ipv6.he.net (2001:470:12:f1::2) [AS6939]  15.783 ms  15.842 ms  15.619 ms
 9  de5-de3.as206946.net (2a07:a907:50c:ff04::1) [AS206946]  21.727 ms  22.309 ms  22.123 ms
10  gut1-de3.as206946.net (2a07:a907:50c:f700::2) [AS206946]  35.641 ms  35.488 ms  35.310 ms
11  mail.uu.org (2001:678:2c0:1::42) [AS206740/AS206946]  35.860 ms  35.832 ms  35.716 ms

Ich habe zwar intern schon dafür gesorgt, daß der Verkehr von und nach Zuhause bevorzugt via KMS-Hosting-VM (de5) statt direkt zu Hetzner (de3) läuft, aber da ich den Außentraffic zu mir auch steuern kann und der Weg via KMS nicht langsamer ist als HE-Hetzner-KMS, machte das Sinn, es so zu tun.

Um den Pfad über Hurricane Electric für alle Netze da draußen schlechter zu machen (Hurricane Electric peert mit Gott und der Welt, hat einfach in der Regel sehr kurze Pfade), schiebe ich einfach mein AS ein zweites Mal in den exportierten Pfad für die Route, die HE von mir bekommt:

2001:678:2c0::/48  via 2a07:a907:50c:ff04::1 on uu-de5 [i_uu_de5 10:40:24] * (100/0) [AS206740i]
    Type: BGP unicast univ
    BGP.origin: IGP
    BGP.as_path: 206946 206946 206740
    BGP.next_hop: 2001:470:12:f1::2
    BGP.local_pref: 100

Direkt nach der Änderung gehen die Pakete auf eine größere Reise, während die Routen sich weltweit anpassen — sieht so aus, als wäre die Route für OVH gerade nur noch über ein Peering in Kanada verfügbar gewesen, dort werden die Pakete dann an HE übergeben, die das wieder nach Frankfurt schicken, zum neuen besten Pfad:

root@victor:~# traceroute -A -6 mail.uu.org
traceroute to mail.uu.org (2001:678:2c0:1::42), 30 hops max, 80 byte packets
 1  * * *
 2  po101.gra-g1-a75.fr.eu (2001:41d0::1eb) [AS16276]  0.393 ms  0.555 ms  0.488 ms
 3  be10-20.gra-g1-a9.fr.eu (2001:41d0::232) [AS16276]  0.929 ms  2.455 ms  1.202 ms
 4  be100-1193.ldn-1-a9.uk.eu (2001:41d0::291) [AS16276]  3.330 ms  3.503 ms  3.673 ms
 5  be100-1295.nwk-1-a9.nj.us (2607:5300::18b) [AS16276]  71.342 ms  71.512 ms  71.678 ms
 6  * be10-1037.bhs-g1-a9.qc.ca (2607:5300::106) [AS16276]  92.411 ms  92.586 ms
 7  be100-1214.tor-1-a9.on.ca (2607:5300::165) [AS16276]  87.122 ms  87.231 ms  86.955 ms
 8  he.ip6.torontointernetxchange.net (2001:504:1a::34:112) [AS11670]  89.794 ms  88.813 ms  88.794 ms
 9  100ge10-2.core1.nyc4.he.net (2001:470:0:2dc::1) [AS6939]  90.529 ms  83.725 ms  83.774 ms
10  100ge7-2.core1.lon2.he.net (2001:470:0:2cf::1) [AS6939]  85.468 ms  125.126 ms  125.192 ms
11  100ge7-1.core1.fra1.he.net (2001:470:0:37::2) [AS6939]  92.650 ms  100.894 ms  101.080 ms
12  2001:7f8:33::a103:823:1 (2001:7f8:33::a103:823:1) [*]  92.444 ms  90.817 ms  92.373 ms
13  * * *
14  2a01:367:cccc:c1f2::1 (2a01:367:cccc:c1f2::1) [AS30823]  91.086 ms  100.309 ms  97.634 ms
15  de5-de3.as206946.net (2a07:a907:50c:ff04::1) [AS206946]  96.643 ms  98.358 ms  96.696 ms
16  gut1-de3.as206946.net (2a07:a907:50c:f700::2) [AS206946]  111.891 ms  111.569 ms  110.408 ms
17  mail.uu.org (2001:678:2c0:1::42) [AS206740/AS206946]  112.330 ms  110.358 ms  112.100 ms

Aber ein paar Sekunden später läuft der Verkehr, wie gewünscht nicht mehr direkt von HE zu mir:

root@victor:~# traceroute -A -6 mail.uu.org
traceroute to mail.uu.org (2001:678:2c0:1::42), 30 hops max, 80 byte packets
 1  * * *
 2  po101.gra-g1-a75.fr.eu (2001:41d0::1eb) [AS16276]  0.349 ms  0.333 ms  0.283 ms
 3  be10-20.gra-g1-a9.fr.eu (2001:41d0::232) [AS16276]  1.888 ms  4.059 ms  2.002 ms
 4  be100-1196.ams-1-a9.nl.eu (2001:41d0::295) [AS16276]  6.722 ms  6.961 ms  6.941 ms
 5  30gigabitethernet1-3.core1.ams1.he.net (2001:7f8:1::a500:6939:1) [AS1200]  11.843 ms  11.818 ms  11.770 ms
 6  100ge5-1.core1.fra1.he.net (2001:470:0:2d4::2) [AS6939]  10.576 ms  10.562 ms  10.523 ms
 7  2001:7f8:33::a103:823:1 (2001:7f8:33::a103:823:1) [*]  10.659 ms  10.703 ms  10.892 ms
 8  * * *
 9  2a01:367:cccc:c1f2::1 (2a01:367:cccc:c1f2::1) [AS30823]  12.094 ms  10.790 ms  10.897 ms
10  de5-de3.as206946.net (2a07:a907:50c:ff04::1) [AS206946]  16.929 ms  16.842 ms  16.343 ms
11  gut1-de3.as206946.net (2a07:a907:50c:f700::2) [AS206946]  30.343 ms  30.326 ms  30.670 ms
12  mail.uu.org (2001:678:2c0:1::42) [AS206740/AS206946]  30.325 ms  30.445 ms  30.549 ms

5 Millisekunden eingespart, das ist jetzt nicht die Welt, klar; aber es ist ganz klar auch besser als nichts ;)

Und, nur für die Akten: der direkte Weg über das IPv4-Internet von Hetzner zum DTAG-VDSL-Anschluß in Gütersloh ist über 10 ms langsamer als der Umweg über den anderen Host in Frankfurt:

root@de3:~# traceroute -6 gut1-de5.as206946.net
traceroute to gut1-de5.as206946.net (2a07:a907:50c:f704::2), 30 hops max, 80 byte packets
 1  de5-de3.as206946.net (2a07:a907:50c:ff04::1)  6.966 ms  6.912 ms  6.881 ms
 2  gut1-de5.as206946.net (2a07:a907:50c:f704::2)  20.998 ms  20.982 ms  20.965 ms
root@de3:~# traceroute -6 gut1-de3.as206946.net
traceroute to gut1-de3.as206946.net (2a07:a907:50c:f700::2), 30 hops max, 80 byte packets
 1  gut1-de3.as206946.net (2a07:a907:50c:f700::2)  31.224 ms  31.192 ms  31.173 ms

Und einen Durchsatznachteil gibt es auch nicht (zumindest nicht bis zum Upstream-Limit von 40 MBit/sec; mehr bietet VDSL trotz Vectoring ja leider nicht):

Connecting to gut1-de3.as206946.net (gut1-de3.as206946.net)|2a07:a907:50c:f700::2|:80... connected.

2016-12-17 00:57:12 (4.46 MB/s) - ‘/dev/null’ saved [104857600/104857600]
[…]
Connecting to gut1-de5.as206946.net (gut1-de5.as206946.net)|2a07:a907:50c:f704::2|:80... connected.

2016-12-17 00:57:41 (4.46 MB/s) - ‘/dev/null’ saved [104857600/104857600]

Da diese Einstellungen pro Route sind, ist das Routing unserer Freifunk-IPv6-Adressen von obigen Änderungen nicht betroffen:

root@victor:~# traceroute -6 -A stats.4830.org
traceroute to stats.4830.org (2001:bf7:1310::5747), 30 hops max, 80 byte packets
 1  * * *
 2  po101.gra-g1-a75.fr.eu (2001:41d0::1eb) [AS16276]  0.336 ms  0.511 ms  0.466 ms
 3  be10-20.gra-g1-a9.fr.eu (2001:41d0::232) [AS16276]  1.465 ms  1.706 ms  1.886 ms
 4  be100-1196.ams-1-a9.nl.eu (2001:41d0::295) [AS16276]  6.883 ms  6.853 ms  6.802 ms
 5  30gigabitethernet1-3.core1.ams1.he.net (2001:7f8:1::a500:6939:1) [AS1200]  15.703 ms  15.670 ms  15.623 ms
 6  100ge5-1.core1.fra1.he.net (2001:470:0:2d4::2) [AS6939]  10.542 ms  10.604 ms  10.777 ms
 7  tserv2.fra1.he.net (2001:470:0:3b2::2) [AS6939]  10.745 ms  10.541 ms  10.508 ms
 8  uusix-4-pt.tunnel.tserv18.fra1.ipv6.he.net (2001:470:12:f1::2) [AS6939]  15.832 ms  15.878 ms  15.838 ms
 9  bgp2-de3.as206946.net (2a07:a907:50c:f320::2) [AS206946]  47.415 ms  44.816 ms  44.691 ms
10  2001:bf7:1310:31d::2 (2001:bf7:1310:31d::2) [AS206813]  66.319 ms  66.441 ms  68.981 ms
11  stats.guetersloh.freifunk.net (2001:bf7:1310::5747) [AS206813]  56.775 ms  53.036 ms  52.975 ms

Allerdings steht das als eines der nächsten Themen auf der Agenda. Denn wie man am Beispiel des Müritz-Gateways gw05 sehen kann, ist der Umweg über die Berliner Freifunker und das ICVPN zurück zu Hetzner zeitfressend, verglichen mit dem direkten Weg (2001:678:2b9:1::5 ist die IP der VM bei Hetzner in meinem Netz):

root@victor:~# traceroute -6 -A 2001:bf7:170::5
traceroute to 2001:bf7:170::5 (2001:bf7:170::5), 30 hops max, 80 byte packets
 1  * * *
 2  po101.gra-g1-a75.fr.eu (2001:41d0::1eb) [AS16276]  0.418 ms  0.575 ms  0.521 ms
 3  be10-20.gra-g1-a9.fr.eu (2001:41d0::232) [AS16276]  6.871 ms  7.040 ms  1.685 ms
 4  be100-1199.fra-1-a9.de.eu (2001:41d0::299) [AS16276]  8.974 ms  9.145 ms  9.101 ms
 5  atuin.rzone.de (2001:7f8::1a44:0:1) [AS51531/AS6695]  20.917 ms  20.872 ms  20.809 ms
 6  xe-10-3-0.morla.as6724.net (2a01:238:0:a3ad::2) [AS6724]  9.038 ms  9.050 ms  8.996 ms
 7  xe-0-0-1.core-b30.as6724.net (2a01:238:0:30ad::1) [AS6724]  23.723 ms  23.266 ms  23.239 ms
 8  freifunk-berlin.ak.community-ix.de (2001:7f8:a5::4:4194:1) [*]  21.122 ms  21.196 ms  21.176 ms
 9  voyager-ak.ber.ecix.net (2001:7f8:8:5:0:31bc:0:2) [*]  22.930 ms  23.015 ms  23.028 ms
10  octalus.in-berlin.ak.community-ix.de (2001:7f8:a5::2:9670:1) [*]  23.536 ms  23.414 ms  23.374 ms
11  lo.sepia.in-berlin.de (2001:67c:1401::9) [AS29670]  23.750 ms  23.495 ms  23.502 ms
12  freifunk-bgp.in-berlin.de (2001:bf0:c003:40::139) [AS29670]  23.814 ms  23.632 ms  23.779 ms
13  2001:bf7:b101:1::3 (2001:bf7:b101:1::3) [AS44194]  23.830 ms  23.661 ms  23.666 ms
14  mueritz-bgp1.mueritz.freifunk.net (2001:bf7:170::5) [AS44194]  45.009 ms  44.857 ms  45.171 ms
root@victor:~# traceroute -6 -A 2001:678:2b9:1::5
traceroute to 2001:678:2b9:1::5 (2001:678:2b9:1::5), 30 hops max, 80 byte packets
 1  * * *
 2  po101.gra-g1-a75.fr.eu (2001:41d0::1eb) [AS16276]  0.380 ms  0.538 ms  0.480 ms
 3  be10-20.gra-g1-a9.fr.eu (2001:41d0::232) [AS16276]  3.183 ms  1.453 ms  1.404 ms
 4  be100-1196.ams-1-a9.nl.eu (2001:41d0::295) [AS16276]  6.470 ms  6.645 ms  6.814 ms
 5  30gigabitethernet1-3.core1.ams1.he.net (2001:7f8:1::a500:6939:1) [AS1200]  11.612 ms  11.509 ms  11.473 ms
 6  100ge5-1.core1.fra1.he.net (2001:470:0:2d4::2) [AS6939]  18.096 ms  18.118 ms  18.064 ms
 7  tserv2.fra1.he.net (2001:470:0:3b2::2) [AS6939]  10.587 ms  10.554 ms  10.720 ms
 8  uusix-4-pt.tunnel.tserv18.fra1.ipv6.he.net (2001:470:12:f1::2) [AS6939]  16.000 ms  15.782 ms  15.789 ms
 9  2001:678:2b9:1::5 (2001:678:2b9:1::5) [AS206740]  20.487 ms  17.852 ms  17.508 ms

Aber ein Schritt nach dem anderen ;)