Forum général.général question sur faisabilité réseau

Posté par . Licence CC by-sa
Tags : aucun
1
7
oct.
2014

Bonjour,

Je voudrais connaître la faisabilité d'une architecture réseau telle que :
* contexte : gérer plusieurs caméras GiGE Vision sur une même machine possédant plusieurs NIC, ces caméras étant toutes sur le même segment réseau. GiGE vision est très consommateur de bande passante, donc 1 NIC sera affecté à chaque caméras par un lien physique directe.
GiGE Vision implémente au moins 2 canaux sur le même NIC : GVCP pour le contrôle de la caméra, GVSP pour la diffusion des images.

L'idée générale est de dédier 1 PC industriel multi NIC, proche des caméras et de déporter le canal de controle (peu consommateur de bande) sur une machine distante. Tous les sockets GiGE Vision sont de type UDP unicast.

Un petit dessin :
Dessin sur mon drive

La question est : est-il possible t’atteindre les caméras depuis le PC GVCP, par un mécanisme de route ou autre, à travers la machine GVSP. Ceci m'éviterait d'ajouter un switch, reliant tous les NIC entre eux.

Merci

  • # reponse rapide : NON, maintenant developpons.

    Posté par . Évalué à 3.

    tu ne peux pas dire à GVCP de passer par GVSP pour aller controler une camera, simplement parce que tous tes elements sont dans le meme reseau.

    maintenant, vu que tu envisages de brancher tes cameras en direct sur le PC indus,
    tu peux leur mettre une IP en 192.168.1.X
    et ton PC industriel peut alors devenir un "routeur".

    il ne te reste plus qu'a activer l'IP Forward dessus,
    et à definir sur ton poste de controle une route vers le reseau 192.168.1.X en passant par 192.168.0.5

    • [^] # Re: reponse rapide : NON, maintenant developpons.

      Posté par (page perso) . Évalué à 1.

      tu ne peux pas dire à GVCP de passer par GVSP pour aller controler une camera, simplement parce que tous tes elements sont dans le meme reseau.

      En théorie, oui. Maintenant, vu la configuration de son réseau, non. Il suffit de définir les routes. Et pas besoin d'avoir un réseau en 192.168.1.X, il suffit juste d'ajouter une route par caméra avec un masque de sous réseau en 255.255.255.255 pour dire qu'on cible une plage d'adresse réseau contenant 1 IP.

      Par contre, il faut toujours activer l'IP forwarding :)

    • [^] # Re: reponse rapide : NON, maintenant developpons.

      Posté par (page perso) . Évalué à 2.

      Suffit de faire un bridge et comme ça pas besoin d'ip forwarding.

    • [^] # Re: reponse rapide : NON, maintenant developpons.

      Posté par . Évalué à 1.

      Merci, je testerai tout ça au boulot après avoir googler comment faire les 2 méthodes.
      Le pourquoi du même réseau est que je ne peux pas changer comme je veux les IPs des caméras.
      Le forwarding ne risque-t-il pas de perturber la pile GVSP ? (850 Mb/s)

      • [^] # Re: reponse rapide : NON, maintenant developpons.

        Posté par . Évalué à 2.

        le forwarding va consommer la bande passante GVCP,
        il ne concerne pas le GVSP, sauf si tu veux voir les images des cameras depuis le PC de controle.

        850Mbps ca fait beaucoup non ?
        non parce que 1280x720x15bitsx60fps ca ne fait "que" 829.044.000bps, ca c'est avant compression.
        on peut esperer que la camera compresse un peu.

        et il va falloir stocker les images/videos que tu vas recevoir.
        le probleme sera plus de ce coté là, que du coté du protocole de controle.

        • [^] # Re: reponse rapide : NON, maintenant developpons.

          Posté par . Évalué à 1. Dernière modification le 08/10/14 à 07:18.

          Oki pour la bande, je m’inquiétais surtout des ressources prises par le noyau pour le forwarding, qui ne seront plus disponibles pour le traitement GVSP.
          En GiGE Vision, on ne compresse pas (enfin en règle générale). Le but de la manip est de transformer le flux GVSP en un flux RTP x264, pour diffuser à travers une infrastructure classique les images (entre autres).
          Les caméras GiGe sont plutôt dites "industrielles", leur définition ne correspond aux standards dits "grand public" . Par exemple, j'ai sur mon bureau une caméra 1600x1200 qui donne pour du 25 fps en YUV : 1600 * 1200 * (2*8) * 25 = 768 Mb/s (sans l'overhead protocolaire bien sûr). C'est pour ce cas "jumbo frame" très conseillé.

          Je vais tester d'abord un pont, il semble que l'on obtienne un comportement de type commutateur.
          N'utilisant que des Gentoo ~amd64 il me reste plus qu'à trouver comment faire ça avec NetworkManager, ou bien retourner à une configuration plus OpenRC.

          J'ai une autre petite question sur le sujet. Un mécanisme de découverte GiGE Vision est disponible pour détecter les caméras. Il est basé sur un paquet broadcast limité ou de réseau, ce qui permet d'aussi découvrir les caméras qui n'ont pas une ip sur le même segment. Y a-t-il une chance que ces paquets franchissent le pont ?

  • # Solution qui fonctionne

    Posté par . Évalué à 3. Dernière modification le 08/10/14 à 19:03.

    Bien, j'obtiens un fonctionnement très satisfaisant en transformant le PC industriel en commutateur.

    • désactiver NetworkManager
    • compiler le noyau avec l'option bridge
    • mettre en place bridge-utils puis
        // up des NICs
        # ifconfig enp1s0 0.0.0.0
        # ifconfig enp2s0 0.0.0.0
        # ifconfig enp3s0 0.0.0.0
        # ifconfig enp4s0 0.0.0.0
        # ifconfig enp5s0 0.0.0.0
        // up du pont
        # brctl addbr testbridge
        # brctl addif ens1s0
        # brctl addif ens2s0
        # brctl addif ens3s0
        # brctl addif ens4s0
        # brctl addif ens5s0
        # ifconfig testbridge up
        // à ce niveau la machine est un commutateur, GVCP voit les caméras
        // on affecte une IP au pont
        # ifconfig testbridge 192.168.0.5 netmask 255.255.255.0
        // et hop, j'obtiens le fonctionnement voulu

    Conclusion: merci tout le monde et en particulier Pierre Tramo qui m'a mis sur une bonne voie.

    • [^] # Re: Solution qui fonctionne

      Posté par . Évalué à 2. Dernière modification le 08/10/14 à 19:04.

      Pour les plus curieux, voici les fichiers systemd pour automatiser tout ça grâce à systemd-networkd

      /etc/systemd/network/99-default.link

          [Match]
          Driver=igb
      
          [Link]
          MTUBytes=9000
          NamePolicy=kernel database onboard slot path
          MACAddressPolicy=persistent

      /etc/systemd/network/gige-bridge.netdev

          [NetDev]
          Name=bridge0
          Kind=bridge

      /etc/systemd/network/gige-enp.network

          [Match]
          Name=enp*
      
          [Network]
          Bridge=bridge0

      /etc/systemd/network/gige-bridge.network

          [Match]
          Name=bridge0
      
          [Network]
          Address=192.168.0.15/24
    • [^] # Re: Solution qui fonctionne

      Posté par . Évalué à 1.

      Salut,

      Avec OpenRC, tu peux aussi via la conf suivante :

      slaves_bond0="enp1s0 enp2s0 enp3s0 enp4s0 enp5s0 "
      config_bond0="192.168.0.5/24"

      misc

      routes_bond0="default via 192.168.0.254" # si tu souhaites des routes
      dns_servers_bond0="192.168.0.1" # si tu veux du DNS

      Afin de compléter et de Gentoofier tout ça

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.