systemd-solve, resolvconf.service, resolvconf और openresolv। क्यों, कौन और कैसे?


12

मैं एक वीपीएन क्लाइंट का उपयोग कर रहा हूं जो दो नाम सर्वर को जोड़ता है /etc/resolv.conf। मेरे सभी कनेक्शन नेटवर्क-मैनेजर द्वारा प्रबंधित किए जाते हैं।

मुझे अपने काम के वीपीएन के लिए इस वीपीएन क्लाइंट का उपयोग करना होगा लेकिन systemd-resolved16.10 में उबंटू जाने के बाद मुझे अपने कनेक्शन और डीएनएस के साथ समस्या हो रही है। ऐसा लगता है कि किसी कारण से डिफ़ॉल्ट नाम सर्वर पर वापस systemd-resolvedपरिवर्तन /etc/resolv.confहोता है जो आंतरिक पृष्ठों को हल नहीं करता है। मैं इस में कुछ और में देखा है और जगह समाप्त हो गया resolvconfसाथ openresolv। इसने बहुत मदद की, लेकिन अभी भी वीपीएन थोड़ी देर के लिए रहने के बाद systemd-resolvedरीसेट करता है /etc/resolv.conf

यह सिर्फ कनेक्शन के ऊपर या कुछ मिनटों के बाद या कभी-कभी बिल्कुल भी नहीं हो सकता है। मैं तब अक्षम हो systemd-resolvedगया systemd resolvconf.serviceऔर केवल चला openresolv। यह सब अच्छा काम करता है ऐसा लगता है।

हालांकि, यह सब बहुत भ्रमित करने वाला है। क्या systemd-resolvedदूसरों में से एक के साथ उपयोग करने का कोई कारण है? यह Ubuntu 16.10 में सक्षम किया गया था, इसलिए मुझे लगा कि इसके लिए एक कारण होना चाहिए लेकिन यह एक लड़ाई का कारण बनता है /etc/resolv.conf

यह बहुत अच्छा होगा अगर मैं बस चला सकता हूं operesolvऔर इसे समझा सकता हूं । मैंने इस पर काफी कुछ पढ़ा है, लेकिन मुझे अभी तक समझ नहीं आया कि /etc/resolv.confइसे क्यों प्रबंधित किया गया है, केवल यह कि जब मैं इसका उपयोग systemdकरता हूं तो मैं अपने वीपीएन क्लाइंट का उपयोग नहीं कर सकता।


FWIW resolvconf.service सिर्फ यह है कि कैसे systemd resolvconf संचालित करता है। आप कौन से वीपीएन क्लाइंट का उपयोग कर रहे हैं? यदि आपने सिस्टमड-सॉल्यूशन का उपयोग किया है, तो यह निजी /run/systemd/resolve/resolv.confफाइल के लिए एक सिमलिंक को resolv.conf बनाता है । आप अपने कनेक्शन को प्रबंधित करने के लिए सिस्टमड-नेटवर्कड होने का प्रयास करना चाहते हैं।
pbhj

जवाबों:


1

मैं उबंटू में ओपनवीपीएन (18.04 पर परीक्षण) में इन कॉन्फ़िगरेशन आइटमों को संभालने वाली स्क्रिप्ट को बदलने में कामयाब रहा। यहाँ उस के लिए एक पैच है:

--- /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 कॉन्फ़िगरेशन फ़ाइल में निम्न आइटम जोड़ने होंगे:

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

0

आप कौन से वीपीएन क्लाइंट का उपयोग कर रहे हैं? मुझे सीधे OpenVPN से परेशानी हो रही थी, लेकिन क्लाइंट के NM संस्करण को स्थापित करने से समस्याएं दूर हो गईं। खैर, उनमें से अधिकांश, मैं एक मार्ग को धक्का दिए जाने से नहीं रोक सकता था, लेकिन यह एक पूरी तरह से अलग मुद्दा है।

मुद्दा यह है: आपके वीपीएन क्लाइंट को डीएनएस सेवा के प्रबंधन के बारे में सिस्टम के विचार के साथ बातचीत करने के तरीके के बारे में जानना होगा। मैं इसकी अनुशंसा नहीं करता, लेकिन आप systemctl disable systemd-resolved.serviceयह देखने के लिए कि क्या यह चीजों को बेहतर बनाता है, यह देखने के लिए रिज़ॉल्वड सेवा ( ) को अक्षम करने का प्रयास कर सकता है , लेकिन अंततः आपको एक क्लाइंट प्राप्त करना होगा जो समझता है कि सिस्टमड के कैप्रीस को कैसे जमा करना है :)

(सिस्टमड जहाज एक लंबे समय से पहले रवाना हुआ, आइए इस बारे में चर्चा न खोलें कि कुछ चीजें क्यों की गईं।)


वीपीएन क्लाइंट के अपडेट में यह समस्या हल हो गई। यह मेरा काम Fortinet VPN के लिए OpenFortiGui क्लाइंट था। तो आप बिलकुल सही हैं, क्लाइंट ने अब systemd सीख लिया है! :)
क्रिश्चियन

0

वीपीएन क्लाइंट के लिए एक अपडेट जिसका मैंने उपयोग किया (समस्या का इरादा) समस्या का समाधान किया। यह Fortinet VPN के लिए OpenFortiGui क्लाइंट था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.