كيف تجعل عزل IOMMU تمرير الأجهزة في الخادم المنزلي أكثر أمانًا؟

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

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

يقلل هذا من خطر أن يقوم برنامج تشغيل ضيف مخترق أو جهاز معطل بأداء DMA إلى ذاكرة المضيف أو ذاكرة آلة افتراضية أخرى. لا يزال الحماية تعتمد على مجموعات IOMMU الصحيحة، وطوبولوجيا PCIe، وإعادة تعيين المقاطعات، وسلوك إعادة تعيين الجهاز، والبرامج الثابتة، وتجنب الحلول التي تجعل المجموعات تبدو منفصلة فقط.

لماذا يختلف التمرير المباشر عن الإدخال/الإخراج الافتراضي؟

VFIO يمنح الآلة الافتراضية تحكمًا مباشرًا بالجهاز بدلاً من إرسال كل عملية عبر جهاز محاكاة أو جهاز شبه افتراضي يتحكم به المشرف.

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

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

كيف يقيّد IOMMU وصول الجهاز إلى DMA؟

تحد مجالات IOMMU من وصول الجهاز إلى الذاكرة عن طريق ترجمة عناوين الإدخال/الإخراج المرئية للجهاز عبر جداول الصفحات المختارة لذلك الجهاز.

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

هذا هو التحسين المركزي للأمان مقارنة بالتمرير غير المُدار. الجهاز لا يختار عناوين الذاكرة الفعلية للمضيف مباشرة؛ بل يقوم IOMMU بالتحقق من هوية الطالب، والتخطيط، وتصريح الوصول قبل السماح بالمعاملة.

لماذا تُعتبر مجموعة IOMMU هي حد التخصيص؟

توضع وظائف PCIe التي لا يمكن عزلها عن بعضها البعض في نفس المجموعة، وجميع الأجهزة في مجموعة واحدة تشترك في العزل.

قد تكشف بطاقة الرسومات عن وظائف العرض والصوت وUSB والحافلة التسلسلية تحت حزمة جهاز واحدة. غالبًا ما تحتاج هذه الوظائف المرتبطة إلى التحرك معًا لأنها تشترك في سلوك إعادة التعيين أو توبولوجيا تسمح بالتواصل بين الأقران.

إذا استمر برنامج تشغيل المضيف في استخدام نقطة نهاية داخل نفس المجموعة غير الآمنة بينما تم تعيين نقطة نهاية أخرى إلى ضيف، فقد لا يتطابق الفصل البرمجي مع حدود التوجيه الحقيقية للأجهزة. لذلك، عضوية المجموعة أكثر أهمية من التسمية على وظيفة PCI واحدة.

كيف تؤثر جسور PCIe وACS على العزل؟

تساعد خدمات التحكم في الوصول المنافذ العليا على إعادة توجيه حركة المرور من نظير إلى نظير عبر مسار العزل. يضعف تجاوز ACS ضمانات العزل عندما لا يمكن للتوبولوجيا الأساسية فصل الأجهزة بشكل موثوق.

قد يجعل تجاوز البرنامج تكوين التمرير ممكنًا من خلال تقديم مجموعات أصغر، لكنه لا يضيف فرض التوجيه المفقود إلى جسر أو مفتاح. قد لا تزال الأجهزة تمتلك مسارًا لا يمكن لـ IOMMU ملاحظته أو حظره.

نقل بطاقة إلى فتحة أخرى، اختيار لوحة أم بتوبولوجيا PCIe أفضل، أو تعيين كل نقطة نهاية تحت الجسر غير الآمن أقوى من اعتبار تقسيم مجموعة تجميلي معادلاً للعزل المدعوم بالأجهزة.

لماذا يجب عزل المقاطعات أيضًا؟

ترجمة الذاكرة هي جزء فقط من التعيين المباشر. تتحكم إعادة تعيين المقاطعات في المقاطعات التي يولدها الجهاز بينما تتحكم إعادة تعيين DMA في معاملات الذاكرة.

بدون مسار مقاطعة آمن، قد يشير الجهاز الممرر إلى المعالج أو سياق الضيف الخطأ، أو قد يتطلب النظام خيار توافق مقاطعة غير آمن يضعف الحدود المقصودة.

يؤكد الإعداد الآمن كل من إعادة تعيين DMA وإعادة تعيين المقاطعات في سجلات المضيف. يثبت تمرير حركة المرور التجريبية داخل الضيف أن الجهاز يعمل؛ لكنه لا يثبت بمفرده أن كل مقاطعة ومعاملة ذاكرة معزولة بشكل صحيح.

ما المخاطر التي تبقى بعد عزل IOMMU؟

لا يمكن لتعيين IOMMU ضمان عودة الأجهزة إلى حالة نظيفة بين المالكين. تفشل بعض الأجهزة الممررة في إعادة التعيين بشكل نظيف، مما قد يترك الجهاز غير قابل للاستخدام أو يحمل حالة قديمة حتى يتم إعادة تشغيل المضيف.

تظل البرامج الثابتة للجهاز، ورومات الخيارات، وبرامج المضيف الثابتة، وأخطاء المشرف، والموارد المشتركة لـ PCIe، والقنوات الجانبية، والوصول الفيزيائي خارج ضمان تعيين DMA الضيق. كما يحد التمرير من الهجرة ويمكن أن يجعل الاسترداد يعتمد على جهاز معين.

يمكن لـ Proxmox عرض وحدات GPU الفيزيائية على الأجهزة الافتراضية، لكن التصميم الآمن لا يزال يحتفظ بمسار إدارة المضيف الخاص، ويتحقق من طوبولوجيا المجموعة، ويتجنب التجاوزات غير الآمنة، ويختبر إعادة تعيين الجهاز قبل اعتبار الجهاز الافتراضي جهازًا معزولًا.

طبقة العزل ما الذي يتحكم به الحد المتبقي
نطاق IOMMU أي صفحات ذاكرة المضيف يمكن للجهاز الوصول إليها عبر DMA يتطلب تعيينات صحيحة وهوية الطالب
مجموعة IOMMU أي وظائف PCI يمكن تعيينها بشكل مستقل محدود بطوبولوجيا PCIe الحقيقية
إعادة تعيين المقاطعات مكان تسليم مقاطعات الجهاز وضع التوافق غير الآمن يضعف الحماية
إعادة تعيين الجهاز ما إذا كانت الحالة القديمة تُمسح بين الاستخدامات بعض الأجهزة والبرامج الثابتة تعيد التعيين بشكل غير موثوق

الأسئلة الشائعة

هل تمكين IOMMU يجعل كل تكوين تمرير آمنًا؟

لا. يجب أن يكون الجهاز في مجموعة آمنة، ويجب إعادة تعيين DMA والمقاطعات، ويجب أن تمنع طوبولوجيا PCIe الوصول المباشر غير المترجم بين الأقران.

هل يمكنني تمرير وظيفة العرض فقط من GPU متعدد الوظائف؟

أحيانًا، لكن الوظائف المتعلقة بالصوت أو USB أو وحدة التحكم غالبًا ما تشترك في مجموعة IOMMU واحدة وحدود إعادة التعيين. عادةً ما تحتاج إلى فصلها وتعيينها معًا.

هل تجاوز ACS مجرد تعديل للأداء؟

لا. إنه يغير كيفية عرض Linux للمجموعات دون بالضرورة إضافة عزل حركة مرور الأجهزة. يمكن أن يجعل التكوين أسهل مع إضعاف معنى الأمان لتقسيم المجموعة.

لماذا يتطلب GPU الممرر أحيانًا إعادة تشغيل المضيف؟

بعض الأجهزة لا تدعم إعادة تعيين نظيفة على مستوى الوظيفة أو الناقل. بعد إيقاف تشغيل الضيف، قد تظل البطاقة في حالة لا يمكن تهيئتها بأمان للمالك التالي.

النتيجة النهائية

عزل IOMMU يجعل التمرير الآمن أكثر أمانًا من خلال منح جهاز قادر على DMA مساحة عنوان مادية مقيدة بدلاً من الوثوق به في كل ذاكرة المضيف. تتطلب الأمان الحقيقي أيضًا مجموعات IOMMU سليمة، وتوجيه PCIe موثوق، وإعادة تعيين المقاطعات، وإعادة تعيين الجهاز بشكل نظيف، وتكوين مضيف محافظ. يمكن للجهاز الممرر أن يقترب من الأداء الأصلي دون أن يصبح مكافئًا لجهاز طرفي افتراضي غير ضار.

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.