// Fuck You 1&1 - ich hab 'n Proxy

Am Dienstag Abend lief auf arte die Doku Terrorgefahr! Überwachung total? und wer das verpasst hat denkt sich „hey … gibt doch Arte+7, das zieh ich mir über die Mediathek rein, schließlich hab ich Zwangsgebühren bezahlt“. So wollte ich das auch machen, aber es stellt sich raus, die Mediathek von arte performed nicht. Das Video ruckelt und hört nicht auf zu buffern. „Warum ist das so? Alle anderne Verbindungen ins Web laufen flüssig.“

Zunächst muss mal der Deep Link der 720p-Version des Videos her:

bash$ ARTE_URL='http://www.arte.tv/guide/de/049883-000/terrorgefahr-ueberwachung-total'
bash$ ARTE_URL=$(wget -qO- $ARTE_URL | grep PLUS7.*json | uniq | grep -o http.*json)
bash$ ARTE_URL=$(wget -qO- $ARTE_URL | grep -o '720p[^{]*Dt. Version' | grep -o http.*mp4)
bash$ echo $ARTE_URL
http://artestras.vo.llnwd.net/v2/am/HBBTV/049883-000-A_SQ_1_VA-STA_01736529_MP4-2200_AMM-HBBTV.mp4

Der Download sieht dann so aus (wobei der nach 1 min. Laufzeit manuell abgebrochen wurde):

bash$ time wget -q $ARTE_URL
^C
real	1m1.280s
user	0m0.038s
sys	0m0.119s

bash$ du -k 0*
1532	049883-000-A_SQ_1_VA-STA_01736529_MP4-2200_AMM-HBBTV.mp4

bash$ bc <<< "1532 / 60"
25

WTF? Wir sprechen hier von verdammten 25 KB/s bei 16er DSL von 1&1.
Wer oder was ist überhaupt llnwd.net?

bash$ dig artestras.vo.llnwd.net +short
87.248.217.253
87.248.217.254

bash$ whois llnwd.net | grep Reg.*Orga
Registrant Organization: Limelight Networks

Sieh an: Limelight Networks ist ein amerikanisches CDN mit Sitz in Arizona und zu dessen Kundenkreis zählt neben der ARD u.a. Facebook, Netflix, PornHub… Alles was gewaltig Traffic erzeugt scheint gern in dem Laden einzukaufen. Und jetzt wirds interessant, denn beim umgehenden Download auf den gleichen Deep Link von meinem vServer (in einem RZ irgendwo in Deutschland, außerhalb des Telefonica-Imperiums) gehen die 1,7 GB in unter 45 Sekunden durch die Leitung (round about 37 MB/s!):

bash$ time wget -q $ARTE_URL

real	0m44.486s
user	0m1.170s
sys	0m12.210s

bash$ du -h 0*
1,7G	049883-000-A_SQ_1_VA-STA_01736529_MP4-2200_AMM-HBBTV.mp4

Und die Kopie vom vServer auf meinen Client läuft FullSpeed, was wiederum bedeutet, dass das Problem zwischen Telefonica und Limelight zu suchen ist, worauf auch der massive Paket Loss hindeutet:

bash$ scp vserver:~/049883-000-A_SQ_1_VA-STA_01736529_MP4-2200_AMM-HBBTV.mp4 .
049883-000-A_SQ_1_VA-STA_01736529_MP4-2200_AMM-HBBTV.mp4     100% 1666MB   1.6MB/s   17:43

bash$ mtr -c10 -r -w 87.248.217.253 | tail -4
  3.|-- po20.01.xmwc.99.erf.de.net.telefonica.de  0.0%    10   26.7  28.3  26.5  33.8   2.3
  4.|-- ???                                      100.0    10    0.0   0.0   0.0   0.0   0.0
  5.|-- ve5.fr3.frf.llnw.net                      0.0%    10   41.3  44.2  41.3  53.7   3.5
  6.|-- cdn-87-248-217-253.frf.llnw.net          20.0%    10   57.5  56.2  42.1  76.3  13.0

Das würde bedeuten, wenn ich den Traffic von meinem Client über den vServer umleite müsste es erheblich schneller gehen, richtig? Nun, ich hab einen TinyProxy auf meinem vServer laufen, also nutzen wir den doch mal:

bash$ http_proxy='<ip>:<port>'    # anonymized because of reasons

bash$ time wget -q $ARTE_URL

real	17m20.563s
user	0m6.795s
sys	0m53.241s

bash$ du -h 0*
1,7G	049883-000-A_SQ_1_VA-STA_01736529_MP4-2200_AMM-HBBTV.mp4

Verblüffend. 1&1/Telefonica drosseln offensichtlich (zumindest teilweise aber reproduzierbar) den von Limelight kommenden Traffic, solange sie ihn als solchen erkennen. Warum macht da eine öffentlich zwangsfinanzierte Rundfunkanstalt mit, deren Angebot für einen großen Teil der Bürger so nicht mehr benutzbar ist? Mir ist's wurscht, ich hab 'nen Proxy… allerdings hab ich bei der ganzen Geschichte bemerkt, dass die Schwuppdizität bei Google Maps und YouTube mit Proxy besser ist als ohne. Ich ahne 1&1/Telefonica drosselt auch Google (die werden es wahrscheinlich QoS nennen), will das aber nicht erforschen denn ich hab Angst vor dem Ergebnis.

Einen FunFact hab ich noch. Der Zielserver weist zwar eine italienische IP im nirgendwo aus, der Datenstrom läuft hingegen über die USA (genauer gesagt Tempe bei Phoenix, Arizona) solange Telefonica im Spiel ist, was hervorragend zum Thema des Videos passt um welches es hier initial eigentlich mal ging.

Der Trace vom vServer:

bash$ mtr -n -c1 -r 87.248.217.253 | grep -Eo '[0-9]{2}[0-9\.]*' | while read IP
> do
> wget -qO- ipinfo.io/$IP | grep -o '"[^"]*",' | paste - - - - | awk -F'"' '{print $6" "$8"\t"$4}'
> done
DE 51.0000,9.0000       No Hostname
DE 51.0000,9.0000       No Hostname
DE 51.0000,9.0000       10g.rt2ipc1.ka.telemaxx.net
DE 51.0000,9.0000       10g.rt2ipc3.ka.telemaxx.net
DE 51.0000,9.0000       10g.rt1ipc3.ka.telemaxx.net
DE 51.0000,9.0000       10g.rt1cix.fra.telemaxx.net
EU 47.0000,8.0000       ffm-b12-link.telia.net
EU 47.0000,8.0000       limelight-ic-138917-ffm-b12.c.telia.net
IT 42.8333,12.8333      cdn-87-248-217-253.frf.llnw.net

der Trace vom localhost:

bash$ mtr -n -c1 -r 87.248.217.253 | grep -v 192\. | grep -Eo '[0-9]{2}[0-9\.]*' | while read IP
> do
> wget -qO- ipinfo.io/$IP | grep "host\|count\|loc" | paste - - - | awk -F'"' '{print $8" "$12"\t"$4}'
> done
DE 51.0000,9.0000       rdsl-erft-de80.nw.mediaways.net
DE 51.0000,9.0000       po20.02.xmwc.99.erf.de.net.telefonica.de
US 33.4357,-111.9171    ve5.fr3.frf.llnw.net
IT 42.8333,12.8333      cdn-87-248-217-253.frf.llnw.net

Falls jemand bestätigen oder widerlegen will: feel free to comment

Update 27.03.2015:

Weils gut zum Thema passt: Init7 sammelt Belege für Netzneutralitätsverstöße der Deutschen Telekom

Update 17.04.2015:

Also offensichtlich bin ich mit der Beobachtung nicht ganz allein auf dieser Welt, denn fefe linkt auf einen ähnlichen Fall in dem Michael seine Erfahrung mit der Telekom posted (siehe http://i.document.m05.de/2015/04/17/drosselt-da-jemand). Er verändert über einen alternativen DNS-Server seine Route, was ihm scheinbar hilft. Grund genug hier nochmal zu prüfen, ob sich gut 3 Wochen später auch bei meinem Anschluss noch immer alles gleich verhält. Ich nehm es vorweg: tut es nicht!

Ich musste auf ein anderes Video zugreifen, da dass initial angeführte unterdessen depubliziert wurde. Der configtest bei arte, auf den Michael verweist, resultiert bei mir in mehrfachen Durchläufen gemittelt in etwa 10 Mbps. Bei 16 MBit/s DSL von 1&1 wäre da also im Grunde Luft nach oben, scheint aber grundsätzlich für eine vernünftige Nutzung ausreichend.

bash$ date
Fr 17. Apr 20:34:12 CEST 2015
bash$ ARTE_URL='www.arte.tv/guide/de/057450-002/metropolis'
bash$ ARTE_URL=$(wget -qO- $ARTE_URL | grep PLUS7.*json | uniq | grep -o http.*json)
bash$ ARTE_URL=$(wget -qO- $ARTE_URL | grep -o '720p[^{]*Dt. Version' | grep -o http.*mp4)
bash$ echo $ARTE_URL
http://artestras.vo.llnwd.net/v2/am/HBBTV/057450-002-A_SQ_1_VOA_01763719_MP4-2200_AMM-HBBTV.mp4

vom vServer (da wars ja schon damals schnell):

bash$ time wget -q $ARTE_URL

real    0m21.220s
user    0m0.430s
sys     0m4.920s

bash$ du -k 0*
623292  057450-002-A_SQ_1_VOA_01763719_MP4-2200_AMM-HBBTV.mp4

bash$ bc <<< "623292 / 21" 
29680

vom localhost (ohne Proxy):

bash$ time wget -q $ARTE_URL

real    7m16.782s
user    0m1.719s
sys     0m12.390s

bash$ du -k 0*
622700  057450-002-A_SQ_1_VOA_01763719_MP4-2200_AMM-HBBTV.mp4

bash$ bc <<< "622700 / (7*60+16)"
1428

bash$ dig artestras.vo.llnwd.net +short
87.248.217.253
87.248.217.254

bash$ mtr -c10 -r -w 87.248.217.253 | tail -4
  3.|-- po20.02.xmwc.99.erf.de.net.telefonica.de  0.0%    10   28.7  33.2  27.8  45.7   7.3
  4.|-- ???                                      100.0    10    0.0   0.0   0.0   0.0   0.0
  5.|-- ve5.fr3.frf.llnw.net                      0.0%    10   32.5  32.6  31.8  33.7   0.3
  6.|-- cdn-87-248-217-253.frf.llnw.net           0.0%    10   33.2  41.7  33.2  69.9  14.2

bash$ mtr -n -c1 -r 87.248.217.253 | grep -v 192\. | grep -Eo '[0-9]{2}[0-9\.]*' | while read IP
> do
> wget -qO- ipinfo.io/$IP | grep "host\|count\|loc" | paste - - - | awk -F'"' '{print $8" "$12"\t"$4}'
> done
DE 51.0000,9.0000	rdsl-erft-de80.nw.mediaways.net
DE 51.0000,9.0000	po20.02.xmwc.99.erf.de.net.telefonica.de
US 33.4357,-111.9171	ve5.fr3.frf.llnw.net
IT 42.8333,12.8333	cdn-87-248-217-253.frf.llnw.net

Auffällig ist, dass das mtr kein Loss für den CDN im 6. Hop mehr ausweist. Abgesehen davon hat sich nicht viel verändert, dennoch ist ein Downstream beim localhost von 11,4 MBit ganz passabel. Nicht so schnell wie es sein könnte, aber akzeptabel. Der vServer hat im Speed mit jetzt ca. 28 MB/s deutlich nachgelassen.

Update 20.04.2015:

Gestern ist hier folgende themenrelevante eMail eingegangen (Danke sec):

Viele CDNs basieren auf DNS, d.h. auf eine DNS-Anfrage fällt die Antwort abhängig vom Standort des Anfragenden unterschiedlich aus, das kannst Du z.B. mal testen in dem Du von deinem vServer und von deinem DSL-Host aus anfragen schickst. Gern auch mehrfach.

Das erkärt z.B. das Verhalten von m05, es kann einfach sein das pink-T einen cachenden Nameserver (oder sein Plasterouter macht das) für seine Kunden bereitstellt, der gibt dann allen Telekomkunden die gleiche IP für einen Service in einem CDN, die wenn man die IP nicht cached, unterschiedlich ausfallen würde (d.h. der cachende DNS ignoriert die TTL von DNS Antworten).

Man kann mit dig übrigens auch den Zielserver bestimmen.

Das Resultat sieht dann so aus, als würde gedrosselt, weil die T-Kunden die gleiche Resource saturieren, was nicht passieren würde wenn die DNS Anfragen nicht gecached werden.

Oft hat man auch z.B. RR (round robin) in DNS-Ergebnissen, d.h. zwei Anfragen ergeben unterschiedliche Ergebnisse, oder der DNS selbst liefert unterschiedliche Ergebnisse basierend auf der GeoLokation des Anfragenden, oft auch kombiniert, d.h. DNS kann mit kurzen Antwort-TTL durchaus als Lastverteiler fungieren.

Nebenbei, sämtliche Speedtests sind Kosmetik, die sind einfach zu manipulieren, und in etwa so aussagekräftig wie eine Messung gegen ::1

Man braucht nicht zwingend einen Proxy oder vServer, Tor reicht oft, oder wenn Du kein IPv6 hast, ein Tunnel sind gute Alternativen.

Es hilft oft einen Netzwerkmonitor mitlaufen zu lassen, und man sollte sich auch vor Augen führen das wireless oft auch einfluss auf Latenzen hat usw. usf.

Comments

Daniel
No. 1 @ 2015/04/18 03:11

„US 33.4357,-111.9171 ve5.fr3.frf.llnw.net“ Sicher, dass das in den USA ist? Die IP gehört Limelight, deshalb denkt der GeoIP-Service vielleicht USA, aber es wäre nicht abwegig, dass „fr“ darin für Frankfurt oder vielleicht irgendwas mit Frankreich steht. Ich hab (aus Deutschland) zu der IP nen Ping von 20ms, das wäre für einen amerikanischen Server wohl eher nicht denkbar, oder?

Funatiker
No. 2 @ 2015/04/18 09:18

Was die Geschichte mit dem langsamen Traffic über den Vserver-Proxy betrifft, so wäre es interessant zu sehen, ob das zugleich bei anderem Traffic vom Vserver anders ist. Außerdem wäre es spannend zu sehen, wo auf dem Weg zum Vserver Päckchen verloren gehen.

faker
No. 3 @ 2015/04/18 10:40

Nur als kurzer Hinweis, hoher packet loss bei MTR muss nicht unbedingt ein Problem sein.

ICMP traffic wird bei vielen Routern rate limited.

Siehe auch: http://networkengineering.stackexchange.com/questions/3878/mtr-output-with-high-packet-loss-on-one-hop

Arno Nym
No. 4 @ 2015/04/18 13:03

Ja genau, er „verändert über einen alternativen DNS-Server seine Route“.

Wenn Amateure Netzwerkdiagnose machen…

Einfach mal an die Physik halten, die IP-Adresse anpingen und Hirn einschalten war wohl zuviel.

winky
No. 5 @ 2015/04/18 14:05

  1. @ Daniel: nein, nicht sicher :)
  2. @ Funatiker: ich kann dir nicht folgen.
  3. @ faker: ach guck an. ich kenn mtr erst sein dem post hier, danke für den link.
  4. @ Arno Nym: hilf uns, wir lernen gern.
Funatiker
No. 6 @ 2015/04/25 14:04

@winky:

Ich meinte: Du hast nur ein Beispiel von verlangsamtem Traffic durch deinen Vserver-Proxy gezeigt. Es wären verschiedene Dinge interessant gewesen:

1. Was passiert mit nicht Limelight-Traffic, der durch deinen Proxy geht? Wird der auch langsam? Eventuell liegt es gar nicht daran, dass Limelight gedrosselt wird sondern, dass der Proxy-Port gedrosselt wird.

2. Werden die gleichen IP-Adressen verwendet (im Vergleich localhost → proxy → limelight und vserver → limelight)

3. Laufen die Pakete tatsächlich durch den Proxy? Eine Anfrage an eine Seite, die die IP des anfragenden Clients zeigt wäre hier hilfreich gewesen.

Ansonsten schreib mal an online@1und1.de und bitte, dass sie dir erklären, was los ist. Mir wollen sie nichts über deinen Fall sagen. :(

winky
No. 7 @ 2015/05/09 13:20

Nein, ich zeige in dem Post beschleunigten(!) Traffic durch den vServer auf… unterdessen ists auch ohne Proxy wieder schnell, was das Update aufzeigt, eine weiterführende Untersuchung ist damit obsolet.

Leave a comment…



J C᠎ R᠎ C H
  • E-Mail address will not be published.
  • Formatting:
    //italic//  __underlined__
    **bold**  ''preformatted''
  • Links:
    [[http://example.com]]
    [[http://example.com|Link Text]]
  • Quotation:
    > This is a quote. Don't forget the space in front of the text: "> "
  • Code:
    <code>This is unspecific source code</code>
    <code [lang]>This is specifc [lang] code</code>
    <code php><?php echo 'example'; ?></code>
    Available: html, css, javascript, bash, cpp, …
  • Lists:
    Indent your text by two spaces and use a * for
    each unordered list item or a - for ordered ones.


Except where otherwise noted, content on this blog is licensed under CreativeCommons BY SA 3.0