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.

Es werde Licht

Diese Telekomiker … immer einen Scherz auf Lager. Ihr neuester Coup:

Ab Herbst startet beim rosa Riesen das „Giganetz“ (whow) in 19 Metropolregionen wie bspw. Kornwestheim, Gummersbach oder Mettmann. Beworben wird der Dreck mit Slogans a la „Internet mit Lichtgeschwindigkeit, Fernsehen in Full HD und Telefonieren mit höchster Sprachqualität – alles gleichzeitig über einen Anschluss.“, dass ich das allerdings mit Kupfer und genügend Cache heute auch schon haben kann ignorieren wir mal.
Interessant ist das plakative Werbeversprechen von 200 MBit down- & 100 MBit upstream. In den angepriesenen Produkten zwei Seiten weiter ist dann allerdings schnell nur noch von 100 MBit down- bzw 50 MBit upstream die Rede. Das liegt daran, dass Fiber 200 nur eine Speed-Option darstellt, derer es 5,- € Aufpreis bedarf. Ganz klar wird zumindest der Begriff „Internet-Flatrate“ verwendet. Doch genau da beginnt der Hamster zu humpeln…


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