الموجّه كعميل SMB مقابل مُمرِّر الحزم: أيّهما أنسب
تمرير حركة SMB وتركيبها دوران منفصلان. تحقّق من بيانات الاعتماد ودعم النواة ومعالجة الأعطال قبل أن يصبح الموجّه عميلًا.
تمرير حركة SMB ليس المهمة نفسها التي يؤديها إنهاء الاتصال بها، والموجّه الذي يؤدي إحداهما قد لا يدير الأخرى. التمرير يعني أن الموجّه ينقل حزمًا لا يحلّل محتواها أبدًا. التركيب يعني أن الموجّه يصبح عميل ملفات، ببرمجيات قد لا تكون مضمّنة فيه، وبيانات اعتماد عليه حمايتها، وأنماط فشل يملكها الآن. الاختيار بين الاثنين سؤال عن المكان الذي تحتاج فيه إلى الملفات، لا عمّا يمكن إقناع منصة التوجيه بتثبيته.
التمرير والإنهاء مهمّتان مختلفتان
في دور التمرير يقع على الموجّه التزام واحد: إيصال الحزم بين العميل والخادم مع تطبيق أي سياسة يتطلّبها المسار. فهو لا يصادق على المشاركة، ولا يخزّن بيانات الملفات مؤقتًا، ولا يهمّه إن كان الخادم يتحدّث SMB2 أو SMB3، لأنه لا يقرأ في التدفّق إلى هذا الحدّ. وإذا أصبحت المشاركة غير قابلة للوصول، يرى المستخدم خطأ ويواصل الموجّه التوجيه.
في دور العميل ينضمّ الموجّه إلى محادثة البروتوكول. فهو يتفاوض على لهجة، ويصادق، ويحلّ الأسماء، ويحتفظ بنقطة تركيب، ويعرض واجهة نظام ملفات محليّة على أي شيء يعمل فوقه. هذه خدمة حقيقية لها دورة حياة، وهي تحوّل البوابة إلى تبعية لسير عمل الملفات. كما أنها ترث كل أنماط الفشل لتلك التبعية، بما فيها الانتظار عند الإقلاع وبيانات الاعتماد القديمة.
المقارنة ليست حول القدرة وحدها. فالمنصة القادرة على تركيب مشاركة ليست تلقائيًا منصة ينبغي لها ذلك، والمنصة التي لا تستطيع تركيب مشاركة قد تظل المكان الصحيح لتوجيه الحركة.
ما يحتاجه تركيب CIFS في النواة فعليًا
على جهاز يعمل بنظام Linux، يكون عميل CIFS في النواة وعميل مساحة المستخدم قدرتين منفصلتين، والصور الصغيرة كثيرًا ما لا تضمّ أيًّا منهما. يجب أن يكون دعم النواة موجودًا في الصورة العاملة، وأن يكون مساعد التركيب موجودًا، وأن تكون لهجة SMB المتفاوض عليها مع الخادم لهجة يقبلها الطرفان. ويشرح دليل عميل CIFS في Linux ترتيب النواة وخيارات التركيب، وهو المرجع الصحيح قبل أن تفترض أن بناءً ما من البائع يضمّنه.
تحقّق من توفّر القدرة قبل أن تبني تصميمك عليها، وتحقّق من الإصدار لا من وجود اسم أمر ما. فوجود اسم وحدة في قائمة حزم ليس كوجود عميل يعمل.
lsmod | grep -w cifs
modinfo cifs | head -5
mount.cifs --version
smbclient -L //fs02.corp.internal -U svc-router -m SMB3الوحدة في النواة التي تُحمّل وأداة في مساحة المستخدم تُبلغ عن إصدار لا يضمنان مع ذلك أن يصمد التركيب أمام إعادة تبادل مفاتيح VPN، لذا تعامل مع الفحص كشرط بداية لا كدليل. وإن كانت الصورة لا تدعم سوى SMB1، فهذا سبب للتوقّف لا سبب لتمكينه على الخادم.
بيانات الاعتماد وهوية المصدر تختلف عن هوية حاسوب محمول
الطلب الممرَّر يحمل هوية الحاسوب المحمول عبر النفق، أما الطلب المتولّد على الموجّه فيحمل عنوان المصدر الخاص بالموجّه ومسار المُحلِّل وتصفية المخرجات. وقد تصل هذه إلى قاعدة جدار حماية مختلفة، وواجهة DNS مختلفة، وقائمة سماح مختلفة على جانب الخادم. لذا فنسخة تعمل من محطة عمل لا تثبت شيئًا عن تركيب الموجّه نفسه. اختبر التركيب من صدفة الموجّه نفسه، لا من محطة عمل خلفه.
امنح الموجّه هوية خدمة محدودة الصلاحيات إن كان الدور مقبولًا أصلًا. لا تضع كلمة مرور مباشرة في سطر أمر التركيب أبدًا، لأنها تبقى في سجل الصدفة وتظهر في جدول العمليات أثناء تنفيذ التركيب.
خزّن بيانات الاعتماد عبر آلية الحماية في المنصة واقرأها من ملف بأذونات مقيّدة. وينبغي ألّا يكون ذلك الملف قابلًا للقراءة لأي حساب سوى الحساب الذي ينفّذ التركيب.
install -m 600 /dev/null /etc/cifs-reports.creds
printf 'username=svc-router\npassword=REPLACE_ME\ndomain=CORP\n' > /etc/cifs-reports.creds
mount -t cifs //fs02.corp.internal/reports /mnt/reports -o credentials=/etc/cifs-reports.creds,vers=3.1.1,roمن يملك الفشل عندما تختفي المشاركة
نظام الملفات البعيد الغائب يتصرّف بشكل مختلف عن المسار الغائب. فالتركيب قد يحجب العمليات التي تلمسه، وقد يفشل عند الإقلاع قبل وجود النفق، وقد تصل كتابة كانت موجّهة إلى الخادم إلى المكان الخطأ إذا وُجد دليل محلي تحت نقطة التركيب. هذه أعطال تخزين تملكها الآن فرقة الشبكة، سواء أرادتها أم لم تُردها. لم يوافق أحد على تلك الملكية، لكنها تأتي مع التركيب.
صمّم ترتيب الإقلاع وخيارات التركيب على أساس هذه الحقيقة. فالتركيب للقراءة فقط بمهلة قصيرة وخطوة استعادة موثّقة أسهل في الدفاع عنه من تركيب قابل للكتابة يعتمد عليه كل شيء آخر. تأكّد من أن النفق يعمل قبل أن يحاول أي شيء التركيب، وإلا فسيتعلّق أول إقلاع بعد انقطاع الكهرباء.
لمعالجة ملفات كبيرة، أو لأي شيء يعيد تصدير البيانات إلى الأمام، يمنح مضيف منفصل عادةً حدًّا أوضح للملكية. يبقى الموجّه يوجّه، ويحصل سير عمل الملفات على جهاز يمكن إعادة تشغيله دون أخذ الشبكة معه.
اختبر القرار مقابل المهمة الفعلية
اكتب أي مهمة تحتاج الملفات وأين تعمل تلك المهمة. إذا كان الجواب محطة عمل، وجّه المشاركة وتوقّف عند ذلك. وإن كان الجواب خدمة على الجهاز، فتأكّد من قدرة العميل واللهجة المدعومة ومسار بيانات الاعتماد قبل التركيب الأول، ثم قرّر إن كان الجهاز هو المضيف الصحيح فعلًا.
تحقّق من الواجهة المركّبة والمساحة الحرة من الموجّه نفسه، لأن هناك ستراها حمولة العمل. أعد الفحص بعد إعادة الاتصال، لا بعد إقلاع نظيف فقط.
findmnt -t cifs -o TARGET,SOURCE,OPTIONS
df -h /mnt/reports
ls -l /mnt/reports | headالتركيب الذي يسرد الملفات لكنه يبلّغ عن نظام ملفات ممتلئ أو للقراءة فقط قد أخبرك بالفعل أي فشل ستلقاه في الساعة 2 صباحًا. تأكّد من مسار الاستعادة أيضًا: ألغِ التركيب بشكل نظيف، وأوقف النفق، ثم أعده وركّب مرة أخرى دون إعادة تشغيل الجهاز. وإن كان ذلك التسلسل يحتاج حالة دعم في كل مرة، فالموجّه هو المكان الخطأ لدور العميل.