Utiliser Zazeen set top box depuis une connexion videotron

Alors ca n’a pas l’air tres opensource cette histoire, mais ca implique du GNU/Linux 😀 (et oui je parles beaucoup comme toujours).

Pour ceux qui ne connaissent pas, au Québec (je ne sais pas pour le reste du Canada) mais les offres TV/Internet/telephone sont hors de prix !
Pour une connexion décente, il faut compter débourser entre $90 et $150 par mois après taxes. Ce qui, en arrivant de France il y a 5 ans avait déjà été un gros choc après Free a 30 euros par mois tout inclus et appels au monde illimités.
Ensuite, même si les fournisseurs crient le contraire, il y a du filtrage selon l’activité (alors admettons que les fournisseurs ne fassent rien, mais étrangement, en lançant un relais tor limité a 5mbit/s, ma connexion de 60mbit/s s’écroule a 2mbit/s).
La suite avec Zazeen, et pourquoi je me suis rendu a découvrir la TV sur IP via set top box au Canada.
Comme vidéotron le fait parfois, certaines chaines ont été mises en débrouillage (accès gratuit pendant quelques jours), et on découvre la chaine historia qui nous plait.
La je contact le service client, après 4 ans d’abonnement chez eux, un abonnement dans les $130, je me dis qu’on va pouvoir avoir une chaîne en plus sur notre pack.
Mais la, non, alors que jusqu’alors le service client avait toujours été impeccable, je fais face a de l’agressivité et aucune flexibilité (il faut quand même noter que le réseau vidéotron, n’a jamais fait défaut, et jusqu’à ce moment la, le service client avait toujours été super efficace, tu me diras, ça vaut mieux quand même vu le prix).
Anyway, la pour avoir un seul canal en plus du pack de base HD ($25 pour 23 chaines de bases), il faut souscrire au pack 5 chaines de plus, pour $41 par mois !!!! (selon le site la base HD serait incluse, donc théoriquement le coût supplémentaire serait juste de $16 / mois) , mais rendu la, on est a environ $150 par mois pour une connexion qui avait été élevée a 60mbit/s mais limitée en volume.
Bref, trop c’est trop (sans parler des prix affichés qui finissent par monter, ou des prix affichés qui ne sont valides QUE pour les nouveaux clients, les anciens clients qui paient depuis des années, eux on en a rien a faire).
Du coup, frustré de l’agressivité du service client sur ce sujet, et de l’aberration du coût total (dans un monde soit disant cloud, avoir des connexion hors de prix et limitées en volume, c’est quand même bien ridicule !) je me dis qu’il doit bien y avoir moyen d’avoir juste les 3 ou 4 chaines que je regarde pour un montant correct.
Et la je tombe sur zazeen (il y en a d’autre) qui présente une offre intéressante ! Donc je souscris, en 4 mois de zazeen, j’aurai déjà sauvé l’argent que coûte la solution pour un an ! (avec la suppression de la TV sur videotron)
Donc je reçois le boitier « set top box » (genre de freebox TV qui se branche sur le net via cable reseau ou wifi).
En branchant tout ça, au bout d’un moment l’image freeze, et ca lag a mort.
Ceci arrivant principalement en prime time, de 7:45PM a 10:30PM.

En attendant de valider que ca fonctionne, je n’avais pas encore résilié la TV videotron.
Apres des echanges avec le support zazeen (plutot efficace et rapide), on teste la set top box directement sur le modem (pour isoler le fait que mon routeur soit la cause). Mais au final le problème existait encore.

Je fais donc quelques check (traceroute, ping) vers le serveur de streaming de zazeen (IP identifiée avec un petit tcpdump sur mon routeur, ou du iptraf-ng). Mon routeur étant un PC sous CentOs avec 2 cartes réseau, un iptables, de l’ip_forward, du dhcpd, rien que du basic, simple et efficace.

Et la je vois que le trafic passe par des peerings a NY, et que c’est extrêmement lent ! Clairement, le peering videotron avec le fournisseur de cloud/reseau de zazeen n’est pas bon (accident, ou délibéré on ne le saura pas).

Du coup, je me connecte sur un des mes VPS OVH a BHS, et la petit traceroute. Surprise, cette fois ci on passe par torontoX, et ça va vite vite (Zazeen est du cote de Toronto, y compris les serveurs, de ce que je vois) !

Vient donc le challenge de router juste le trafic de ma boite set top box zazeen au travers de mon VPS.
Je trouve donc un article qui parle de sshuttle (https://github.com/apenwarr/sshuttle) qui est tout ce dont j’ai besoin.
Apres quelques essais, je monte le tunnel simplement entre mon routeur linux « maison » et mon VPS, avec les options qui permettent de router le trafic réseau a travers ca.
Il s’avere que sshuttle est gourmant en CPU et que faire passer TOUT mon trafic TCP a travers lui est trop gourmand en CPU tant sur mon routeur que sur mon VPS, par contre, ca fonctionne tres tres bien juste pour l’IP du serveur de streaming zazeen.

Les prerequis sont donc :
– assigner une IP statique (association par MAC dans le serveur DHCP) a la set top box
– et avoir un compte pour se loguer en SSH sur un VPS OVH
– connaître l’ip du serveur de streaming zazeen (tcpdump et grep sur la carte reseau locale, et grep sur l’ip de la set top box, ou encore lancer iptraf-ng pour voir le trafic live et voir l’ip sur laquelle se branche la set top box).
– etre root sur le routeur, et y installer sshuttle (généralement deja dans la repo)

La simplement sur le routeur on lance un :

#sshuttle -l 0.0.0.0 -r root@votre-vps:22 xx.xx.xx.xx

ou les éléments signifient :
sshuttle : le programme
-l 0.0.0.0 : écoute (bind) sur toutes les cartes (et donc répond aux clients du réseau local aussi)
-r root@votre-vps:22 : compte root (ou n’importe quel comptes utilisateur qui peut ouvrir une session) sur le serveur distant (remote) et le port d’ecoute SSH
xx.xx.xx.xx : l’ip su serveur de streaming zazeen (seul host pour lequel on veut router le trafic au travers de ce tunnel)

(tip : puis un petit ctrl+z et bg pour le mettre en arrière plan,et disown %1 pour le detacher de la console, ou bient encore plus simple, on utilise la fonction demon de sshuttle, en ajoutant l’argument -D pour que le tunnel passe en demon de lui meme.)

Une fois lancé, tout le trafic passe par le VPS OVH, et bénéficie du fantastique réseau OVH. A partir de ce moment la, la set top box derrière le routeur fonctionne sans aucun lag.

Le service consomme en moyenne entre 2 et 2.5 mbit/s, ce qui n’est presque rien sur les 100mbit/s du VPS.

La seule contrainte et qu’il faut relancer sshuttle quand la connexion internet subit une interruption, ce qui prend juste quelques secondes.

Ca a l’air compliqué, mais ca ne l’est pas 🙂

Pour se monter un routeur linux, ca prend un vieux PC genre dell optiplex 760 core 2 duo ($80 sur ebay) et une carte reseau supplementaire (intelpro pour $20), puis on installe une CentOs de base (sans interface), openssh, iptables, bind, iptraf-ng, dhcpd c’est pas mal ca 🙂

Les settings de base ca donne :
adresse ip de la carte publique : DHCP (branchée sur le modem qui la donne)
adresse ip de la carte interne : 172.20.0.1 mask 255.255.255.0

/etc/sysctl.conf qui contient :

net.ipv4.ip_forward = 1
net.ipv4.tcp_challenge_ack_limit = 999999999

/etc/selinux/config :

SELINUX=disabled

(sauf si vous voulez utiliser selinux et le configurer comme il faut pour que tout ceci fonctionne).

/etc/dhcp/dhcpd.conf :

# dhcpd.conf
# option definitions common to all supported networks...
option domain-name "local.lan";
option domain-name-servers 208.67.222.222, 208.67.220.220;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 172.20.0.0 netmask 255.255.255.0 {
  range 172.20.0.10 172.20.0.100;
  option routers 172.20.0.1;
  default-lease-time 600;
}

#set top box (use the MAC of the set top box to assign the ip)
host zazeen {
        hardware ethernet 60:02:b4:XX:XX:XX;
        fixed-address 172.20.0.111;
        option host-name "zazeen";
}

/etc/sysconfig/iptables :

# enp0s25 = carte reseau sur internet branchee au modem
# enp4s2 = carte reseau interne
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o enp0s25 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i enp4s2 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i enp4s2 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -i enp4s2 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i enp4s2 -o enp0s25 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

et voila, avec ça, la TV avec Zazeen sur une connexion videotron fonctionne au top.
Si vous avez un top routeur maison, rien n’empêche de mettre la boite linux sur votre réseau (la carte qui va normalement sur le modem branchée sur votre routeur, et la set top box sur la carte du réseau interne du pc linux. Le seul role sera pour lui de router le traffic dans le tunnel.

De mon bord, la télé fonctionne super, pour 3 fois moins que ce que j’avais avant, et le chaines que je veux.

une fois que tout ca a fonctionné, j’ai appelé pour resilier la TV vidéotron, et la on finit par me proposer de garder le tout pour juste le prix de la connection internet pour un an ! Et bien non, trop tard. Si l’offre avait été correct des le depart, je n’aurai meme pas pensé a chercher sur le net la TV par internet au Quebec.

A cote de zazeen, il y a d’autres acteurs comme tvwow.ca, vmedia.ca mais aussi le célèbre roku.com (mon voisin semble ravi de cette option aussi).

Pour revenir a Zazeen, j’oubliais, la boite de base inclue dans le forfait, permet de brancher un disque dur externe, et d’enregister les émissions depuis le guide TV comme avec les fournisseurs habituels. Donc rien a dire.
Oui il y a surveiller la bande passante mensuelle, en volume, ou, en cas de passage a IPTV, on devrait considérer l’option illimité 😀

Meme si c’est un peu fouillis, c’est un memo perso et ca pourra peut etre vous mettre sur la voie si vous chercher a fixer le probleme d’image qui freeze sur zazeen avec videotron 😀

Bonne TV !

Note de Decembre 2016, apres 2 mois et demi de zazeen impeccable, le service a cessé de repondre (fixé maintenant).
Apres 3 jours sans TV, j’ai donc contacté le support de Zazeen en expliquant la situation en détails, et la « Andrew » me répond. Il comprend la situation, et comprend l’idée de mon tunnel via mon VPS OVH.

La il me dit que le probleme vient du fait que les serveurs de Zazeen n’acceptent de streamer que vers l’IP reportée par la set top box (normal, limitation du CRTC, zazeen ne peut diffuser que la ou la licence l’autorise). Alors il me dit qu’il faut ajouter dans leur systeme l’IP que j’utilise comme gateway pour leur service, dans leur systeme. En moins de 3 heures, et 4 emails, le probleme est fixé !

Chez zazeen, ils ont associé l’IP de mon serveur OVH m’assurant le tunnel, a mon compte, et tout fonctionne a nouveau !

Je suis tres tres tres content de la solution, et surtout du support Zazeen ! Merci Zazeen, et vu le setup actuel, et si rien ne change dans la qualité du service, je ne changerai pas de fournisseur pour longtemps !

Well done Zazeen ! (in case you don’t speak french !)

samedi, octobre 15th, 2016 GNU - Linux, Reseau, Technologie Pas de commentaire

Fermeture de mon compte facebook – la dernière goutte

Pour une fois un article d’humeur, un peu plus loin de ma GNU/Linuxite habituelle !

Aujourd’hui j’ai finalement fermé mon compte facebook. Après des années, c’est un point qui devenait une question récurrente.
Etant convaincu que les systèmes doivent être libres, open source et gratuits, j’en attends également un traitement neutre des informations, au service de l’utilisateur.

Les points irritants de facebook se sont cumulés sur la plateforme au fil des années et qui m’ont finalement fait fermer mon compte.

D’abord les points positifs et pourquoi utiliser facebook :
– Garder le contact avec ses amis et connaissances, surtout quand on est parti vivre a l’autre bout du monde…
– Partager ses passions, suivre les publications dans les domaines qui nous intéressent
– Suivre les publications de nos contacts

Les points négatifs :
– Tout le contenu placé sur facebook devient la propriété de facebook https://fr-ca.facebook.com/legal/terms
– Le fait que facebook applique une censure sur les contenus postés, de manière sournoise : Vos posts semblent affichés, mais selon les intérêts de facebook, ceux si ne seront pas présentés a vos contacts. Il en est de même dans l’autre sens, au bon vouloir du système, les messages de vos contacts n’apparaissent pas dans votre fil d’information.
– Alors que l’intérêt du système, pour moi, est de pouvoir échanger avec mes contacts, dans les derniers mois, facebook a tous fait pour empêcher l’utilisation des messages via le navigateur sur mobile, bloquant par tous les moyens les communications, et forçant au chargement de son application messenger.
– L’application facebook sur smartphone est une incroyable invasion dans les données privées (les données que l’on ne poste pas sur facebook, mais que l’application peut acceder sur votre smartphone). Et ce avant meme l’arrivée de messenger. A cause de ca, et des notifications invasives qui finissent par dicter le rythme de notre journée,j’avais déja supprimé l’application, utilisant seulement le site via navigateur.
– L’application messenger, rendue obligatoire pour communiquer, est encore pire que l’application facebook au niveau de l’invasion et du traçage des personnes. Pas question de l’installer, et donc, impossible de communiquer avec famille et amis via facebook : https://fr-ca.facebook.com/about/privacy
– Facebook utilise TOUT le contenu relatif a vous, pour vous profiler, et afficher des communications ciblées et vendre des informations sur votre profil. Le contenu de vos échanges privés est également analysé (un peu comme gmail, que je n’utilise pas non plus).
– Tout ce que vous publiez, tout ce que vous commencez a taper sur le site sans même poster devient la propriété de facebook : https://fr-ca.facebook.com/legal/terms
– Facebook distribue, vend, copie, partage sans aucune limite toutes les données sur vous placées sur le site par vous même, ou vos contacts.

Donc non, ca suffit, mes affaires ne sont pas la propriété de facebook ! Et comment gérer le fait que la grand mère peut copier vos photos privées et les poster sur facebook ? Vous ne voulez pas apparaître sur une publicité, ni vos enfants, mais facebook a tous les droits, c’est clairement écrit, donc non, sorry fuck that !

Rendu la, le prix a payer ne vaut certainement pas le service résiduel restreint qui est offert aux utilisateurs aujourd’hui ! Non, un facebook qui est tout permis, vous prend tous les droits, et décide même de ce que vous pouvez dire, a qui vous pouvez le dire et par quel moyen.

L’ère du social media tire a sa fin, le service invasif a outrance, simplement parce qu’il est gratuit et donc non soumis aux lois de protection du consommateur, non merci.

A ce stade je ne comprends même pas comment une entreprise peut justifier sa présence sur facebook !! Par l’acceptance des termes, les entreprises cèdent la totalité du contenu placé sur facebook, créations graphiques, logos, images, vidéo, articles, tout ce qui est placé sur facebook devient la propriété de facebook ! C’est paradoxalement le suicide de la propriété intellectuelle ! Oui le logo d’une entreprise devient la propriété de facebook ! Est ce acceptable ? il semble que peu de monde ait activé la fonction cerveau avant de se jeter sur du community building, et autre merchandising gratuit, qui en réalité a un prix réel non négligeable !

Vous êtes sur facebook encore ? tout ce que vous avez mis la dessus ne vous appartient plus.
Bonne continuation dans l’ere du réseau social !

C’est dommage, car facebook est une plateforme innovante et solide, en participant a l’open compute project la compagnie participe a l’innovation et la recherche. Pilier du nosql et de cassandra db, on ne peut négliger les apports et innovations technologiques soutenues.

C’est a chacun d’avoir sa limite sur l’usage ou non d’un produit. Maintenant je vais jouer un peu du cote de joindiaspora et explorer le réseau social distribué, ou ceux qui participent sont aussi les décideurs.

Affaire a suivre, en espérant que ca explique a mes amis qui m’ont vu fermer mon compte facebook le pourquoi de la chose.

samedi, août 27th, 2016 Paranoïa, Technologie Pas de commentaire

Choisir un kernel par defaut au demarrage de Centos 7.2 – configuration grub2

En utilisant un noyau du depot elrepo, on a souvent un kernel plus recent que celui par defaut de la distribution.
Seulement quand il y a une mise a jour du kernel dans Centos, celui ci devient la valeur par defaut au boot de la machine dans la configuraiton de grub2.

Afin de pouvoir configurer le noyau de mon choix au demarrage avant de rebooter la machine, voici la procedure, connecté en root sur la machine en ssh idealement.

Lister les entrées disonibles :

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

qui va donner une liste de ce genre :

CentOS Linux (3.10.0-327.18.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.13.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.10.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.4.5.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.4.4.el7.x86_64) 7 (Core)
CentOS Linux (3.17.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.17.1-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux, with Linux 0-rescue-1768b0047cb7466dbd16e646ee0f993a

Afin de verifier l’entrée sauvegardée pour le demarrage de la machine, on utilise la commande suivante :

grub2-editenv list

qui va donner la liste actuellement selectionnée :

saved_entry=CentOS Linux (3.10.0-229.20.1.el7.x86_64) 7 (Core)

De mon bord je veux utiliser le plus recent disponible de elrepo :

grub2-set-default "CentOS Linux (3.17.2-1.el7.elrepo.x86_64) 7 (Core)"

On peut vérifier l’entrée a nouveau avec la commande :

grub2-editenv list

et voila !

Tags: , , , , ,

samedi, mai 28th, 2016 GNU - Linux, Technologie Pas de commentaire

 
décembre 2016
L M M J V S D
« Oct    
 1234
567891011
12131415161718
19202122232425
262728293031  
 

 
Suivez moi sur twitter - follow me on twitter
[FSF Associate Member]
 
Free Software, Free Society
VIRTUALISATION :
Compacter une image virtualbox VDI
Bon petit tutoriel esxi
Marche d'appliances vmware
Installer ESXi sur un disque IDE
Installer ESXi 3.5 sur un disque USB
Installer proxmox avec DRBD et migration / réplication à chaud
Installer OSSEC avec VMware
Information sur le VDI
SECURITE - FIREWALL :
Ouvrir des ports dynamiquement iptables - knockd
Autre tres bon tuto knockd
Docs Arp poisoning - Anglais
Metasploit test de pénétration
Zone H - sites piratés en temps réel
Blog invisible things
Tips protection sécurité wordpress
Pfsense - distribution firewall opensource - adsl internet failover
Iproute 2 mini how to - linux advanced routing
ClearOS - la passerelle sécuritaire lan - wan
HAUTE DISPONIBILITE :
CDN - Accélération de la distribution de données
drbd iscsi ocfs2 dm multipath tutoriel
Load balancing LVS
Load balancing opensource list
HA-Proxy :
HAproxy - http load balancer
Simple tutoriel HAproxy
HAproxy - debian tutoriel
Centos - Ip failover
Configuratoin DM-Multipath Redhat
VMware Doubletake - continuité
Quelques liens sur la réplication MySQL : Manuel MySQL, chapitre sur la réplication
Manuel MySQL, Tutoriel clair sur la mise en place
Autre tuto sur la mise en place de la réplication MySQL
Références pour optimisation du serveur MySQL
Utilisation de EXPLAIN mysql pour optimiser vos bases
optimiser vos bases - requetes et index
STOCKAGE RESEAU :
Un outil de clonage disque en reseau
Internet NAS 250Go 250 accès VPN
Server ISCSI avec Ubuntu tuto
ISCSI centos redhat tutoriel
Gérer et étendre un LVM
Créer sa piratebox ! trop cool
Deaddrops, les clés USB dans les murs, aussi cool !
OPTIMISATION WORDPRESS :
Télécharger Xenu
Comment utiliser Xenu
optimisation hébergement wordpress
Super howto wordpress (En)
Test de charge serveur web - Load impact
VPN - ROUTEUR - LAN:
Zeroshell - le mini-routeur wifi tout en un
Retroshare, votre réseau d'échange crypté!
Openvpn sur centos redhat
Intégrer Linux dans active directory
Routage inter-vlan avec Linux
Routage avec OSPF
Network Weathermap
TENDANCES - WEB:
Boutons twitter
Analyser les tendances des recherches Google
Protocole sitemap - robots.txt
Creer des animations CSS3
Code php pour interagir avec twitter
E reputation
Jquery
TRUCS ET ASTUCES GNU/LINUX :
Tuxmachines.org - Actus et tips linux
Configurer GRUB2 et grub2 ici
Panoet - en anglais - tips & tricks
Readylines tips and trick pertinents
Squid Clamav - proxy antivirus
Apprendre Unix en 10 minutes
13 tips sur les expressions régulières
IE Sous linux IES
LDAP 2.4 Quickstart guide
Tutoriel LDAP
Installation annuaire LDAP
Serveur Mail Postfix - Dovecot - LDAP - MDS
Créer un linux personnalisé en ligne - custom linux
Super site sur linux - en
Capistrano - déploiement automatisé
MONITORING :
Nagios tutoriel et doc
Nagios plugin NRPE tuto
Nagios plugin NRPE autre tuto
Nagios plugin NRPE officiel
Zabbix - fonctionnalités
Zabbix - installation
Guide MRTGsys - grapher la charge locale
MRTGsys - ajouter des graphs
MRTGsys - interpréter les données
Shinken - Monitoring
Thruk Monitoring webinterface
Shinken - Tutoriel
Shinken - Référence chez Nicolargo
AUTRES LIENS :
RemixJobs IT jobs
USB Multiboot
Reset mot de passe windows
Java python et autres tips, intéressant !
Forum inforeseau
Open Clipart
Excellent comic en ligne
Inforeseau.fr
 
Contrat Creative Commons
This création is licensed under a Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 2.0 France License.