حلّ المجتمع

موجّه الشبكة الفرعية لـ Tailscale على ZimaOS: كان TUN مدمجًا، ثم أصبح tun.ko في الإصدار 1.5.0

A September 2025 feature request from a user trying to run a Tailscale Docker subnet router between Mexico and Uruguay. Zima-Jerry explained that TUN was compiled into the kernel rather than present as tun.ko, then changed it to a loadable module in ZimaOS 1.5.0. The original poster retested and confirmed it worked.

كان الخطأ الأساسي في هذا الموضوع من سبتمبر 2025 هو تفسير modprobe tun اعتبار الفشل دليلًا على أن ZimaOS لا يدعم TUN على الإطلاق. وصحح Zima-Jerry هذا الافتراض: ففي الإصدار المبني من المصدر، بُني TUN مباشرةً داخل النواة، ولذلك لم يكن هناك tun.ko ملفًا ضمن /lib/modules من أجل modprobe للتحميل.

ومع ذلك، ظل سير عمل المستخدم المحدد لموجّه الشبكة الفرعية عبر Docker يحتاج إلى سلوك الجهاز/الوحدة الذي يتوقعه Tailscale. لذلك غيّرت IceWhale الحزمة في ZimaOS 1.5.0، بحيث أصبح TUN وحدة نواة قابلة للتحميل. وأعاد صاحب المنشور الأصلي الاختبار في 29 سبتمبر، ثم ردّ بأنه يعمل الآن.

أراد المستخدم موجّه شبكة فرعية من Tailscale بين موقعين

ربط تصميم المصدر موقعين فعليين، المكسيك وأوروغواي، وأراد للأجهزة المحلية في كل موقع التواصل عبر Tailscale من دون تثبيت Tailscale على كل نقطة نهاية.

هذه حالة استخدام لموجّه شبكة فرعية، وليست مجرد «وصول عن بُعد إلى لوحة تحكم ZimaOS». يجب على موجّه الشبكة الفرعية تمرير الحزم بين شبكة tailnet وشبكة IP فرعية أخرى.

أفاد modprobe بعدم وجود ملف وحدة tun

شغّل المستخدم حاوية Tailscale بصلاحيات مرتفعة وظهر له:

modprobe: FATAL: Module tun not found in directory /lib/modules/6.12.25

كما لم يجدوا tun.ko الملف، ولم يجدوا أي إدخال لـ TUN في ناتج عمليات التحقق من قائمة الوحدات.

قالت IceWhale إن TUN مضمّن مباشرةً في النواة

كان أول رد رسمي من Zima-Jerry واضحًا: فقد بُنيت وظيفة TUN مباشرةً داخل النواة، ولذلك لن تظهر كملف وحدة عادي في /lib/modules/6.12.25.

هذا تمييز في نواة Linux: فالميزة المكوّنة داخليًا تكون موجودة من دون أن تظهر في lsmod أو إمكانية تحميلها باستخدام modprobe.

الدعم المدمج لم يحلّ بالكامل سير عمل الحاوية المصدرية

ردّ صاحب المنشور الأصلي بأن حاويته ما زالت تنتقل إلى وضع مساحة المستخدم، ولم تكن قادرة على توفير سلوك موجّه الشبكة الفرعية الكامل على مستوى المضيف الذي يريده. وسأل تحديدًا عما إذا كان يمكن إتاحة TUN بطريقة معيارية.

قال Zima-Jerry إن هذا يمكن تعديله في الإصدار التالي.

غيّر ZimaOS 1.5.0 ‏TUN إلى وحدة قابلة للتحميل

في 28 سبتمبر، نشر Zima-Jerry أن الإصدار الجديد 1.5.0، tun.ko تحوّل إلى وحدة نواة، وطلب من المستخدم إعادة الاختبار.

ردّ صاحب المنشور الأصلي في اليوم التالي: «شكرًا، إنه يعمل الآن.»

هذا إصلاح أكدَه المصدر، وهو أهم استنتاج في الموضوع.

شبكات مساحة المستخدم في Tailscale هي وضع تشغيل مختلف

توضح وثائق Tailscale الحالية أن الحاويات يمكنها العمل دون جهاز TUN باستخدام شبكات مساحة المستخدم. وفي هذا الوضع، tailscaled يعمل عبر مكدس/وكيل شبكات في وضع المستخدمين بدلًا من التصرف كواجهة نفق Linux عادية.

استخدم نموذج الشبكات الحالي في وضع المستخدمين لدى Tailscale عند تحديد ما إذا كان TUN في النواة مطلوبًا فعلًا.

يمكن لـ Tailscale الحالية توجيه الشبكات الفرعية في وضع النواة أو وضع المستخدمين

تصف وثائق Tailscale الحالية الآن كلاً من توجيه الشبكات الفرعية في وضع النواة ووضع المستخدم/‏netstack. يحافظ وضع النواة في Linux على سلوك إعادة توجيه الحزم المعتاد، ويوفر عمومًا أداءً أفضل؛ ويمكن لوضع المستخدمين أيضًا توجيه الحركة، لكنه ينهي الاتصالات المدعومة ويعيد إنشاءها في مكدس شبكته الخاص.

بالنسبة إلى Docker، توثّق Tailscale الحالية أيضًا أن TS_USERSPACE يكون مفعّلًا افتراضيًا، بينما يتطلب وضع النواة /dev/net/tun والإمكانات المطلوبة.

جهاز TUN عامل ليس كامل إعداد موجّه الشبكة الفرعية

يحتاج موجّه الشبكة الفرعية في Linux أيضًا إلى إعادة توجيه IP، والمسارات المُعلنة، والموافقة على المسارات في وحدة تحكم إدارة Tailscale، وقواعد وصول مناسبة لشبكة tailnet. وإنشاء حاوية بنجاح tailscale0 لا يعني ذلك بحد ذاته أن أجهزة الشبكة المحلية البعيدة يمكنها توجيه حركة المرور عبره.

اتبع سير عمل موجّه الشبكة الفرعية الحالي في Tailscale بعد عمل طبقة نواة/جهاز ZimaOS.

لا تطبّق تشخيص «فقدان tun.ko» الخاص بالإصدار 1.4.x على ZimaOS الحالي

يوثّق المصدر نفسه الحد الفاصل بين الإصدارين: كان الملف مفقودًا بسبب طريقة بناء نواة الإصدار 1.4.x، وغيّر ZimaOS 1.5.0 ميزة TUN إلى وحدة. وقد تجاوز ZimaOS الحالي ذلك الإصدار بفارق كبير.

عند حدوث عطل حديث، افحص إعدادات الحاوية الحالية، وتوافر جهاز TUN، ووضع المستخدم/النواة، وإعادة توجيه IP، والموافقة على المسارات، بدلًا من افتراض عودة مشكلة حزم النواة لعام 2025.

الأسئلة الشائعة حول TUN في Tailscale

هل كان فشل modprobe tun يثبت أن ZimaOS لا يدعم TUN؟

لا. قالت IceWhale إن TUN جرى تضمينه مباشرةً في نواة المصدر بدلًا من توفيره كوحدة منفصلة.

ما الذي تغيّر في ZimaOS 1.5.0؟

قال Zima-Jerry tun.ko أصبح وحدة نواة قابلة للتحميل.

هل أكد صاحب المنشور الأصلي أن الإصدار الجديد كان يعمل؟

نعم. أعادوا الاختبار بعد تغيير الإصدار 1.5.0 وقالوا إنه كان يعمل.