2 votes

Répartition de la charge et basculement de FreeBSD avec 2 WANs (routage dynamique)

J'ai un serveur freebsd (ipfw, dhcp, dns) avec une interface LAN et 2 interfaces WAN (2 lignes ADSL différentes).

Les interfaces WAN (re0 et re1) sont agrégées en un lagg0 failover (ifconfig_lagg0="laggproto failover laggport re0 laggport re1").

Ce que je voudrais utiliser, c'est le routage du trafic dirigé vers certains réseaux vers re1, le basculement vers re0 lorsque le lien re1 tombe, mais toujours en utilisant re0 et le basculement vers re1 par défaut.

Est-ce possible ?

Gracias.

[MISE À JOUR]

Ok, donc le collage n'est pas une solution possible (et maintenant je vois que c'était évident).

Comment puis-je mettre à jour automatiquement le routage sur la passerelle lorsque la liaison sur l'une des lignes tombe en panne ? Je ne me soucie pas de savoir si je dois passer de ipfw à pf (j'avais prévu de le faire de toute façon).

Merci encore.

2voto

Ryan B. Lynch Points 1956

Ce n'est PAS possible, compte tenu uniquement de la configuration que vous avez décrite. L'agrégation de liens (ou "bonding", comme on l'appelle parfois) ne peut pas assurer l'équilibrage de charge ou le basculement entre plusieurs fournisseurs en amont. Votre configuration actuelle ne semble pas avoir d'utilité, à moins que vous n'omettiez certains détails importants de routage et/ou de configuration IP.

L'agrégation de liens est strictement un protocole de couche 2 (Ethernet). Il peut assurer l'équilibrage des charges et/ou le basculement lorsque vous disposez de plusieurs liaisons physiques Ethernet vers un seul commutateur ou hôte en amont. Mais deux liaisons montantes DSL différentes (même si elles sont reliées au même fournisseur) sont deux dispositifs différents. La liaison de plusieurs lignes DSL est possible, tout comme la liaison de plusieurs lignes T1, si les routeurs/ponts qui terminent les boucles téléphoniques (c'est-à-dire le boîtier DSL que vous branchez sur votre ligne téléphonique) prennent en charge la même technique de liaison spécifique au protocole (par exemple, T1, DSL, etc.).

Votre hôte FreeBSD ne peut pas lier plusieurs liens DSL à moins que vous n'y installiez des cartes DSL qui offrent cette fonctionnalité. Et même dans ce cas, votre fournisseur d'accès doit prendre en charge la liaison au niveau de son DSLAM (l'équipement à l'autre extrémité de vos lignes DSL, dans la centrale téléphonique).

L'équilibrage de la charge et/ou le basculement du trafic IP, utilisant plusieurs liens en amont, DOIT être traité par des techniques de routage (couche 3, IP).

Pour être honnête, j'ai peut-être trop présumé des détails que vous avez omis. Pourriez-vous mettre à jour votre question en y ajoutant des informations sur votre configuration ?

  • Quelles adresses IP sont liées à re0, re1, et/ou lagg0 ?
  • Avez-vous configuré une seule route de passerelle en amont ou utilisez-vous une configuration de routage plus complexe (démons de routage dynamique, réécriture d'en-tête/transfert d'IP, règles de routage basées sur l'IP source, etc.)
  • Si vous utilisez une configuration de routage complexe, pouvez-vous la décrire en détail ?
  • Vos deux lignes téléphoniques DSL se terminent-elles par un seul appareil (modem, routeur, pont, etc.), ou chaque ligne DSL a-t-elle son propre boîtier ? Si les deux lignes partagent un seul boîtier, est-ce que re0 et re1 sont branchés directement dans ce boîtier ?
  • Vos lignes DSL proviennent-elles du même fournisseur d'accès ? Si c'est le cas, votre FAI prend-il en charge le bonding DSL ? Si oui, votre plan de service actuel est-il configuré pour le bonding (c'est-à-dire que vous avez commandé des lignes DSL bondées et qu'il vous a configuré pour le bonding) ?

0 votes

Merci pour vos réponses. J'arrivais aussi à la même conclusion, à savoir que ce n'est pas possible avec le collage (ça aurait dû être clair dès le départ...). Je vais mettre à jour la question.

1voto

Dave Points 864

Je comprends peut-être mal votre situation et je n'ai certainement jamais fait quoi que ce soit de ce genre avec freebsd, mais...

Un examen rapide de lagg le fait ressembler à un mécanisme de redondance de couche 2 où l'adresse IP est flottante entre un certain nombre d'interfaces mais l'adresse IP ne change jamais.

Vos liaisons DSL sont-elles reliées à des fournisseurs différents ? Si c'est le cas, je pense que vous avez besoin d'un mécanisme de reconnaissance de couche 3.

S'il s'agit de fournisseurs différents, vous devrez modifier vos tables de routage pour que le lien 1 aille à un ensemble d'adresses IP distantes et que l'autre reçoive le reste, ou peut-être qu'une interface est utilisée pour le trafic Web sortant et l'autre pour tout le reste. En général, cela se fait avec des "routes de politique" pour les petites organisations et avec BGP pour les grandes organisations.

Enfin, j'envisagerais le pf au lieu de l'ipfw. C'est super sophistiqué et complètement génial. Exemples de pages qui traitent de ce que vous recherchez

http://www.openbsd.org/faq/pf/pools.html

L'article ci-dessus explique comment équilibrer la charge du trafic sortant.

Je n'ai regardé que brièvement la documentation de pf, mais il ne semble pas qu'il y ait un mécanisme de suivi de lien ou de suivi de ping directement dans la fonctionnalité de pf.

Je ferais juste 3 fichiers de configuration pf -- only.link1, only.link2 et balance.links. Ensuite, assurez-vous que dans la configuration balance links, vous n'équilibrez pas le trafic vers le prochain saut (donc le trafic vers le prochain saut de link1 ne passe jamais par link2 et l'inverse). Ensuite, exécutez un script qui effectue un test ping vers le prochain saut de chaque interface et si cela échoue, basculez les configurations pf vers l'autre interface exclusivement. Les équipements de réseau qui font vrrp ont souvent ce genre de fonctionnalité, mais intégrée dans le périphérique et non dans le cadre d'un script piraté en perl, mais cela devrait fonctionner de la même manière.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X