Auteur Sujet: Le guide complet : Internet, TV et Téléphone sans Livebox (et bien plus encore)  (Lu 217896 fois)

0 Membres et 2 Invités sur ce sujet

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Bonjour à tous,

Suite à l’installation de la fibre Orange (offre Sosh) fin décembre, je vous propose ici un guide complet sur tout ce que j’ai appris et expérimenté autour de la fibre Orange et son exploitation sans Livebox.

Je vous propose tout d’abord un parcours initiatique autour de la fibre optique en tant que telle et sur l’architecture GPON utilisée par Orange avant de résumer les étapes de son installation à mon domicile illustrées en photo.

Je vous présenterai ensuite mon réseau avant la fibre (focus sur la partie FAI et non sur les serveurs/services mis en place chez moi) et sur celui une fois « pacher chez chosh ».

Nous verrons ensuite toutes les étapes d’une configuration complète « Net + TV + Tel » sans Livebox.

Pour chaque partie, je tenterai de fournir les explications les plus détaillées possibles. Les exemples sont donnés pour mes équipements, à savoir un Mikrotik RB3011 et un switch Netgear GS724T mais avec toutes ces informations vous pourrez facilement adapter cela à vos équipements.

Tartine spéciale sur l’IGMP qui parait simple de prime abord mais peut donner du fils à retordre lors de sa mise en place d’où la nécessité de bien comprendre le protocole au sens large (incluant l’IGMP Snooping et l’IGMP Querier).

On finira par la mise en place d’un serveur siproxd/Asterisk pour la partie téléphonie en lien avec l’IA de la maison (domotique) que je vous laisserai découvrir.

Bien sûr vous retrouverez beaucoup de chose déjà dites ici et là, l’idée étant de tout réunir à un seul endroit en expliquant avec le plus de détail possible tous les éléments et le pourquoi des choses et non juste balancer des scripts de configuration. J’ai trop vu/lu de chose sur ce forum où l’on applique bêtement des paramètres sans réellement comprendre ce que l’on fait !

Tout cela est basé sur mon retour d’expérience. Je voulais prendre le temps de vous raconter tout ce que j’ai appris et mis en place à la maison autour de cette fibre !

Avant tout un grand merci à tous les contributeurs de qualité que j’ai pu lire sur ce forum pour vos travaux de reverse engineering sur la livebox et/ou de documentation et partage d’expérience. Je n’ai pas tous les noms en tête mais je pense notamment à c0mm0n, zoc, grapplerbaki, akeix ou encore x0r.

Bonne lecture,



Sommaire
« Modifié: 13 janvier 2017 à 19:03:21 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
La fibre optique et le fonctionnement du GPON
« Réponse #1 le: 13 janvier 2017 à 16:17:18 »
La fibre optique et le fonctionnement du GPON

Bon avant de plonger tête baissé dans la configuration d’un réseau domestique basé sur la fibre d’Orange, il est intéressant voire indispensable de comprendre comment fonctionne la fibre optique et notamment celle mise en place par Orange avec son architecture GPON.

C’est ce que j’ai entrepris courant Novembre en voyant une équipe Sade poser un PBO sur ma façade ! En voyant la fibre arriver, j’ai cherché à comprendre son fonctionnement.

J’avais déjà quelques notions de base acquises il y a plusieurs années sur les bancs de l’école mais cela ne couvrait pas le GPON ou autre architecture dite « passive ». Je me suis alors questionné sur le fonctionnement d’un tel réseau, notamment sur l’orchestration des transmissions en uplink (car dire que ça utilise le « time division » est un peu vague ;)).

En guise de pense-bête personnel et/ou pour introduire et synthétiser tout cela j’ai écrit un 1er post que je vous invite à lire ici : https://lafibre.info/gpon/fonctionnement-du-gpon/.

Je survole rapidement les bases et la théorie de la fibre puis me focalise plus spécifiquement celle correspondant au GPON afin de comprendre à quoi sert d’ONT/ONU, l’OLT, les coupleurs ou comment fonctionne le downstream et surtout l’upstream avec le mécanisme d’allocation dynamique de la bande passante (DBA) sans oublier les acronymes de base que l’on voit partout, PTO, PBO, PMI, PMZ, & co …

Ainsi si les notions de GTC, GEM, DBA, T-CONT ne vous sont pas familières, n’hésitez pas à lire ou relire mon post ci-dessus.
« Modifié: 13 janvier 2017 à 17:03:17 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
L’installation de la fibre optique
« Réponse #2 le: 13 janvier 2017 à 16:17:26 »
L’installation de la fibre optique

C’est donc début novembre après avoir vu une équipe de Sade Telecom installer un PBO (Point de branchement optique) devant chez moi, je me suis empressé de me documenter sur l’architecture d’Orange. C’est ainsi que j’ai découvert ce forum.

En bon « geek » je me suis interrogé sur la date d’éligibilité ! Alors pour ceux comme moi désireux de connaitre les délais entre chaque étape l’équipe Sade a commencé à tirer la fibre sur les façades des maisons de mon quartier à partir du lundi 7 novembre sur toute la semaine. Le lundi suivant, le 14 novembre ils commençaient le câblage des FO dans les PBO installés sur les façades et le lendemain, le 15 c’était fini (pose des étiquettes vertes d’identification sur chaque fibre arrivant aux PBOs). Le 26 novembre, la cartographie du réseau Orange me passait à l’étape 3 « La fibre est en cours de raccordement » (picto jaune) et ce n’est que le 8 décembre que je passais à l’étape 4 « Vous êtes éligible » (picto orange).

Cependant sur le test d’éligibilité du site Orange ou Sosh, mon adresse était éligible dès la veille, le 7 décembre (petit retard de mise à jour de la carte). J’ai donc souscrit une offre Sosh + Livebox le 7/12 avec prise de RDV pour l’installation de la FO dans le logement pour le 22/12.

C’est donc un peu avant noël, le 22 décembre, qu’une équipe (comprendre les pères noël ;)) arrive à la maison pour tirer une fibre du PBO installé ma façade jusque dans la cave où j’ai installé ma baie réseau.

On commence par installer le PTO juste à côté de la baie dans ma cave :


 
Puis on remonte jusqu’à la façade extérieure en passant par le garage. Le travail est simplifié car j’ai installé des goulottes il y a plusieurs années pour passer l’ensemble de mes câbles RJ45/domotique/alarme de la maison.



Arrivé dehors il ne reste plus qu’à amener la fibre dans le PBO et la souder avec la première fibre disponible qui elle remonte jusqu’au PMZ (armoire de rue).


 
Pour rappel il deux paires de 6 fibres dans chaque PBO (6 logement par PBO + 6 fibres de libre en réserve).

Il y a un code couleur en fonction du numéro de la fibre. Dans mon cas, je suis le 1er à être connecté sur ce PBO, j’ai donc la fibre de couleur rouge (à gauche les fibres disponibles, à droite les fibres utilisées).


 
Dernière étape : se rendre au PMZ et vérifier l’atténuation de la fibre pour être sûr que le signal optique est OK de ma cave (PTO) jusqu’à l’armoire de rue (PMZ).



Enfin on connecte ma FO (ici en H7 du 1er module) à l’arrivée la fibre Orange une fois éclatée par les coupleurs optiques.


 
Voilà, je suis connecté au réseau GPON d’Orange !

Le technicien termine son intervention par connecter la Livebox et le décodeur TV pour vérifier que les services sont OK avant de me faire signer le résumé de l’intervention.

L’intervention aura durée prêt de 4 heures (dont 1 heure 30 de perdu car ils ont cassé la fibre lors de la soudure dans le PBO nécessitant la pose d’un boitier de raccordement dans le garage pour éviter de repartir « from scratch » jusqu’à la cave).

Une fois partie, j’ai pris le temps d’installer proprement l’ONT sur le mur et de le connecter sur mon réseau filaire. L’alimentation de l’ONT, comme pour la baie réseau, est assurée par un onduleur APC ici en noir sur la droite de la photo.

On voit l’ONT Huawei en haut avec ses petites LED vertes et la PTO à gauche de la prise téléphonique plus bas. J’ai bien sûr pris soin d’enrouler (ou « lover » pour les intimes) la jarretière entre l’ONT et la PTO.


 
Cet ONT est ensuite connecté sur mon switch Netgear (un GS724T), le cœur de réseau, lui-même connecté sur mon routeur Mikrotik (un RB3011) :


 
Vue d’ensemble :
 

« Modifié: 13 janvier 2017 à 17:02:54 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Avant la fibre : mon réseau avec Numéricâble
« Réponse #3 le: 13 janvier 2017 à 16:17:34 »
Avant la fibre : mon réseau avec Numéricâble

Comme dirait la célèbre maxime, « il faut savoir d'où l'on vient pour comprendre où l'on va » !

J‘étais chez Numéricâble depuis plus de 3 ans avec la « La Box » un boitier tout en un avec le décodeur TV, le modem/router et AP Wifi avec d’abord 30 méga de bande passante (et 1 méga en montée) puis début 2015, 200 méga et 20 en montée avec l’arrivée de la fibre dans l’armoire de rue (FTTLa). Bref très correct !

Comme toujours la « box » de l’opérateur n’est pas à la hauteur, partie routage/firewall très ou trop simple, des bugs dans le serveur DHCP, Wifi correct mais sans plus, bref, à peine installée et aussitôt désactivée à son maximum (wifi off et mode bridge activé).

Les services DNS/DHCP/VPN sont assurés par un contrôleur de domaine AD sous Win2012R2, l’AP Wifi par un Netgear R8000 sous DD-WRT, le routage/firewall par un Mikrotik RB3011UAS et un switch Netgear GS724T comme cœur de réseau. Toute la maison étant câblée en Cat6a S-FTP.

Le coaxial NC arrive dans le salon, connecté sur « LaBox » elle-même branchée en HDMI à la TV (pour être exact, tout est branché sur l’ampli home-cinéma lui-même relié à la TV). La partie « TV » de Numéricâble est donc simple à mettre en place car il n’y a qu’à brancher la box en HDMI pour profiter des services TV/VOD.

Pour la partie « Net », la box est configurée en « mode  bridge ». Elle est physiquement connectée sur un petit switch TP-Link 8 ports manageable (un TL-SG108E) dans le meuble TV sur le VLAN nommé « WAN » (PVID 20 dans mon cas). Sur ce switch, il y a aussi d’autre équipement comme la TV, l’ampli ou encore un Intel NUC (média-center) sauf que tous ces devices sont sur le VLAN « LAN » (PVID 10). Pour finir, le dernier port de ce switch est « taggé » (802.1q) et est connectée sur la prise RJ45 murale du salon qui descend jusque dans la cave, brassée sur le GS724T. On a donc un lien « Trunk » entre la cave et le salon pour faire passer les deux VLAN « WAN » et « LAN ».

Sur le GS724T j’ai un port est dédié au « WAN » (VLAN 20) qui sort « détagué » pour être connecté sur l’ « ether1 » (le 1er port) du RB3011 sur lequel est configuré un client DHCP pour la connexion Internet via le réseau NC. Une règle de NAT redistribue l’Internet sur le port 6 (ether6, soit le 1er port du 2ème switch du routeur) connecté sur le GS724 sur un port PVID10 qui représente le VLAN « LAN ».

De ce fait, même si « LaBox » est dans le salon, on a bien le routeur RB3011 en frontal pour la partie Internet, la Box étant complètement isolée du reste du LAN dans lequel on retrouve la TV, Ampli, Nuc, l’AP R8000 ainsi que mes différents serveurs, PC, laptops, smartphones, box domotique et autre objets connectés de la maison.

Pour résumer (le VLAN « LAN » en bleu, le VLAN « WAN » en vert et en violet le lien trunk) :


 
Ps : le schéma se focalise sur les équipements autour de la box NC et non sur l’ensemble du réseau résumé par le picto « Réseau LAN ».
« Modifié: 13 janvier 2017 à 17:02:39 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Avec la fibre : mon nouveau réseau avec Orange/Sosh
« Réponse #4 le: 13 janvier 2017 à 16:17:42 »
Avec la fibre : mon nouveau réseau avec Orange/Sosh

Avec l’installation de la fibre Orange l’idée est de garder la même architecture sauf que maintenant l’arrivée de la fibre est dans la cave (et non le salon), que la LiveBox n’a pas de mode « bridge » (et hors de question de faire du « double NAT») et que la partie TV est gérée par un autre boitier, le décodeur TV.

De ce fait, comme vous l’avez vu dans sur photos ci-dessus de ma cave, la fibre arrive sur l’ONT accroché au mur lui-même connecté en RJ45 sur le GS724T.

Sur ce GS724T j’ai dédié les deux premiers ports aux VLAN 832 (internet), 838 (VOD/Replay) et 840 (multicast pour la TV). Ces deux ports (g1 et g2) étant configurés en «VLAN Only » et « Ingress Filtering », c’est-à-dire qu’il ne peut y avoir que des trames taggées sur ces 3 VLANs là (et seulement ceux-là).


 
Sur le « g1 » on connecte l’ONT et sur le « g2 », l’ « ether2 » du routeur. Autrement dit l’interface « ether2 » du routeur est connecté à l’ONT avec le GS724T comme intermédiaire. A ce stade j’utilise « ether2 » pour le « WAN » Orange car « ether1 » est toujours utilisé provisoirement par la box NC.

Le fait d’avoir le switch comme intermédiaire entre l’ONT et le routeur est facultatif. Personnellement cela me sert pour le « port mirroring » à des fins d’inspection.

Cela peut servir aussi pour marquer les requêtes DHCP avec le CoS 6 comme expliqué sur ce forum à l’adresse : https://lafibre.info/remplacer-livebox/switch-gs108tv2-pour-prendre-en-charge-la-cos-devant-les-routeurs/.

Ceci dit ce marquage « CoS 6 » des requêtes DHCP peut être fait directement par le Mikrotik avec une règle Mangle :

add action=set-priority chain=output comment="CoS 6 for DHCP packets" \
    dst-port=67 src-port=68 new-priority=6 out-interface=vlan832-internet \
    passthrough=no protocol=udp

Erratum du 16/01/2017 : pour changer la CoS des requêtes DHCP émises par le routeur, il faudra utiliser un filtre sur un bridge et non une règle Mangle. Je détaille cette procédure sur ce post : https://lafibre.info/remplacer-livebox/le-guide-complet-internet-tv-et-telephone-sans-livebox-et-bien-plus-plus/msg406738/#msg406738

Pour ma part Orange m’attribue bien une IP quel que soit la priorité de ma requête. Il semble donc que je sois dans un zone où le marquage « CoS » du DHCP n’a pas d’importance.

Pour continuer la description de l’installation « physique », sur le RB3011 on a toujours l’ « ether6 » pour le LAN et j’utilise le 7ème port « ether7 » pour la TV. En fait, l’ancien VLAN « WAN » (PVID 20) est renommé en « TV ». J’ai donc un câble qui part de l’ « ether7 » du routeur et entre sur un port du switch pour être tagué « TV » (PVID 20) afin de pouvoir circuler dans le lien trunk jusqu’au salon et ressortir non tagué sur le décodeur TV qui a pris la place de la box NC.

Sur ce point on aurait pu se servir de l’interface « ether6 » qui relie déjà le routeur au switch pour le LAN ET la TV en associant sur cette interface les deux VLANs « LAN » (le 10) et « TV » (le 20).  Personnellement, avec le nombre de port sur le GS724 et sur le RB3011, je n’ai pas de besoin particulier à économiser du câble donc j’ai préféré séparer le deux VLANs physiquement. De plus cela présente un avantage car l’écran LCD en façade du routeur permettant d’afficher les stats des interfaces ne fonctionne qu’avec des interfaces physiques et non des VLANs.

Enfin pour finir j’ai, lors de mes tests/installation, utilisé le port 9 « ether9 » pour connecter la LiveBox par son port WAN. Cela m’a permis dans un 1er temps d’utiliser la TV ou encore le téléphone via cette LB avant de la supprimer complètement comme nous allons le découvrir.

Pour résumer, on a toujours le VLAN « LAN » en bleu, le VLAN « TV » en vert, en violet le lien trunk « LAN/TV » et l’arrivée Orange de l’ONT en « jaune » qui encapsule les VLAN 832/838/840 :


 
Ps : encore une fois, le schéma se focalise sur les équipements autour des équipements Orange et non sur l’ensemble du réseau résumé par le picto « Réseau LAN ».
« Modifié: 16 janvier 2017 à 13:40:04 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Configuration des interfaces du routeur
« Réponse #5 le: 13 janvier 2017 à 16:17:57 »
Configuration des interfaces du routeur

Pour résumer la configuration des interfaces sur mon routeur :
  • « ether2-WAN » vers ONT Orange (via le switch mais c’est optionnel)
  • « ether6-LAN » vers le switch PVID10 (le réseau LAN)
  • « ether7-TV » vers le switch PVID20 (le réseau dédié à la TV)
  • « ether9-LB » vers le port WAN de la Livebox (optionnellement)

Ce qui donne :

/interface ethernet
set [ find default-name=ether1 ] comment="Modem Numericable" disabled=yes \
    name=ether1-WAN
set [ find default-name=ether2 ] comment="ONT Orange" name=ether2-WAN
set [ find default-name=ether3 ] disabled=yes
set [ find default-name=ether4 ] disabled=yes
set [ find default-name=ether5 ] disabled=yes
set [ find default-name=ether6 ] comment=LAN name=ether6-LAN
set [ find default-name=ether7 ] comment=TV name=ether7-TV
set [ find default-name=ether8 ] disabled=yes
set [ find default-name=ether9 ] comment=Livebox name=ether9-LB
set [ find default-name=ether10 ] disabled=yes
set [ find default-name=sfp1 ] disabled=yes

Tous les autres ports sont désactivés et bien sûr aucune de ces interfaces n’a de « master port » (notion propre à Mikrotik, « sans master port » = chaque interface est indépendante).

Pour les VLANs on a :
  • Le VLAN 832 pour Internet, le 838 pour la VOD/Replay et le 840 pour le multicast TV sur l’interface “ether2-WAN” (l’arrivée de la fibre via l’ONT)
  • Optionnellement, on peut ajouter le VLAN 832 sur l’interface 9 sur laquelle on pourra connecter la LB

Soit :

/interface vlan
add comment="Internet ONT" interface=ether2-WAN loop-protect-disable-time=0s \
    loop-protect-send-interval=0s name=vlan832-internet vlan-id=832
add comment="Internet LiveBox" interface=ether9-LB loop-protect-disable-time=\
    0s loop-protect-send-interval=0s name=vlan832-livebox vlan-id=832
add comment="VOD ONT" interface=ether2-WAN loop-protect-disable-time=0s \
    loop-protect-send-interval=0s name=vlan838-vod vlan-id=838
add comment="TV ONT" interface=ether2-WAN loop-protect-disable-time=0s \
    loop-protect-send-interval=0s name=vlan840-tv vlan-id=840
« Modifié: 13 janvier 2017 à 20:43:03 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Configurer Internet sans la Livebox
« Réponse #6 le: 13 janvier 2017 à 16:18:05 »
Configurer Internet sans la Livebox

Comme vous l’avez compris j’utilise le VLAN 832 d’Orange pour me connecter sur Internet. Sur ce VLAN on doit se connecter au réseau via DHCP.

Il existe aussi une deuxième manière de se connecter sur Internet, en utilisant le PPPoE sur le VLAN 835.

Je n’ai pas trouvé de source « officielle » mais tout le monde sur ce forum s’accorde à dire que le PPPoE est amené à disparaitre ce qui parait d’ailleurs logique. En PPPoE on perd 8 octets dans chaque trame Ethernet (occupé par le protocole PPPoE) ce qui fait baisser le MTU à 1492. De plus en DHCP on n’a pas de mécanisme de déconnexion et en renouvelant le bail DHCP avant son expiration on obtient quasiment une IP « fixe ». Bref, autant partir sur le DHCP pour tous ces avantages.

De ce fait, pour se connecter sur Internet via le VLAN 832, il suffit juste d’utiliser un client DHCP en ajoutant deux options :
  • Option 77, le “User-Class” qui doit être « +FSVDSL_livebox.Internet.softathome.Livebox3 »
  • Option 90, « Authentication » qui doit être votre login Orange (fti/xxxxxx) en hexa précédé de 22 zéros, par exemple : « 0x00000000000000000000006674692f64656D6F6465736562»

Sur Mikrotik vous pouvez définir les options soit en hexa en commençant par “0x” ou soit en ASCII en entourant votre valeur par des simple quotes « ’ ».

De ce fait plutôt qu’écrire des choses pas très lisibles en hexadécimal comme on le voit dans certain exemple, vous pouvez plutôt utiliser des quotes pour écrire vos valeurs directement en ASCII.

Ainsi au lieu d’écrire :

add code=77 name=userclass value=0x2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833
add code=60 name=vendor-class-identifier value=0x736167656d

On aura :

add code=77 name=userclass value="'+FSVDSL_livebox.Internet.softathome.Livebox3'"
add code=60 name=class-identifier value="'sagem'"

Cependant pour l’option 90, comme il y a 22 zéros devant vous êtes obligés d’utiliser la nomenclature en hexa.

De ce fait, vous prenez votre login Orange, par exemple « fti/demo » que vous convertissez en hexa (via http://www.asciitohex.com/ par exemple) ce qui vous donne « 66 74 69 2f 64 65 6d 6f » et vous ajoutez 22 zéros devant, ce qui revient à ajouter sur votre routeur l’option suivante :

add code=90 name=authsend value=0x00000000000000000000006674692f64656D6F
Donc pour résumer sur le Mikrotik on déclare les deux options indispensables pour Orange :

/ip dhcp-client option
add code=77 name=userclass value=\
    "'+FSVDSL_livebox.Internet.softathome.Livebox3'"
add code=90 name=authsend value=\
    0x00000000000000000000006674692f64656D6F

Puis il ne nous reste plus qu’à ajouter un client DHCP sur le vlan 832 de l’interface 2 où nous avons connecté notre ONT en ajoutant ces deux options :

/ip dhcp-client
add dhcp-options=authsend,clientid,hostname,userclass disabled=no interface=\
    vlan832-internet

J’envoie également dans la requête les options de base « clientId » et « hostname » de RouterOS.

Et voilà, votre routeur est connecté sur le réseau Internet d’Orange !


 
N’oubliez pas ensuite d’ajouter une règle de NAT pour distribuer l’internet sur le réseau LAN :

add action=masquerade chain=srcnat comment="NAT LAN to WAN" out-interface=\
    vlan832-internet

Et libre à vous de configurer votre firewall ou les queues comme bon vous sembles, le Mikrotik est très complet dans ce domaine (un vrai firewall quoi ;)).

A ce sujet, n’oubliez pas de configurer vos interfaces sur une queue de type FIFO comme la « ethernet-default » :

/queue interface
set ether1-WAN queue=ethernet-default
set ether2-WAN queue=ethernet-default
set ether6-LAN queue=ethernet-default
set ether7-TV queue=ethernet-default
set ether9-LB queue=ethernet-default

En effet par défaut les interfaces du Mikrotik sont configurées en « only-hardware-queue ». Les queues gérées en « hardware » sont seulement bénéfiques dans le cas où les paquets qui transitent par l’interface n’ont pas besoin de solliciter le CPU, par exemple dans le cas d’interfaces avec master port (où le routeur ne sert que de commutateur).

Par contre, si vous avez des règles Mangles, firewall ou NAT qui s’appliquent sur une interface, les paquets qui y transitent solliciteront nécessairement le CPU du routeur pour l’exécution de ces règles. Et dans ce cas-là, il faudra utiliser une queue « software », beaucoup plus performante.
« Modifié: 13 janvier 2017 à 17:01:46 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Configurer les services TV sans la Livebox
« Réponse #7 le: 13 janvier 2017 à 16:18:13 »
Configurer les services TV sans la Livebox

La partie Internet était plutôt facile à mettre en place, pour la TV ça se complique un peu !

Une première solution, la plus facile, est d’utiliser la Livebox pour connecter notre décodeur TV comme expliqué par Baki dans son tutoriel à l’adresse : https://lafibre.info/remplacer-livebox/configuration-routeros-mikrotik-pour-livebox/msg307232/#msg307232

Il suffit en effet de connecter la LiveBox derrière votre routeur pour lui « faire croire » qu’elle est connectée directement sur le réseau Orange (expliqué en annexe) puis créer un pont (bridge) pour le VLAN 838 (VOD/Replay) et le VLAN 840 (Multicast TV) entre l’ONT (ether2) et la LiveBox (ether9).

Vous pourrez ensuite connecter votre décodeur TV sur l’un des ports LAN de la Livebox afin de profiter des services TV/VoD.

Mais honnêtement c’est un peu l’usine à gaz et si comme moi vous souhaitez économiser la consommation électrique de la Livebox, nous allons configurer le nécessaire pour pouvoir la ranger définitivement dans son carton !

Connecter le décodeur TV au réseau
Comme expliqué ci-dessus, j’utilise l’interface « ether7 » du routeur pour les services TV.

Concrètement, il y a un câble réseau entre l’« ether7 » (nommée « ether7-TV » sur le routeur) et le port « g8 » de mon switch GS724T. Ce port est assigné au VLAN « TV » (PVID 20) car je ne souhaite pas connecter le décodeur TV sur mon réseau local, je préfère isoler mon réseau LAN du réseau TV Orange dans lequel on aura le décodeur.

Il y a ensuite un lien trunk du switch GS724T de la cave vers le switch du salon (le TP Link SG108E) pour pouvoir ressortir sur le port n° 2 détagué côté le salon où l’on connecte le décodeur TV.

Pour rappel :



En clair, le décodeur TV est le seul device connecté sur l’interface « ether7 » du routeur avec les deux switches en intermédiaire.

La première étape consiste donc à donner une IP au décodeur dans un réseau propre au VLAN TV. Dans mon cas j’ai choisi le réseau 192.168.42.0/24.

Mon routeur Mikrotik, sur l’interface 7, aura l’adresse IP 192.168.42.254 et l’on ajoutera sur cette interface un serveur DHCP pour fournir une IP au décodeur TV avec les serveurs DNS d’Orange (obligatoire) et l’IP de notre routeur comme passerelle.

Pour configurer l’adresse IP pour l’interface TV (ether7) du routeur :

/ip address
add address=192.168.42.254/24 comment="Routeur TV local" interface=ether7-TV \
    network=192.168.42.0

Puis pour ajouter un serveur DHCP sur cette interface :

/ip pool
add name=pool-tv ranges=192.168.42.10-192.168.42.19

/ip dhcp-server
add address-pool=pool-tv authoritative=yes disabled=no interface=ether7-TV \
    lease-time=1w1d name=TV
   
ip dhcp-server network
add address=192.168.42.0/24 dns-server=\
    81.253.149.1,80.10.246.130 gateway=192.168.42.254 netmask=24



Et voilà, votre décodeur est maintenant connecté sur le réseau local 192.168.42.0/24 sur le VLAN local « TV ».

Configurer le firewall pour le décodeur TV

Avant d’aller plus loin configurons tout de suite le firewall pour n’accepter que le strict nécessaire pour consommer les services TV/VoD et autre (Deezer, radios, etc..) depuis le décodeur.

Pour simplifier les règles au niveau du firewall, j’ai créé une liste d’interface propre à la TV qui regroupe donc les vlan 838, 840 et l’interface locale « ether7 » sur laquelle on a connecté notre décodeur :

/interface list
add name=orange_tv

/interface list member
add interface=ether7-TV list=orange_tv
add interface=vlan838-vod list=orange_tv
add interface=vlan840-tv list=orange_tv

Pour les règles sur la chaine “input” il faut autoriser :
  • Le flux TV (RTP sur les ports UDP 8200 et 8202) depuis le vlan 840
  • Le service UDP 5678 depuis les VLAN 838 et 840
  • L’IGMP depuis le vlan 840 et l’ « ether7 » (on verra pourquoi un peu plus bas !)

/ip firewall filter
add action=accept chain=input comment="Allow multicast TV Orange" dst-port=\
    8200,8202 in-interface=vlan840-tv protocol=udp
add action=accept chain=input comment="Service Orange TV" dst-port=5678 \
    in-interface-list=orange_tv protocol=udp
add action=accept chain=input comment="Allow IGMP for Orange TV" \
    in-interface-list=orange_tv protocol=igmp

Implicitement on autorise également le DHCP depuis l’« ether7 » pour que le décodeur puisse obtenir son IP mais comme c’est le routeur Mikrotik qui est lui-même le serveur DHCP sur cette interface il n’y a pas besoin de déclarer cette règle (= règle implicite).

En transit sur le routeur (chaine « forward »), on autorisera :
  • Les requêtes DNS & NTP depuis « ether7 » vers le VLAN 832 (internet)
  • Le trafic http/https toujours depuis « ether7 » vers le VLAN 832 indispensable pour le programme TV, les radios, Deezer, etc…
  • Le flux TV (RTP sur les ports UDP 8200 et 8202) depuis le vlan840 vers « ether7 »
  • Le flux VOD/replay (udp 5000) depuis « ether7 » vers le vlan 838
  • Les services VOD/replay (https et tcp 8554) toujours depuis « ether7 » vers le vlan 838 indispensable pour naviguer dans le catalogue

/ip firewall filter
add action=accept chain=forward comment="DNS/NTP pour le decodeur TV Orange" \
    dst-port=53,123 in-interface=ether7-TV out-interface=vlan832-internet \
    protocol=udp
add action=accept chain=forward comment="HTTP/S pour le decodeur TV Orange" \
    dst-port=80,443 in-interface=ether7-TV out-interface=vlan832-internet \
    protocol=tcp
add action=accept chain=forward comment="TV Orange" dst-port=8200,8202 \
    in-interface=vlan840-tv out-interface=ether7-TV protocol=udp
add action=accept chain=forward comment="VOD Orange (Video)" dst-port=5000 \
    in-interface=ether7-TV out-interface=vlan838-vod protocol=udp
add action=accept chain=forward comment="VOD Orange (Service)" dst-port=\
    443,8554 in-interface=ether7-TV out-interface=vlan838-vod protocol=tcp

Le reste du trafic est bloqué. On a bien sûr déjà configuré une règle de NAT pour sortir sur internet via le VLAN 832 précédemment, on ajoutera ici une nouvelle règle NAT pour sortir sur le VLAN 838 afin d’accéder à la VOD :

add action=masquerade chain=srcnat comment="NAT Orange VOD" out-interface=\
    vlan838-vod

A ce stade votre décodeur doit pouvoir se connecter sur votre réseau « TV », afficher l’heure (NTP) et se connecter sur des applications comme Deezer, la radio ou encore le programme TV.

Les services VOD et Replay
Tout comme l’internet, votre routeur doit se connecter sur le réseau VoD (VLAN 838) en DHCP. Et comme pour le VLAN 832, il faut spécifier certaines options dans la requête DHCP pour obtenir un bail.

Ces options obligatoires sont :
  • Option 60, le “Class Identifier” qui doit être “sagem”
  • Option 61, le “Client Identifier” qui doit être l’adresse MAC de la Livebox
  • Option 77, le “User-Class” qui doit être « +FSVDSL_livebox.MLTV.softathome.Livebox3»

On ajoute l’option 61 en “hexa” en commençant par “0x01” suivit de l’adresse MAC de votre Livebox (sans les “:”). Vous trouverez votre adresse MAC sous la Livebox.

De ce fait pour ajouter ces options en considérant que la MAC de ma LB est “5E:FF:56:A2:AF:15”, on écrira :

add code=60 name=class-identifier value="'sagem'"
add code=77 name=vod_userclass value=\
    "'+FSVDSL_livebox.MLTV.softathome.Livebox3'"
add code=61 name=clienId_livebox value=0x015eff56a2af15

Notez que les noms (name) ne servent qu’à identifier les options sur votre routeur. Tout ce qui est transmis dans la requête DHCP c’est le « code » et la « value » de chaque option. Vous pouvez donc nommer vos options comme bon vous sembles.

Enfin on déclare le client DHCP sur le vlan 838 de l’ONT avec les options créées ci-dessus :

/ip dhcp-client
add dhcp-options=class-identifier,clientId_livebox,hostname,vod_userclass \
    disabled=no interface=vlan838-vod



Et voilà, vous obtenez une adresse IP en 10.x.x.x/22 de la part d’Orange et vous pouvez maintenant profiter des services VOD/Replay sur votre décodeur.
 
Recevoir la TV
Il ne reste plus maintenant qu’à supporter la TV et pour cela il faut d’abord comprendre son fonctionnement.

Multicast et IGMP
Les chaines TV sont « multicastées », c’est-à-dire qu’Orange diffuse le flux de chaque chaine en temps réel (par le protocole RTP) sur des adresses multicast (224.0.0.0/4) distinctes.

Lorsque vous regardez une chaine, vous vous abonnez au groupe multicast de la chaine sélectionnée en utilisant le protocole IGMP (Internet Group Management Procotol). Ainsi les équipements réseaux jusqu’à votre décodeur vous achemineront le flux TV (groupe) pour lequel vous êtes abonnés (c’est-à-dire la chaine que vous regardez). Lorsque vous changez de chaine vous vous abonnez à un nouveau groupe et donc, par la même occasion, vous vous désabonnez du groupe de la chaine précédente.

Pour vous abonner à une chaine, c’est-à-dire à un groupe multicast, le décodeur Orange envoie une requête IGMP de type « Membership Report » au routeur multicast et quand vous quittez un groupe (la chaine précédente par exemple), le décodeur envoie à ce routeur multicast un message IGMP de type « Leave Group » (supporté depuis la version 2 du protocole IGMP).

En plus de cela, le routeur multicast envoie régulièrement des messages de type « Membership Queries » afin de savoir « qui » est dans le groupe. Chaque client/abonné doit répondre aux sollicitations du routeur qui envoi ces « Membership Queries » (que l’on nomme « requérant » ou « Querier ») par des « membership reports » afin de confirmer les abonnements en cours.

Le décodeur TV doit donc répondre à chaque interrogation du routeur pour confirmer sa présence dans le groupe afin de continuer à recevoir le flux vidéo (cela évite de rester abonné à un groupe si par exemple le décodeur n’a pas pu envoyer un message de type « leave » quelle que soit la raison, suite à une coupure réseau ou un arrêt brutal du décodeur par exemple).

Enfin, il faut savoir que le décodeur TV n’est pas directement connecté au routeur multicast d’Orange mais à la Livebox qui opère en tant que « proxy IGMP » sur le réseau local.

Sans Livebox c’est donc à notre routeur d’assurer ce rôle de « proxy IGMP ».

Installer l’IGMP Proxy sur RouterOS
Tout d’abord la fonctionnalité « IGMP Proxy » sur un routeur Mikrotik fait partie du package « multicast » qui n’est pas préinstallé par défaut. Il faudra donc télécharger les « Extra packages » sur la page http://www.mikrotik.com/download.

Comme mon routeur RB3011 est basé sur l’architecture ARM, je télécharge les « Extra packages » pour ARM. Une fois ce ZIP téléchargé vous pourrez retrouver dans son contenu le fichier «multicast-6.XX-arm.npk».

Pour installer le package, il suffit d’uploader le fichier dans la « File List » (fenêtre « Files » sur Winbox) de votre routeur puis le redémarrer. Au démarrage du routeur, les fichiers « npk » présent dans la File List seront automatiquement installés.

En vous reconnectant avec Winbox ou via l’interface Web, vous trouverez les fonctionnalités « IGMP Proxy » et « PIM » dans le menu « Routing ».

Configuration du routeur multicast
Nous allons ensuite définir une adresse IP statique pour l’interface VLAN840, par exemple 192.168.255.254 (vous pouvez utiliser n’importe quelle IP privée ça n’a pas d’importance) :

/ip address
add address=192.168.255.254 comment="TV Orange" interface=vlan840-tv \
    network=192.168.255.254

Enfin il ne reste plus qu’à activer le proxy IGMP avec le vlan840 en « upstream » et l’interface « ether7 » en « downstream » :

/routing igmp-proxy interface
add alternative-subnets=193.0.0.0/8,81.0.0.0/8,172.0.0.0/8,80.0.0.0/8 \
    interface=vlan840-tv upstream=yes
add interface=ether7-TV


 
Et voilà, c’est tout ! Vous pouvez maintenant regarder les différentes chaines TV depuis votre décodeur Orange si et seulement si aucun switch entre le décodeur et votre routeur n’a activé l’IGMP Snooping (voir le chapitre suivant).

Optionnellement, on peut également ajouter une queue pour prioriser le trafic du flux TV sur le routeur. D’abord on marque les paquets en transit (forward) qui entrent sur le vlan 840 et qui sortent sur l’interface « ether7 » :

/ip firewall mangle
add action=mark-packet chain=forward comment="Mark TV packets" in-interface=\
    vlan840-tv new-packet-mark=tv out-interface=ether7-TV passthrough=no

Puis on crée une queue avec une plus haute priorité que la normale (> à 0) pour chaque paquet marqué « tv » :

/queue tree
add name=tv packet-mark=tv parent=ether7-TV priority=2 queue=default

En plus de cela, au niveau de mon switch Netgear, l’ « ether7 » est connectée sur le port « g8 » qui est encapsulée dans le VLAN « TV » (PVID 20) avec une priorité (802.1p) fixée à « 5 », soit plus que la normale. Sur le switch du salon, la QoS est également gérée par les entêtes 802.1p.


 
Ainsi tout le trafic du VLAN « TV » entre le routeur et le décodeur sera prioritaire sur tout le reste du réseau (à l’exception de la VoIP que j’ai configuré avec une priorité encore plus importante chez moi).
« Modifié: 13 janvier 2017 à 19:18:54 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Pour aller plus loin et bien comprendre l’IGMP : Snooping & Querier
« Réponse #8 le: 13 janvier 2017 à 16:18:21 »
Pour aller plus loin et bien comprendre l’IGMP : Snooping & Querier

Comme nous l’avons vu plus haut, pour regarder une chaine on s’abonne à son groupe multicast en envoyant un message IGMP nommé « Membership Report » au routeur multicast, dans notre cas le routeur Mikrotik qui est un proxy vers le routeur multicast d’Orange. Une fois abonné on reçoit donc le flux de chaine en question.

Pourquoi l’IGMP Snooping ?

Les switches (commutateurs) de niveau 2 n’ont pas connaissance de cette notion d’abonnement multicast (l’IGMP est un protocole de niveau 3). Autrement dit, ils considéreront le trafic multicast comme des trames de diffusion (broadcast) et donc répliqueront le trafic sur tous les ports.

Cela peut poser de gros problème de performance car le ou les flux multicast pour lequel vous êtes abonné seront diffusés sur tous les ports de vos switches et donc reçu par tous les équipements connectés à votre réseau !

Pour optimiser ce comportement il existe un mécanisme nommé « IGMP Snooping » permettant à un switch de niveau 2 d’analyser le trafic IGMP afin d’apprendre « qui est abonné à quoi » (= quel port du switch à quel groupe multicast).

Ainsi en scrutant (snoop) les rapports IGMP qui le traverse, le switch peut apprendre et donc construire une table de mapping reliant un port à un groupe afin de répliquer le trafic multicast seulement sur les bons ports pour chaque groupe.

Dans mon architecture c’est optionnel car j’ai fait le choix d’isoler la partie TV dans un VLAN dédié. Dans ce VLAN il n’y a qu’un client : le décodeur TV. Ainsi sans l’« IGMP Snooping » mes deux switches répliqueront bêtement le flux TV multicast en broadcast mais seulement sur les ports du VLAN « TV » ! Et ce VLAN ne contient qu’un port : celui du décodeur TV ! De ce fait, avec ou sans l’IGMP Snooping le trafic sera toujours envoyé sur ce même port !

Par contre, si vous configurez votre proxy IGMP dans le même VLAN que votre réseau LAN ou bien si vous comptez brancher plusieurs décodeurs dans le VLAN « TV », il est important d’activer l’IGMP Snooping afin d’envoyer le bon flux TV au décodeur qui en fait la demande et non de l’envoyer sur tous les ports ! Autrement dit s’il y a plus d’un périphérique sur le réseau/VLAN sur lequel se trouve votre routeur multicast (IGMP proxy) vous devez activer l’IGMP Snooping !

Subtilités dans l’implèmentation de l’IGMP Snooping
Dans la réalité, l’« IGMP Snooping » est assez subtile à comprendre car ce n’est pas vraiment une norme. Chaque constructeur peut l’implèmenter avec plus ou de moins de liberté créant des différences de fonctionnement et de paramétrage entre les différentes marques voire même entre les différents modèles/versions d’une même marque.

En effet, l’IGMP Snooping est décrit dans la RFC4541 classée dans la catégorie « Informational ». Le document précise bien en entête :
Citer
This memo provides information for the Internet community.  It does not specify an Internet standard of any kind.

Dans les grandes lignes, tous les switches et équipements implèmentant l’IGMP Snooping fonctionnent de la même manière : ils analysent le trafic IGMP, c’est-à-dire les différents messages IGMP pour déterminer quel port est abonné à quel groupe multicast de façon à acheminer le flux multicast seulement aux ports abonnés et non à tout le monde (broadcast).

Il y a cependant des différences dans l’implèmentation de cette fonctionnalité, notamment en ce qui concerne le « report suppression ».

Certain font ce qu’on appelle de l’« IGMP Snooping passif », c’est-à-dire que le « snooping » n’intervient pas dans le trafic IGMP : le switch se contente d’analyser les messages IGMP qui le traverse pour apprendre tout en laissant passer ces messages (d’où le terme « passif »).

D’autre font de l’« IGMP Snooping proxy reporting » aussi nommé « reports suppression » qui en plus d’apprendre du trafic IGMP, filtre (= bloque) certain message IGMP pour réduire ce trafic et la charge du routeur multicast. De ce fait le switch ne se contente pas seulement d’analyser le trafic IGMP de façon passive, il devient « actif » en bloquant certain message !

Le report-suppression
L’idée est simple, si vous avez deux hôtes connectés sur un même switch (avec IGMP Snooping) lui-même connecté sur un routeur multicast. L’un des deux hôtes s’abonne à un groupe multicast en envoyant un « Membership report » au routeur multicast. Le switch analysant le trafic IGMP comprend que cet hôte s’est abonné à un groupe et donc met à jour sa table de mapping de façon à diriger le trafic multicast de ce groupe seulement pour lui. Le deuxième hôte ne recevra donc aucun trafic grâce à l’IGMP Snooping.

Maintenant, le deuxième hôte décide de s’abonner au même groupe multicast, il envoie donc un « Membership report » pour ce groupe au routeur multicast. Mais si notre switch implèmente l’IGMP Snooping avec « report suppression », la demande d’adhésion ne parviendra jamais au routeur.

En effet il y a « suppression du report ». Pourquoi ? Tout simplement parce que le switch considère que le routeur n’a pas à avoir connaissance de cette information. En effet, comme le switch reçoit déjà le flux multicast de ce groupe pour le 1er hôte, il peut tout simplement mettre à jour sa table de mapping pour envoyer ce flux également au 2ème hôte car il a compris en « snoopant » le message IGMP que ce 2ème  hôte souhaitait également se joindre à ce même groupe.

Le fait d’envoyer cette demande d’adhésion au routeur n’apporte rien car le flux transite déjà du routeur au switch. Ainsi dans l’idée de réduire le trafic et la charge du routeur, le switch « absorbe » ce report.
Il en va de même en cas de désabonnement d’un des deux hôtes. Si le 1er hôte décide de quitter le groupe, il enverra un message IGMP de type « Leave ». Comme le switch sait d’après sa table de mapping qu’il y a toujours le 2ème hôte sur ce groupe, il décidera de ne pas communiquer cette information au routeur mais ajustera sa table pour ne plus envoyer ce flux sur le port du 1er hôte. Ce n’est seulement lorsque le dernier quitte un groupe que le message IGMP « Leave » sera acheminé jusqu’au routeur multicast.

Les messages absorbés le sont sur une période de temps assez courte (une dizaine de seconde) car n’oubliez pas que le routeur multicast, élu « requérant », envoie périodiquement des requêtes de type « Membership Queries » pour savoir « qui est encore dans le groupe ». Les hôtes, pour confirmer leur présence dans le groupe, répondent par des « Membership report ». Or si le switch considère que nos hôtes sont déjà dans le groupe, il bloquera ces reports et donc sans réponse, le routeur multicast coupera le flux.

C’est pourquoi le « reports-suppression » opère donc sur des fenêtres de temps de quelques secondes. Lorsque le requérant envoie les  « Membership Queries », les hôtes répondent tous par « Membership report » avec un délai aléatoire de réponse de quelques secondes (pour éviter les pics de réponse simultanées). Le switch décide alors de laisser passer un des reports mais de supprimer les autres. Le routeur sait donc qu’il y a au moins un hôte dans ce groupe via le switch et le flux est maintenu.

L’IGMP Querier
S’il y a « IGMP Snooping » sur un réseau il est nécessaire d’avoir également un « IGMP Querier », c’est-à-dire un « requérant IGMP ».

Comme nous l’avons dit plus haut, le requérant (ou « IGMP Querier ») envoie régulièrement des messages de types « Membership Queries » afin de savoir « qui » est (toujours) là pour un groupe donné. Les clients, dans notre cas le décodeur TV, doivent répondre par un « Membership report » sous peine d’être exclus du groupe.

Ces « Queries » sont indispensable pour l’IGMP Snooping car les « Membership report » permettent au switch de maintenir la table de mapping à jour. En effet, lorsque le switch ajoute un port à un groupe il y a un timeout au-delà duquel, sans « report », le switch supprimera le port de sa table. Sur un switch Netgear GS724T il est possible de configurer ce temps d’expiration (paramètre « Host timeout ») par défaut défini à 260 secondes (4min 20s).

En d’autre terme, si pendant plus de 4 min 20 (par défaut avec le GS724T), un hôte n’a pas renvoyé de « Membership report », son ou ses flux multicast seront coupés au niveau du switch par l’IGMP Snooping.
Dans notre cas c’est le Mikrotik qui est le « Querier » sur notre interface locale (downstream) pour confirmer les abonnements en cours auprès du routeur multicast d’Orange via « upstream » sur le VLAN 840.
Pour être exact, c’est le routeur multicast d’Orange qui lance ces « Queries » toutes les 60 secondes pour s’assurer qu’il y a au moins un hôte par groupe multicast. Notre routeur Mikrotik étant un IGMP Proxy relaie les « queries » sur l’interface locale, il est donc le « Querier » local.

[admin@ROUTER-AJS] > /routing igmp-proxy interface print status
Flags: X - disabled, I - inactive, D - dynamic, U - upstream
 0  U interface=vlan840-tv threshold=1
      alternative-subnets=193.0.0.0/8,81.0.0.0/8,172.0.0.0/8,80.0.0.0/8
      upstream=yes source-ip-address=192.168.255.254 rx-bytes=2695867916
      rx-packets=5151365 tx-bytes=0 tx-packets=0

 1    interface=ether7-TV threshold=1 alternative-subnets="" upstream=no
      querier=yes source-ip-address=192.168.42.254 rx-bytes=0 rx-packets=0
      tx-bytes=2695867916 tx-packets=5151365

Seulement, avec l’IGMP Snooping activé sur un Netgear GS724T (ou modèle équivalent), si la fonctionnalité « IGMP Querier » n’est pas activé sur le switch, vous aurez toujours des coupures toutes les 4 minutes sur les chaines TV !

La complexité de l’IGMP Snooping d’un modèle à l’autre : attention à l’IGMP Querier sur un Netgear
C’est pourquoi l’IGMP Snooping est pour moi compliqué à mettre en place. Comme il ne s’agit pas d’un standard chaque marque, modèle ou version implèmente cette fonctionnalité sous le même nom « IGMP Snooping » mais pas rigoureusement avec le même fonctionnement. Et certain détail ont toute leur importance !

En lisant les spécifications ou documentations techniques, on a beaucoup de mal à comprendre exactement comment cette fonctionnalité a été implèmenté. De plus en fonction du modèle, vous aurez plus ou moins de liberté quant au paramétrage.

Par exemple, sur le switch dans mon salon, un TP-Link SG108E (8 ports et manageable, série E = Easy Smart) on peut activer ou non l’IGMP Snooping et activer ou non le « Report Message Suppression » expliqué précédemment.

En clair on peut activer l’IGMP Snooping en mode passif ou actif au niveau global (et non sur un port ou VLAN particulier). Et rien à propos de l’IGMP Querier, les « Queries » sont forwardées à tous les ports du VLAN (et ce d’après mes expériences, car on ne trouve pas ce comportement décrit noir sur blanc).

Sur mon switch central, le Netgear GS724T c’est une autre histoire. Il faut d’abord activer la fonctionnalité au niveau global ce qui bloquera tout le trafic IGMP qui traverse le switch (là encore, ce n’est pas clairement expliqué, il faut le déduire).

Ensuite, il faudra activer le Snooping soit au niveau des ports ou soit au niveau des VLANs. Pour chaque port ou VLAN on pourra configurer les différents timeouts, le mode « fast-leave » (expliqué un peu plus bas), etc…
Les routeurs multicast sont détectés automatiquement par le switch lorsqu’il voit passer des « Queries IGMP ». Mon GS724T arrive bien à détecter (en moins de 60 secondes) le routeur multicast d’Orange sur le port « g1 » (où est connecté l’ONT) qui èmet une « Query » sur 224.0.0.1 toutes les 60 secondes mais par contre aucune détection de l’IGMP Proxy du routeur Mikrotik connecté sur le « g8 » (pourtant cette interface èmet bien une Query en 224.0.0.1). C’est assez obscure, la documentation precise seulement « If a multicast router is attached to the switch, its existence can be learned dynamically. You can also statically configure an interface as a multicast router interface, which is an interface that faces a multicast router or IGMP querier and receives multicast traffic ». Bon heureusement on peut définir explicitement les ports sur lesquels on a un routeur (ou proxy) multicast.

Bien qu’on puisse configurer beaucoup de paramètre en rapport avec l’IGMP sur le GS724T, rien à propos du mode actif/passif de l’IGMP Snooping. En clair il n’est possible d’activer ou non le « report suppression ». D’après mes tests (car encore une fois ce n’est pas explicitement décrit), ce mode est activé par défaut. En d’autre terme le GS724T réalise de l’IGMP Snooping en mode proxy reporting.

D’ailleurs en consultant des documentations techniques des autres modèles de la même gamme, on retrouve le GS108T (équivalent en 8 ports) qui propose les mêmes fonctionnalités mais qui dans sa 1ere version (de 2007) laissait la possibilité d’activer ou non ce mode « report suppression ».

Mais la « palme de l’ambiguïté » concerne l’IGMP Querier. Comme expliqué ci-dessus, sans IGMP Snooping, le visionnage des chaines TV depuis le décodeur Orange fonctionne parfaitement avec mon installation. Par contre avec l’IGMP Snooping activé sur mes deux switches (en configurant les VLANs « à snooper », en mode actif et routeur multicast proprement déclaré) on a une coupure du flux toutes les 4 minutes environ.
L’image se fige quelques secondes puis repart. Quatre minutes, ce qui correspond parfaitement au « Host timeout ». Il semble donc, qu’en l’absence de « Membership report » de la part du décodeur TV, le switch décide de couper la diffusion du flux « pensant qu’il n’y a plus personne ». Or si le décodeur n’èmet pas de « Membership report » c’est qu’il n’a pas reçu de « Query » laissant à supposer qu’il n’y a pas de requérant, rôle normalement assuré par le routeur Mikrotik.

Sans sortir un analyseur réseau type Wireshark pour analyser le trafic sur le port « ether7 » via un mirroring au niveau du switch, j’ai utilisé l’outil « Torch » intégré au routeur Mikrotik permettant d’avoir une idée du trafic réseau sur les interfaces du routeur.

Ainsi si on écoute le trafic sur le VLAN840 (en provenance d’Orange) et sur l’interface « ether7 » (interface locale) on retrouve toutes les 60 secondes un paquet IGMP envoyé depuis le réseau Orange (ici 172.28.99.118) sur l’adresse multicast 224.0.0.1 (qui correspond à « tout le monde ») et instantanèment dernière, on voit un package IGMP sur l’interface locale partir de notre routeur (192.168.42.254) vers tout le monde (224.0.0.1).


 
Je ne peux pas analyser le contenu du paquet directement depuis « Torch » mais tout laisse à penser qu’il s’agit là d’un « General Query ». D’après la RFC 2236 (le standard qui décrit l’IGMPv2) :
Citer
Routers periodically send a General Query on each attached network for which this router is the Querier, to solicit membership information.  [….]  A General Query is addressed to the all-systems multicast group (224.0.0.1) [….]

Avec cela j’en déduis donc qu’il y a bien un Querier sur le réseau local, notre Mikrotik assure ce rôle comme nous l’avons vu dans la partie précédente. Alors comment expliquer cette coupure dans le flux ? Si notre routeur, le Querier IGMP, envoie bien des « Membership Queries » sur 224.0.0.1, le décodeur TV devrait y répondre avec un « Membership Report » ce qui forcera le switch à mettre à jour sa table de mapping l’empêchant ainsi de le sortir du groupe après le délai d’expiration de 4 minutes !

Sur l’interface de configuration du Netgear GS724T on trouve bien une section dédiée à la configuration de l’ «IGMP Snooping Querier » et je répète IGMP Snooping Querier (et non d’IGMP Querier). Je ne sais pas si les deux sont identiques, la documentation n’est pas très claire. Le Querier ou requérant en français, est une notion propre à l’IGMP. Le Snooping en a besoin mais sans Snooping le Querier a aussi son importance pour savoir si des clients sont toujours abonnés à des groupes !

Alors comme vous allez le voir au chapitre suivant, pour que votre TV fonctionne sans aucune coupure, il faut activer « IGMP Snooping Querier » en spécifiant l’adresse IP de votre routeur multicast (ou plutôt le proxy IGMP, ici notre routeur Mikrotik).

Sur Wikipédia on peut lire à propos de l’IGMP Querier sur la page d’IGMP Snooping
Citer
Some IGMP snooping implementations include full querier capability. Others are able to proxy and retransmit queries from the multicast router

J’ai d’abord pensé que cette fonctionnalité sur le Netgear permettait d’activer un « IGMP Querier » complet (full) et je ne comprenais donc pas l’intérêt dans la mesure où mon routeur Mikrotik assurait déjà ce rôle ! Mais dans la documentation, une phrase m’a mis la puce à l’oreille :
Citer
Use this screen to enable or disable the IGMP snooping querier feature, specify the IP address of the router to perform the querying, and configure the related parameters

« Specify the IP address of the router to perform the querying » : pourquoi déclarer l’adresse IP du routeur multicast ? Mais surtout « to perform the querying », sous-entendu ce n’est pas le switch qui le fait ?

De ce fait en relisant la phrase sur Wikipedia, j’en ai donc déduit que le Netgear est un « proxy qui retransmet les queries du routeur multicast », d’où la nécessité de déclarer l’adresse du « Snooping Querier VLAN Address » bien que sa description n’est encore une fois pas très claire : « the snooping querier IP address to be used as the source address in periodic IGMP queries sent on the specified VLAN. ».

Bref après toutes ces déductions, recoupement d’information et de tests, les « Membership Queries » semblent bloquées par le GS274T ce qui nous oblige à activer explicitement l’«IGMP Snooping Querier » en spécifiant l’IP de notre routeur requérant pour que les queries se propagent bien dans le VLAN, forçant le décodeur TV et les autres abonnés à renvoyer des « reports » actualisant ainsi la table de mapping des switches ce qui empêchera les coupures de flux !

Cela parait logique en fin de compte, mais ça aurait été bien de pouvoir le lire noir sur blanc !

A noter que sur le TP Link SG108E, beaucoup plus simple, pas besoin de faire tout çà. Les Queries sont normalement propagées. Ainsi si j’active l’IGMP Snooping seulement sur ce switch et non pas sur le Netgear, tout marchait très bien sans aucun paramétrage !

C’est donc à voir au cas par cas, en fonction de chaque switch !
« Modifié: 13 janvier 2017 à 17:00:39 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Exemple de configuration de l’IGMP Snooping & Querier sur mes switches
« Réponse #9 le: 13 janvier 2017 à 16:18:44 »
Exemple de configuration de l’IGMP Snooping & Querier sur Netgear GS724T et TP Link SG108E

Maintenant que la théorie est connue passons à la configuration de l’IGMP Snooping sur le GS724T de Netgear et le SG108E de TP-Link.

Sur l’interface du Netgear GS724 je vais tout d’abord activer l’IGMP Snopping sur le switch :


 
Ensuite plutôt que définir les ports à « snooper », on va scruter le trafic IGMP au niveau des VLANs. Dans notre cas, l’IGMP Snooping sera actif sur les VLAN 20 (mon VLAN « TV ») et le VLAN 840 (car dans mon installation j’ai connecté l’ONT sur ce switch avant d’arriver sur le routeur) :


 
Pour les deux VLANs, j’ai activé le « Fast Leave », c’est-à-dire que le switch supprime le port de sa table de mapping dès qu’il voit passer un message IGMP de type « Leave » parce que je n’ai qu’un seul client pour un port donné : sur le VLAN840 le routeur et sur le VLAN20 le décodeur (option à désactiver sur le vlan 20 si vous avez plusieurs décodeurs, sinon si l’un d’entre eux déconnecterait les autres sur un même groupe).

De plus sur notre VLAN TV j’active également le « Query Mode » afin d’indiquer que nous avons un requérant sur ce VLAN que nous allons configurer plus bas (indispensable pour éviter les coupures du flux TV).
Enfin je déclare sur le port « g8 » du switch (le port où est connecté l’interface « ether7 » du routeur) notre routeur multicast pour le VLAN 20 :


 
Cette action n’est pas obligatoire sur le 840, le switch découvrira automatiquement le routeur d’Orange en moins de 60 secondes (fréquence des queries IGMP envoyées côté Orange) mais vous pouvez aussi le déclarer explicitement : sur l’interface « g1 » le routeur multicast sur le vlan « 840 ».

Enfin sur la page « IGMP Snooping Querier » on active cette fonctionnalité.


 
Puis sur la 2ème page « Querier VLAN Configuration », on configure l’adresse de notre routeur/proxy IGMP (192.168.42.254 dans mon cas) pour le VLAN 20 de la TV :


 
Enfin vous pouvez ou non activer le mode d’élection du requérant. Si désactivé le switch sera requérant seulement s’il est le seul sur le VLAN. Si activé, il y a un mécanisme d’élection dans lequel c’est le switch qui a l’adresse la plus basse qui est élu requérant. Pour ma part je n’ai qu’un seul switch capable de gérer l’ « IGMP Snooping Querier » donc peu importe l’option, mon switch sera toujours le requérant.

Côté salon, sur le switch TP Link qui distribue le VLAN « TV » au décodeur, la configuration est beaucoup plus rudimentaire (gamme « Easy Smart »). On peut simplement activer l’IGMP Snooping ainsi que le « Report Message Suppression ».


 
Maintenant on a une configuration fonctionnelle exploitant l’IGMP Snooping. On peut utiliser le décodeur TV Orange pour regarder la TV sans aucune latence ni coupure !

Vous pouvez d’ailleurs consulter la table de mapping du Netgear ou TP Link pour voir les abonnements en cours.

Dans mon cas on voit bien le flux TV arriver sur l’interface « g1 » et repartir sur « g2 » pour le VLAN 840 (ports entre l’ONT et mon routeur) et ce même flux (les MAC sont identiques) entre « g3 » (lien trunk vers le salon) et « g8 » (ether7 du routeur) sur mon VLAN TV (le 20) :
 


L’adresse MAC « 01:00:5e:7f:ff:fa » correspond à l’adresse « 239.255.255.250 » et la « 01:00:5e:00:06:58 » à « 232.0.6.88 ». On retrouve ces deux adresses multicast dans la table de mapping du TP-Link entre les ports « 1 » et « 2 » (voir la screenshot plus haut).

Le « 239.255.255.250 » correspond à l’adresse multicast utilisée par SSDP pour la découverte (UPnP) et l’adresse multicast « 232.0.6.88 » correspond (chez Orange) à la chaine D17.
Vous pouvez convertir les IP et MAC multicast avec cet outil http://nettools.aqwnet.com/macipcalc/macipcalc.php. Le Netgear présente sa table de mapping avec des adresses MAC alors que le TP-Link affiche des IP.
« Modifié: 13 janvier 2017 à 17:45:48 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Bonus : Recevoir la TV sur son ordinateur
« Réponse #10 le: 13 janvier 2017 à 16:18:54 »
Bonus : Recevoir la TV sur son ordinateur

Je considère que votre « ordinateur » est dans votre réseau (ou VLAN) « LAN » et non dans le VLAN « TV » (ce qui est mon cas). Dans le cas contraire ou dans le cas où votre proxy IGMP et donc votre décodeur TV sont déjà connectés dans votre réseau (ou VLAN) « LAN » vous pouvez sauter cette partie.

Dans mon cas nous allons ajouter une interface « downstream » sur le proxy IGMP et reconfigurer le switch pour multicaster la TV Orange également dans le réseau LAN.

Ajouter une interface downstream sur le proxy IGMP pour le réseau LAN

Pour rappel, j’ai deux interfaces du routeur connectées au switch : « ether6-LAN » pour le LAN et « ether7-TV » pour la TV.

Il suffit donc d’ajouter l’interface « ether6-LAN » en downstream sur le proxy IGMP :

/routing igmp-proxy interface
add interface=ether6-LAN



Il ne faut pas oublier de mettre à jour le firewall pour autoriser l’IGMP en « input » depuis « ether6-LAN » ainsi que le transite des flux RTP (port 8200 en UDP).

Ensuite sur le Netgear GS724T, j’ajoute le VLAN « 10 » (mon VLAN pour le réseau LAN) dans la liste de l’IGMP Snooping.

Attention, on désactive bien le « Fast Leave » sur le VLAN « LAN » car je pourrais avoir plusieurs clients dans même groupe IGMP (= regardant la même chaine) :


 
Aussi, on active le « Query Mode » et sur la page « Querier VLAN Configuration » on vient configurer l’adresse IP de notre routeur dans le « LAN » pour la configuration de l’IGMP Snooping Querier.

N’oubliez pas non plus de déclarer le port de votre routeur sur le switch pour le VLAN « LAN » sur la page « Multicast Router VLAN Configuration ».

Et voilà notre LAN est capable également de consommer des flux multicast d’Orange tout en étant dépendant du réseau du décodeur TV.

Regarder la TV avec VLC
La grande majorité des chaines sont malheureusement cryptées (protection DRM) c’est pourquoi on nous envoie une carte à puce à insérer dans le décodeur TV.

En effet ce système de contrôle d’accès nommé « Viaccess » est développé Viaccess Orca qui est ni plus ni moins qu’un filiale d’Orange. On le retrouve bien entendu dans les décodeurs TV d’Orange/Sosh mais aussi chez Canal+ / CanalSat et d’autres opérateurs étrangers.

Ce système permet de « désembrouiller les chaînes ». Le mécanisme se compose d’un protocole permettant de récupérer de façon sécurisé les clés pour déchiffrer un flux, un module d’accès conditionnel (en gros un lecture de carte) et la carte à puce contenant un jeu de clés propre à l’abonné vous permettant de faire valoir vos droits afin de récupérer la clé pour la chaine souhaitée.

Ainsi pour simplifier, quand vous sélectionnez une chaine, le module d’accès conditionnel (intégré dans le décodeur) « va lire » votre clé sur la carte à puce que vous avez insérée et via le protocole Viaccess (PC 5.0 depuis 2012) récupèrera la clé pour déchiffrer le flux TV demandé. Si vous n’avez pas accéder à cette chaine, vous n’obtiendrez pas la clé pour décoder le flux et on vous affichera un joli message pour vous inviter à contacter le service client afin d’ajouter des chaines à votre bouquet.

Viaccess ne s’occupe que de la partie « contrôle d'accès » (pour délivrer les clés de déchiffrement de façon sécurisé). Le chiffrement à proprement parler est basé sur l’algorithme CSA (pour Common Scrambling Algorithm) mixant de l’AES-128 et du XRC (eXtended emulation Resistant Cipher). Le CSA massivement utilisé pour le cryptage des chaines de télévision (standard du consortium DVB).

J’ai trouvé sur ce forum la liste des chaines diffusées par Orange sans DRM.

Par exemple pour visionner Arte en HD+ diffusé sans DRM, on utilisera le groupe multicast à l’adresse : 232.0.3.4. Depuis VLC, ouvrez un « flux réseau» en indiquant l’adresse « rtp://@232.0.3.4:8200 ».


 
En plus du flux vidéo HD+ (1080p) vous obtiendrez également les différents flux audio, les sous-titres et même la description du programme en cours et à venir.

Un utilisateur du forum a compilé toutes les chaines dans une liste M3U. Ainsi pour les chaines sans DRM vous pouvez télécharger et ouvrir la liste à l’adresse : http://www.mediafire.com/file/ssj4xteaw3pxxiv/Orange+Free+%2809.10.16%29.m3u

Vous aurez dans votre interface VLC la liste de toutes les chaines disponibles (incluant C8, Arte, HD1, LCI, i-Télé, etc…).


 
« Modifié: 13 janvier 2017 à 17:17:45 par seb59 »

seb59

  • Expert
  • Abonné Orange Fibre
  • *
  • Messages: 60
  • Wasquehal (59)
Configurer la téléphonie sans LiveBox
« Réponse #11 le: 13 janvier 2017 à 16:49:25 »
Configurer la téléphonie sans LiveBox
Pour finir notre installation nous allons mettre en place la téléphonie.

Pour cela, nous avons trois manières accéder à la téléphonie Orange :
  • En utilisant la LiveBox pour y connecter un téléphone DECT ou HD (CAT-iq)
  • En utilisant l’application mobile (Android et iOS) « Livebox Phone »
  • En utilisant la passerelle SIP « siproxd » avec le plugin « siproxd_orange » qu’on pourra coupler ou non à un serveur de téléphonie (Lync/Skype for Business, Asterisk, etc..)

Utiliser la LiveBox comme passerelle DECT ou CAT-iq

Si vous avez un téléphone DECT ou HD vous pouvez utiliser la LiveBox pour la téléphonie. Il suffira de connecter votre Livebox derrière votre routeur comme expliqué dans l’annexe en fin de document. Une fois connectée, vous pourrez brancher votre téléphone DECT sur la prise « verte » dédiée derrière la Livebox.

Avec des switches manageables et des VLANs vous pouvez également déplacer votre LiveBox dans votre logement pour la placer à l’endroit où vous souhaitez connecter votre téléphone.

Autre solution, apparier un ou plusieurs (4 max) téléphones HD (norme CAT-iq 1.0 ou 2.0) via WPS (https://assistance.orange.fr/telephone/telephone-par-internet/toutes-les-livebox/installer-et-utiliser/associer-le-telephone-a-la-livebox/telephone-hd-connecter-a-la-livebox-play_20401-20804).

Contrairement à ce que j’ai pu lire, la Livebox n’est pas une base DECT, il faudra donc utiliser votre propre base DECT connectée via la prise verte de la Livebox. Par contre la Livebox intègre une base CAT-iq 2.0 vous permettant d’apparier des téléphones HD compatibles sans base supplèmentaire.

La solution fonctionne très bien mais nécessite de ressortir votre Livebox du carton et reste limitée en terme d’usage.

Utiliser l’application « LiveBox Phone »
Une autre solution qui n’en est pas vraiment une : utiliser l’application « Livebox Phone » sur votre mobile Android ou iOS (http://applications.orange.fr/application/Livebox%20Phone).

Le problème est que pour èmettre ou recevoir des appels il faut être connecté sur le réseau Wifi de sa Livebox or dans notre cas on a justement rangé la Livebox dans son carton !

Si l’application n’est pas connectée au Wifi de sa Livebox on peut juste consulter la messagerie vocale, recevoir des notifications lors des appels entrants (sans pouvoir répondre) et configurer le renvoi d’appel.
 


Donc au final, l’application est assez limitée car elle ne peut fonctionner que lorsque vous êtes chez vous et en faisant de votre Livebox votre AP Wifi principal ce qui dans mon cas n’est pas envisageable.

Sur la partie renvoi d’appel vous pouvez aussi vous connecter sur votre espace client Orange/Sosh par Internet et configurer le renvoi des appels de votre téléphonie fixe Livebox vers votre mobile par exemple. Cela permettra de recevoir les appels de votre fixe où que vous soyez mais par contre vous ne pourrez pas èmettre ! Voir https://assistance.orange.fr/telephone/telephone-par-internet/toutes-les-livebox/installer-et-utiliser/rester-joignable/renvoi-appels/telephone-par-internet-rediriger-les-appels_19032-19121#onglet2

Utiliser un proxy SIP
La véritable solution est d’accéder à votre la ligne téléphonique via le protocole SIP (Session Initiation Protocol), un des protocoles les plus courant pour la VoIP. Cela nous permettra de connecter soit une application soit un véritable serveur de téléphonie sur notre ligne tel Asterisk (ou dérivés), Lync (Skype for Business) et bien d‘autre.

Tout cela est possible grâce aux travaux d’un certain « x0r » qui sur son blog explique comment fonctionne l’application « Livebox Phone » présentée plus haut. Il s’agit bien d’une ligne SIP mais avec quelques modifications propres à Orange concernant le mécanisme d’authentification non conforme au standard. De ce fait il n’est pas possible d’utiliser cette ligne directement via le protocole SIP comme c’est le cas chez Free.

Cependant ce même auteur a développé un plugin pour « siproxd » (un serveur proxy SIP) capable de gérer ce mécanisme d’authentification propre à Orange. Le code est publié sur Github. Ainsi ce proxy permet d’exploiter votre ligne téléphonie en SIP standard ce qui nous permettra de brancher ce que l’on souhaite dessus.

Préparer une machine sous Debian
Pour ma part j’ai déployé une petite machine virtuelle x64 sur un de mes hyperviseurs en lui allouant 512 Mo (pas besoin de plus). Sur cette machine j’ai installé un simple Debian 8 nu avec un serveur SSH.

Pour faciliter l’administration je vous conseille d’installer « sudo » en ajoutant votre utilisateur dans le groupe.

apt-get install sudo
adduser sebastien sudo
exit

Pour installer le proxy, commencez par les prérequis :
   
sudo apt-get install libssl1.0.0 libssl-dev
sudo apt-get install libcurl3 libcurl4-openssl-dev
sudo apt-get install pkg-config libxml2-dev libosip2-dev libltdl-dev make unzip

Installer « siproxd » et le plugin Orange
Téléchargez, compilez et installez la dernière version en date de « siproxd »  (voir http://siproxd.tuxworld.ch/) :
 
wget http://siproxd.tuxworld.ch/siproxd-29Dec2016.tar.gz
tar zxvf siproxd-29Dec2016.tar.gz
cd siproxd-0.8.3dev
./configure --with-included-libtool
make
sudo make install
cd ..

Et faire de même pour le plugin Orange :
 
wget https://github.com/nsapa/siproxd_orange/archive/master.zip
unzip master.zip
cd siproxd_orange-master
ln -s ../siproxd-0.8.3dev siproxd
./configure
make
sudo make install
cd ..

Pour la configuration, copiez le fichier d’exemple “/usr/local/etc/siproxd.conf.example” dans “/usr/local/sbin/siproxd” et ouvrez le pour édition:

sudo cp /usr/local/etc/siproxd.conf.example /usr/local/sbin/siproxd/siproxd.conf
sudo nano /usr/local/sbin/siproxd/siproxd.conf

Ajoutez les lignes suivantes pour charger le plugin de x0r sans oublier de définir le login/password de votre compte Orange :

load_plugin=plugin_orange.la
plugin_orange_username = nom.prenom@orange.fr
plugin_orange_password = password_orange

Dans le fichier, il faut également configurer :
  • L’interface d’entrée (if_inbound) et de sortie (if_outbound) de votre proxy. Dans notre cas il s’agit de la même interface « eth0 », interface connectée sur le réseau local
  • L’adresse DNS ou IP (host_outbound) qui pointe vers votre adresse IP public. Pour ma part j’ai un nom de domaine avec un hôte (A) qui pointe vers mon IP Orange (mis à jour automatiquement par un script Powershell en cas de changement d’IP). Si vous n’avez pas de domaine, renseignez-vous pour mettre en place un « dyndns » ou entrez l’IP directement (qu’il faudra changer manuellement en cas de changement).
  • Définir les hôtes autorisés à s’enregistrer sur le proxy (hosts_allow_reg). Pour ma part il n’y a que le serveur Asterisk (installé sur la même machine) qui sera autorisé à se connecter sur la ligne, donc 127.0.0.1.
  • Le port d’écoute SIP pour ce proxy et les ports RTP utiliser pour transporter la voix. On définit le sip_listen_port à 5070 et la plage des ports RTP (rtp_port_low et rtp_port_high) de 7070 à 7089.
  • Le mode démarrage (daemon ou non) : daemonize = 1
  • Le répertoire des plugins (plugindir) à « /usr/local/lib/siproxd/ » (là où est installé le plugin Orange)

Pour ma part, les lignes ajoutées ou modifiées dans ce fichier :

load_plugin=plugin_orange.la
plugin_orange_username=prenom.nom@orange.fr
plugin_orange_password=password_orange
if_inbound  = eth0
if_outbound = eth0
host_outbound = voip.mondomaine.net
hosts_allow_reg = 127.0.0.1/8
sip_listen_port = 5070
daemonize = 1
rtp_port_low  = 7070
rtp_port_high = 7089
plugindir=/usr/local/lib/siproxd/

Utilisation des serveurs DNS Orange
Il faut absolument utiliser le serveur DNS d’Orange pour la résolution des noms de domaine. Si vous avez un adressage fixe et non via DHCP, vous pouvez simplement ajouter le serveur « 81.253.149.1 » (DNS d’Orange) dans le fichier « /etc/resolv.conf ».

Autrement, si votre serveur obtient son IP via un serveur DHCP comme dans mon cas (avec réservation bien évidement), les DNS sont délivrés dans la réponse DHCP ce qui modifiera automatiquement votre configuration « /etc/resolv.conf ».

De ce fait, si votre serveur DHCP utilise les serveurs DNS d’Orange pas de soucis, mais si comme moi vous avez vos propres serveurs DNS qui eux même n’utilisent pas les serveurs d’Orange (forwarders) cela ne marchera pas.

C’est pour cela que j’ai configuré le client DHCP pour le forcer à utiliser le serveur DNS d’Orange :

sudo nano /etc/dhcp/dhclient.conf
prepend domain-name-servers 81.253.149.1;
sudo dhclient -v eth0

N’oubliez pas de renouveler votre bail pour que ces options soient prises en compte :

sudo dhclient -v eth0
Configurer le routeur
Lorsque qu’un client SIP (dans notre cas le serveur « siproxd », qui est « client SIP » via à vis d’Orange) s’enregistre il communique son adresse, son port SIP (signalisation) et sa plage de port RTP (transport de la voix).

Cela permettra au serveur en face (Orange ici) d’établir la communication à son initiative (par exemple en cas d’appel entrant).

C’est pour cela qu’on a configuré un « host_outbound » dans la configuration du proxy qui doit pointer vers votre IP public.

Bien entendu, il faudra également rediriger les ports RTP et SIP vers votre serveur Debian interne.

Sur le Mikrotik, on commence par ajouter une règle NAT pour rediriger ces ports UDP vers notre serveur siproxd (dans mon cas sur 10.2.4.25) :

/ip firewall nat
add action=dst-nat chain=dstnat comment="NAT to SIP/RPT (Siproxd)" dst-port=\
    5070,7070-7089 in-interface=vlan832-internet protocol=udp src-address=\
    81.253.0.0/16 to-addresses=10.2.4.25

Puis on autorise le trafic en transite sur ces ports :

/ip firewall filter
add action=accept chain=services comment="Allow SIP from Orange (VoIP)" \
    dst-port=5070,7070-7089 protocol=udp src-address=81.253.0.0/16

Notez bien que la règle du firewall est sur la chaine « forward » et non « input » car ces ports sont redirigés avec la règle NAT vers la machine interne. Ainsi le trafic n’est pas entrant via à vis du routeur (input) il ne fait que transiter (forward).

Beaucoup font l’erreur, il faut juste se rappeler que dans le « Packet Flow » du Mikrotik le routage a lieu AVANT le firewall. Ainsi le « Destination NAT » est fait dans le « prerouting » qui précède les chaines « input » et « forward ». (Voir http://wiki.mikrotik.com/wiki/Manual:Packet_Flow)

Notez aussi que je restreins (de façon assez large) le trafic sur ces ports aux adresses du réseau Orange en 81.253.0.0/16 car ce proxy ne doit être accessible qu’aux serveurs Orange et non à tout le monde.

Pour finir on peut également optimiser le trafic VoIP sur notre réseau. Pour cela on ajoute une queue pour traiter ce trafic de façon prioritaire sur notre routeur et on élève la CoS de ce trafic pour que nos switches priorisent également ce trafic.

/ip firewall mangle
add action=mark-packet chain=forward comment="Mark VoIP packets" dst-port=\
    5060,5070,7070-7089,12100-12120 new-packet-mark=voip passthrough=no \
    protocol=udp
add action=set-priority chain=forward comment="CoS 6 for VoIP packets" \
    dst-port=5060,5070,7070-7089,12100-12120 new-priority=6 out-interface=\
    ether6-LAN passthrough=no protocol=udp

/queue tree
add name=voip packet-mark=voip parent=ether6-LAN priority=4 queue=default

Enregistrement du service et démarrage du proxy SIP
Sur une Debian Jessie, éditez simplement le fichier « /etc/rc.local » et ajoutez la ligne suivante :

/usr/local/sbin/siproxd –c /usr/local/etc/siproxd.conf &
Vous pouvez maintenant lancer le proxy :

sudo /etc/init.d/rc.local stop
sudo /etc/init.d/rc.local start

Et voilà la passerelle vers la « SIP made Orange » est prête, il ne reste plus qu’à se connecter dessus soit avec un client SIP ou soit avec un serveur sur lequel on pourra connecter plusieurs clients et faire beaucoup plus de chose.
« Modifié: 13 janvier 2017 à 17:24:55 par seb59 »