Serveur DNS PfSense

Résolu/Fermé
Dual67 - 13 sept. 2022 à 10:18
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 14 sept. 2022 à 11:50

Bonjour,

J'ai configuré un pare-feu PFSense sur un serveur Proxmox. 3 interfaces on été configurées, une WAN avec adresse interface x.x.x.x/24, une LAN avec adresse 192.168.1.1/24 (gateway : 192.168.1.254) et une dernière pour la DMZ.

J'ai une machine cliente connectée au réseau LAN, je me connecte donc à l'interface Web de PfSense. J'active le serveur DNS, mais celui-ci ne fonctionne pas car je ne peux pas me connecter à google par exemple.

Il y a peut-être un problème avec la gateway WAN ?


Windows / Firefox 104.0

A voir également:

3 réponses

mamiemando Messages postés 33129 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 mai 2024 7 755
13 sept. 2022 à 11:04

Bonjour,

Au niveau de la machine qui a un problème réseau, que donnent les commandes suivantes ?

ip route
cat /etc/resolv.conf
ping -c2 www.google.fr

Bonne chance

1

Bonjour, à savoir que l'accès à google ne fonctionne pas non plus directement sur le routeur PfSense. J'ai donc exécuté les commandes sur celui-ci :

ip route :

default via 192.168.1.1 dev ens18 proto dhcp metric 100
192.168.1.0/24 dev ens18 proto kernel scope link src 192.168.1.2 metric 100

cat /etc/resolv.conf :

[...]

nameserver 127.0.0.53
search localdomain

ping -c2 www.google.fr :

Tempory failure in name resolution.

Sur PfSense, pour l'interface WAN, j'ai indiqué la gateway x.x.x.254 qui correspond également au serveur DNS, j'ai donc indiqué celle-ci dans la configuration DNS du PfSense.

0
mamiemando Messages postés 33129 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 mai 2024 7 755
13 sept. 2022 à 20:01

Bonjour,

En fait je pense d'ailleurs qu'à ce stade, il ne faut pas raisonner par rapport au fait qu'on utilise pfSense ou non. Le Linux qui s'y trouve "s'en fiche" et soit la configuration réseau est correcte dans l'absolu, soit elle ne l'est pas. Si elle ne l'est pas, alors il faudra se demander si pfSense peut expliquer pourquoi elle n'est pas correcte.

ip route

À première vue la table de routage reportée dans le message #3 me paraît correcte.

Par rapport aux messages #4 et #5, je pense qu'en fait il y a un quiproquo.

  • En routage IP, on regarde l'IP destination et on choisit la route dont le préfixe est le plus spécifique et contient l'adresse destination.
    • L'interface mise en jeu (réelle, virtuelle, ethernet, wifi, VPN) n'a aucune importance, le raisonnement ne change jamais. Pas besoin de poser des questions existentielles et de parler de WAN ou de LAN.
    • Le raisonnement reste vrai quelque soit la manière dont a été configurée ou apprise la route. Pas besoin de se demander si la route est apprise par DHCP, configurée manuellement, ou apprise par un protocole de routage.
  • Dans ton cas, ta table de routage montre qu'il y a deux cas de figure :
    • Si l'IP commence par 192.168.1.* et donc elle appartient au réseau 192.168.1.0/24. Comme ce préfixe est le plus spécifique dans la table de routage, c'est la route correspondante qui est utilisée. Les IP dans ce préfixe sont directement joignable (pas de passerelle, d'où le 0.0.0.0) par ens18 car elles font partie du même préfixe (192.168.1.0/24)
    • Sinon, l'IP appartient au préfixe 0.0.0.0/0 (default) et c'est donc la route par défaut qui est mise en jeu. Celle-ci doit impliquer une passerelle (gateway) routable. En l'occurrence, la passerelle est 192.168.1.1 et elle est routable grâce à l'autre route, donc a priori tout est correct. Reste à savoir si 192.168.1.1 existe et est capable de faire office de gateway.

ping (passerelle)

Parviens-tu à pinguer ta passerrelle.

  • Si oui passe au test suivant
  • SInon, il y a de fortes chances pour que tout le reste ne marche pas, car si tu ne peux pas atteindre la passerelle, tu ne pourras pas atteindre le reste.
    • Vérifie que tu arrives à pinger ta propre machine. Si ça n'est pas le cas, tu as peut-être un problème de pare-feu sur ta propre machine (qui bloque l'émission ou la réception des paquets ICMP mis en jeu par ping).
    • Vérifie que l'adresse IP de la passerelle est correcte. Si ça n'est pas le cas, il faut sans doute revoir la manière dont elle a été configurée (configuration locale ou configuration côté serveur DHCP)

ping (DNS)

Parviens-tu à pinguer le serveur DNS ?

ping -c2 172.0.0.53
  • Si oui, passe au test suivant
  • Sinon, est-ce que l'IP du DNS te paraît correcte ?
    • Note que ping n'est pas un test parfait pour savoir si le routage est correct (si ça ne répond pas, ce peut être parce qu'un pare-feu bloque le ping. Dans ce cas fais quand même le test avec nmap). Si le ping marche, c'est que le routage est correct.

nmap

Il se peut que le serveur DNS normalement hébergé sur 172.0.0.53 ne réponde pas il se peut que la requête DNS soit filtrée par un pare-feu, soit sur la machine que tu es configuré, soit sur 172.0.0.53, soit sur une machine intermédiaire localisée entre les deux (par exemple la passerelle 192.168.1.1).

Pour vérifier si le port DNS (53) est visible depuis la machine que tu configures, installe nmap et lance :

nmap -p 53 127.0.0.53

À titre indicatif, voici ce que nmap retourne pour mon propre serveur DNS (dans mon cas, 192.168.0.254) :

(mando@silk) (~) $ nmap -p 53 192.168.0.254
Starting Nmap 7.92 ( https://nmap.org ) at 2022-09-13 19:32 CEST
Nmap scan report for 192.168.0.254
Host is up (0.0031s latency).

PORT   STATE SERVICE
53/tcp open  domain

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

Dans ton cas, est-ce que ta machine voit le port 53 pour 172.0.0.53 ?

  • Si oui, alors le problème n'est a priori ni lié au routage, ni à un pare-feu, ni au lancement du serveur DNS. Il faudrait alors vérifier au niveau des logs du serveur DNS ce qui ne marche pas.
  • Sinon, vérifie que le serveur DNS 172.0.0.53 est lancé.
  • S'il est bien lancé, vérifie ce qui se passe si tu configures un autre serveur DNS.

Test avec un autre DNS

Peu importe la manière dont est obtenue ta configuration DNS (par DHCP ou manuellement), tu peux temporairement remplacer ton serveur DNS dans /etc/resolv.conf de sorte à avoir :

nameserver 8.8.8.8

Cela correspond à l'adresse anycast des DNS de google.

Est-ce que ça marche ?

  • Si oui, le problème est probablement dû au serveur DNS 172.0.0.53 lui-même. Il faudrait contrôler ses logs.
  • Sinon, il est possible qu'une machine (soit celle que tu configures, soit le serveur DNS, soit une machine entre les deux) filtre la requête avec son pare-feu.

Bonne chance

1

Merci beaucoup à vous deux pour ces explications, c'est très instructif ! Après les diverses analyses faites à travers vos messages, j'ai trouvé la solution.

Il fallait cocher l'option "Enable Forwarding Mode" pour permettre au serveur DNS de PfSense de transférer les requêtes DNS au prochain serveur s'il ne sait pas le résoudre lui-même.

Pour revenir au message d'avion-f16, j'ai en fait ajouté l'adresse DNS du PfSense qui est 192.168.1.1 sur chaque machine "cliente" dans resolv.conf. Donc j'imagine qu'il y a une manière plus propre de faire, probablement directement sur PfSense ? Je vais regarder ceci.

Je vais donc continuer ma configuration, j'ai encore beaucoup de boulot .

Belle journée à vous !

PS : Si quelqu'un souhaite avoir plus d'informations sur ma configuration, notamment suite aux questions d'avion-f16 dont je n'ai pas eu besoin de répondre, n'hésitez pas à demander !

0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500 > Dual67
14 sept. 2022 à 11:50

Bonjour,

Tu peux en effet modifier la configuration du service DHCP afin qu'il suggère aux machines clientes d'utiliser 192.168.1.1 comme DNS.

Si tu n'as pas de raison de faire fonctionner ton propre DNS sur pfSense, le plus simple serait de désactiver le service DNS sur pfSense, et configurer les machines clientes afin d'utiliser directement un DNS externe comme ceux de Google, CloudFlare, OpenDNS, Quad9, ... (via DHCP).

Les réponses à mes questions sont à priori inutiles, mais le service DNS de pfSense devrait toutefois fonctionner en mode "solveur récursif" également.

0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
13 sept. 2022 à 11:29

Bonjour,

> une LAN avec adresse 192.168.1.1/24 (gateway : 192.168.1.254)

Aucune passerelle doit être configurée sur l'interface LAN de pfSense.
Et pour les machines connectées à ce LAN, la passerelle et le DNS sont le routeur pfSense, donc 192.168.1.1

Assures-toi aussi que les informations configurées dans le serveur DHCP soient cohérentes avec cela.

0

D'accord, mais pourquoi ne faut-il pas de gateway pour un réseau LAN ?

Ensuite, ok pour le DNS, donc en fait je me suis mélangé avec le WAN, il faut que, dans les paramètres du serveur DNS, j'indique l'adresse ip 192.168.1.1 c'est cela ?

Je vais regarder pour le DHCP.

0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500 > Dual67
13 sept. 2022 à 13:31

mais pourquoi ne faut-il pas de gateway pour un réseau LAN ?

Parce que pfSense n'a pas besoin de passerelle pour atteindre le LAN. Ce sont les autres machines du LAN qui ont besoin du pfSense pour atteindre les autres réseaux (dont Internet).

il faut que, dans les paramètres du serveur DNS, j'indique l'adresse ip 192.168.1.1 c'est cela ?

Tu parles de la configuration DNS de pfSense ? C'est sans rapport avec la configuration DNS pour les clients. Le DNS utilisé par pfSense concerne les résolutions DNS que pfSense doit effectuer lui-même pour ses propres besoins (mises à jour etc).

0
Dual67 > avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024
13 sept. 2022 à 16:54

Ok, j'ai donc ajouté dans /etc/resolv.conf l'adresse 192.168.1.1 (avec nameserver) et en testant de nouveau le ping sur google.fr, cela tourne pendant un moment (contrairement à précédemment où l'erreur arrivait directement) puis cela affiche l'erreur. Si je fais une requête sur google sur le web directement, cela me dit de vérifier ma connexion internet.Peut-être parce que je dois ajouter la résolution du serveur 8.8.8.8 ?

0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500 > Dual67
13 sept. 2022 à 18:18

Tu modifies le fichier /etc/resolv.conf du pfSense ou d'une machine dans le LAN ?

Si c'est pfSense, tu n'es pas supposé modifier ce fichier directement,  cela se fait via la Web UI. De plus, modifier ce fichier n'affectera pas le DNS utilisé par les machines dans le LAN. Aussi, si tu veux que pfSense utilise son propre résolveur, il faudrait alors le pointer vers 127.0.0.1.

Si c'est sur une machine du LAN, cette machine semble utiliser le système de résolution de systemd (resolved) au vue de l'adresse 127.0.0.53. Tu n'es pas non plus supposé modifier ce fichier, dans ce cas.

Je te propose de mettre de côté pour le moment les machines du LAN, on va d'abord vérifier le bon fonctionnement de pfSense.

Peux-tu préciser :

  1. Le DNS que tu veux que pfSense utilise pour ses propres résolutions DNS ? Son résolveur interne, ou un relai externe ?
  2. Comment tu as appliqué cette configuration ? Normalement ça se passe via le Web UI > System > General Setup. https://docs.netgate.com/pfsense/en/latest/config/general.html
  3. pfSense peut-il ping des hôtes distants ? Voir menu "diagnostics"
    https://docs.netgate.com/pfsense/en/latest/diagnostics/ping.html
  4. pfSense peut-il procéder à la résolution DNS d'un nom comme commentcamarche.net ?
    https://docs.netgate.com/pfsense/en/latest/diagnostics/dns.html
0