سؤال

نلتقي بسيناريو الاختبار الذي يحتاج إلى العبث مع عنوان IP المصدر لطلب HTTP لمحاكاة العملاء القادمون من بلدان مختلفة. وبعد هل تعرف أي أداة مساعدة في هذا؟

أخيرا وليس آخرا، يتم بناء موقعنا على شبكة الإنترنت مع ASP.NET.

شكرا.

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

المحلول

كما لوحظ في إجابات على سؤال ServerFault "هي عناوين IP تافهة لتشويه", ، لا يمكنك بسهولة صياغة عناوين المصدر في البروتوكول الذي يتطلب اتصال اتجاهين (مثل TCP). لاحظ أن هذا "اتصال اتجاهين" مطلوب عند مستوى الحزمة. لا يمكنك فقط القول "لا مشكلة، أريد إرسال طلبات وتجاهل ردود HTTP." لإنشاء جلسة TCP، تحتاج إلى تلقي البيانات. أفضل رهان هو استخدام خادم وكيل.

نصائح أخرى

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

إذا كان الخادم والعميل على نفس الجهاز، فكل ما عليك فعله هو معرفة كيفية الحصول على برنامج العميل الخاص بك لربط واجهة افتراضية.wget على سبيل المثال لديه --bind-address خيار لتحديد العنوان المحلي الذي يرتبط به. متصفحات الويب أكثر صعوبة في القيام بذلك مع؛ قد تحتاج إلى تشغيله فقط في VM.

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

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

أنا غير متأكد إذا سمح معيار IP بذلك، ولكن إذا كنت تعمل في بيئة مختبرية، حيث لا تحتاج إلى اتصال بالإنترنت أثناء الاختبار، يمكنني أن أرى ذلك يعمل بموجب الظروف التالية:

في الأساس، أود تعيين واجهة شبكة الخادم لاستخدام NetMask 0.0.0.0 ومسخ بقية جدول التوجيه.

ثم يمكنك تكوين جهاز عميل لأخذ أي عنوان IP طالما كنت تستخدم NetMask 0.0.0.0. وبعد وينبغي أن يكون الاتصال في اتجاهين ممكن.

Server[1.2.3.4/0] <---> Client[x.x.x.x/0]

ولكن يرجى تحمل معي. لم أختبر هذا، لذلك يمكن أن أكون مخطئا :-)

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

Server-----Router----Internet
            /
Test_PC----/

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

Server-------------Router_with_PBR-------------Internet----- PC
SCR:4.2.2.2        Change SCR:6.6.6.6 to 4.2.2.2              6.6.6.6

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

أفضل رهان الخاص بك هو استخدام خوادم الوكيل أو إذا تبحث عن حل طويل الأجل، فقم بإعداد خادم (افتراضي رائع لهذا) واستخدم RDP للاختبار. أنا متأكد من أنه يمكنك استئجار خادم افتراضي في مكان ما لمدة شهر أو شهرين.

هذا غير ممكن. لأنه عند صياغة عنوان IP، فإن الاستجابة ستعود أبدا، وهو ما هو مطلوب ل HTTP.

أفضل طريقة هي استخدام الوكلاء. أنظر أيضا هذه سؤال على ServerFault.

إذا قمت بتغيير عنوان IP المصدر الخاص بك، فلا يعني عدم وجود حركة مرور من خادم الويب الخاص بك قادرا على العودة إلى العميل.

قد تكون قادرا على استخدام نوع من مرشح الترجمة بالوكالة و / أو العنوان للقيام بإعادة التصميم أثناء الاستمتاع بالاتصال ثنائي الاتجاه.

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