# Usar resolv.conf directo en Fedora desactivando systemd-resolved

---

Este apunte documenta cómo forzar que Fedora utilice AdGuardHome como resolutor DNS directo, desactivando `systemd-resolved`, validando DNSSEC correctamente y asegurando que los cambios persistan tras reinicio.

---

### Características

* Desactiva completamente `systemd-resolved`.
* Utiliza un `resolv.conf` estático y personalizado.
* Resuelve nombres DNS a través de AdGuardHome.
* Valida correctamente DNSSEC.
* Compatible con la resolución de nombres `.lan.internal` ( o el que quieras ) si se combina con reescrituras desde Tailscale.

---

### Requisitos previos

* Fedora instalado y actualizado.
* AdGuardHome configurado como resolutor DNS.
* Haber verificado que AdGuard valida DNSSEC (por ejemplo, usando Cloudflare o NextDNS como upstreams).

---

### Desactivar `systemd-resolved` en Fedora

Fedora utiliza por defecto un stub DNS en `127.0.0.53`, gestionado por `systemd-resolved`, lo cual puede interferir si queremos usar AdGuardHome como resolutor principal.

#### 1. Comprobar estado actual

```bash
cat /etc/resolv.conf
```

Si ves algo como esto:

```
# This is /run/systemd/resolve/stub-resolv.conf managed by systemd-resolved(8)
nameserver 127.0.0.53
```

Estás usando el stub DNS. También puedes verificar con:

```bash
resolvectl status
```

Si ves `DNSSEC=no/unsupported`, significa que no se está validando correctamente.

#### 2. Detener y deshabilitar systemd-resolved

```bash
sudo systemctl disable --now systemd-resolved
```

#### 3. Eliminar el symlink de resolv.conf

```bash
sudo rm -f /etc/resolv.conf
```

#### 4. Crear un resolv.conf estático personalizado (usa tus DNS locales)

```bash
sudo tee /etc/resolv.conf > /dev/null <<EOF
nameserver 192.168.1.5
nameserver 192.168.1.155
search lan.internal
options trust-ad edns0 timeout:1 attempts:2 rotate
EOF
```

Este archivo:

* Usa directamente tus resolutores locales (AdGuard).
* Habilita la confianza en firmas DNS (`trust-ad`).
* Permite extensiones modernas (`edns0`).
* Optimiza los tiempos de espera y el reintento.

---

### Verificar funcionamiento

#### Resolución básica

```bash
dig google.com
```

#### DNSSEC fallido (debe dar `SERVFAIL`)

```bash
dig +dnssec dnssec-failed.org
```

#### DNSSEC correcto (debe dar `flags: ... ad`)

```bash
dig +dnssec sigok.verteiltesysteme.net
```

---

### Resultado final

* Fedora ya no intercepta ni redirige peticiones DNS.
* `resolv.conf` permanece inmutable.
* Todo se resuelve a través de AdGuardHome.
* DNSSEC se valida correctamente.
* Puedes resolver hosts de Tailscale si has sincronizado `rewrites:` en AdGuard.
* En caso de que NetworkManager modifique nuestro resolv.conf, podemos aplicarle `sudo chattr +i /etc/resolv.conf` para que sea inmutable.

---
### Enlaces de interés

* [Evitar que resolv.conf sea modificado por aplicaciones externas](https://wiki.jtrapero.eu.org/books/configuracion-de-red/page/evitar-que-resolvconf-sea-modificado-por-aplicaciones-externas)