Migration de pfSense 2.2 vers 2.4

Moins simple qu'il n'y paraît

Je suis abonné aux trucs simples qui virent au cauchemar.

J'avais décidé de migrer mon pare-feu pfSense : nouveau matériel et nouveau logiciel. Le matériel, Alix, est d'apparence extérieure identique, mais un matériel plus récent et plus performant.

En théorie, tout était simple : installer pfSense sur le nouveau, exporter le configuration de l'ancien (Backup) et l'importer sur le nouveau, réassigner les ports physiques aux interfaces correspondantes… et le tour était joué !

Installation

Donc j'y vais !

Export plus import : ok. Je craignais à ce niveau une incompatibilité due à la différence de version, mais non. Jusque-là, tout va bien.

Réassignation des ports : ok. Je reboot, juste pour être sûr – on ne sait jamais…

Connexion à internet : ok. Là, c'est plutôt le soulagement. C'était facile.

Trop facile : pas de connexion entre le LAN et le WAN. Rien. Les machines ne voient plus Internet. Hum, c’est pas net !

Je peux voir toutes mes machines locales. Je ping, c’est ok.

Le pare-feu voit mes machines locales. C'est tout bon !

Je ping une adresse IP depuis l'intérieur, c’est tout bon.

Je ping une adresse www… ça ne joue pas.

Ah ! L'étau se ressère.

Je ping une adresse IP depuis le pare-feu, ça joue. Mais dès qu'il doit faire la résolution de noms, il n’y arrive pas. Plus exactement, il arrive à résoudre le nom en adresse IP, mais il n'arrive pas à joindre l'adresse IP correspondante. Et seulement dans le cas IPv4. IPv6 est OK.

Résumons le problème

J’ai les mêmes règles pare-feu, la connexion est OK, la résolution est OK, mais le ping des adresses IPv4 depuis le pare-feu ou le LAN n'aboutit à rien, comme si l'hôte n'existait pas.

Ah!

Ok, passons à la manière forte.

Est-ce un problème de pare-feu ?

Connectons-nous en ssh et désactivons le pare-feu.

Attention, chérie, ça va couper !

pfctl -d

Là, je ne vois plus rien. Rien ne passe. Pas étonnant.

Je cherche une règle qui pourrait expliquer la différence comportement entre IPv4 et IPv6. Je change les serveurs DNS, par acquis de conscience. Je n'obtiens pas de meilleurs résultats.

Si je compare les configurations des deux pare-feu avec pfctl -sr, je n'ai aucune règle différente qui puisse expliquer cette différence de comportement.

Je dois donc m'orienter sur une configuration autre.

Est-ce un problème de configuration d'interface ?

Comme ça ne semble pas pour l'instant une règle, ça pourrait être un porblème de configuration qui n'était pas appliquée fermement sur l'ancienne version. La nouvelle version serait plus stricte, une sorte d'incompatibilité.

La différence entre IPv4 et IPv6 est qu'ils n'utilisent pas la même interface de sortie.

Je vérifie l'interface utilisée par l'IPv4. Il s'agit de celle utilisée pour IPv6. C'est probablement là le problème : soit je dois ajouter des DNS IPv4 sur cette interface, soit je dois définir une autre interface.

Je choisis la seconde option car dans la nouvelel version, il n'est pas possible de définir un serveur DNS IPv4 sur une interface IPv6 et réciproquement. C'est peut-être là l'incompatibilité / nouveauté. En attendant, tout fonctionne parfaitement.

Sauf que…

Rien n'est jamais acquis. Pas moins de 24 heures après un fonctionnement sans problèmes, voilà que le réseau ne répond plus. Je me précipite vers le routeur, pensant qu'un câble a pu se débrancher… Non, rien. Tout est OK, sauf que l'interfacce LAN ne clignote plus, comme si elle n'était pas allumée. Reboot violent et forcé.

OK, le problème est peut-être exceptionnel et ne se reproduira pas. S'il est récurrent, il peut provenir soit d'un problème logiciel, soit d'un problème matériel – cette dernière option serait très ennuyeuse.

Je vais devoir surveiller le tout très attentivement dans les semaines à venir… ou les peut-être les minutes.

Parce que le second plantage s'est produit 40 minutes après. Hum. Là, ça ne sent pas bon du tout. Il va falloir investiguer. En attendant, je dois revenir sur mon ancien pare-feu.