Servidor DNS PfSense
Resueltoavion-f16 Mensajes publicados 19182 Fecha de registro Estado Colaborador Última intervención -
Hola,
He configurado un firewall PFSense en un servidor Proxmox. Se han configurado 3 interfaces, una WAN con dirección de interfaz x.x.x.x/24, una LAN con dirección 192.168.1.1/24 (puerta de enlace: 192.168.1.254) y una última para la DMZ.
Tengo una máquina cliente conectada a la red LAN, por lo que me conecto a la interfaz Web de PFSense. Active el servidor DNS, pero no funciona porque no puedo conectarme a Google, por ejemplo.
¿Podría haber un problema con la puerta de enlace WAN?
3 respuestas
Hola,
De hecho, creo que en este momento no hay que razonar respecto a si usamos pfSense o no. El Linux que se encuentra ahí "no le importa" y, o bien la configuración de red es correcta en absoluto, o no lo es. Si no lo es, entonces habrá que preguntarse si pfSense puede explicar por qué no es correcta.
ip route
A primera vista, la tabla de rutas reportada en el mensaje #3 me parece correcta.
En relación con los mensajes #4 y #5, creo que en realidad hay un malentendido.
- En el enrutamiento IP, se mira la IP de destino y se elige la ruta cuyo prefijo es el más específico y contiene la dirección de destino.
- La interfaz utilizada (real, virtual, ethernet, wifi, VPN) no tiene ninguna importancia, el razonamiento nunca cambia. No es necesario plantear preguntas existenciales y hablar de WAN o LAN.
- El razonamiento sigue siendo cierto independientemente de la forma en que se haya configurado o aprendido la ruta. No es necesario preguntarse si la ruta es aprendida por DHCP, configurada manualmente, o aprendida por un protocolo de enrutamiento.
- En tu caso, tu tabla de rutas muestra que hay dos situaciones:
- Si la IP comienza con 192.168.1.* y por lo tanto pertenece a la red 192.168.1.0/24. Como este prefijo es el más específico en la tabla de rutas, es la ruta correspondiente la que se utiliza. Las IP en este prefijo son directamente alcanzables (sin puerta de enlace, de ahí el 0.0.0.0) a través de ens18, ya que forman parte de el mismo prefijo (192.168.1.0/24)
- De lo contrario, la IP pertenece al prefijo 0.0.0.0/0 (predeterminado) y por lo tanto se activa la ruta por defecto. Esta debe implicar una puerta de enlace (gateway) enrutante. En este caso, la puerta de enlace es 192.168.1.1 y es enrutante gracias a la otra ruta, por lo tanto, en principio todo está correcto. Solo queda saber si 192.168.1.1 existe y es capaz de funcionar como puerta de enlace.
ping (puerta de enlace)
¿Puedes hacer ping a tu puerta de enlace?
- Si sí, pasa a la siguiente prueba
- Si no, hay muchas probabilidades de que todo lo demás no funcione, porque si no puedes alcanzar la puerta de enlace, no podrás alcanzar el resto.
- Verifica que puedes hacer ping a tu propia máquina. Si no es así, puede que tengas un problema de firewall en tu propia máquina (que bloquea el envío o la recepción de paquetes ICMP utilizados por ping).
- Verifica que la dirección IP de la puerta de enlace es correcta. Si no lo es, es probable que necesites revisar la forma en que se ha configurado (configuración local o configuración en el servidor DHCP)
ping (DNS)
¿Puedes hacer ping al servidor DNS?
ping -c2 172.0.0.53
- Si sí, pasa a la siguiente prueba
- Si no, ¿te parece correcta la IP del DNS?
- Ten en cuenta que ping no es una prueba perfecta para saber si el enrutamiento es correcto (si no responde, puede ser porque un firewall bloquea el ping. En este caso, haz la prueba con nmap). Si el ping funciona, entonces el enrutamiento es correcto.
nmap
Es posible que el servidor DNS normalmente alojado en 172.0.0.53 no responda, puede que la consulta DNS sea filtrada por un firewall, ya sea en la máquina que estás configurando, en 172.0.0.53, o en una máquina intermedia localizada entre ambas (por ejemplo, la puerta de enlace 192.168.1.1).
Para verificar si el puerto DNS (53) es visible desde la máquina que estás configurando, instala nmap y ejecuta:
nmap -p 53 127.0.0.53
A modo de referencia, aquí tienes lo que nmap devuelve para mi propio servidor DNS (en mi caso, 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 En tu caso, ¿tu máquina ve el puerto 53 para 172.0.0.53?
- Si sí, entonces el problema probablemente no esté relacionado con el enrutamiento, ni con un firewall, ni con el lanzamiento del servidor DNS. Entonces habría que verificar en los logs del servidor DNS qué está fallando.
- Si no, verifica que el servidor DNS 172.0.0.53 esté en funcionamiento.
- Si está en funcionamiento, verifica qué sucede si configuras otro servidor DNS.
Prueba con otro DNS
No importa la forma en que se obtenga tu configuración DNS (por DHCP o manualmente), puedes reemplazar temporalmente tu servidor DNS en /etc/resolv.conf de manera que tengas:
nameserver 8.8.8.8 Esto corresponde a la dirección anycast de los DNS de Google.
¿Funciona?
- Si sí, el problema probablemente se deba al servidor DNS 172.0.0.53 en sí. Habría que controlar sus registros.
- Si no, es posible que una máquina (ya sea la que estás configurando, el servidor DNS, o una máquina entre ambas) esté filtrando la consulta con su firewall.
Buena suerte
¡Muchas gracias a los dos por estas explicaciones, son muy instructivas! Después de los diversos análisis realizados a través de sus mensajes, encontré la solución.
Era necesario marcar la opción "Habilitar Modo de Reenvío" para permitir que el servidor DNS de PfSense transfiera las solicitudes DNS al próximo servidor si no puede resolverlas él mismo.
En relación al mensaje de avión-f16, de hecho añadí la dirección DNS de PfSense que es 192.168.1.1 en cada máquina "cliente" en resolv.conf. Así que imagino que hay una manera más limpia de hacerlo, probablemente directamente en PfSense. Voy a investigar esto.
Así que continuaré con mi configuración, todavía tengo mucho trabajo por hacer.
¡Que tengan un bonito día!
PD: Si alguien desea más información sobre mi configuración, especialmente debido a las preguntas de avión-f16 a las que no he tenido que responder, ¡no duden en preguntar!
Hola,
De hecho, puedes modificar la configuración del servicio DHCP para que sugiera a las máquinas clientes utilizar 192.168.1.1 como DNS.
Si no tienes razones para hacer funcionar tu propio DNS en pfSense, lo más sencillo sería desactivar el servicio DNS en pfSense y configurar las máquinas clientes para que utilicen directamente un DNS externo como los de Google, CloudFlare, OpenDNS, Quad9, ... (a través de DHCP).
Las respuestas a mis preguntas son a priori innecesarias, pero el servicio DNS de pfSense debería funcionar también en modo "resolver recursivo".
Hola,
> una LAN con dirección 192.168.1.1/24 (puerta de enlace: 192.168.1.254)
No debe configurarse ninguna puerta de enlace en la interfaz LAN de pfSense.
Y para las máquinas conectadas a esta LAN, la puerta de enlace y el DNS son el router pfSense, es decir, 192.168.1.1
Asegúrate también de que la información configurada en el servidor DHCP sea coherente con esto.
pero, ¿por qué no se necesita una puerta de enlace para una red LAN?
Porque pfSense no necesita una puerta de enlace para alcanzar la LAN. Son las otras máquinas de la LAN las que necesitan pfSense para alcanzar otras redes (incluido Internet).
tengo que indicar en la configuración del servidor DNS la dirección IP 192.168.1.1, ¿verdad?
¿Estás hablando de la configuración DNS de pfSense? No está relacionada con la configuración DNS para los clientes. El DNS utilizado por pfSense se refiere a las resoluciones DNS que pfSense debe realizar por sí mismo para sus propias necesidades (actualizaciones, etc.).
Ok, he añadido en /etc/resolv.conf la dirección 192.168.1.1 (con nameserver) y probando de nuevo el ping a google.fr, esto tarda un rato (a diferencia de antes, donde el error aparecía directamente) y luego muestra el error. Si hago una búsqueda en Google directamente en la web, me dice que verifique mi conexión a internet. ¿Quizás porque debo agregar la resolución del servidor 8.8.8.8?
¿Modificas el archivo /etc/resolv.conf de pfSense o de una máquina en la LAN?
Si es pfSense, no se supone que debas modificar este archivo directamente, eso se hace a través de la interfaz web. Además, modificar este archivo no afectará el DNS utilizado por las máquinas en la LAN. También, si deseas que pfSense utilice su propio resolvedor, deberías apuntarlo a 127.0.0.1.
Si es en una máquina de la LAN, parece que esta máquina está utilizando el sistema de resolución de systemd (resolved) a la vista de la dirección 127.0.0.53. Tampoco se supone que debas modificar este archivo en este caso.
Te propongo dejar de lado por el momento las máquinas de la LAN, primero vamos a verificar el correcto funcionamiento de pfSense.
¿Puedes especificar:
- ¿Qué DNS quieres que pfSense utilice para sus propias resoluciones DNS? ¿Su resolvedor interno, o un relé externo?
- ¿Cómo has aplicado esta configuración? Normalmente se realiza a través de la interfaz web > System > General Setup. https://docs.netgate.com/pfsense/en/latest/config/general.html
- ¿Puede pfSense hacer ping a hosts remotos? Ver menú "diagnósticos"
https://docs.netgate.com/pfsense/en/latest/diagnostics/ping.html - ¿Puede pfSense proceder a la resolución DNS de un nombre como commentcamarche.net?
https://docs.netgate.com/pfsense/en/latest/diagnostics/dns.html
Hola, hay que saber que el acceso a Google tampoco funciona directamente en el router PfSense. Por lo tanto, he ejecutado los comandos en este:
ip route:
cat /etc/resolv.conf:
ping -c2 www.google.fr:
En PfSense, para la interfaz WAN, he indicado la puerta de enlace x.x.x.254 que también corresponde al servidor DNS, así que la he indicado en la configuración DNS del PfSense.