Estoy usando un cliente VPN que agrega dos servidores de nombres a /etc/resolv.conf
. Todas mis conexiones son administradas por Network-Manager.
Tengo que usar este cliente VPN para mi trabajo VPN, pero después de que Ubuntu fue a systemd-resolved
en 16.10 estoy teniendo problemas con mi conexión y DNS. Parece systemd-resolved
cambia /etc/resolv.conf
volver a los servidores de nombres predeterminados por alguna razón que hace que las páginas internas no se resuelvan. Investigué esto un poco más y terminé reemplazando resolvconf
con openresolv
. Eso ayudó mucho, pero aún así systemd-resolved
restablece /etc/resolv.conf
después de que la VPN haya estado activa por un tiempo.
Podría ser justo cuando la conexión está activa o después de unos minutos o, a veces, no. Luego deshabilité systemd-resolved
y el systemd resolvconf.service
y solo ejecuta openresolv
. Parece que todo funciona bien.
Sin embargo, todo esto es muy confuso. ¿Hay alguna razón para usar systemd-resolved
? con uno de los otros? Estaba habilitado en Ubuntu 16.10, así que pensé que debía haber una razón, pero parece causar una pelea por /etc/resolv.conf
.
Sería genial si pudiera ejecutar operesolv
y obtener esto explicado. Lo he leído bastante pero todavía no entiendo por qué /etc/resolv.conf
se administra como es, solo que cuando uso systemd
para eso no puedo usar mi cliente VPN.
Respuesta aceptada:
Logré cambiar el script que maneja estos elementos de configuración en OpenVPN en Ubuntu (probado el 18.04). Aquí hay un parche para eso:
--- /etc/openvpn/update-resolv-conf.orig 2019-03-13 19:14:16.163914424 +0400
+++ /etc/openvpn/update-resolv-conf 2019-03-13 19:29:30.380420708 +0400
@@ -15,7 +15,7 @@
# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
#
-[ -x /sbin/resolvconf ] || exit 0
+[ -x /usr/bin/systemd-resolve ] || exit 0
[ "$script_type" ] || exit 0
[ "$dev" ] || exit 0
@@ -43,16 +43,16 @@
fi
done
R=""
- [ "$SRCHS" ] && R="search $SRCHS
-"
+ for SRCH in $SRCHS ; do
+ R="${R}--set-domain=$SRCH "
+ done
for NS in $NMSRVRS ; do
- R="${R}nameserver $NS
-"
+ R="${R}--set-dns=$NS "
done
- echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
+ /usr/bin/systemd-resolve -i ${dev} ${R}
;;
down)
- /sbin/resolvconf -d "${dev}.openvpn"
+ echo "Doing nothing, interface disappears."
;;
esac
Deberá agregar los siguientes elementos a su archivo de configuración de OpenVPN:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf