systemd tarafından çözümlendi, resolvconf.service, resolvconf ve openresolv. Neden, hangisi ve nasıl?


12

İki ad sunucusu ekleyen bir VPN istemcisi kullanıyorum /etc/resolv.conf. Tüm bağlantılarım Ağ Yöneticisi tarafından yönetiliyor.

Bu VPN istemcisini iş VPN'im için kullanmam gerekiyor systemd-resolved, ancak Ubuntu 16.10'a girdikten sonra bağlantım ve DNS ile ilgili sorun yaşıyorum. Dahili sayfaların çözümlenmemesine neden olan bazı nedenlerden dolayı varsayılan ad sunucularındaki systemd-resolveddeğişikliklere benziyor /etc/resolv.conf. Bu biraz daha içine baktı ve değiştirilmesi sona erdi resolvconfile openresolv. Bu çok yardımcı oldu, ancak VPN bir süre sonra hala systemd-resolvedsıfırlanıyor /etc/resolv.conf.

Bu, bağlantı kurulduğu gibi veya birkaç dakika sonra veya bazen hiç olmayabilir. Sonra devre dışı systemd-resolvedve systemd resolvconf.servicesadece koşmak openresolv. Her şey iyi çalışıyor gibi görünüyor.

Ancak, bunların hepsi çok kafa karıştırıcı. systemd-resolvedDiğerlerinden biriyle birlikte kullanmak için bir neden var mı ? Ubuntu 16.10'da etkinleştirildi, bu yüzden bunun bir nedeni olması gerektiğini düşündüm ama bir kavgaya neden olduğu görülüyor /etc/resolv.conf.

Ben sadece çalıştırmak operesolvve bunu açıklamak harika olurdu . Üzerinde biraz okuma yaptım ama neden /etc/resolv.confböyle yönetildiğini hala anlamıyorum , sadece bunun systemdiçin kullandığımda VPN istemcimi kullanamıyorum.


FWIW resolvconf.service, systemd'nin resolvconf'u nasıl işlediğidir. Hangi VPN istemcisini kullanıyorsunuz? Systemd-resolved kullandıysanız, resolv.conf /run/systemd/resolve/resolv.confdosyasını özel dosyasına bir symlink yapar . Systemd-networkd'nin bağlantılarınızı yönetmesini sağlamayı deneyebilirsiniz.
pbhj

Yanıtlar:


1

Ubuntu'daki OpenVPN'de bu yapılandırma öğelerini işleyen betiği değiştirmeyi başardım (18.04'te test edildi). İşte bunun için bir yama:

--- /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

OpenVPN yapılandırma dosyanıza aşağıdaki öğeleri eklemeniz gerekir:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

0

Hangi VPN istemcisini kullanıyorsunuz? Düz OpenVPN ile sorun yaşıyordum, ancak istemcinin NM sürümünü yüklemek sorunları çözdü. Çoğu, bir güzergahın itilmesini engelleyemedim, ama bu tamamen farklı bir konu.

Mesele şu ki: VPN istemciniz , systemd'nin DNS hizmetini nasıl yöneteceği fikri ile nasıl etkileşimde bulunacağını bilmelidir. Bunu tavsiye etmiyorum, ancak bir systemctl disable systemd-resolved.serviceşeyleri iyileştirip iyileştirmediğini görmek için resolvd hizmetini ( ) devre dışı bırakmayı deneyebilirsiniz , ancak nihayetinde systemd'nin caprix'lerine nasıl gönderileceğini anlayan bir müşteri almanız gerekecek :)

(Sistem gemisi uzun zaman önce yola çıktı, bazı şeylerin neden yapıldığına dair bir tartışma açmayalım.)


Bu sorun, VPN istemcisinin güncellenmesiyle giderildi. Fortinet VPN çalışmam için OpenFortiGui istemcisiydi. Yani kesinlikle haklısın, müşteri şimdi systemd öğrendi! :)
Hıristiyan

0

Kullandığım VPN istemcisine yapılan bir güncelleme sorunu çözdü (pun amaçlı). Fortinet VPN için OpenFortiGui istemcisiydi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.