فرض بث IPv4 UDP على كافة واجهات الشبكة على نظام التشغيل Windows 7 والإصدارات الأحدث.
قم بتنزيل أحدث إصدار.
إذا كنت تعمل مع نظام التشغيل Windows، فقد تتفاجأ بأن حزم البث IPv4 UDP المرسلة إلى عنوان البث العالمي 255.255.255.255
(جميع واجهات الشبكة المتاحة)، حسنًا، لن يتم تسليمها فعليًا إلى جميع واجهات الشبكة المتاحة الموجودة على نظام.
وذلك لأن تطبيق شبكة Windows لمآخذ توصيل BSD يعتبر هذه الحزم قابلة للتسليم فقط إلى الواجهة ذات الأولوية القصوى (الواجهة "الافتراضية"). يتم تحديد أولوية واجهة الشبكة من خلال قيمتها المترية التي يتم تعيينها (عادةً) تلقائيًا بواسطة النظام. ستكون الواجهة ذات أقل قيمة قياس هي الواجهة ذات الأولوية القصوى. عادةً ما تكون هذه هي الواجهة التي يتصل من خلالها جهاز الكمبيوتر الخاص بك بالإنترنت (أو جهاز التوجيه المنزلي الخاص بك). يمكنك التحقق من قيم القياس التي يعينها Windows لجميع واجهات الشبكة عن طريق تشغيل هذا الأمر في PowerShell:
Get-NetIPInterface
مهما كان الأساس المنطقي لهذا السلوك، فإنه ينطوي على دلالة خطيرة مفادها أن جميع واجهات الشبكة الأخرى لن تتلقى حزم بث UDP العالمية، وسيواجه تطبيق معين مشكلات في الاتصال إذا كان يعتمد على تسليم هذه الحزم بشكل صحيح.
كيف يهم هذا؟ خذ بعين الاعتبار جهاز كمبيوتر متصل بالشبكة المحلية بشبكة فرعية قياسية 192.168.179.0/24 وشبكة VPN بشبكة فرعية 100.100.100.0/24. توجد الآن خدمة تعمل على هذا الكمبيوتر الشخصي والتي يتعين على عملاء VPN أيضًا الوصول إليها وتعتمد هذه الخدمة على حزم بث UDP العالمية للاتصال.
وبطبيعة الحال، فإن الطريقة الوحيدة لحل هذه المشكلة في نظام التشغيل Windows هي ربط كلا الشبكتين. لكن التجسير أمر غير مرغوب فيه إلى حد كبير لأن القيام بذلك من شأنه أن يعرض شبكة LAN الخاصة بك بالكامل لطرف متصل عبر VPN.
يعمل BROADcast على حل هذه المشكلة بشكل جيد عن طريق التقاط حزم بث UDP العالمية التي يتم تسليمها إلى المسار الأساسي (وتسمى أيضًا المسار "المفضل") وترحيلها ببساطة إلى جميع واجهات الشبكة المناسبة الأخرى التي قرر Windows المرور بها.
في لقطة الشاشة أعلاه، يلتقط BROADcast حزم بث UDP العالمية التي يتم تسليمها إلى عنوان LAN الحقيقي 10.10.10.100
(وهو أيضًا المسار المفضل) وينقلها إلى عنوان VPN 100.100.100.1
. بدون تشغيل BROADcast، كانت الحزم ستظل مرسلة إلى 10.10.10.100
فقط، متجاهلة تمامًا شريحة VPN من الشبكة.
تتضمن أمثلة البرامج التي تعتمد بشكل حيوي على هذه الوظيفة ما يلي: تطبيقات الدردشة عبر الشبكة المحلية (LAN)، وبعض ألعاب الفيديو متعددة اللاعبين، والتطبيقات اللامركزية الأخرى المستخدمة للتعاون.
ملاحظة: يتطلب البث امتيازات المسؤول حتى يتم تشغيله. وذلك لأنه يجب عليه التقاط حزم UDP باستخدام مآخذ توصيل خام، وهذا مسموح به فقط للحسابات المرتفعة.
BROADcast هو تطبيق وحدة التحكم. ويمكن أيضًا تشغيله في الخلفية كخدمة Windows.
ابدأ في ترحيل حزم بث UDP العالمية:
broadcast.exe -b
أضف -d
لعرض رسائل التشخيص المطولة (مفيدة لاستكشاف الأخطاء وإصلاحها):
broadcast.exe -b -d
سيتم تسليم حزم البث إلى كافة واجهات الشبكة باستثناء الواجهة الافتراضية. استخدم Ctrl+C للخروج من البث بشكل نظيف.
كميزة إضافية، يسمح BROADcast بجعل أي واجهة هي الواجهة الافتراضية (أو المفضلة). يقوم بذلك عن طريق أخذ قيمة القياس الحالية للواجهة التي ترغب في تحويلها إلى افتراضية وإضافتها إلى كل قيمة قياس للواجهة الأخرى، مما يجعلها أقل قيمة قياس على الإطلاق:
BROADcast.exe -i " Interface " -m
قم بتشغيل الأمر مرة أخرى بدون الوسيطة -m
للتراجع عن جميع تغييرات قيم القياس واستعادة القيم التلقائية التي يديرها النظام:
BROADcast.exe -i " Interface "
"الواجهة" هو اسم واجهة الشبكة الذي يمكن البحث عنه (وتغييره) في قسم "مركز الشبكة والمشاركة" في لوحة تحكم Windows. يمكنك الوصول إليه بسرعة بالضغط على Win+R وفتح:
%windir%explorer.exe shell:::{992CFFA0-F557-101A-88EC-00DD010CCC48}
لتثبيت (أو إلغاء تثبيت) BROADcast كخدمة Windows، قم باستدعائه باستخدام الوسيطة المناسبة:
broadcast .exe [install | uninstall]
يحتوي مستودع البث على مثال لتكوين OpenVPN والبرامج النصية لتشغيل البث بعد بدء تشغيل خادم OpenVPN باستخدام جهاز TAP.
لاحظ أنه إذا كنت تنوي بدء البث من OpenVPN باستخدام وظيفة البرنامج النصي لبدء/إيقاف، فيجب عليك أيضًا تشغيل OpenVPN بامتيازات المسؤول، تمامًا مثل BROADcast.
ولهذا السبب، يوصى بشدة ببدء البث بشكل منفصل كخدمة Windows بدلاً من ذلك.
على الرغم من أنه لا يرتبط بشكل مباشر ببث BROADcast أو UDP على الإطلاق، إلا أن هناك ركيزة أخرى مفيدة لشبكات Windows وهي ForceBindIP.
على عكس BROADcast، الذي يوفر إصلاحًا لبروتوكول UDP، يوفر ForceBindIP إصلاحًا مشابهًا لبروتوكول TCP عن طريق إجبار تطبيق ما على الارتباط (أو الاستماع) على واجهة شبكة معينة بدلاً من الواجهة التي يختارها تلقائيًا (والتي غالبًا ما لا تكون هي التي تختارها). يريد).
إن صنع برامج عالية الجودة أمر صعب ويستغرق وقتًا طويلاً. إذا وجدت البث مفيدًا، فيمكنك أن تشتري لي ☕!