[resolu] - fail over + vlan + loadbalancer
-
Bon le titre est un peu faux mais voici l'architecture du reseau…
J'ai bien essayé de fair eun dessin, mais j'ai du mal a tout expliquer...
Alors :
j'ai 2 pfsense : pour le "wan", j'ai 5 vlan qui partent de chaque pfsense
pour le "lan", j'ai fait aussi les meme vlan que j'ai bridgé sur les vlan partant vers le "wan"...afin d'avoir une continuité du reseaux...(le pf est alors transparent ou presque)
du cote "lan" j'ai ensuite 2 switchs qui sont relié entre eux et qui sont relié a chaque pfsense...
Sur chaque switchs j'ai mes serveurs...je veux faire du failover afin evidement que si j'ai un coeur de reseau ou un pf qui tombe, alors l'autre prend le relais...
J'ai crée 4 interface carp pour mes 4 vlan, le 5eme vlan il va sur un autre interface du pfsense...chque interface ..
J’ai donc creé mes virtuals IP, puis synchronisé le master avec le slave…cela fonctionne…mes conf vont bien du master au slave…sauf que si je vais voir carp statut, j’ai mes 2 pf qui sont en master…et donc ca ecroule totalement le reseau du fait du bouclage et du fait que le pf prend en compte les 2 liens…donc le failover ne fonctionne absolument pas…
En résumé, le pfsync fonctionne, mais pas le carp…si je fait un netstat –eni sur les 2 pf, les interface carp sont tous les deux en master…si je disable un des 2, il reste donc un en master et un en init…et des que je met « enable », immediatement le slave passe en master apres 1 seconde…
J’ai fait un tcpdump –i vlan X proto carp, et sur les interface ou j’ai mis une adresse pour le carp, je vois bien le proto carp en multicast aussi bien sur l’un que sur l’autre…(je vois les 2 adresses des pf en source et dest)…Mes interfaces ont le meme nom sur les 2 pf, et meme les vlans du bce0 (wan + 4 opt) sont identiques sur les 2…idem pour le em0…(4opt)…
Mes serveurs arrivent de temps en temps a sortir (je pense a une mauvaise configuration ip…je regarderai cela…mais le plus gros probleme, c’est que ca fonctionne sur l’un des deux pf…mais impossible de reprendre le contrôle du 2eme…l’interface carp est accessible pour dirige le master pfsense, mais l’autre pfsense semble totalement figé…meme en allant sur la console, le clavier ne repond pas, mais la lumiere du num lock fonctionne si on lallume ou on l’etaind…par contre l’ecran n’affiche rien…comme si il etait partiellement planté…je fait donc un hard reboot du pf « planté » il remonte et prend le master, mais ca plante l’autre a son tour…
A savoir l’interface failover ou sync comme vous voulez est partagé avec les vlan cote « lan » qui sont donc bridgé…je n’ai pas d’interface physique specifiques pour le failover…(mais je pourrais en avoir)…
Evidement se serait trop simple, pour compliquer le tout, la moitié de l’archi est dans une salle, et l’autre dans l’autre, relié entre 2 par 1 double fibre optique…et donc j’ai du passer tous les vlan et le fail over sur le meme switchs…et meme avec des interfaces dediés pour le failover, il me faudrait quand meme passer par ce pu*** de switchs…et cette fibre…(dans quelques temps je pourrai avoir des fibres direct entre pf, mais pour le moment pas possible…
Alors j’ai tester plusieurs chose, je sais donc que le carp ne fonctionne pas…et puisque l’un ne voit pas l’autre forcement il prenne le master tous les 2…Evidement je pings tous les interfaces d’un pf depuis l’autre et inversement…ca arrive sur les bon interfaces…
Mais pourquoi ca plante alors ??? auriez vous quelques pistes…car la je fatigue…et rien trouve sur le net…ou pas exactement…
Derniere chose, je n’ai pas fait de nat outbound puisque mes interfaces « lan » sont bridgé sur les interfaces « wan »
Sinon pour codercrack si tu veux apporter des precisions (attention a ce que tu vas dire)…
Poser vos questions j’ai peut etre oublie des trucs…on peut rajouter que pour les maques reseaux, il ne se croisent pas…chaque masque et chaque reseau et bien separé…
Les VIHD correspondent bien avec les adresses ip,
J’ai pense a allonge le temps de la prise de contrôle du slave qui est par default 1 seconde, car puisque il n’a pas le temps de voir l’autre (en 1 secondes), il prend direct le master…mais cela ne change rien du tout…j’ai du faire un sysclt net.truc.machin.preempt = 100, il me met bien qu’il a pris en compte la modif, et pourtant avec un ifconfig -eni, j’ai tourjour le parametre a 1…
Alors beaucoups de questions et de demandes…
Je sais que ca peut fonctionner, il faut juste que je comprenne comment allonger le temps avant que le slave prennent le contrôle…enfin voila la piste que je suit pour le moment…
-
Bonjour,
Faut pas le prendre mal, peut être qu'il y aura que moi à qui cela fait ça, mais je trouve ton post très indigeste, ce qui fait que je n'ai pas trop étendu la lecture je croie ne pas avoir étais jusqu'au milieu.
Mais pour le peux que j'ai pu lire il y a quelque chose que je ne comprend pas sur ton dessin je ne vois que deux carte réseaux, mais quand je lis ton message cela me donne l'impression d'un besoin minimum de 3 cartes, entre autre je ne comprend pas pourquoi autant d'interface CARP (si je ne me trompe pas 4 !) et comme je les dit je n'ai pas tout lu, donc je suis certainement passer à coter de quelque chose.
-
j'accepte tout a fait la critique…meme pour moi c'est indigeste...
pour ta question j'ai 4 interfaces, par pf, et si je n'ai pas mentionné tous les interfaces, c'est qu'il navait pas de rapport avec les vlans ou le carp ou le bridge...
pourquoi autant de carp, ben 1vlan avec DHCP, 1vlan pour ladmin et pouvoir atteindre les swicht (deriere le pf et devant), 1 vlan pour un autre reseau client, et encore un pour un autre reseau client...(heu cl'est plus clair ???)
en fait le mieux c'est de regarder le dessin, et apres il y a quelques infos dans le post...meme eparpillées...
désolé encore une fois...je reste OP pour TOUTES vos questions si le post vous saoule...
sinon un gros resumé, la syncro fonctionne, et la conf passe bien d'un pf a l'autre, mais apparment le carp ne fonctionne pas et je me retrouve avec 2 pf en master...et immediatement apres l'un des 2 pf se fige meme en console.
Si je hard reboot celui planté, il prend bien le master, mais plante l'autre de la meme facon...
voila...
bon et pour finir pour posté avec la tempte plus d'adsl, je suis en 3G et j'ai des deconec toutes les 3 minutes...
-
Bonjour,
Je ne sais pas si je vais pouvoir être utile car je début avec PfSense et je viens de mettre en fonction il y a peux de temps du failover avec deux PfSense qui marche très bien, le seul souci que j'ai rencontrer est d'utiliser le proto UDP au lieu de TCP pour OpenVPN.
Mais comme je te l'ai dit ton poste est indigeste (tu le reconnais toi même) ce qui fait qu'on ne prend pas le temps de lire, donc essaye deja de faire quelque chose de ce coté si tu veux que d'autre personne prenne le temps de te répondre.
Sinon peut tu deja repondre à cela:
- Combien carte reseau par PfSense?
- Combien de Vlan?
- Combien de d'interface CARP? et de combien de carte réseau ce compose t'il?
Cdt,
-
Je pense qu'il faut que tu te poses quelques question quant à ton architecture. C'est un problème de fondamentaux.
- As-tu réfléchi à ce qu'est un bridge et à quel niveau (OSI) il travail ?
- Dès lors est-ce que bridge et CARP peuvent cohabiter ?
- Qu'arrive t-il dans un réseau ou deux bridges relient les mêmes zones :-) ?
Dès que tu auras ces réponse tu auras alors la réponse à tous tes problèmes.
-
Merci Juve c'est exactement les question qu'il fallait que je me pose…
En effet le bridge travaille au niv 2 (heu, je crois), et donc il transfer tout...
Le carp traivaille au niveau 3 (et 2 en fait, mais options pas applicables a pfsense), et pour lui il comprend pas que du fait du bridge entre les int "wan" et "lan', il y a toujours une continuté ou plus simplement une boucle...Il est donc imperatif de faire un interface physique propre pour le carp (heartbeat), meme si je me suis dit qu'en isolant le port du switch sur le lan, il comprendrait la subtilité...
J'ai lu qu'il etait possible apres sur le swtich d'isolé totalement les port ou le proto carp passe...en enlevant le spanningtree...je ne sais pas si cela peut s'appliquer, mais en tout cas des demain je change l'archi en mettant le heartbeat sur des int separé physiquement...
Merci...
titofe, merci aussi de l'info, car evidement j'ai du pptp (pas openvpn), et je ferai attention sur le prot...
-
Tu as une conception trop "linux HA" du fonctionnement de pfSense.
Il n'y a pas de heartbeat.
Il ya trois briques dans un cluster pfsense:
- la première s'appelle CARP, il s'agit d'une implémentation libre du standard VRRP au sein des OS BSD. Lorsque tu utilises CARP, chaque interface portant une adresse CARP se met alors à diffuser une annonce (pour le maître) et à écouter les annonces (pour l'esclave). il y a donc échange d'annonces sur chaque interface utilisant CARP.
- la seconde s'appelle pfSync, il s'agit d'un protocole (utilisant la multidifusion) d'échange d'informations (le contennu de la table des états TCP/UDP)entre les noeuds d'un cluster. La bonne pratique consiste à utiliser une interface ou vlan dédié au passage de ce protocole (pour des raisons de sécurité et pour limiter le champs de la multidifusion). Si ce lien est coupé, en aucun cas le cluster basculera, il y aura simplement désynchronisation des états de sessions et lors d'une bascule les sessions en cours seront perdues.
-la troisième est pfSense lui même et plus particulièrement son mécanisme de synchronisation de la configuration (routes, rules, alias, nat etc.) utilisant le standard XML-RPC over HTTP ou HTTPS.
Dans ton cas il faut oublier le niveau 2 (bridge) et construire une architecture à base de routage (niveau 3).
Bonne chance.
-
Merci Juve pour toutes ces infos precieuses…Je comprend beaucoups mieux ou sont mes problèmes...
Resultat :
Le cluster fonctionne, si j'en coupe un, le second prend le relais...Par contre j'ai encore un problème avec lePFsync, puisque si depuis le "wan", je pingue le "lan", cela fonctionne sauf lorsque ca coupe cela ne prend pas le relais...et lorsqu'il revient, le pingue refonctionne...
Donc conclusion et d'apres ces informations qui sont super importantes et merci a toi, le PfSync ne fonctionne pas...car il ne prend pas le erlais des états de connexion...ils continuent a envoyer sur le meme pf...
Je planche donc encore dessus...
Pour finir, ca fontionne vraiment bien, mais il est vrai qu'il a fallu que je change tout l'adressage reseaux derriere les PF...
J'espere que dans une version ultérieure du pf, il sera possible d'individualisé les int pour justement faire du bridge de vlan tout en ayant la possibilité de faire du carp sur d'autres vlan partageant le meme interfaces physiques...
En tous les cas, merci juve pour ces explications...
-
Tu voit verash on devrait peut être pensé un peu moins linux !!! (ca va être dur ) lol
Mais Juve des informations très pertinentes !!!Bravo !!!
-
Codercrack, faut que je te voit pour ma parabole…ca va cest moins linux...
Bon sinon blague a part, toujours problemes sur la reprise des etats de connexion...je planche dessus, s'il y en a qui ont deja galeré dessus, peut etre pourront-ils me dire ou il avait mal conf des trucs...car ca doit etre evidement ca...une mauvaise conf qq part...
-
Bon voici les news :
Le fail over fonctionne sur les wan et lan (plusieurs vlan de chaque cote des interfaces "wan" et "lan"
le carp fonctionne sur les wan et lan
le load balancing fonctionne sur les wan et lanSi cela interesse qqun je pourrai mettre en ligne (sur ce post) comment j'ai fait…
Sinon maintenant ca fonctionne presque...et oui dernier probleme que je viens d'identifier :
Sur les rules du firewall, meme en mettant "pass any to any" sur tous les interfaces, il me bloque des requetes...aleatoirement...mais jamais pour les pings par exemple...
Par contre sur outlook j'ai des deco toutes les 2 minutes, et si je fait une exploration via windows, idem...
Dans les logs j'ai "@229 block drop out log quick all label "Default deny rules"
1ere question : Pourquoi bloquer les interfaces en sortie ??? Il me semblait (enfin c'est ce que je fait depuis quelques annees), qu'il ne afllait appliquer les rules sur un firewall qu'en entrer…et eviter de le faire en sortie pour ne pas se retrouver avec un tas de regles a suivre...Cela m'a donc posé un gros problème, car il drop mes paquets apres qu'il soit passer dans ma moulinette...(et oui si j'applique des regles en entrer, cela fait redondant de les appliquer en sortie aussi...)...
J'ai trouvé un contournement qui ne me satisfait pas, mais voila :
Je suis allé dans le fichier /tmp/rules.debug, et la dernière ligne de ce fichiers (enfin les 2) sont "block in/out log quick all label "Default deny rule"
ue fois commenté (juste pour le out evidement), cela fonctionne correctement...sans cela, cela ne fonctionne plus...
Cette regle doit bien venir de qq part, puisque a chaque modif, la ligne se Décommente...le fichier d'origine est /cf/conf/config.xml...mais rien dedans ne s'applique a un DENY ALL...
Qqun pourrait-il me dire ou se trouve cette regle de deny out , afin que je la supprime pour moi, car a mon sens inutile, puisque j'ai des regles de firewall en entré...
Merci une fois de plus...
-
Bon ben pire qu'avant, maintenant quand je tape l'adresse de mon premier pfsense j'arrive sur sa page d'acces, et quand je tape l'adresse du second pfsense je tombe sur l'adresse du premier…
le second pfsense n'est plus accessible...sauf en mode ssh...pffffffffffffffffffffff...
-
bon ben pour info voila la crotte precedente…
j'ai fait du nat et j'ai syncro les regles...sauf que comme j'accede a l'interface graphique par le wan, j'avais fait une redirection par le lan...sauf que l'adresse du lan etait diferente sur les 2 pf...resultat, impossible d'aller sur le second pf...alors j'ai changer le nat...et oublié de changer la redirect...resultat plus de pf...lol...
.!.
-
A un moment il faut abandonner ;D
Pour info, pfSense ne filtre pas en sortie des interfaces….
-
ouais des fois faut abandonner…j'y suis retourné et j'ai resolu le pb en 15 minutes...
sinon je pensais ca aussi, mais en regardant le fichier /tmp/rules_debug, la derniere ligne est
"block in log quick all label "Default deny rule"
"block out log quick all label "Default deny rule"j'en conclue qu'il filtre en entré et en sortie par defaut...En entré un deny all c'est normal, mais en sortie je ne voit pas la raison, mais il doit y en avoir une, surtout que "label" je ne sais pas trop ce que ca veux dire, pour moi cela signifie "label"...heu bon ok je sors...
je pensais donc que label voulait dire "tous les interfaces"...En tout cas en commantant cette ligne (temporaire puisque a chaque sauvegarde de regles il faut le recommenté...), cela fonctionne parfaitement...