टनेल सुरू आहे. फाइल सर्व्हर पत्त्याने ping ला उत्तर देतो. मग mount.cifs होस्टनेमसह थोडा वेळ तसाच बसतो आणि होस्ट पोहोचण्यायोग्य नाही असे सांगतो, आणि तुम्ही अशी VPN प्रोफाइल पुन्हा बांधायला लागता जी कधीही समस्या नव्हती. Linux वर कोणतेही SMB पॅकेट अस्तित्वात येण्यापूर्वी glibc नाव सोडवते, आणि त्या रिझॉल्व्हरमधील क्रम DNS ला विचारण्यापूर्वीच शोध संपवू शकतो. हा मी चालतो तो मार्ग आहे, क्लायंटपासून नाही, तर अयशस्वी झालेल्या कमांडपासून सुरू होतो.

अपयश योग्य ठिकाणी वाचा

दोन साधने एकाच नावाकडे वेगळ्या मार्गांनी जातात, आणि त्यांची तुलना करण्यासाठी एक कमांड पुरते. getent कॉन्फिगर केलेल्या नाव-सेवा स्टॅकमधून जाते; host आणि dig DNS ला थेट विचारतात आणि तो स्टॅक दुर्लक्षित करतात. जर थेट क्वेरी पत्ता परत करते आणि getent काहीही परत करत नाही, तर DNS सर्व्हर पोहोचण्यायोग्य आहे आणि तुमचे रिझॉल्व्हर कॉन्फिगरेशनच अयशस्वी होत आहे.

getent hosts fileserver.corp.example
host fileserver.corp.example 10.61.0.1
getent -s dns hosts fileserver.corp.example

तिसरी कमांड निर्णायक आहे: ती DNS स्रोत सक्तीने वापरते आणि उर्वरित स्टॅक वगळते. ती चालते आणि साधे getent चालत नाही, तेव्हा दोष क्रमात आहे, बोगद्यात नाही आणि सर्व्हरमध्ये नाही हे तुम्ही सिद्ध केले.

hosts ओळ हा लवकर थांबणारा क्रम आहे

glibc रिझॉल्व्हर /etc/nsswitch.conf वाचतो आणि hosts: नोंद डावीकडून उजवीकडे चालवतो. अनेक वितरणे अशी ओळ देतात ज्यात multicast शोध आधी येतो आणि त्याला लवकर परतण्याची क्रिया जोडलेली असते. ती क्रिया सजावट नाही: mDNS “not found” असे उत्तर देतो तेव्हा [NOTFOUND=return] संपूर्ण शोध संपवतो, त्यामुळे कॉर्पोरेट नाव VPN ने लादलेल्या रिझॉल्व्हरकडे कधीच पाठवले जात नाही. काहीही ते लॉग करत नाही, कारण रिझॉल्व्हर नाकारू शकेल अशी क्वेरीच पाठवली गेली नाही. म्हणूनच माउंट लटकत असल्यासारखे दिसते आणि मग होस्ट पोहोचण्यायोग्य नाही असे सांगते.

cat /etc/nsswitch.conf | grep '^hosts:'
# illustrative repair: dns before the early-return action
hosts: files myhostname mdns4_minimal dns [NOTFOUND=return] wins mdns4

mDNS हटवण्याऐवजी DNS ला लवकर परतण्याच्या क्रियेच्या आधी हलवा, आणि ते कॉन्फिगरेशन व्यवस्थापनातून बदला. हाताने केलेली दुरुस्ती पुढील image बिल्डपर्यंत टिकते, आणि मग तीच तिकीट दुरुस्ती विसरलेल्या दुसऱ्या मशीनकडून येते.

रिझॉल्व्हर हे शोध डोमेन नाही

निराकरणासाठी नाव प्रयत्न केले जाणेही आवश्यक आहे. fileserver सारखे अपूर्ण नाव क्वेरी वाहणाऱ्या इंटरफेसला शोध डोमेन जोडले जाते तेव्हाच fileserver.corp.example होते. शोध यादीशिवाय DNS सर्व्हर लादणारा VPN अतिशय विशिष्ट विभाजन निर्माण करतो: पूर्णपणे पात्र नाव सोडवले जाते आणि प्रत्येक लहान नाव अयशस्वी होते.

प्रोफाइल संपादित करण्यापूर्वी दोन्ही स्वरूपे तपासा, कारण दोन्ही अपयश वेगवेगळ्या दिशांना निर्देश करतात. systemd-resolved होस्टवर बोगदा लिंकचे स्वतःचे सर्व्हर आणि राउटिंग डोमेन असतात, म्हणून जागतिक फाइल नाही, लिंक वाचा.

resolvectl status
resolvectl query fileserver.corp.example
resolvectl dns
resolvectl domain

क्वेरी बोगदा वाहत नसलेल्या लिंकला दिली गेली तर DNS पत्ता असूनही राउटिंग डोमेन गायब असतो. ही resolved कॉन्फिगरेशनमधील धोरण समस्या आहे, बोगद्यातील राउटिंग समस्या नाही.

कंटेनर स्वतःच्या उत्तराची प्रत बाळगतात

सामान्य image पासून बांधलेला कंटेनर सहसा ठराविक resolv.conf घेऊन येतो. होस्टवर केलेले रिझॉल्व्हर बदल त्याच्यापर्यंत पोहोचत नाहीत, आणि शोध डोमेनही पोहोचत नाही, त्यामुळे बोगद्यावरून शेअर माउंट करणारे build काम अयशस्वी होते, तर तीच कमांड कंटेनरबाहेर चालते. कंटेनरला स्वतःचे DNS आणि शोध सेटिंग्ज compose फाइलमध्ये किंवा run आर्ग्युमेंटमध्ये द्या, फक्त होस्ट प्रोफाइलमध्ये नाही.

image ला दोष देण्यापूर्वी कंटेनरमध्ये तपासा. दोन कमांड संपूर्ण निदान काही सेकंदात पुन्हा तयार करतात, आणि दुसरी कोणत्या रिझॉल्व्हरने प्रत्यक्षात उत्तर दिले हे सिद्ध करते.

तेव्हाच शेअर आणि फिल्टरकडे पाहा

नाव सोडवले गेल्यावर, उर्वरित अपयश सामान्य नेटवर्क समस्या आहेत. SMB ला सर्व्हरपर्यंत TCP 445 आवश्यक आहे, आणि वर्कग्रुप यादी ब्राउझ करणे बोगदा कदाचित पुढे न पाठवणाऱ्या नाव सेवांवर अवलंबून आहे. यादी भरण्याची वाट पाहण्याऐवजी होस्टनेमने मॅप करा, आणि क्लायंटला कोणत्या टप्प्यापर्यंत पोहोचला ते सांगू द्या. नाकारलेले कनेक्शन आणि शांत timeout वेगळे करण्यासारखे आहेत, कारण पहिले सहसा काहीतरी उत्तर दिले असा अर्थ देतो आणि दुसरे काहीच उत्तर दिले नाही असा.

getent hosts fileserver.corp.example
nc -vz fileserver.corp.example 445
mount -t cifs //fileserver.corp.example/share /mnt/share \
  -o vers=3.1.1,username=svc_mount,uid=1000

सोडवलेल्या पत्त्यावर 445 पोर्ट नाकारला गेला किंवा वेळ संपला तर ती पलीकडची फायरवॉल किंवा listener समस्या आहे. न सोडवलेले नाव ही रिझॉल्व्हर समस्या आहे. आणि प्रमाणीकरण होऊन परवानगी त्रुटी परत करणारे माउंट दोन्हीपैकी नाही, म्हणून सत्र स्थापित झाल्यावर नेटवर्क प्रश्न पुन्हा उघडू नका.

निष्कर्ष पुराव्याइतकाच संकुचित ठेवा. पत्ता चालतो आणि नाव चालत नाही तेव्हा बोगदा आपले काम करत आहे, आणि दुरुस्ती रिझॉल्व्हर क्रम, शोध डोमेन किंवा कंटेनरच्या स्वतःच्या कॉन्फिगरेशनमध्ये आहे.

संबंधित लेख