User Tools

Site Tools


informatique:cpe_siea

LiAin & K-NET: TV et Internet sur le même réseau

Bien que je regarde très rarement la TV, c'était un petit challenge sympa à faire. Avec le super FAI K-net, nous pouvons avoir sur notre CPE un trunk VLAN avec un VLAN TV (1989) (en multicast, trop cool :p), et internet (1971) (unicast). Le but est donc de faire cohabiter ces deux réseaux ensemble pour pouvoir, sur mon réseau local (192.168.42.0/24) et public (192.168.43.0/24), avoir internet ainsi qu'un accès à la TV.
VLANs délivrés par le port 1 du CPE:

  • 1989 - VLAN TV
  • 1971 - Internet

Ma config:

  • Réseau local privé: 192.168.42.0/24 - VLAN 1
  • Réseau wifi public: 192.168.43.0/24 - VLAN 42 (TODO > 43)
  • Réseau Internet WAN k-net: 178.250.210.95/32 et 178.250.210.25/32 - VLAN 1971
  • Réseau IPTV: 10.0.0.200/24 (DHCP) - VLAN 1989

Configuration de la gateway/serveur/routeur

Les interfaces:

  • eth1 : iface publice
  • eth0 : iface privée

On ajoute les vlans:

vconfig add eth1 1989
vconfig add eth1 1971

et un dhclient sur les deux:

dhclient eth1.1989
dhclient eth1.1971

ce qui nous donne en total un truc de ce genre:

eth0      Link encap:Ethernet  HWaddr e8:40:f2:ec:89:02  
          inet addr:192.168.42.1  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::ea40:f2ff:feec:8902/64 Scope:Link
          inet6 addr: 2a03:4980:1:3::1/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1222094 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5053176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:368763789 (351.6 MiB)  TX bytes:6327644525 (5.8 GiB)
          Interrupt:20 Memory:f7d00000-f7d20000 

eth1      Link encap:Ethernet  HWaddr e8:40:f2:ec:89:05  
          inet6 addr: fe80::ea40:f2ff:feec:8905/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8024239 errors:0 dropped:123 overruns:0 frame:0
          TX packets:3119915 errors:2 dropped:0 overruns:0 carrier:2
          collisions:5986 txqueuelen:1000 
          RX bytes:8268388907 (7.7 GiB)  TX bytes:2054014709 (1.9 GiB)
          Interrupt:18 Memory:f7c00000-f7c20000 

eth0.42   Link encap:Ethernet  HWaddr e8:40:f2:ec:89:02  
          inet addr:192.168.43.1  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::ea40:f2ff:feec:8902/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43155 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4558 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3013547 (2.8 MiB)  TX bytes:643655 (628.5 KiB)

eth1.1971 Link encap:Ethernet  HWaddr e8:40:f2:ec:89:05  
          inet addr:178.250.210.95  Bcast:178.250.210.255  Mask:255.255.255.0
          inet6 addr: fe80::ea40:f2ff:feec:8905/64 Scope:Link
          inet6 addr: 2a03:4980::11:0:5/96 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2923102 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2462012 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1984126941 (1.8 GiB)  TX bytes:1987377169 (1.8 GiB)

eth1.1989 Link encap:Ethernet  HWaddr e8:40:f2:ec:89:05  
          inet addr:10.0.0.200  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ea40:f2ff:feec:8905/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4603945 errors:0 dropped:52 overruns:0 frame:0
          TX packets:5109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6083103713 (5.6 GiB)  TX bytes:622065 (607.4 KiB)

Ainsi que les routes respectives:

default via 178.250.210.254 dev eth1.1971  metric 1 
178.250.210.0/24 dev eth1.1971  proto kernel  scope link  src 178.250.210.95 

192.168.42.0/24 dev eth0  proto kernel  scope link  src 192.168.42.1 
192.168.43.0/24 dev eth0.42  proto kernel  scope link  src 192.168.43.1 

10.0.0.0/24 dev eth1.1989  proto kernel  scope link  src 10.0.0.200 
10.0.0.0/8 via 10.0.0.253 dev eth1.1989 
192.168.0.0/24 via 10.0.0.253 dev eth1.1989 
233.0.0.0/8 dev eth1.1989  scope link 

Ici, la TV devrait fonctionner sur le serveur.
Pour rendre le multicast disponible aux clients du lan, on télécharge igmpproxy et on compile.

Le fichier de conf igmpproxy.conf

quickleave

phyint eth1.1989 upstream  ratelimit 0  threshold 1
        altnet 10.66.0.0/16
        altnet 192.168.0.0/24

phyint eth0 downstream  ratelimit 0  threshold 1

phyint eth0.42 disabled
phyint eth1.1971 disabled
phyint eth1.1976 disabled
phyint eth1 disabled
phyint lo disabled

On lance igmpproxy, et voilà, ca ne marche pas
La faute au kernel ou à igmpproxy: le TTL des paquets TV qui arrivent du CPE ont un TTL de 1 :/. Pour y remédier:

iptables -t mangle -A PREROUTING -i eth1.1989 -j TTL --ttl-set 5

Tadam ;) ! Vous pouvez-tester avec par exemple:

vlc udp//:@233.97.72.155:1234
ou
vlc udp://@233.97.72.2:1234

Le fichier des chaînes: reecriture_groupe_multicast_tv.ods (colonne D) (de k-net)
Le code pour parser le fichier (une fois converti en CSV) (assez crade :p):

<!--
php parseTV.php > index.html
-->
<html>
<head>
<title>Chaines TV/Radio</title>
<meta charset='utf-8'>
</head>
<body>
<h1>Chaines TV/Radio</h1>
Pour lire la TV:<br>
Ouvrir VLC, puis Ctrl-N, puis recopier <b>l'adresse</b>.<br>
<table border="1">
<tr>
<td>Nom</td>
<td>Adresse</td>
</tr>
<?php
 
$fichier = 'reecriture_groupe_multicast_tv.csv';
 
$file = fopen($fichier, 'r');
$ligne = fgets($file); //premiere ligne qui "sert a rien"
while($ligne = fgets($file))
{
  $ligne = trim($ligne);
  $explode = explode(';', $ligne);
  $nom = $explode[1];
  $addr = $explode[3];
  if(strlen($nom) >= 1 && strlen($addr) >= 1)
    echo "<tr><td> $nom </td><td> udp://@$addr </td></tr>\n";
//    echo "<li><i>$nom</i> - <b>udp://@$addr</b></li>\n";
}
 
fclose($file);
?>
</table> 
</body>
</html>

http://tv.vi-di.fr

Pour plus d'infos sur l'utilisation d'un Linux en tant que routeur: Routeur_Linux

Bref, voila, ca marche :p Ce qui en soit, me bourrer le crane de pubs, d'incitation à la consommation inutile, de culture à la terreur avec le news, bof bof, quoi..

Discussion

Vorms, 2013/08/12 15:12

Salut, J'ai repris les essais aujourd'hui pour voir la TV sur mon PC avec VLC. J'ai branché le CPE sur le PC et désactivé le wifi. Il y a un fort trafic sur le port Ethernet du Pc mais il n'y a pas d'image sur VLC. J'ai essayé avec le fichier “en” et “hors” zone…

Pourrais tu me conseiller ? J'ai fais une capture du flux avec wireshark. J'aimerais bien pouvoir lire le numéro du vlan mais je ne sais pas comment faire….

Merci pour ton aide.

Thierry

Vorms, 2013/08/10 10:34

Bonjour et merci beaucoup pour ta réponse, qui me pose d'autres questions…. Je suis propriétaire de mon routeur, je ne voudrais pas de celui de k-net…

1) Quel est la différence entre l'ancien et le nouveau firmware du CPE ?

 Si mon CPE est upgradé, est-ce que je dois mettre a jour mon routeur ?

2) Est-ce que les 2 ports TV du CPE sont totallement indépendant ?

3) Est-ce que igmproxy permet de connecter plus d'une tv par port CPE ?

4) Est-ce que le switch netgear 108E permet de faire ce que je voudrais, le cas échéant, quel switch me conseils tu ?

Merci beaucoup pour ton aide, bon dimanche et meilleures salutations.

Thierry

Frank, 2013/08/11 02:55

Alors pour les réponses ^^: 1) Anciennement (du moins pour moi), la config du CPE était comme cela: la fibre est le trunk. Ensuite, les ports 1 et 2 sont pour l'internet (donc vlan 1971 mais *détagué* !). Les ports 3 et 4 sont pour la TV, en détagué aussi. En fait, tu peux imaginer qu'il y a comme deux petits switchs dans le CPE, pour la TV et l'Internet. Le nouveau “firmware” change juste le port 1 qui devient un trunk VLAN, et pas un port détagué. Mais les ports 2, 3 et 4 restent identiques. Si tu branches le routeur sur le port 2, rien ne changera.

2) Je sais pas ce que tu veux dire par indépendants. C'est un switch, donc tu peux causer entre les deux ports.

3) igmpproxy n'à pas grand chose à voir la dedans: il sert (en gros), à injecter la TV sur le même réseau internet local. Si tu veux connecter plus d'une TV sur le CPE, ben un simple switch (de préférence supportant l'IGMP snooping :p) sur le port 3, et voila ;)

4) D'après la doc, le 108E supporte les VLANS (.1Q), donc ca devrait être ok ;)

Merci, bonne change :p ;)

Frank

Thierry Vorms, 2013/08/09 07:08

Bonjour, J'essaye de comprendre votre article mais je n'ai pas assez de connaissances. Je suis client chez k-net (Prévessin Moëns, Ain) Voici mes questions: Est-ce que le trafic internet est sur un vlan ? j'ai un routeur perso et je n'ai rien fait de particulier et mes pc se connecte dessus sans problème. J'avais donc compris qu'il n'y avait pas de vlan sur le trafic internet ? Est-ce que le vlan est le même pour tout le monde ?

Je comprends que le flux pour la TV est sur un vlan. chez vous c'est le 1989. Est-ce pour tout le monde pareil ?

Je pensais utiliser un switch managé pour mettre le flux tv et internet sur le même trunk. Si j'ai qu'un seul client qui utilise la TV, est-ce que cela pourrait marcher ? JE voudrais utiliser un Raspberry avec xbmc.

A qui sert igmpproxy ?

Est-ce que je peux brancher 2 TV sur 2 ports du CPE ?

Merci beaucoup pour votre aide et meilleures salutations.

Thierry Vorms

Frank, 2013/08/09 15:18

Il faut demander qu'ils mettent ton CPE à jour pour le nouveau routeur. Comme cela, sur le port *1* du CPE, t'auras un trunk avec les vlans internet (1971) et TV(1989).

Avec un switch managé, tu peux ensuite facilement dispatcher les VLANs vers les prises que tu veux. Avec un RPi, c'est surement largement faisable.

Actuellement, il faut avoir deux vlans séparés. igmproxy sert à redigirer le flux TV vers le VLAN internet local. Quand tu regardes la TV, en gros l'ordi demande un group membership sur une adresse multicast. igmproxy permet, en étant sur le réseau internet local, de forwarder cette demande vers le VLAN TV. C'est un peu plus compliqué mais pas obligatoire.

Tu peux très bien brancher 2 o TVs sur deux ports du CPE (3 & 4), ou sur un switch dédié, ou bien sur les ports détagués de ton VLAN TV ;)

Bonne chance ;)

Enter your comment. Wiki syntax is allowed:
YQSMO
 
informatique/cpe_siea.txt · Last modified: 2013/02/13 14:46 by frank