IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Interface bounding détection down


Sujet :

Réseau

  1. #1
    Membre confirmé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Points : 597
    Points
    597
    Par défaut Interface bounding détection down
    Bonjour,

    je suis en train de rechercher des solutions pour faire du fail-over entre deux interfaces réseaux d'un équipement sous linux.

    La première interface utilise l'accès standard au réseau (ethernet -> WAN).
    La seconde utilise un accès GPRS/UMTS en secours.

    Il me faudrait donc un système permettant de découvrir automatiquement la perte du réseau sur une interface et de switcher celui-ci en cas de fail.

    La première solution que j'ai trouvé est le module "bounding". Mais d'après ce que j'ai vu il ne fait de la détection qu'au niveau de la couche 2. Ce qui est inutile dans mon cas d'utilisation.

    Une seconde solution serait de développer un logiciel de supervision avec un fonctionnement proche de :

    1. Toutes les x secondes check d'une liste d'url "fiable"
    2. En cas d'erreur changement de la route par défaut

    Un logiciel tier ?

    Si vous avez des retours d'expérience je suis aussi preneur, je sais qu'un de mes collègues avait des soucis avec la résolution DNS, mais j'ai pas encore compris pourquoi .

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    effectivement, si un backup de couche 2 ne te convient pas, il faut le déclencher par polling/keepalive. J'ai déjà vu des choses qui ressemblaient à ça mais dans des architectures à base de routeurs Cisco. Le polling était effectué sur les loopbacks de routeurs distants.

    C'est probablement implémentable sur une machine Linux... La difficulté sera d'interfacer ton appli sur le stack IP pour en modifier la table de routage

    Je suis preneur pour tester toute beta version du bazar

    Steph

  3. #3
    Membre confirmé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Points : 597
    Points
    597
    Par défaut
    Je suis en train de faire quelques tests.

    Je veux jouer avec les "defaults gateways" en créant pour chaque interfaces deux gateways :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Adress		GW		Metric	Interface
    0.0.0.0		192...		10		eth1
    0.0.0.0		192...		1000		eth1
    Et j'envoie des commandes route depuis mon logiciel lorsque le "pool" de site n'est plus accessible.

    La deuxième règle avec la métric a 1000 est la pour permettre de binder l'interface et faire le polling de contrôle. Ainsi lorsque je perd la connectique au couche 3-4 je supprime la règle avec la métrique 10 et l'interface de fail-over avec la prio la plus faible prend le relai.

    Mon soucis est qu'un autre deamons/process ajoute une gateway par défault avec une metric de 0 lorsqu'un événement en couche 2 arrives (down/up).

    Si quelqu'un a une idée du deamon qui crée cette route ça m'aiderai

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par manticore Voir le message
    Mon soucis est qu'un autre deamons/process ajoute une gateway par défault avec une metric de 0 lorsqu'un événement en couche 2 arrives (down/up).
    Si une de tes interfaces devient down, ton stack n'a plus le choix... Je pense donc que l'installation de cette nouvelle default route sera préemptif sur n'importe quelle autre opération faite dans le user space...

    Steph

  5. #5
    Membre confirmé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Points : 597
    Points
    597
    Par défaut
    Si une de tes interfaces devient down, ton stack n'a plus le choix... Je pense donc que l'installation de cette nouvelle default route sera préemptif sur n'importe quelle autre opération faite dans le user space...
    D'après ce que j'ai vu lorsqu'un event réseau arrive (probablement remonté par udev), le deamons NetworkManager est appelé.

    Celui-ci va exécuter les script dans
    /etc/NetworkManager/dispatcher.d/X
    Et sa configuration est dans le fichier :
    /etc/NetworkManager/nm-system-settings.conf
    Maintenant le script présent de base va appeler les scripts présent dans

    /etc/interfaces/if-down.d/
    ou

    /etc/interfafces/if-up.d/
    J'espérais pouvoir supprimer les routes par défaut créer dans ces scripts, mais apparemment l'ajout de la route par défaut se fait après...

    Sinon comment l'OS sélectionne t-il les routes prioritaires ? Car si j'utilise 3 interfaces :
    2 x eth en 100mo
    1 x usb0 débit ?

    Avec

    une configuration semblable a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Adress		GW		Metric	Interface
    0.0.0.0		192...		0		eth1
    0.0.0.0		10...		10		usb0
    0.0.0.0		10...		20		eth0
    Lorsque l'on débranche eth1, il ne va pas sélectionner l'interface USB0 comme le voudrait la métrique mais eth0.

    p.s. testé sur une debian 7.3 et un ubuntu 11.04

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par manticore Voir le message
    Lorsque l'on débranche eth1, il ne va pas sélectionner l'interface USB0 comme le voudrait la métrique mais eth0.
    Pas normal...
    Tu peux donner l'affichage complet du route -n ?

    Pour en revenir à ton projet, ton challenge sera de poller des adresses IP en utilisant une interface qui n'est pas éligible pour forwarder le user trafic... Ca n'est pas trivial, il faudra utiliser des fonctions avancées de l'iproute et utiliser des adresses IP/URL qui ne sont pas des destinations déjà utilisées par les paquets qui transitent par l'interface par défaut...

    Steph

  7. #7
    Membre actif
    Avatar de demkada
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Août 2011
    Messages : 79
    Points : 223
    Points
    223
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par manticore Voir le message
    Bonjour,
    je suis en train de rechercher des solutions pour faire du fail-over entre deux interfaces réseaux d'un équipement sous linux.
    La première interface utilise l'accès standard au réseau (ethernet -> WAN).
    La seconde utilise un accès GPRS/UMTS en secours.
    Il me faudrait donc un système permettant de découvrir automatiquement la perte du réseau sur une interface et de switcher celui-ci en cas de fail.
    Bonjour,
    Sauf si j'ai mal compris sinon il me semble que sur un système d'exploitation, les interfaces réseaux sont assez bien implémentées (Si tu as deux interfaces réseaux sur un même système qui sont respectivement liées à deux routeurs internet différents; le système d'exploitation aura toujours accès à Internet, si l'une des deux tombe en panne et vis versa).
    Par contre, si tu souhaite implémenter une procédure de haute disponibilité dans ton système et/ou ton réseau, pourquoi ne pas utilisé le paquet/Module Keepalived présent sous unix/linux.

    Et peut être que je n'ai pas bien compris ton objectif, et si tu crois que c'est le cas, ignore mon post.
    Cordialement,
    Kad D.

    _________________________________________________-
    Voter pour ce message s'il vous a aidé
    N'oublier pas le bouton si votre problème l'a été

  8. #8
    Invité
    Invité(e)
    Par défaut
    Salut,

    Keepalived est bâti sur VRRP, c'est une solution de redondance de gateway.

    Ce que manticore désire réaliser, c'est une bascule de la default route d'une interface à l'autre sur la même machine en effectuant du polling sur des IP/URL distants.

    Steph

  9. #9
    Membre confirmé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Points : 597
    Points
    597
    Par défaut
    Keepalived est bâti sur VRRP, c'est une solution de redondance de gateway.

    Ce que manticore désire réaliser, c'est une bascule de la default route d'une interface à l'autre sur la même machine en effectuant du polling sur des IP/URL distants.
    +1

    Sauf si j'ai mal compris sinon il me semble que sur un système d'exploitation, les interfaces réseaux sont assez bien implémentées
    En faite c'est implémenté seulement en couche 2 (détection de carrier).

    Mon cas est spécifique sur du système embarqué avec deux ou trois voies via du GPRS et ethernet. Il est important pour nous de pouvoir contrôler en tout temps que les deux interfaces soient ok. En cas de panne nous devons intervenir.


    Je vais tenter de partir d'un linux from scratch et voir si c'est pas NetworkManager qui fais une spécialité.

  10. #10
    Membre confirmé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Points : 597
    Points
    597
    Par défaut
    Alors j'ai un "proof of concept" qui a l'air de fonctionner, mais je dois bosser sur un autre projet.

    L'idée et de gérer le système pour toujours avoir une route avec une metric de 0 ainsi NetworkManager (ou le système qui ajoute cette route) ne va pas ajouter de route.

    Ensuite je flush la table de routage a chaque modification de la configuration, comme ça je suis sûr de l'état de ma route.

    Maintenant il y a mieux a faire en utilisant les socket Netlink et en récupérant les notifications du kernel mais j'ai pas eu le temps de m'y attaquer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. interface eth0 is down
    Par rezguiinfo dans le forum Debian
    Réponses: 2
    Dernier message: 17/10/2011, 11h55
  2. Réponses: 4
    Dernier message: 19/02/2007, 15h16
  3. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27
  4. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32
  5. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo