Forum Linux.général [réseau] fallback vers gprs

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
10
nov.
2017

Bonjour.

J'ai au boulot une carte mère ITX que l'on compte utiliser pour piloter du matériel. Cette carte intègre une antenne qui permets de se connecter à un réseau 3G, et que l'on souhaite utiliser au cas ou la connexion filaire ethernet lâche.

J'ai 2 problèmes principaux:

  • la connexion 3G fonctionne, mais nécessite un démarrage manuel (ifup gprs qui résulte en une interface ppp0 dans les ifconfig suivants, je précise que dans le fichier /etc/network/interfaces cette interface est bien en auto et devrais donc être activée au démarrage) et
  • la connexion 3G semble être prioritaire.

Concernant le 1er point, je suppose qu'il me suffirait d'ajouter un simple ifup gprs au démarrage, pas en soit un gros problème mis à part que je doute que ce soit le meilleur moyen.
Pour le 2nd point, j'ai essayé de mettre en place un «bonding» en «active-backup», mais vu que je ne connais rien au sujet, j'ai lamentablement échoué… déjà que je ne comprend pas vraiment comment la 3G fonctionne (j'ai essayé de comprendre mais, de guerre lasse, je me suis contenté de configurer comme indiqué dans le wiki de Debian, et ça fonctionne, modulo le point 1), pas surprenant que ça ne fonctionne pas, surtout que toutes les informations sur lesquelles je suis tombé font état de ce genre de technique uniquement sur du réseau IP (j'ai essayé d'improviser malgré tout, mais manifestement ce que j'ai fait est, dans le meilleur des cas, totalement inutile…).

  • # comprendre les reseaux et les routages

    Posté par  . Évalué à 3.

    tu ne peux faire du bonding qu'entre plusieurs interfaces qui vont arriver sur le meme reseau, car tu crees en fait une 3e interface, qui elle se connectera au vrai reseau.

    eth0 \
             = bond0 => reseau local
    eth1 /

    tu ne peux pas utiliser le bonding pour relier 2 reseaux differents (ton LAN et ton GPRS)
    ce que tu cherches c'est le changement de route par defaut (la sortie par defaut vers internet)

    quand tu actives ton GPRS, il est probable que cela deviennent la route par defaut, donc tu perds le LAN

    tu dois deja pouvoir jouer avec les lignes post-up dans le fichier /etc/network/interfaces

    ex dans la partie eth0, ajoutes

    post-up /sbin/ifdown gprs #coupe le gprs si la carte reseau est UP
    post-down /sbin/ifup gprs # active le gprs si la carte reseau devient DOWN

    et dans la partie gprs

    post-up /sbin/ifdown eth0 #coupe la carte eth0 apres le demarrage du GPRS
    post-down /sbin/ifup eth0 # active eth0 si le gprs tombe

    maintenant il n'est pas sur que la carte eth0 deviennent down si le routeur en face reste UP,
    du coup ce systeme ne fonctionne que si on vire le cable reseau de la carte reseau.

    l'etape au dessus, c'est de detecter si tu arrives à joindre un service externe (ping vers google, telnet vers un site web)
    et de changer la route par defaut pour passer par l'autre interface.

    il y a des outils pour cela, mais je n'en ai plus le nom.

    maintenant je trouve etrange que ta config parle d'une carte GPRS, mais active une interface ppp0
    cela ne devrait-il pas etre ppp0 dans ton fichier /etc/network/interfaces ?

    • [^] # Re: comprendre les reseaux et les routages

      Posté par  . Évalué à 4.

      il y a des outils pour cela, mais je n'en ai plus le nom.

      Il y a ifstated chez les BSD mais je ne connais pas d'équivalent sous les distributions Linux.

      Attention quand même à ce qu'on test avec ces outils, il vaut mieux avoir plusieurs services à haute fiabilité derrière.

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

      • [^] # Re: comprendre les reseaux et les routages

        Posté par  . Évalué à 2.

        Merci à vous deux pour ces éclaircissements.

        l'etape au dessus, c'est de detecter si tu arrives à joindre un service externe (ping vers google, telnet vers un site web)
        et de changer la route par defaut pour passer par l'autre interface.

        C'est l'objectif.

        Il y a ifstated chez les BSD mais je ne connais pas d'équivalent sous les distributions Linux.

        On est sous Debian parce qu'on connais un peu Debian (quand je dis un peu, c'est vraiment un peu, je suis le plus «calé» et je ne me considère vraiment pas comme un expert), à priori, rien n'interdirais d'utiliser un *BSD (enfin, reste à voir si le matos serait compatible, bien sûr, mais ça me donnerai un prétexte)

        il vaut mieux avoir plusieurs services à haute fiabilité derrière.

        C'est à dire?

        maintenant je trouve etrange que ta config parle d'une carte GPRS, mais active une interface ppp0
        cela ne devrait-il pas etre ppp0 dans ton fichier /etc/network/interfaces ?

        Pour le coup, j'ai bêtement suivi la doc de Debian, et il reste un comportement qui m'intrigue beaucoup: il faut manuellement faire un ifup gprs pour que la connexion s'établisse, et c'est bien ppp0 qui apparaît quand je fais un ifconfig (ça m'avais aussi surpris).

        Le fichier /etc/network/interfaces au stade avant les expérimentations réseau:

        auto lo
        iface lo inet loopback
        
        allow-hotplug eth0
        iface eth0 inet dhcp
        
        # oui, en plus il y a 2 ethernet, pour faire simple, alors qu'un aurait suffit
        allow-hotplug eth1
        iface eth0 inet dhcp
        
        allow-hotplug gprs
        iface gprs inet ppp
          provider gprs
        
        • [^] # Re: comprendre les reseaux et les routages

          Posté par  . Évalué à 4.

          On est sous Debian parce qu'on connais un peu Debian

          Après, tu peux le faire aussi avec un script. Passer sur BSD juste pour ifstated, ça me semble overkill.

          C'est à dire?

          Imagine que tu ping example.com pour vérifier ta connexion mais ce dernier fait une maintenance (ou se crash ou l'hébergeur fait une connerie ou n'importe quelle autre raison), ton ping ne va plus fonctionner et tu vas basculer sur ta connexion 3g alors que ta connexion principale fonctionne encore très bien.

          Pire encore, si tu test aussi ta connexion 3g avec ce même serveur, tu vas baculer en permanance de la principale à la secondaire (et vice-versa) avec ta qualité de service qui va baisser alors que tout va bien.

          Il faut donc avoir plusieurs serveurs chez plusieurs hébergeurs que tu ping et tu ne bascule que si plusieurs tombent. Par exemple, 8.8.8.8, le site de ta boîte et ping.online.net.

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

          • [^] # Re: comprendre les reseaux et les routages

            Posté par  . Évalué à 2.

            Après, tu peux le faire aussi avec un script. Passer sur BSD juste pour ifstated, ça me semble overkill.

            Tu n'es pas joueur… j'ai dis que ça me fournirai une excuse, mais je reste un minimum pro, j'essaierai autre chose d'abord, c'est évident: moi, BSD, ça m'éclaterai, mais mes collègues, c'est pas sûr, et puis j'ai un travail a accomplir.

            Il faut donc avoir plusieurs serveurs chez plusieurs hébergeurs que tu ping et tu ne bascule que si plusieurs tombent. Par exemple, 8.8.8.8, le site de ta boîte et ping.online.net.

            D'accord. C'est bien vu. J'avais à la base compris que tu parlais d'avoir plusieurs outils pour surveiller que la connexion est bien active, pas de vérifier plusieurs sites au cas ou l'un est HS.

            Merci pour ces infos, je ne suis vraiment pas habitué à bosser sur du réseau, mais entre mes problématiques perso et de taf, en 1 mois j'en ai appris beaucoup grâce à vous deux, entres autres (pas sûr que sur ma dernière question il n'y avais que vous deux, et puis il me faut compter tous les liens que j'ai lu, grâce à vos mot-clés) :)

Suivre le flux des commentaires

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