سؤال

أحتاج إلى إنشاء محاكي جهاز يمكنه التواصل عبر عنوان IP حقيقي

أحتاج إلى إنشاء أكبر عدد ممكن من الحالات التي أستطيعها للجهاز. مع عنوان IP و MAC واحد لكل مثيل محاكي

هل يمكن لأي شخص أن يرشدني كيف يمكن تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

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

اقترحت فقط كذاب كل حركة مرور لعبتنا من خادم صدى بعيد. عندما قيل لي أنه كان من المحظور تمامًا إرسال حركة مرور التطوير عبر الأسلاك العامة ، قمت ببساطة بإنشاء خادم أشار الجميع إلى Devkits الخاص بهم في ذلك من شأنه أن يخزن كل حزمة تلقاها وإرسال doppleganger (مليء بالمعرف الأصلي للحزمة الأصلية بالإضافة إلى مجموعة من القمامة العشوائية لجعلها بنفس الحجم) إلى خوادم الصدى التي ركضتها. عندما تم استلام Doppleganger ، كنت أقوم بتمرير الحزمة الأصلية إلى وجهتها الأصلية.

فقاعة. محاكاة الإنترنت مع جميع الأشواك في أقل من 8 ساعات.

تحديث:

بالنظر إلى نجاح الإجابة هنا ، قمت بتنفيذ خدمة Echo Game لفترة من الوقت. يبدو أن جيثب قد يكون مكانًا أفضل لخداعه ، لذلك ها هو: إذا كان يعمل للكم، عظيم! إذا لم يكن كذلك ، فأخبرني. أتوقع أن تكون حالتها الحالية هشة في أحسن الأحوال.

نصائح أخرى

أضف مجموعة من IPS الظاهري في Windows

انظر 21 فبراير 2006 ، 1:18 مساءً بعد الرد جيل

.

للرجوع إليه:

أوامر netsh لواجهة IP

أوامر Netsh

يمكنك استخدام الأوامر في سياق IP للواجهة NetSh لتكوين بروتوكول TCP/IP (بما في ذلك العناوين ، والبوابات الافتراضية ، وخوادم DNS ، وخوادم WINS) ولعرض التكوين والمعلومات الإحصائية.

فكرة بسيطة سيكون للاستخدام Linux وضع المستخدم (UML), ، منفذ kernel Linux في مساحة المستخدم. يتيح عدة أنظمة Linux الظاهرية (المعروفة باسم الضيوف) بالتشغيل كتطبيق داخل نظام Linux العادي (المعروف باسم المضيف).

انها خفيفة جدا ، في وحدة المعالجة المركزية والذاكرة. على سبيل المثال ، أستخدم أكثر من 10 UML في نفس الوقت على جهاز كمبيوتر "غير متوقع" ، باستخدام Netkit, ، محاكاة الشبكة على أساس UML. UML هو خفيف لأنه تطبيق أصلي ، وليس محاكاة افتراضية ثقيلة (VMware ، VirtualBox ، QEMU) لا الفقرة (XEN).

نظرًا لأن واجهات الشبكة يتم تنفيذها لتكون قادرة على الاتصال بأجهزة UML الأخرى (باستخدام UML_Switch) ، يمكنك الحصول على أي عنوان MAC الذي تريده. إذا كنت بحاجة إلى توصيل أجهزة UML بنظامك أو المضيفين الخارجيين ، فيمكنك إنشاء أجهزة افتراضية باستخدام TUN/TAP.

ملاحظة: إذا كنت على Windows ، فيمكنك المحاولة كولينيكس, ، Port of Linux kernel لنظام التشغيل M $ ، لا أعرف ما إذا كان له نفس الخصائص من UML.

يمكنك محاولة استخدام محولات الاسترجاع. باستخدام هذا ، يمكنك تعيين أي عنوان IP أو MAC. يعمل بشكل رائع لمحاكاة اتصالات الشبكة المختلفة.

تحتاج إلى دراسة طبقة Datalink بعمق في جزء الترميز - ثم يمكنك فهم كيفية الحصول على عنوان Mac والاتصالات B/W Mac و IP

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

أقترح عليك عدم البدء في إعادة اختراع العجلة. هناك أجهزة وكذلك حلول برامج لهذه المشكلة بالذات. كما أنها مناسبة بشكل جيد للغاية لاختبار تحميل الشبكة (والإنتاجية).

الجانب السلبي مثل هذه الخلطات مكلفة للغاية.

يتيح لك Cisco Pakcet Tracer محاكاة حركة الشبكة مع واجهة المستخدم الرسومية. لم يذكر أي شخص أن أحد (يقتصر على أجهزة Cisco ولكن المعيار هو نفسه عبر الأجهزة ، لذلك سيكون أوامر تعلم لجهازك المحدد).

حاول إجراء بحث Google لأنه في ظل الظروف العادية ، إنه متاح فقط لطلاب CCNA ، لكنني احتفظت بنسخة لأن أستاذي يسمح لي بذلك.

أو قد تجد شخصًا ما نشر نسخة من فصله في مكان ما على الإنترنت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top