Routage multi wan, multi vpn avec PFSENSE



  • Bonjour à tous et merci pour votre interet.
    J'ai actuellement en production un backup de lien bien huilé :

    RV042 10.10.10.1 ===== VPN1 ====== RV042 10.10.100.1
    LAN1 DEBIAN  10.10.10.254  –-----  RV042 10.10.10.2===== VPN2 ====== RV042 10.10.100.2 -------- 10.10.100.254 DEBIAN ------ LAN2
                                                              RV042 10.10.10.3===== VPN3 ====== RV042 10.10.100.3

    Les VPN sont sous traités a des RV042 de chez LINKSYS.
    C'est une DEBIAN de chaque coté, une table de routage est en place et IPTABLES redirige les flux (en fonction des ports et des destinations) avec du packet tagging a travers les divers liens.

    Je tente de faire une migration vers PFSENSE (qui me plait beaucoup ;-))

    On pourrait appeler mon objectif : routage multi wan, multi vpn avec PFSENSE.

    L'objectif est d'obtenir ceci :

    RV042 ===== VPN1 ====== RV042
    LAN1 pfSense1 -------  RV042 ===== VPN2 ====== RV042 -------- pfSense2 ------ LAN2
                                      RV042 ===== VPN3 ====== RV042

    Pour ce faire j'utilise les règles de firewall et assigne en fonction du port et de la destination une passerelle de sortie.

    Mon soucis est que j'ai constaté que mes paquets envoyés du LAN1 vers le LAN2, sont bien redirigé par PFSENSE1 sur le bon routeur RV042, puis transitent sur le vpn de ce routeur et arrivent bien sur le site distant, mais lors du retour, ils se perdent à l'arrivée sur le PFSENSE1 d'origine. Apparemment celui ci ne sait qu'en faire ...

    MES QUESTIONS :
    PFSENSE est il capable de m'aider ?
    Est ce que j'utilise la bonne méthode ?
    Y a t'il quelque chose que je ne comprends pas ?

    Merci de votre intérêt et de vos remarques ou conseils.



  • Salut salut

    Bien que vous ayez presque respecter la charte de ce topic https://forum.pfsense.org/index.php?topic=79600.0

    Je constate un manque pattant d'informations appuyant vous dire comme des log.

    Comment vous aider dans ces cas là ?
    Avez vous compris tous les concepts mis en œuvre et modes de fonctionnement de Pfsense, qui en passant n'est pas une solution GNU mais BSD.
    Si vos paramètre auraient été bons vous n'auriez pas eu ce soucis la, quels sont ils ?

    Encore du tirage de vers de nez ou du pressage de citron  >:(

    Cordialement.



  • Si pfsense gère automatiquement le routage pour tous les réseaux connectés à ses interfaces, il n'en est pas de même pour les réseaux qu'il ne connait pas. Il vous manque probablement des routes retours. C'est l'hypothèse la plus vraisemblable.



  • Bonjour a tous,
    Merci de vos réponses et demandes de compléments. J'ai essayé de faire mieux pour les infos transmises, mais je vais essayer de compléter.

    En ce qui concerne les logs :
    Je vais résumer, car il existe toutes sorte de logs et beaucoup vous seraient utiles pour cerner mon pb … Je vais vous donner les pistes que j'ai suivi pour dégrossir, je pourrais ensuite vous fournir des logs plus ciblés si demandes :

    Le PC d'origine et de destination ont bien comme passerelle les deux PFSENSE (LAN1, LAN2), les ip sont correctes.

    Le firewall fonctionne bien d'un coté ou de l'autre :
    Si je crée une règle, d'un coté ou de l'autre, pour par exemple rediriger le WEB (tout ce qui vient du LANx sur le port 80 passe par la passerelle RV042-VPN2) -> pas de soucis, je sort bien par le bon lien, j'ai le web qui fonctionne.

    Si je trace mes packets, par ex un ICMP entre les deux lan :

    Ils partent de mon PC, traversent PFSENSE (packet capture)
    10:18:57.685294 00:1b:21:9e:d7:a1 > 00:16:b6:4c:8b:ea, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 128, id 40216, offset 0, flags [none], proto ICMP (1), length 60)
        16.1.7.240 > 172.31.100.248: ICMP echo request, id 512, seq 18255, length 40

    prennent bien le bon VPN, arrivent sur l'autre PFSENSE (packet capture)
    10:21:01.083968 1c:17:d3:72:df:53 > 00:16:e6:f6:5a:a2, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 122, id 41004, offset 0, flags [none], proto ICMP (1), length 60)
        16.1.7.240 > 172.31.100.248: ICMP echo reply, id 7320, seq 24253, length 40

    arrivent sur la machine destination, reparte de la machine, retraversent le PFSENSE distant (packet capture)
    10:22:01.061753 00:16:b6:4c:8b:ea > 00:1b:21:9e:d7:a1, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 126, id 1970, offset 0, flags [none], proto ICMP (1), length 60)
        172.31.100.248 > 16.1.7.240: ICMP echo request, id 7340, seq 24265, length 40

    Puis se perdent -> ils ne reviennent jamais sur le PFSENSE d'origne …

    DONC : le PING sur la machine qui l'a initié :
    Délais d'attente de la demande dépassé.
    Délais d'attente de la demande dépassé.
    Délais d'attente de la demande dépassé.

    C'est pareil pour les autres services (http, https, telnet, ssh ...)

    MAIS : J'ai un lien MPLS opérateur entre deux sites et je viens de faire des tests dessus :

    RV042 ===== VPN1 ====== RV042
    LAN1 16.1.7.0/24 pfSense1 -------  RV042 ===== VPN2 ====== RV042 -------- pfSense2 ------ LAN2 172.31.0.0/16
                                                            RV042 ===== VPN3 ====== RV042

    CISCO800===VPN-OPE==CISCO800

    SI JE METS COMME PASSERELLE LE LIEN MPLS, ICI CELA FONCTIONNE !!! (je viens de faire le test).

    Je me dis que cela doit venir de la NAT :
    Ma NAT est sur le PFSENSE 1 :
    source : ANY - port : * - destination : !172.31.0.0/16 - port dest. : *

    Ma NAT est sur le PFSENSE 2 :
    source : ANY - port : * - destination : !16.1.7.0/24 - port dest. : *

    Qu'en pensez vous ?



  • Vous parlez de vpn mais ne nous dites pas lequel. C'est un peu nécessaire à la compréhension de votre problème. Si vous pouviez fournir un schéma ce serait bien.



  • Bonjour et merci de votre intérêt.
    Pour ce qui est des routes, tout est OK.
    Lorsque je parle de VPN, je parle des 3 VPNs montés entre les 6 RV042. Chaque couple de RV042 a son VPN en point a point.
    Je vous met un schéma en pièce jointe.
    Je confirme que les flux envoyés entre  les deux sites via le lien MPLS fonctionnent impeccablement, dans les deux sens …






  • Je regarde les schémas plus tard, pas le temps maintenant. Vpn IpSec ou OpenVpn (on va y arriver) ?



  • Grand merci ! Je continus pour ma part les tests et modifs.
    Si avancée je post.

    Tunnel RV042 -> IPSEC



  • Toujours pas d'avancées de mon coté.
    Je vais essayé de mettre 2 vpn ipsec pfsense a la place des rv042 pour tests …



  • Il y a un point qui ne parait pas dans vos schémas. Je m'explique. Vous utilisez deux interfaces de Pfsense, en plus de lan, pour vos interconnexions. L'une d'elles est probablement interface wan.Par défaut Pfsense translate tout le trafic à destination du wan lors de la sortie par cette interface, ce qui n'est pas le cas pour les interfaces opt. Or nous ne savons pas si le MPLS utilise wan ou une interface opt. Avez vous considéré cela ?



  • Bonjour,
    Effectivement, le MPLS est bien sur le 192.168.100.X qui est le WAN de PFSENSE.
    J'ai bien concidéré cela, et je montre dans mon post que lorsque j'utilise un service redirigé sur un lien VPN, il part bien par ce lien (qui n'est pas forcement le MPLS) arrive bien sur le site distant, repart bien par le bon lien et … se perd ...



  • ok c'est un point éclairci maintenant. Vous savez à quel endroit il se perd ? En sortie du MPLS sur le chemin du retour ?



  • Lors du retour, après passage a travers le pfsense distant, sur les routeurs ou les vpn's, je les vois bien sortir sur le reseau VPN, mais ensuite je n'ai aucun moyen de voir ce qui se passe sur les linksys (ai essayé du syslog, mais il ne remonte que les traces du firewall …

    Ils partent de mon PC, traversent PFSENSE (packet capture)
    10:18:57.685294 00:1b:21:9e:d7:a1 > 00:16:b6:4c:8b:ea, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 128, id 40216, offset 0, flags [none], proto ICMP (1), length 60)
        16.1.7.240 > 172.31.100.248: ICMP echo request, id 512, seq 18255, length 40

    prennent bien le bon VPN, arrivent sur l'autre PFSENSE (packet capture)
    10:21:01.083968 1c:17:d3:72:df:53 > 00:16:e6:f6:5a:a2, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 122, id 41004, offset 0, flags [none], proto ICMP (1), length 60)
        16.1.7.240 > 172.31.100.248: ICMP echo reply, id 7320, seq 24253, length 40

    arrivent sur la machine destination, reparte de la machine, retraversent le PFSENSE distant (packet capture)
    10:22:01.061753 00:16:b6:4c:8b:ea > 00:1b:21:9e:d7:a1, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 126, id 1970, offset 0, flags [none], proto ICMP (1), length 60)
        172.31.100.248 > 16.1.7.240: ICMP echo request, id 7340, seq 24265, length 40

    Puis se perdent -> ils ne reviennent jamais sur le PFSENSE d’origine …



  • Bon … j'ai relu et testé votre idée d'interface par defaut.

    J'ai mis un des routeurs VPN comme gateway par defaut sur le pfsense distant -> ca passe !!!!!! MAIS QUE DANS UN SENS (du local vers le distant)

    Ceci marche :
    local ICMP -> PFSENSE gateway par default comme on veut -> regle de routage ICMP pour VPN1 -> PFSENSE gateway default routeur VPN1 -> machine distante ...
    Mais du distant vers le local -> nada ...

    Le pfsense local a comme gateway par default un routeur situé sur la meme plage IP que les routeurs VPN

    MAIS :
    Je ne m'explique pas cet état de fait ...
    Le MPLS fonctionne alors que ce n'est pas la gateway par default ...
    comment faire quelque chose de propre ?



  • Bonjour à tous,
    ENFIN J'AI TROUVE !

    Sur mon interface WAN, je ne sais pourquoi, une gateway par défaut c'est mise en place (routeur MPLS (tiens tiens … le sal....d)).
    Si bien que ...
    Ceci n'apparaissait pas sur l'interface ...
    J'ai fais une machine etst, restoré la machine de prod ... et là c'est apparu !
    Une fois cette interface reconfigurée ... cela fonctionne mais une autre incohérence apparait :

    • Dans Systeme, Routing, Gateway -> si je ne remet pas pas le WAN comme gateway par défaut, (alaos qu'elle est déjà par défaut sur l'interface) mes regles ne fonctionnent pas.
      Il suffit que je reselectionne la gateway, que je valide et ... tout part impec !

    Avez vous une explication ?
    Je pense que je vais réinstaller cette machine avec une base propre ...



  • Je pense que je vais réinstaller cette machine avec une base propre ..

    Cela me semble une bonne idée pour voir notamment si l'anomalie qui précède perdure. D'expérience (encore hier) Pfsense ne réagit pas toujours parfaitement lorsque l'on touche aux interfaces (affectation, ip, …). Un redémarrage est en général nécessaire.



  • Re bonjour a tous.
    Après une reinstall complete : toujours le probleme. Mais j'identifie mieu le pb !

    Entre mes deux sites, je veux que les packets utilisant le port 5900 passent sur le VPN2 :
    Site 1 : regle : tout ce qui sort en 5900 à destination de l'autre site passe par la gateway VPN2
    Site 2 : regle : tout ce qui sort en 5900 à destination de l'autre site passe par la gateway VPN2

    J'initie ma connexion VNC, les paquets partent bien via le VPN2 (packet capture), arrivent sur le site distant (packet capture), arrive a la machine destination, qui répond, les packets de réponses repartent, arrive sur le pfsense distant, et là …. prennent la route par défaut ! PLUTOT QUE DE PRENDRE LA MEME ROUTE DE RETOUR  QUE CELLE D'ARRIVEE !
    J'ai bien essayé de doubler les règles (tout ce qui sort en 5900 et tout ce qui entre en 5900) mais rien ...

    Avez vous une piste ? Moi je me désole ...



  • up



  • bonjour,

    il est possible de forcer la gateway pour chaque rules du firewall, en bas des rules dans "Advanced features".
    De base la gateway etant paramétré sur "default" pour chaque rules.

    a tester.



  • Bonjour et merci de votre réponse …
    C'est bien mon soucis, et c'est ce que j'utilise.

    Mais dans mon cas, impossible de faire REVENIR le paquet par la meme route ... les packet avec un port 22 par ex, partent bien du site 1 vers le site 2 par la gateway spécifiée dans la rule du site 1, mais reviennent TOUJOURS par la gateway par défaut du site 2 ...
    Meme si je met une contre regle sur le site 2 (les packet en provenance du serveur SSH port 22 vers le site 1 passent par telle gateway) ....

    Cela fait plus d'un moi que je suis là dessus et ce n'est pas faute de temps a y consacrer ...

    Même des collègues a moi, pourtant pas mauvais en réseau, s'y sont cassés les dents ...

    Par contre attention : l'ICMP (couche 3) fonctionne dans tous les cas !!! c'est quand on passe a la couche 4 que ca merde ... donc ne pas se fier au ping qui passe et revient sur le bon, lien (via un packet capture par ex).

    Merci de votre soutient et avis ou idées (meme les plus dingues ...)



  • la règle est placée au bonne endroit, dans l'onglet ipsec j'imagine ?  essayez aussi dans LAN peut être ?
    De même la règle est à la bonne position, en haut pour être sur ?



  • Wazadex merci de ton suivi.
    Oui tout cela a bien évidement été vérifié et testé. Sans succes.
    Je n'ai pas de VPN via PFSENSE. Ce sont mes routeurs LINKSYS qui montent les VPN entre les sites.

    Ce qui se passe systemeatiquement : les paquets partent bien sur le bon lien en  suivant la bonne regle, mais reviennet systematiquement sur la passerelle par défaut du pfsense distant.

    POURTANT : plusieurs fois j'ai eu un système FONCTIONNEL. Mais un reboot d'un des deux pfsense (ou des deux) mettait fin à cet état de grâce …. RHAAA !!! Frustrant !



  • Bonjour à tous,

    Hé oui, je me cramponne a mon topic !!!  :P

    Mes derniers tests et ma conclusion : (j'ai été aidé car mes compétences on bien sur des limites … hélas)

    J'ai fait des tests sur divers protocole, et il s'avère qu'ils ne réagissent pas de la meme facon :

    Comme je vous l'ai dit plus haut, ICMP fait partit de ceux ci. Avec un ping, les paquets ICMP sortent bien par l'interface designée sur la règle ICMP du firewall 1 vers le firewall 2, arrive sur le site 2, arrivent à la machine destination, repartent et ... reprennent bien la route spécifiée dans la règle du PFSENSE du site 2 et arrivent enfin a destination en prenant le bon lien VPN de bout en bout ! (pour rappel, pour tout ce qui n'est pas ICMP, le retour se fait TOUJOURS SUR LA PASSERELLE PAR DEFAUT !).

    ICMP -> couche 3 max du modele OSI -> pas de pas de FLAG TCP ACK !!!!

    En fait : PFSENSE revoit sur l'interface par défaut TOUS LES PAQUETS ACK ! (lorsque qu'un packet traverse une règle PFSENSE et qu'il passe, il est tagué ACK par PFSENSE).

    Donc nouvelle question aux utilisateurs avancés : comment résoudre mon problème sachant cela, sans monter une usine a gaz avec des règle flottantes et un proxy pfsense sur chaque site ...

    J'espère que mon topic intéresse quelques personnes, car je trouve la solution que je cherche a mettre en place avantageuse ... et suis surpris que personne n'ai eu ce soucis avant moi ...


Log in to reply