Posts Tagged ‘upc’

Sonntag, 27. Juni 2021

Mit der upc App über Mobilfunk-Roaming aus dem Ausland fernsehen

Ein Kollege hat mich kürzlich gefragt, wieso er trotz des von mir geliehenen VPN-Zugangs im Ausland mit der upc App keine aufgezeichnete Sendung schauen kann.

Er war im 4G-Netz des Landes eingebucht und hatte VPN aktiviert. Doch die upc App sagte ihm:

Nicht verfügbar

Dieses Video ist ausserhalb deiner Region nicht verfügbar

Komisch. Wie zum Teufel wusste die App, dass der Kollege im Ausland war — auf IP-Ebene kommunizierte der Kollege nämlich mit einer 100-prozentig Schweizerischen IP? Daran konnte es nicht liegen.

Mir schwante Böses, und bat ihm, unter Settings > Privacy > Location Services der upc App die Rechte zu entfernen, den Standort zu eruieren. Gesagt, getan, worauf die App folgendes anzeigte:

Ich war schon mit meinem Latein am Ende, als ich den Text noch einmal genau las: „Um ein Video über die mobile Netzwerkverbindung abzuspielen, …“.

Ich bat den Kollegen, auf einem zweiten Telefon den Hotspot zu aktivieren, sein Telefon damit zu verbinden, und dann VPN zu starten.

Dann klappte es und er konnte die aufgezeichnete Sendung streamen. Aus Sicht seines Telefones war er nämlich nun mit einem WLAN verbunden. Und upc scheint bei dieser Verbindungsart den Standort des Telefons nicht abzufragen.

Tags: , , , , , , , , , , ,
Labels: Apple, IT, Medien, Schweiz

Keine Kommentare | neuen Kommentar verfassen

Montag, 20. April 2020

upc kappt Peering mit Init7 / Fiber7

Ich habe vor einigen Jahren mit OpenVPN ein Site-to-Site VPN zu einem Bekannten in der Agglomeration Bern aufgebaut und betreibe dieses VPN bis heute.

Der Bekannte ist Kunde von upc cablecom (der schnellste und preiswerteste Anbieter in der Agglomerationsgemeinde) mit einem 300 MBit/s Download-Abo, ich als Städter bekanntermassen Kunde von Fiber7 mit (theoretisch) symmetrischen 1 GBit/s.

Letzte Woche (KW16 2020) waren SSH-Verbindungen zu einem Server beim Bekannten auf einmal sehr, sehr hakelig — die Latenz zwischen Tastatureingabe und erscheinen des Zeichens auf dem Bildschirm war sehr hoch. Bestätigt wurde diese durch meine Überwachung der Geschwindigkeit mit speedtest-cli und Aufzeichnung und Visualisierung der Werte mit Cacti:

Der Einbruch am Dienstag-Morgen war offensichtlich.

Eine fiebrige, verbissene Suche begann: War ein Angreifer in das Netzwerk eingedrungen und zog nun Gigabyte-weise an Daten ab? Oder war ein Rechner eines Mitbenutzers von Malware gekapert worden? Oder führte der Mitbenutzer einfach nur tonnenweise Bittorrent-Downloads durch? Oder war eine Netzwerkkomponente ausgetickt und flutete das Netzwerk und den Router mit Paketen? Oder hatte upc cablecom einfach etwas am Netzwerk geschraubt, worauf der Geschwindigkeitseinbruch manchmal nur mit einem Neustart des Modems behoben werden konnte?

Die Nachforschungen brachten nichts zu Tage, aber immerhin lernte ich folgende Netzwerkanalyse-Tools/Features meiner Infrastruktur kennen:

  • Traffic Analysis des EdgeRouters X ER-X, welcher am Kabelmodem hängt
  • iftop Zeigt in Echtzeit an, von und zu welchen IPs ein Server Daten übertragt (Homepage)
  • iptraf-ng (Homepage)

Am Dienstag-Abend ereilte mich ein Geistesblitz: speedtest-cli misst die Geschwindigkeit von einem Server am Agglomerations-Standort zum Ookla Speedtest-Server von Init7 (Server „Init 7 (Winterthur, Switzerland)“ mit ID 3026). Aus Interesse wählte ich einen anderen Server aus der Liste aus, und zwar den Speedtest-Server von Sunrise. Zuerst führte ich einen manuellen Speedtest zu Init7 durch, danach zu Sunrise. Und siehe da, hier lag die Antwort wie auf dem Präsentierteller:

$ ./speedtest-cli --server 28045
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from UPC Schweiz (80.218.X.X)...
Hosted by Sunrise Communication AG (Lausanne) [6X.XX km]: 30.667 ms
Testing download speed........................................
Download: 302.88 Mbit/s
Testing upload speed..................................................
Upload: 42.32 Mbit/s

$ ./speedtest-cli --server 3026
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from UPC Schweiz (80.218.X.X)...
Hosted by Init 7 (Winterthur) [13X.XX km]: 165.956 ms
Testing download speed........................................
Download: 25.82 Mbit/s
Testing upload speed..................................................
Upload: 9.48 Mbit/s

Am selben Abend sendete ich eine Anfrage an Init7 raus, ob und wie sie sich diesen markanten Geschwindigkeits-Unterschied erklären können. Am Morgen hatte ich die Antwort, und wurde auf folgendes Schreiben verwiesen. Diese Meldung war bei mir im Corona-Trubel vollkommen untergegangen.

Fazit: upc cablecom, how dare you?

Nachtrag

smokeping visualisiert die Latenz von DNS-Abfragen aus dem upc cablecom-Netz gegen den DNS-Server von Init7 ebenfalls sehr schön:

Auf Wunsch Thomas‘ (siehe Kommentar unten) noch dieselbe Grafik für Test-Abfragen an einen der DNS-Server der upc cablecom (ns10.cablecom.net) …

… zu Swisscom (dns2.bluewin.ch) …

… und zu Sunrise (cache02.sunrise.ch)

Tags: , , , , , , , , , , , , , , , , ,
Labels: IT, Schweiz

7 Kommentare | neuen Kommentar verfassen

Sonntag, 12. Januar 2020

Kabelmodem direkt nach dem Verstärker anschliessen? Schlechte Idee.

Ein Bekannter plant derzeit, die Stockwerke seiner Immobilie mit Ethernet- oder Glasfaser-Kabeln zu erschliessen.

Da hatte ich eine zündende Idee: Da der Bekannte upc cablecom-Kunde ist, könnte man nach der Verkabelungsaktion das Kabelmodem von der Stube im 1. OG in den Keller zügeln, wo der Verstärker angebracht ist. Ich erhoffte mir davon höhere Bandbreiten beim Up- und Download, da ich der Qualität der Verkabelung vom Verstärker zur Stube nicht traue. Je näher das Modem am Verstärker ist, desto weniger leistungsschwächende Interferenzen erhoffte ich mir.

Nachdem das Modem zum Verstärker gezügelt worden wäre, hätte man nur noch ein Netzwerkkabel vom Kabelmodem zum Stockwerks-Switch ziehen müssen und die Bewohner wären in den Genuss schnellerer Bandbreiten gekommen.

Falsch gedacht. Eine kurze Google-Recherche lotste mich auf folgende Forumsdiskussion:

Einfach so an den Verstärker anschließen geht nicht. Das Modem ist von genau definierten Pegelwerten abhängig, d.h. Deine vom Techniker gesetzte Dose wurde eingemessen. Bei dieser Einmessung fanden das zur Dose führende Kabel und die Dose selbst Berücksichtigung.

[…] [Die Installation einer neuen Kabeldose] sollte jemand machen der Ahnung von Kabelanlagen, Dämpfungen und Rückkanal hat.

Quelle: Kabelmodem direkt mit dem UM-Gerät im Keller verbinden

Tags: , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 14. Oktober 2017

upc cablecoms Verfügbarkeitsabfrage ist äusserst geschwätzig

upc cablecom bietet auf ihrer Web-Site die Möglichkeit, eine Wohnadresse auf die Verfügbarkeit von upc-Produkten zu überprüfen:

Verfügbarkeit prüfen

Füllt man die erforderlichen Angaben in das Formular ein, erhält man eine rein binäre Antwort für jede der drei Produktkategorien Internet, TV und Festnetz:

Im Hintergrund setzt dafür JavaScript eine Abfrage auf eine upc API ab. Die URL lautet für das vorliegende Beispiel:

https://www.upc.ch/aff-upc-cablecom-ch/aav/availability.json?streetName=Schl%C3%B6sslistrasse&streetNumber=39&postalCode=3008&_charset_=UTF-8&lang=de

Als Antwort erhält man eine Datei namens availability.json zurück. Nachfolgend das Beispiel für meine Wohnadresse:

{
    "addressResultState": "uniqueAddress",
    "addresses": [
        {
            "buildingNumber": 39,
            "buildingNumberAnnex": null,
            "buildingStatusId": 3,
            "buildingStatusName": "completed",
            "communeName": "Bern",
            "coordinateX": "599190",
            "coordinateY": "199475",
            "countryCodeA2": "CH",
            "idBuilding": 131767,
            "locationName1": "Bern",
            "locationName2": "Bern",
            "networkOperatorId": 0,
            "postCode": "3008",
            "postCodeAnnex": "00",
            "postOfficeName": "Bern",
            "stateName": "Bern/Berne",
            "stateShort": "BE",
            "streetName1": "Schl\u00f6sslistrasse"
        }
    ],
    "availability": {
        "accessProvider": null,
        "accessTechnology": null,
        "cablecomRegion": "Nord-West",
        "catv": {
            "available": true,
            "houseUpgradeNeeded": false,
            "packages": {
                "_package": [
                    "not available"
                ]
            },
            "partnerNetFlag": false
        },
        "dp": {
            "available": true,
            "availableFrom": {
                "day": 5,
                "fractionalSecond": 0.0,
                "hour": 0,
                "minute": 0,
                "month": 9,
                "second": 0,
                "timezone": 120,
                "year": 2000
            },
            "houseUpgradeNeeded": false,
            "packages": {
                "_package": [
                    "RVO_VSB01",
                    "RVO_VSB02",
                    "RVO_VSB03",
                    "RVO_VSB04",
                    "RVO_VSB05",
                    "RVO_FRC1",
                    "RVO_GBL1",
                    "RVO_FCG1",
                    "RVO_FRC2",
                    "RVO_GBL2",
                    "RVO_FCG2",
                    "RVO_FCE1",
                    "RVO_FCE2",
                    "RVO_FPW1",
                    "RVO_FPW2",
                    "RVO_FPS1",
                    "RVO_FPS2",
                    "RVO_FPP1",
                    "RVO_FPP2",
                    "RVO_BP1",
                    "RVO_BDS13",
                    "RVO_BDS14",
                    "RVO_BDS08",
                    "RVO_BDS11",
                    "RVO_BDS09",
                    "RVO_BDS12"
                ]
            },
            "partnerNetFlag": false
        },
        "dtv": {
            "available": true,
            "availableFrom": {
                "day": 1,
                "fractionalSecond": 0.0,
                "hour": 0,
                "minute": 0,
                "month": 1,
                "second": 0,
                "timezone": 60,
                "year": 1999
            },
            "houseUpgradeNeeded": false,
            "packages": {
                "_package": [
                    "",
                    "NR_SVD01",
                    "RDC_SFRSD",
                    "RDC_SFRS_M",
                    "RDI_CH01",
                    "RDI_CH04",
                    "RDI_CH05",
                    "RDI_CH06",
                    "RDI_CH07",
                    "RDI_CH08",
                    "RDI_CH09",
                    "RDI_CH09",
                    "RDI_CH10",
                    "RDI_CH11",
                    "RDI_CH17",
                    "RDI_CH17H",
                    "RDI_CH18",
                    "RDI_CH18H",
                    "RDI_CH19",
                    "RDI_CH19H",
                    "RDI_CH20",
                    "RDI_CH20H",
                    "RDI_CH21",
                    "RDI_CH21",
                    "RDI_CH21_M",
                    "RDI_CH21_M",
                    "RDI_CH22",
                    "RDI_CH22_M",
                    "RDI_CH24",
                    "RDI_CH24_M",
                    "RDI_CH25",
                    "RDI_CH25_M",
                    "RDI_CH26",
                    "RDI_CH26_M",
                    "RDI_CH27",
                    "RDI_CH27_M",
                    "RDI_CH28",
                    "RDI_CH28_M",
                    "RDI_CH30",
                    "RDI_CH31",
                    "RDI_CH32",
                    "RDI_CH33",
                    "RDI_CH40",
                    "RDI_CH40_M",
                    "RDI_CH41",
                    "RDI_CH41",
                    "RDI_CH42",
                    "RDI_CH44",
                    "RDI_CH47",
                    "RDI_CH47",
                    "RDI_CH48",
                    "RDI_CH49",
                    "RDI_CH50",
                    "RDI_CH51",
                    "RDI_CH52",
                    "RDI_CH53",
                    "RDI_CH54",
                    "RDI_CH55",
                    "RDI_CH56",
                    "RDI_CH57",
                    "RDI_CH59",
                    "RDI_CH60",
                    "RDI_CH61",
                    "RDI_CH62",
                    "RDI_CH65",
                    "RDI_CH66",
                    "RDI_CH67",
                    "RDI_CH68",
                    "RDI_CH72",
                    "RDI_CH73",
                    "RDI_CH74",
                    "RDI_CH81",
                    "RDI_CH93",
                    "RDI_CH97_M",
                    "RDI_D4A_97",
                    "RDI_DUMW",
                    "RDI_DWISR1",
                    "RDI_DWISS1",
                    "RDI_DWR1",
                    "RDI_DWS1",
                    "RDI_HCOD",
                    "RDI_HRZ06",
                    "RDI_HRZ11",
                    "RDI_HRZ17",
                    "RDI_HRZ17",
                    "RDI_CH81",
                    "RDI_HRZ17H",
                    "RDI_HRZ81",
                    "RDI_HRZ18",
                    "RDI_HRZ18H",
                    "RDI_HRZ19",
                    "RDI_HRZ19H",
                    "RDI_HRZ20",
                    "RDI_HRZ20H",
                    "RDI_HRZ21",
                    "RDI_HRZ21",
                    "RDI_HRZ22",
                    "RDI_HRZ24",
                    "RDI_HRZ25",
                    "RDI_HRZ26",
                    "RDI_HRZ27",
                    "RDI_HRZ28",
                    "RDI_HRZ40",
                    "RDI_HRZ52",
                    "RDI_HRZ53",
                    "RDI_HRZ83",
                    "RDI_HRZCL",
                    "RDI_HRZCO",
                    "RDI_HRZDS",
                    "RDI_HRZ_97",
                    "RDI_PREM1",
                    "RDI_PREM2",
                    "RDI_PREM_M",
                    "RDI_PRM",
                    "RDI_PRMM",
                    "RDI_SPTV",
                    "RDI_SPTV_M",
                    "RDI_SVD_51",
                    "RDI_SVD_51",
                    "RDI_SVD_51",
                    "RDI_SVD_52",
                    "RDI_SVD_52",
                    "RDI_SVD_52",
                    "RDI_SVD_59",
                    "RDI_SVD_60",
                    "RHZ_CLAS7",
                    "RHZ_CLAS8",
                    "RHZ_PREM1",
                    "RHZ_PREM2",
                    "RHZ_PRM",
                    "RHZ_SFRSH",
                    "RHZ_SPTV",
                    "RDI_CTDV",
                    "RDI_DUMS",
                    "RDI_DUMM"
                ]
            },
            "partnerNetFlag": false
        },
        "dtvActicationCode": "203",
        "dtvDistributionModel": "Vertriebsmodell Cablecom",
        "dtvSetupId": "01810000",
        "ftthBuildingStatus": null,
        "ftthSla": null,
        "hs": {
            "available": true,
            "availableFrom": {
                "day": 5,
                "fractionalSecond": 0.0,
                "hour": 0,
                "minute": 0,
                "month": 9,
                "second": 0,
                "timezone": 120,
                "year": 2000
            },
            "houseUpgradeNeeded": false,
            "packages": {
                "_package": [
                    "DHS_BSO",
                    "RHS_BDS06",
                    "RHS_BDS07",
                    "RHS_BDS08",
                    "RHS_BDS09",
                    "RHS_BDS10",
                    "RHS_BDS11",
                    "RHS_BDS12",
                    "RHS_BDS13",
                    "RHS_BDS14",
                    "RHS_BDS15",
                    "RHS_BDS16",
                    "RHS_BDS17",
                    "RHS_BDS18",
                    "RHS_BDS20",
                    "RHS_BDS21",
                    "RHS_HC256",
                    "RHS_HS02",
                    "RHS_HS05",
                    "RHS_HS06",
                    "RHS_HS08",
                    "RHS_HS09",
                    "RHS_HS11",
                    "RHS_HS12",
                    "RHS_HS13",
                    "RHS_HS14",
                    "RHS_HS15",
                    "RHS_HS16",
                    "RHS_HS17",
                    "RHS_HSED13",
                    "RHS_HSED21",
                    "RHS_HSED30",
                    "RHS_HSED32",
                    "RHS_NDH25",
                    "RHS_HSED10",
                    "RHS_HSED11",
                    "RHS_HSED12",
                    "RHS_HSED14",
                    "RHS_HSED15",
                    "RHS_HSED16",
                    "RHS_HSED17",
                    "RHS_HSED18",
                    "RHS_HSED19",
                    "RHS_HSED20",
                    "RHS_HSED22",
                    "RHS_HSED23",
                    "RHS_HSED24",
                    "RHS_HSED25",
                    "RHS_HSED26",
                    "RHS_HSED28",
                    "RHS_HSED29",
                    "RHS_WOO"
                ]
            },
            "partnerNetFlag": false
        },
        "idBuilding": 131767,
        "languageRegion": "DE",
        "longText": "An Ihrem Standort ist bereits alles vorbereitet. Melden Sie sich jetzt online an und schon in wenigen Tagen k\u00f6nnen Sie vom gew\u00fcnschten Produkt profitieren.",
        "mobile": {
            "available": true,
            "houseUpgradeNeeded": false,
            "packages": {
                "_package": [
                    "ALL"
                ]
            },
            "partnerNetFlag": false
        },
        "vod": {
            "available": true,
            "houseUpgradeNeeded": false,
            "packages": {
                "_package": [
                    "BM_VODKIT"
                ]
            },
            "partnerNetFlag": false
        }
    },
    "availabilityResultState": "availabilityFound"
}

(Lesbar gemacht mit Google Chrome unter die Haube schauen (und JSON lesbar ausgeben))

Einige Erkenntnisse:

  • Diese API rechnet Strassenanschriften ins Schweizer Koordinatensystem um (600:200, irgendjemand?).
  • Das JSON sagt auch, wann das Gebäude an das cablecom-Netz angeschlossen wurde (Internet am 5. September 2000, Fernsehen am 1. Januar 1999 (wahrscheinlich ein Dummy-Wert, oder aber cablecom hat zu dem Stichtag das Berner Kabelnetz übernommen?)).
  • Benötigt mein Gebäude ein Upgrade? Aus meiner Sicht ein möglicher Hinweis auf Probleme in der Hausverkabelung und somit auf mögliche Geschwindigkeitseinbussen.
  • Es gibt drei Produktekategorien: dtv steht für Digital TV, hs steht für Highspeed (Internet) und dp wohl für Digital Phone.
  • Für jede Produktkategorie wird fein säuberlich aufgelistet, welche Packages verfügbar sind. Leider ist es mir nicht möglich, die Abkürzungen dieser Packages zu entziffern. Bei Digital TV vermute ich, dass einzelne Sender aufgelistet werden. Bei Highspeed Internet könnten es die effektiv verfügbaren Geschwindigkeiten sein.
  • Im JSON sind auch der Activation Code und die Setup ID aufgeführt, die man auf der Horizon-Box oder dem TV-Gerät für die Kanalsuche eingeben muss.
  • Schlussendlich sieht man auch, ob ein Gebäude an das (upc?) Glasfasernetz angeschlossen ist.

Tags: , , , , , ,
Labels: IT, Schweiz, Shopping

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 1. November 2016

upc cablecom Performance an der Melchtalstrasse im Breitenrain

Eine Bekannte von mir hat sich vor einigen Wochen darüber beschwert, dass die Performance ihrer Internetverbindung von upc cablecom (Quadruple Play Kabel-Anbieter hier in der Schweiz) in ihrer Wohnung an der Melchtalstrasse im bernischen Breitenrain gelegentlich zu wünschen übrig lässt.

Sie war sich sicher, dass die in ihrem aktuellen Internet-Abo als Best Effort versprochene 200 MBit/s Downloadgeschwindigkeit und 20 MBit/s Uploadgeschwindigkeit während den angesprochenen Phasen nie und nimmer erreicht werden.

Ich habe ihr deshalb Anfangs Oktober 2016 einen Linux-Laptop (Lenovo X200s mit Gigabit-Ethernet, welcher mit Cat 5e-Kabel direkt am Router TP-LINK WNDR3600 hängt) ins Netzwerk gehängt, welcher jede Stunde einen Ookla Speedtest mit dem Fiber7-Server durchführt und mir die Werte zurückmeldet.

Nach drei Wochen Monitoring verfestigt sich das Bild, dass mit der Internet-Anbindung tatsächlich etwas faul ist. An praktisch jedem Tag zeigt sich im RRDtool-Graph dasselbe Bild: Ab ca. 18 Uhr bricht die Downloadgeschwindigkeit von annähernd 200 MBit/s zunehmend ein, erreicht mit ca. 40 MBit/s den Tiefpunkt und erholt sich ab 22 Uhr langsam wieder:

upc-cablecom-melchtalstrasse-bern-tag

upc-cablecom-melchtalstrasse-bern-woche

Meine Vermutung: Im Breitenrain könnte die Studentendichte sowie die Dichte der Yuppies sehr hoch sein. Diese schauen nach Feierabend nicht TV, sondern werfen sich Netflix & Konsorten (vielleicht sogar Bittorrent?) an und streamen sich die TV-Sendungen und Filme ihrer Wahl. Was dafür spricht: Am letzten Wochenende war der Einbruch noch dramatischer als unter der Woche. Der Graph zeigt, dass ausserhalb der Stosszeiten die versprochenen Bandbreiten erreicht werden.

Und nein, meine Bekannte sabotiert sich nicht selber: Sie hat unregelmässige Arbeitszeiten (Früh- und Spätschicht, manchmal auch an Wochenenden), weshalb sie in vielen Fällen von den Geschwindigkeitseinbrüchen gar nichts mitbekommt.

Und was tut der ISP, der hoffentlich über ein viel, viel ausgeklügelteres Monitoring verfügt als ich? Nichts. Wie für unsere Halunken-ISPs hier in der Schweiz so üblich versteckt man sich hinter der Vertragsklausel Best Effort, überbucht das Netz gnadenlos und lenkt den Umsatz nicht in den Ausbau des Netzes, sondern lässt diesen in die Taschen der grosskapitalistischen Shareholder in Übersee fliessen. Und natürlich hofft man darauf, dass der dumme Benutzer nicht auf die Idee kommt, regelmässig Geschwindigkeitsmessungen durchzuführen.

upc cablecom, bitte aufwachen! Im Breitsch braucht es eine grössere Leitung, aber bitte zack zack!

Tags: , , , , , , , , , , , , ,
Labels: Schweiz

Keine Kommentare | neuen Kommentar verfassen