التوجيه العودي في MikroTik من خلال البوابات المعينة من قبل DHCP

السؤال الأكثر شيوعًا حول استخدام التوجيه العودي هو: "ماذا يجب أن أفعل إذا قام الموفر الرئيسي بتعيين عنوان IP لنا ​​من خلال dhcp ، وهل تتغير البوابة الافتراضية كثيرًا؟"

الصورة

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

ما هو التوجيه العودية؟ لمراقبة توفر الإنترنت خلف بوابة مزود الخدمة . بعد كل شيء ، غالبًا ما يحدث أن يستجيب جهاز التوجيه الخاص بالموفر بشكل مثالي لطلبات الصدى ، ولكن اختفى ارتباط الموفر [الأعلى] بالشبكة العالمية لسبب ما.

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

ومع ذلك ، فإن الحقيقة هي أن استخدام التوجيه العودي يفترض وجود إشارة صريحة مباشرة إلى عنوان IP للبوابة مسمرًا بمسامير من بين معلمات المسار الذي تم إنشاؤه. إن تحديد اسم واجهة البث كبوابة غير صحيح وفي كثير من الحالات لا يعمل ببساطة ، لأنه يتطلب proxy-arp من الموفر. ومع ذلك ، بدلاً من الموفر ، يستطيع proxy-arp تشغيل جارك حول مفتاح الموفر ومحاولة اعتراض حركة المرور الخاصة بك بهذه الطريقة من خلال ترتيب MITM الكلاسيكي!

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

النظر في أبسط مخطط نشط / النسخ الاحتياطي. يقوم جهاز التوجيه الخاص بنا بإجراء NAT ويتصل باثنين من المزودين عبر واجهات Ether1-isp1 و Ether2-isp2. يقوم المزود الرئيسي (ISP-1) بتوزيع عناوين IP لعملائه عبر DHCP ولا شيء آخر. يزودنا الموفر الثاني بعنوان IP ثابت ، ولكن بسرعة أقل بكثير.
يجب أن يحدث التبديل إلى النسخ الاحتياطي (ISP-2) عندما يصبح الوصول إلى الإنترنت من خلال الموفر الرئيسي مستحيلاً.

الصورة

إن أبرز موفر لمثل هذا المخطط هو التغيير التعسفي الدوري ليس فقط لعنوان IP للعميل ، ولكن أيضًا للبوابة الافتراضية.

قبل الإصدار 6.39 ، كان علي أن أرى عكازات معقدة للغاية في مجموعات مختلفة من sheduler و netwatch وآليات مماثلة.

بدءًا من الإصدار 6.39 ، ذهب مطورو RouterOS لمقابلة هؤلاء المستخدمين وخلقوا القدرة على استدعاء برنامج نصي خاص عند تشغيل عميل dhcp على الجهاز.

في الواقع ، يتكون الحل من جزأين:

  1. تحتاج إلى الحصول على بروتوكول dhcp من عنوان IP الخاص بالموفر وعنوان البوابة للاستخدام في المسارات العودية
  2. إن أمكن ، استبعد عنوان البوابة المستلم من الموفر من الاستخدام التلقائي.

لذا ، لنبدأ من النهاية.

سننشئ مسارًا احتياطيًا من خلال ISP-2 بقيمة مسافة أكبر من تلك الموجودة في المستقبل الرئيسية. في هذا المثال ، استخدمت "المسافة = 2":

النسخ الاحتياطي عبر ISP-2
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1 distance=2

علاوة على ذلك ، من أجل الحصول على المسار الافتراضي من مزود ISP-1 ، ولكن ليس لاستخدامه مباشرة ، هناك قيمة خاصة "المسافة = 255". سيتم توجيه مسار بقيمة هذه المسافة إلى جدول توجيه النظام ، ولكن لن يصبح نشطًا أبدًا .

كود
/ip dhcp-client add comment="ISP-1 dhcp" default-route-distance=255 dhcp-options=hostname,clientid interface=Ether1-isp1

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

من المعلمات المستلمة ، نحن مهتمون أكثر بالمتغير $ gateway-address. كما يوحي الاسم ، فإنه يحتوي على عنوان العبارة الافتراضية في شبكة الموفر. سنستخدمها لتحديث المسارات العودية حتى الآن.
يجب التعرف على المسارات العودية نفسها بشكل صحيح من البرنامج النصي. للقيام بذلك ، في مرحلة إنشائها ، سنشير إلى "تعليق" فريد ، سيتم استخدامه للعثور عليهم داخل الجدول. رمز لإنشاء زوج مسار عودي:

إنشاء زوج من المسارات
/ip route add dst-address=8.8.4.4 gateway=127.0.0.1 scope=30 target-scope=30 comment=" isp1route " disabled=yes
/ip route add dst-address=0.0.0.0/0 gateway=8.8.4.4 check-gateway=ping


يجب أن يشير السطر الأول (وسوف!) إلى بوابة حقيقية في شبكة الموفر فقط بعد قيام الموفر بإصدار المعلمات عبر dhcp وسيتم معالجتها باستخدام البرنامج النصي dhcp-client:

نص مبسط
/ip route set [find comment=" isp1route "] gateway=($"gateway-address") disabled=no

خيار أكثر تقدمًا
:if ($bound=1) do={ /ip route set [find comment=" isp1route "] gateway=($"gateway-address")disabled=no; :log warning ("New ISP1 gateway: ".($"gateway-address")) }

الآن ، عند استلام عنوان IP من موفر ISP-1 لاستخدامه كبوابة افتراضية ، سيتم تضمينه في زوج التوجيه بدلاً من 127.0.0.1.
الخط الثاني ، حيث يشار إلى الطريق إلى 0.0.0.0/0 ، ينفذ كل السحر. سيتم فحص العقدة 8.8.4.4 المحددة هناك كبوابة للرد على الخيار "check-gateway = ping" بدقة عبر شبكة ISP-1. إذا لم تستجب العقدة 8.8.4.4 مرتين لطلبات الصدى في غضون 20 ثانية ، فسوف يعتبر جهاز التوجيه أن الاتصال بالإنترنت من خلال هذا المسار (ISP-1) غير متاح. سيتم توجيه الاتصالات الجديدة في هذه الحالة من خلال مزود النسخ الاحتياطي ISP-2.

إذا تم تنفيذ كل شيء بشكل صحيح ، فعندئذٍ في نافذة المسارات winbox / ip-> بالقرب من الطريق حتى 8.8.4.4 ، ستظهر الكلمات "العودية عبر ...". هذا يعني أن المسار تم بناؤه على أنه عودي تمامًا.

في النهاية ، على سبيل المثال فقط - winbox screen window:

الصورة

Source: https://habr.com/ru/post/ar428097/


All Articles