Communication audio en réseau local

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Jojo
Messages : 25
Enregistré le : ven. 29 sept. 2017 11:49
Localisation : Pays De La Loire

Re: Communication audio en réseau local

Message par Jojo » ven. 17 nov. 2017 11:03

Salut destroyedlolo
destroyedlolo a écrit :Je pense qu'il va falloir que tu re-regarde tes cours sur le routage
Ca va mes cours ne sont pas si loin que ça, le dernier en date doit avoir 6 mois et n'est pas tant oublié qu'on pourrait le croire ;)
destroyedlolo a écrit :Je te conseille de te rapprocher des admin réseaux de ta boite pour voir quels sous réseaux tu peux utiliser sans mettre la grouille.
En fait je suis sur un réseau autonome, je crée moi-même le réseau et j'y mets les adresses que je veux, la difficulté est que le réseau n'a pas une forme "d'étoile" comme un réseau classique où toutes les demandes passent par un switch central (voire un serveur), là toutes mes RPi sont sur le même réseau et dialoguent uniquement avec le pair situé à côté d'elles, que ce soit par Ethernet ou par le port série.

Je n'ai donc pas de problématique au niveau de mes administrateurs réseau puisque ... c'est moi. ;)

A+

Jojo
"Il ne faut jamais remettre au lendemain ce que l'on peut faire le surlendemain." ~ Alphonse Allais

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Communication audio en réseau local

Message par destroyedlolo » ven. 17 nov. 2017 11:29

Salut Jojo,

J'ai édité mon message pendant que tu me répondais avec cette question :
Ceci dit, ce que je ne comprend pas, pourquoi les PI doivent être relié entre eux par le port série ... alors qu'ils le sont déja par ethernet ?
Si le but est d'avoir 2 réseaux totalement séparés (pour le pas ambouser le réseau ethernet par les données voie), dans ce cas, il n'y a aucune raison de mettre en place de routage : tu as juste a rajouter un réseau privé juste pour le coté série et surtout ne pas mettre de forward entre les 2.
Jojo a écrit :Ca va mes cours ne sont pas si loin que ça, le dernier en date doit avoir 6 mois et n'est pas tant oublié qu'on pourrait le croire ;)
Ha :)
Mais comment veux tu router entre la partie série et la partie éthernet alors que les 2 cotés sont sur le même réseau ? Au pire, il faudrait qu'ils soient sur 2 sous réseau différents.
Jojo a écrit : la difficulté est que le réseau n'a pas une forme "d'étoile" comme un réseau classique où toutes les demandes passent par un switch central (voire un serveur)
Si physiquement les réseaux éthernet sont en étoile de nos jours (à l'origine, ce n'était pas le cas), du coté logique, c'est toujours un bus : toutes les machines se voient comme étant sur le même réseau.
Mais comme tu le dis
Jojo a écrit : , là toutes mes RPi sont sur le même réseau et dialoguent uniquement avec le pair situé à côté d'elles, que ce soit par Ethernet ou par le port série.
Ca ne marche pas comme ca avec une liaison série qui fonctionne en mode point à point (Il y a eu des concentrateurs séries qui permettaient de mettre en relation plusieurs machines en série comme le fait un hub éthernet (DEC faisait ça). Mais c'est de la très vielle techno qui coutait un bras ...). Donc coté réseau, un sous-réseau avec uniquement 2 machines.

Alternativement, si tu veux qu'ils puissent communiquer tous entre eux par liaison série, tu peux aussi les chainer comme on le faisait avec les réseaux token-ring mais il faut 2 cartes uarts sur les PI ... et les regles de routages vont etre coton.
Mais ca serait plus fun :P

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Jojo
Messages : 25
Enregistré le : ven. 29 sept. 2017 11:49
Localisation : Pays De La Loire

Re: Communication audio en réseau local

Message par Jojo » ven. 17 nov. 2017 11:44

Salut,
destroyedlolo a écrit :J'ai édité mon message pendant que tu me répondais avec cette question :
destroyedlolo a écrit :Ceci dit, ce que je ne comprend pas, pourquoi les PI doivent être relié entre eux par le port série ... alors qu'ils le sont déja pas ethernet ?
Si le but est d'avoir 2 réseaux totalement séparés (pour le pas ambouser le réseau ethernet par les données voie), dans ce cas, il n'y a aucune raison de mettre en place de routage : tu as juste a rajouter un réseau privé juste pour le coté série et surtout ne pas mettre de forward entre les 2.
En effet je n'avais pas vu ta modification. Mes RPi ne sont pas reliées entre elles par le port ethernet. Chacune des RPi est reliée à deux autres : une par ethernet et une autre par le port série.

Ce qui fait que si je reprends mon schéma précédent :

| #1 |<---------Ethernet---------> | #2 | <---------PPP---------> | #3 |<---------Ethernet---------> | #4 | <---------PPP---------> | #......

Pour que le RPi #1 puisse "parler" au RPi #3, il doit passer par le port RJ45 du #2 puis par le port série du #2 pour finalement arriver sur le port série du #3.
destroyedlolo a écrit :Ca ne marche pas comme ca avec une liaison série qui fonctionne en mode point à point (Il y a eu des concentrateurs séries qui permettaient de mettre en relation plusieurs machines en série comme le fait un hub éthernet (DEC faisait ça). Mais c'est de la très vielle techno qui coutait un bras ...). Donc coté réseau, un sous-réseau avec uniquement 2 machines.
En gros c'est ce que j'ai essayé de mettre en place. Pour chacune des RPi #x je lui donne un sous-réseau 192.168.x.0 dans ma plage 192.168.x.x avec à chaque fois en .1 le port ethernet et en .2 le port série.
C'est certainement là que je me suis planté ^^
destroyedlolo a écrit :Mais comment veux tu router entre la partie série et la partie éthernet alors que les 2 cotés sont sur le même réseau ? Au pire, il faudrait qu'ils soient sur 2 sous réseau différents.
Ce que j'ai fait pour l'instant est indiquer pour chaque RPi quelle interface il doit prendre pour aller sur tel ou tel sous-réseau.
Par exemple : sur le #2 j'ai configuré les routes de telle sorte que pour aller vers le #1, les paquets empruntent le port RJ45 et pour le #3 et #4 ils utilisent le port série.

Quand je fais mes tests de ping depuis le #2 cela fonctionne bien vers le #1 et #3 mais pas vers le #4 alors que sans ajouter les règles de routage, bah il ne se passe rien ^^

En réalité le problème vient soit de mon choix de réseau comme tu le dis, soit de l'ip_forwarding qui se fait mal entre les deux interfaces.



EDIT : Je ne peux pas "chaîner" comme tu le dis pour deux raisons : la première c'est qu'on s'est fixés sur cette architecture avec mon maître de stage donc on reste dessus pour le moment (pas forcément une bonne raison mais c'est en une ^^) et la deuxième c'est qu'à terme il y aura de la distance entre les RPi reliées par Ethernet ce qui remplacé par liaison série UART risquerait d'engendrer une perte de signal.
A+

Jojo
"Il ne faut jamais remettre au lendemain ce que l'on peut faire le surlendemain." ~ Alphonse Allais

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Communication audio en réseau local

Message par destroyedlolo » ven. 17 nov. 2017 12:02

Haaaaa, du coup je comprend mieux :)
Jojo a écrit :Ce qui fait que si je reprends mon schéma précédent :
| #1 |<---------Ethernet---------> | #2 | <---------PPP---------> | #3 |<---------Ethernet---------> | #4 | <---------PPP---------> | #......
Pour que le RPi #1 puisse "parler" au RPi #3, il doit passer par le port RJ45 du #2 puis par le port série du #2 pour finalement arriver sur le port série du #3.
Ton probleme est alors dans la définition du masque de réseau : ca ne doit pas être /16 mais /24 (tu peux meme optimiser en mettant plus).
Et chaque paire doit être sur le même sous réseau ... donc chaque PI voit 2 réseau, 1 par éthernet, 1 par série.
Jojo a écrit :EDIT : Je ne peux pas "chaîner" comme tu le dis pour deux raisons : la première c'est qu'on s'est fixés sur cette architecture avec mon maître de stage donc on reste dessus pour le moment (pas forcément une bonne raison mais c'est en une ^^) et la deuxième c'est qu'à terme il y aura de la distance entre les RPi reliées par Ethernet ce qui remplacé par liaison série UART risquerait d'engendrer une perte de signal.
Si tu passes en différentielle (RS-422 ou 485) tu peux atteindre plus d'1km ;)
Mais ta solution est LARGEMENT plus simple mais limité a quelques mètres tout au plus sur les parties séries.

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Jojo
Messages : 25
Enregistré le : ven. 29 sept. 2017 11:49
Localisation : Pays De La Loire

Re: Communication audio en réseau local

Message par Jojo » ven. 17 nov. 2017 12:20

destroyedlolo a écrit :Haaaaa, du coup je comprend mieux :)
Oui je n'avais pas été très clair sur ce coup-là ahah
destroyedlolo a écrit :Ton probleme est alors dans la définition du masque de réseau : ca ne doit pas être /16 mais /24 (tu peux meme optimiser en mettant plus).
Et chaque paire doit être sur le même sous réseau ... donc chaque PI voit 2 réseau, 1 par éthernet, 1 par série.
Du coup tu me conseilles quoi comme configuration ?
Je fixe mes adresses IP pour chaque RPi comme ça : 192.168.x.1/24 pour Ethernet et 192.168.x.2/24 pour PPP ?
Tout le problème viendra du routage après, je ne sais pas si ça va changer quelque chose au final ou alors il y a un truc que je loupe.

Pour le moment j'utilise la commande suivante :

Code : Tout sélectionner

sudo route add -net 192.168.3.0/24 gw 192.168.2.2 dev ppp0 
sur le RPi #2 pour lui indiquer que le sous-réseau 192.168.3.0 (donc en direction du RPI #3) doit passer par son port série ppp0 dont je mets l'adresse.

Je sais que normalement il faudrait mettre en gateway l'adresse du port distant (192.168.3.2) ici mais le système ne l'accepte pas.
Il me répond ça :

Code : Tout sélectionner

 SIOCADDRT: Aucun périphérique de ce type
destroyedlolo a écrit :Si tu passes en différentielle (RS-422 ou 485) tu peux atteindre plus d'1km ;)
On avait bien pensé au RS-485 mais ça impliquait d'autres problèmes derrière et on a voulu rester sur une solution plus abordable :p
destroyedlolo a écrit :Mais ta solution est LARGEMENT plus simple mais limité a quelques mètres tout au plus sur les parties séries.
Ah j'aime te l'entendre dire (ou te le voir écrire mais ça se dit moins :D) En fait comme je disais plus haut dans mon 1er message, la partie série viendra s'interfacer (c'est moche comme mot mais j'ai pas mieux en stock) avec un canal série particulier mis en place par l'entreprise (et ça je ne peux pas le dire) qui permet de résoudre en partie cette problématique de la distance.
"Il ne faut jamais remettre au lendemain ce que l'on peut faire le surlendemain." ~ Alphonse Allais

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Communication audio en réseau local

Message par destroyedlolo » ven. 17 nov. 2017 12:42

Jojo a écrit :Je fixe mes adresses IP pour chaque RPi comme ça : 192.168.x.1/24 pour Ethernet et 192.168.x.2/24 pour PPP ?
Tout le problème viendra du routage après, je ne sais pas si ça va changer quelque chose au final ou alors il y a un truc que je loupe. [/code]
Non non, il faut que l'ethernet et le PPP soient sur 2 réseaux distincts.

Ca donnerait

Code : Tout sélectionner

 .... [ETH PI #2 PPP] <--------> [PPP PI#3 ETH] <---------> [ETH PI#4 ETH] ...
 	192.168.1.2  192.168.2.1   192.168.2.2  192.168.3.1  192.168.3.2  192.168.3.1 ...
 
En plus, j'avais pas vu, mais comme tu utilises du classe C, tu ne pouvais avoir un réseau /16.

Pour les regles de routages, je te laisse voir :)
Jojo a écrit :
destroyedlolo a écrit :Mais ta solution est LARGEMENT plus simple mais limité a quelques mètres tout au plus sur les parties séries.
Ah j'aime te l'entendre dire (ou te le voir écrire mais ça se dit moins :D) En fait comme je disais plus haut dans mon 1er message, la partie série viendra s'interfacer (c'est moche comme mot mais j'ai pas mieux en stock) avec un canal série particulier mis en place par l'entreprise (et ça je ne peux pas le dire) qui permet de résoudre en partie cette problématique de la distance.
Par contre, tu es conscients que ca va vite devenir inaudible s'il y a trop de participants (à moins que ce soit du broadcast intégrale) car les liens du milieu vont se prendre une débit pas croyable s'il y a des discussions entre les noeuds des 2 extrémités.
Mais si c'est de la conf et que le soft est capable de tout géré par broadcast, ca devrait passer :)

La seule solution vraiment viable s'il doit y avoir du "face à face" est de relier tout ce beau monde sur un même réseau éthernet ... mais je pense que c'est tout sauf ce que veux ton maitre de stage :lol:
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Jojo
Messages : 25
Enregistré le : ven. 29 sept. 2017 11:49
Localisation : Pays De La Loire

Re: Communication audio en réseau local

Message par Jojo » ven. 17 nov. 2017 13:52

destroyedlolo a écrit :Par contre, tu es conscients que ca va vite devenir inaudible s'il y a trop de participants (à moins que ce soit du broadcast intégrale) car les liens du milieu vont se prendre une débit pas croyable s'il y a des discussions entre les noeuds des 2 extrémités.
Ah je suis totalement conscient de ça oui ! :) Le but est justement de faire du broadcast et pas des conv séparées.

Pour l'instant j'utilise ce petit logiciel ma foi bien complet : http://holdenc.altervista.org/seren/index.html
destroyedlolo a écrit : La seule solution vraiment viable s'il doit y avoir du "face à face" est de relier tout ce beau monde sur un même réseau éthernet ... mais je pense que c'est tout sauf ce que veux ton maitre de stage :lol:
Oui mais du coup non :D En fait le lien série est imposé (c'est d'ailleurs le but du stage) donc si je dis que ce n'est pas possible, autant ne pas avoir pris de stagiaire ^^
destroyedlolo a écrit : Non non, il faut que l'ethernet et le PPP soient sur 2 réseaux distincts.
Ca donnerait

Code : Tout sélectionner

 .... [ETH PI #2 PPP] <--------> [PPP PI#3 ETH] <---------> [ETH PI#4 ETH] ...
    192.168.1.2  192.168.2.1   192.168.2.2  192.168.3.1  192.168.3.2  192.168.3.1 ...
Je ne comprends pas quelles adresses tu assignes à quelle interface dans ce cas-là

Si je comprends bien ça donnerait ça :

Code : Tout sélectionner

[RPi #2]
Eth : 192.168.1.2
PPP : 192.168.2.1

[RPi #3]
PPP : 192.168.2.2
Eth: 192.168.3.1

[RPi #4]
Eth : 192.168.3.2
PPP : 192.168.4.1
Dans ce cas je ne vois pas comment faire le routage, vu que dans la config actuelle j'avais la possibilité de dire Raspberry x <=> 192.168.x.0.
destroyedlolo a écrit :En plus, j'avais pas vu, mais comme tu utilises du classe C, tu ne pouvais avoir un réseau /16.
Là il y a de fortes chances que je me sois pris les pieds dans le tapis oui ;) Mais j'avais essayé en /24 auparavant sans résultats probants. De mémoire le protocole PPP ne prenait pas le /24 et ne fonctionne qu'en /16 sans que je sache pourquoi.
"Il ne faut jamais remettre au lendemain ce que l'on peut faire le surlendemain." ~ Alphonse Allais

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Communication audio en réseau local

Message par destroyedlolo » ven. 17 nov. 2017 14:31

Jojo a écrit : Si je comprends bien ça donnerait ça :

Code : Tout sélectionner

[RPi #2]
Eth : 192.168.1.2
PPP : 192.168.2.1

[RPi #3]
PPP : 192.168.2.2
Eth: 192.168.3.1

[RPi #4]
Eth : 192.168.3.2
PPP : 192.168.4.1
C'est exactement ca.
Jojo a écrit :Dans ce cas je ne vois pas comment faire le routage, vu que dans la config actuelle j'avais la possibilité de dire Raspberry x <=> 192.168.x.0.
Ben si on prend le PI#3, ca veut dire qu'il dois passer par 192.168.2.1 pour aller vers tous les PI "inférieur" PI0, PI1, PI2 et vers 192.168.3.2 pour tout les PI supérieur PI4, PI5, ....
Si tu y refléchis bien, tu verra que c'est facile pour les 2 permiers et les 2 derniers ... pour ceux qui sont intermédiaire, c'est beaucoup plus sportif.
Jojo a écrit :
destroyedlolo a écrit :En plus, j'avais pas vu, mais comme tu utilises du classe C, tu ne pouvais avoir un réseau /16.
Là il y a de fortes chances que je me sois pris les pieds dans le tapis oui ;) Mais j'avais essayé en /24 auparavant sans résultats probants. De mémoire le protocole PPP ne prenait pas le /24 et ne fonctionne qu'en /16 sans que je sache pourquoi.
Ben, en toute logique, tu ne peux y avoir que 2 noeuds donc ca devrait etre du /30 ...

Je n'ai toujours utiliser les PPP/SLIP qu'avec 2 liens, sans chainage.
Peut-être est-il possible en jouant sur l'encapsulation de faire croire à tous les PI qu'ils sont sur les mêmes réseau. Mais ca sort largement de mes compétences, et ça reste du gros conditionnel :) : il faudrait que tu vois avec ton prof de réseau si c'est possible et si oui, comment.
Si tu le fais, je suis intéressé pour ma culture perso (et aussi parce que j'ai des vieux bousins qui n'ont pas d'ethernet :lol: ).

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Jojo
Messages : 25
Enregistré le : ven. 29 sept. 2017 11:49
Localisation : Pays De La Loire

Re: Communication audio en réseau local

Message par Jojo » ven. 17 nov. 2017 14:45

destroyedlolo a écrit :Si tu y refléchis bien, tu verra que c'est facile pour les 2 permiers et les 2 derniers ... pour ceux qui sont intermédiaire, c'est beaucoup plus sportif.
Oh ça je sais, c'est à peu de choses près ce que j'avais fait au début :p
destroyedlolo a écrit :Ben, en toute logique, tu ne peux y avoir que 2 noeuds donc ca devrait etre du /30 ...
Oui vu comme ça c'est loin d'être idiot ! Je suis resté dans cette configuration puisque à la base l'un des bout de mon réseau était relié à la carte ethernet de mon pc qui lui fournissait un accès internet via pont réseau entre le wi-fi et l'ethernet (là c'est le bazar à comprendre). Du coup la box sur laquelle j'étais m'attribuait automatiquement en dhcp une adresse du type 192.168.x.x donc je suis resté là-dessus.
destroyedlolo a écrit :Peut-être est-il possible en jouant sur l'encapsulation de faire croire à tous les PI qu'ils sont sur les mêmes réseau. Mais ca sort largement de mes compétences, et ça reste du gros conditionnel :) : il faudrait que tu vois avec ton prof de réseau si c'est possible et si oui, comment.
Malheureusement ça dépasse aussi les miennes ... et celles de l'un de mes collègues de travail pourtant presque spécialiste du domaine. Je n'ai pas posé la question à mon prof mais c'est une bonne idée !
destroyedlolo a écrit :Si tu le fais, je suis intéressé pour ma culture perso (et aussi parce que j'ai des vieux bousins qui n'ont pas d'ethernet :lol: ).
Si ça avance ce sera avec plaisir mais ça fait plusieurs semaines que je suis au point mort sur cet aspect du projet..., je ne me fais plus trop d'illusions désormais ^^

A+
"Il ne faut jamais remettre au lendemain ce que l'on peut faire le surlendemain." ~ Alphonse Allais

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Communication audio en réseau local

Message par destroyedlolo » ven. 17 nov. 2017 15:05

Jojo a écrit :Je suis resté dans cette configuration puisque à la base l'un des bout de mon réseau était relié à la carte ethernet de mon pc qui lui fournissait un accès internet via pont réseau entre le wi-fi et l'ethernet (là c'est le bazar à comprendre).
Non non, c'est limpide :)
Jojo a écrit : Du coup la box sur laquelle j'étais m'attribuait automatiquement en dhcp une adresse du type 192.168.x.x donc je suis resté là-dessus.
192.168.x.x, c'est une plage C privée donc t'en fais bien ce que tu veux : c'est fait pour ca :)
Juste ne pas utiliser le même sous réseau que ce que te donne ta box sinon, ca ne marchera plus, évidement.
Jojo a écrit :Si ça avance ce sera avec plaisir mais ça fait plusieurs semaines que je suis au point mort sur cet aspect du projet..., je ne me fais plus trop d'illusions désormais ^^
Mais si, mais si : avec le bonne adressage comme nous en avons discuté ci-dessus, et avec le bon routage, il n'y a aucun pb pour qu'ils puissent communiquer. Après, reste la bande passante, mais c'est un autre sujet :mrgreen:
Tu tiens le bon bout :)

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Répondre

Retourner vers « Utilisateurs avancés »