ubuntu - networking - ¿Cómo configuro la resolución DNS si resolvconf no funciona?

CorePress2023-09-17  1

Mi /etc/resolv.conf no se escribirá, por lo que la resolución DNS no funciona.

Estoy ejecutando Ubuntu Server 16.04.1 LTS en una máquina virtual en el servidor de nuestra oficina.

Este es mi /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens3
iface ens3 inet static
        address 192.168.222.104
        netmask 255.255.255.0
        gateway 192.168.222.1
        gateway 192.168.222.1
        dns-nameservers 192.168.222.1 8.8.8.8
        dns-search internal.domain
        post-up iptables-restore < /etc/iptables.up.rules

(/etc/network/interfaces.d está vacío)

Ya intenté ejecutar sudo dpkg-reconfigure resolvconf y sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf como se menciona en esta respuesta. Pero mi /etc/resolv.conf todavía permanece vacío:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

¿Qué más puedo intentar para recuperar la resolución DNS en este servidor?

NOTA: La misma configuración funciona en los otros 5 servidores que ejecutan Ubuntu en otras máquinas virtuales en el mismo hardware.

Todos muestran un archivo similar a /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.222.1
nameserver 8.8.8.8
search internal.domain

y para aquellas resoluciones DNSencendido funciona perfecto.

¿Me falta alguna configuración?

Por si acaso, también agregué mi /etc/iptables.up.rules (que también es más o menos igual en los 6 servidores) que configuré siguiendo algunos consejos de esta guía:

*filter
# Allow all outgoing, but drop incoming and forwarding packets by default
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# Custom per-protocol chains
:UDP - [0:0]
:TCP - [0:0]
:ICMP - [0:0]

# Acceptable UDP traffic

# Acceptable TCP traffic
-A TCP -p tcp --dport 22 -j ACCEPT
-A TCP -p tcp --dport 80 -j ACCEPT
-A TCP -p tcp --dport 443 -j ACCEPT
-A TCP -p tcp --dport 10000 -j ACCEPT

# Acceptable ICMP traffic
-A ICMP -p icmp -j ACCEPT

# Boilerplate acceptance policy
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i lo -j ACCEPT

# Drop invalid packets
-A INPUT -m conntrack --ctstate INVALID -j DROP

# Pass traffic to protocol-specific chains
## Only allow new connections (established and related should already be handled)
## For TCP, additionally only allow new SYN packets since that is the only valid
## method for establishing a new TCP connection
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP

# Reject anything that's fallen through to this point
## Try to be protocol-specific w/ rejection message
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable

# Commit the changes
COMMIT

*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT

*security
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT


------------Respuesta------------

Puedes intentar actualizar el DNSservidores en

/etc/resolvconf/resolv.conf.d/base

luego ejecuta

sudo resolvconf -u

para regenerar el archivo resolv.conf.


  • el archivo /etc/resolvconf/resolv.conf.d/base está vacío... ¿cómo debería verse? ¿Y esto solucionará permanentemente el problema? Como es un servidor de oficina, no puedo reconfigurarlo todo el tiempo, p. después de reinicios, actualizaciones, etc. -derHugo 21 de septiembre de 2017 a las 8:07
  • 2 @derHugo el archivo está vacío de forma predeterminada. Le agrega líneas que deberían aparecer en /etc/resolv.conf (por ejemplo, servidor de nombres 192.168.222.1 o buscar dominio.interno). resolvconf lee el archivo cada vez que se actualiza, por lo que debería persistir después de reiniciar. -muru 21 de septiembre de 2017 a las 8:08


------------Respuesta------------

Que yo sepa, es mejor no editar resolv.conf, y eso se debe a que el administrador de red actualizaría todo lo que haya escrito a mano, con cada reinicio de la red o reinicio. Entonces usaría el comando nmcli:

nmcli con mod ens3 +ipv4.dns 192.168.222.1 8.8.8.8
nmcli con up ens3

El administrador de red está instalado de forma predeterminada en la mayoría de las distribuciones basadas en Ubuntu, así que supongo que ese también sería el caso. ¡Espero que esto ayude!


  • Buen intento, pero nmcli y network-manager no están instalados ya que es Ubuntu-Server sin GUI.-derHugo 21 de septiembre de 2017 a las 8:33