
Tout dâabord, rappelons ce que sont lâUnicast, le Broadcast, et le Multicast.
LâUnicast
Câest la façon tout Ă fait classique pour deux systĂšmes (ordinateur, serveur) de communiquer entre eux. Câest une liaison point Ă point.
Le Broadcast
Câest lorsquâun systĂšme lance une requĂȘte Ă lâensemble des systĂšmes du rĂ©seau, gĂ©nĂ©ralement pour savoir qui possĂšde une adresse IP, ou pour avertir tous les systĂšmes de la disponibilitĂ© dâun service particulier, comme un service de stockage de fichiers par exemple). Les trames broadcast ne circulent que dans le sous-rĂ©seau du systĂšme : lâordinateur avec lâIP 192.168.0.10 envoie le message vers lâadresse IP 192.168.0.255, et ce sont tous les ordinateurs avec lâIP 192.168.0.X (x de 1 Ă 254) qui reçoivent le message.
Le Multicast
Imaginons quâun ordinateur doit envoyer exactement le mĂȘme message Ă plusieurs autres ordinateurs. Sâil envoie le message Ă chacun des destinataires, il y a multiplication du trafic depuis lâordinateur. Si les destinataires sont peu nombreux, cela reste acceptable, mais pour plusieurs centaines de destinataires, cela devient impensable. Pour remĂ©dier Ă cela, on a crĂ©Ă© le multicast, qui permet Ă lâordinateur serveur de nâenvoyer quâune seule fois les donnĂ©es, celles-ci Ă©tant reçues par les ordinateurs client simultanĂ©ment. Comme chaque ordinateur possĂšde une adresse IP diffĂ©rente, et comme lâordinateur serveur ne peut pas adresser de multiples adresses IP dans un seul envoi, les adresses multicast ont Ă©tĂ© crĂ©Ă©es. Elles vont de 224.0.0.0 Ă 239.255.255.255. Ainsi lâordinateur serveur envoie ses donnĂ©es vers une adresse de groupe (exemple 224.0.1.189). Les ordinateurs qui dĂ©sirent recevoir ce message doivent «âsâabonnerâ» au flux multicast, câest-Ă -dire quâils Ă©mettent un «âjoinâ» vers ce groupe. Les trames de join se propagent sur le rĂ©seau et les routeurs traversĂ©s remplissent une table, plutĂŽt un arbre de diffusion, qui leur permet, lorsque la trame multicast les traverse, de savoir vers qui transmettre cette trame.
Le Multicast, câest ce qui est utilisĂ© lorsque vous regardez des vidĂ©os en streaming (Netflix, YouTube, etc.)
Le Multicast appliqué à FreeDMR
De façon classique, dans le réseau FreeDMR, les serveurs sont reliés entre eux par des liens openbridge, en point à point.
Chaque serveur transmet les trames Ă ses voisins, en Ă©vitant les chemins multiples. Si un serveur est dĂ©faillant, les trames empruntent un autre chemin, sâil existe. Sinon le serveur est isolĂ© du rĂ©seau.
Les dĂ©lais de transmission sâadditionnent en fonction du nombre de serveurs traversĂ©s.
Maintenant, imaginons que les serveurs ne sont plus reliĂ©s en point Ă point les uns aux autres, mais sont tous reliĂ©s sur un mĂȘme rĂ©seau, comme sur un switch.
On voit ici que chaque serveur nâa plus quâun seul lien openbridge qui le relie au reste du rĂ©seau.
Certes, on pourrait dire que par rapport au prĂ©cĂ©dent schĂ©ma, on a rĂ©duit la redondance, mais en fait non, car un serveur ne dispose que dâune carte rĂ©seau gĂ©nĂ©ralement. Si la liaison sâinterrompt, câest dĂ» Ă la sortie rĂ©seau, ou bien au routeur suivant chez le fournisseur internet. Dans un cas comme dans lâautre, avoir une ou deux cartes rĂ©seau ne change rien.
Cela Ă©tant dit, comment cela fonctionne-t-ilâ?
Dans un setup classique, on dĂ©finit un openbridge par son IP interne, son port interne, le mot de passe, lâadresse IP du serveur distant, le port du serveur distant.
Le serveur distant est configurĂ© avec les mĂȘmes valeurs, IP distante de lâautre serveur, le port distant, etc.
Dans le cas du fonctionnement en multicast, un setup dâopenbridge sera toujours le mĂȘme, quel que soit le serveur :
[OBP-SERVEUR]
MODE: OPENBRIDGE
ENABLED: True
IP: <IP_publique_du_serveur>
PORT: 62997
NETWORK_ID: <ID_de_votre_choix>
PASSPHRASE: PASSWORD
TARGET_IP: 127.0.0.1
TARGET_PORT: 62999
USE_ACL: True
SUB_ACL: DENY:1
TGID_ACL: PERMIT:ALL
RELAX_CHECKS: True
ENHANCED_OBP: False
Les valeurs en rouge ne doivent pas ĂȘtre modifiĂ©es.
Ă lâaide dâun programme complĂ©mentaire, les trames (Unicast) envoyĂ©es vers le port 62999 Ă lâadresse 127.0.0.1, sont transformĂ©es en trames multicast envoyĂ©es vers le port 62998 Ă lâadresse de groupe 224.0.1.189. Comme tous les serveurs du rĂ©seau sont «âabonnĂ©sâ» Ă ce groupe multicast, les trames sont reçues et reconverties par chaque serveur par le mĂȘme programme complĂ©mentaire, et les trames (Unicast) sont envoyĂ©es vers le port 62997 Ă lâadresse publique du serveur.
Si un des serveurs du groupe vient Ă sâarrĂȘter, les autres serveurs du groupe continuent Ă Ă©changer entre eux.
Les avantages du fonctionnement multicast sont multiples :
- Pas de serveur central ou intermédiaire
- La disparition dâun serveur nâaffecte pas lâensemble du rĂ©seau
- Chaque serveur nâĂ©met ou ne reçoit quâun seul flux, et nâa pas Ă gĂ©rer des flux traversants
- Aucune modification nâest nĂ©cessaire dans le code FreeDMR
Les trames multicast nĂ©cessitent pour se propager que la topologie du rĂ©seau (internet) soit constituĂ©e de routeurs compatibles multicast. Câest loin dâĂȘtre le cas. Câest pourquoi il y a une dizaine dâannĂ©es un rĂ©seau mondial appelĂ© Mbone avait Ă©tĂ© dĂ©veloppĂ© spĂ©cifiquement pour permettre le transit des trames multicast. Il semble quâaujourdâhui ce rĂ©seau ait Ă©tĂ© abandonnĂ©. Câest pourquoi nous verrons, dans un prochain article, comme crĂ©er un rĂ©seau de support au multicast, qui soit fiable, redondant, et relativement simple Ă mettre en Ćuvre.
Vignette : https://www.piqsels.com/fr