أساسيات التوجيه الثابت في Mikrotik RouterOS

التوجيه هو عملية العثور على أفضل مسار لإرسال الحزم عبر شبكات TCP / IP. يحتوي أي جهاز متصل بشبكة IPv4 على عملية وجداول توجيه.

هذه المقالة ليست HOWTO ، فهي تصف التوجيه الثابت في RouterOS بأمثلة ، لقد حذفت عمدًا بقية الإعدادات (على سبيل المثال ، srcnat للوصول إلى الإنترنت) ، لذا فإن فهم المادة يتطلب مستوى معينًا من المعرفة بالشبكات و RouterOS.

التبديل والتوجيه

أساسيات التوجيه الثابت في Mikrotik RouterOS

التبديل هو عملية تبادل الحزم ضمن مقطع Layer2 واحد (Ethernet ، ppp ، ...). إذا رأى الجهاز أن مستلم الحزمة موجود على نفس شبكة Ethernet الفرعية معه ، فإنه يتعلم عنوان mac باستخدام بروتوكول arp وينقل الحزمة مباشرة ، متجاوزًا جهاز التوجيه. يمكن أن يشتمل اتصال ppp (من نقطة إلى نقطة) على مشاركين فقط ويتم إرسال الحزمة دائمًا إلى عنوان واحد 0xff.

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

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

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

التوجيه في RouterOS و PacketFlow

توجد جميع الوظائف المتعلقة بالتوجيه الثابت تقريبًا في الحزمة نظام. حقيبة بلاستيكية التوجيه يضيف دعمًا لخوارزميات التوجيه الديناميكي (RIP و OSPF و BGP و MME) وفلاتر التوجيه و BFD.

القائمة الرئيسية لإعداد التوجيه: [IP]->[Route]. قد تتطلب المخططات المعقدة أن يتم تمييز الحزم مسبقًا بعلامة توجيه في: [IP]->[Firewall]->[Mangle] (السلاسل PREROUTING и OUTPUT).

هناك ثلاثة أماكن في PacketFlow يتم فيها اتخاذ قرارات توجيه حزم IP:
أساسيات التوجيه الثابت في Mikrotik RouterOS

  1. حزم التوجيه التي تلقاها جهاز التوجيه. في هذه المرحلة ، يتقرر ما إذا كانت الحزمة ستنتقل إلى العملية المحلية أم سيتم إرسالها إلى الشبكة. استلام حزم العبور واجهة الانتاج
  2. توجيه الحزم الصادرة المحلية. تلقي الحزم الصادرة واجهة الانتاج
  3. خطوة توجيه إضافية للحزم الصادرة ، تتيح لك تغيير قرار التوجيه بتنسيق [Output|Mangle]

  • يعتمد مسار الحزمة في الخانات 1 و 2 على القواعد الموجودة في [IP]->[Route]
  • يعتمد مسار الحزمة في النقاط 1 و 2 و 3 على القواعد الموجودة في [IP]->[Route]->[Rules]
  • يمكن أن يتأثر مسار الحزمة في المربعين 1 و 3 باستخدام [IP]->[Firewall]->[Mangle]

RIB ، FIB ، ذاكرة التخزين المؤقت للتوجيه

أساسيات التوجيه الثابت في Mikrotik RouterOS

قاعدة معلومات التوجيه
القاعدة التي يتم فيها تجميع المسارات من بروتوكولات التوجيه الديناميكية والمسارات من ppp و dhcp والمسارات الثابتة والمتصلة. تحتوي قاعدة البيانات هذه على جميع المسارات ، باستثناء تلك التي تمت تصفيتها بواسطة المسؤول.

بشروط، يمكننا أن نفترض ذلك [IP]->[Route] يعرض RIB.

قاعدة معلومات إعادة التوجيه
أساسيات التوجيه الثابت في Mikrotik RouterOS

القاعدة التي يتم فيها جمع أفضل الطرق من RIB. جميع المسارات في FIB نشطة وتستخدم لإعادة توجيه الحزم. إذا أصبح المسار غير نشط (معطل من قبل المسؤول (النظام) ، أو كانت الواجهة التي يجب إرسال الحزمة من خلالها غير نشطة) ، فسيتم إزالة المسار من FIB.

لاتخاذ قرار توجيه ، يستخدم جدول FIB المعلومات التالية حول حزمة IP:

  • عنوان المصدر
  • عنوان الوجهة
  • واجهة المصدر
  • علامة التوجيه
  • شروط الخدمة (DSCP)

الدخول إلى حزمة FIB يمر بالمراحل التالية:

  • هل الحزمة مخصصة لعملية جهاز توجيه محلي؟
  • هل الحزمة تخضع لقواعد النظام أو المستخدم PBR؟
    • إذا كانت الإجابة بنعم ، فسيتم إرسال الحزمة إلى جدول التوجيه المحدد
  • يتم إرسال الحزمة إلى الجدول الرئيسي

بشروط، يمكننا أن نفترض ذلك [IP]->[Route Active=yes] يعرض FIB.

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

بالنسبة لمسؤولي RouterOS ، لم يصنعوا أدوات لعرض وإدارة ذاكرة التخزين المؤقت للتوجيه ، ولكن عندما يمكن تعطيلها في [IP]->[Settings].

تمت إزالة هذه الآلية من نواة linux 3.6 ، لكن RouterOS لا تزال تستخدم kernel 3.3.5 ، وربما يكون توجيه cahce أحد الأسباب.

مربع حوار إضافة مسار

[IP]->[Route]->[+]
أساسيات التوجيه الثابت في Mikrotik RouterOS

  1. الشبكة الفرعية التي تريد إنشاء مسار لها (الافتراضي: 0.0.0.0/0)
  2. عنوان IP للبوابة أو الواجهة التي سيتم إرسال الحزمة إليها (قد يكون هناك العديد منها ، انظر ECMP أدناه)
  3. التحقق من توفر البوابة
  4. نوع السجل
  5. المسافة (متري) لمسار
  6. جدول التوجيه
  7. IP للحزم الصادرة المحلية عبر هذا المسار
  8. الغرض من النطاق والنطاق الهدف مكتوب في نهاية المقالة.

أعلام الطريق
أساسيات التوجيه الثابت في Mikrotik RouterOS

  • X - تم تعطيل المسار من قبل المسؤول (disabled=yes)
  • أ - يستخدم المسار لإرسال الحزم
  • D - تمت إضافة المسار ديناميكيًا (BGP ، OSPF ، RIP ، MME ، PPP ، DHCP ، متصل)
  • ج - الشبكة الفرعية متصلة مباشرة بالموجه
  • S - طريق ثابت
  • r ، b ، o ، m - المسار الذي تمت إضافته بواسطة أحد بروتوكولات التوجيه الديناميكي
  • B ، U ، P - مسار التصفية (إسقاط الحزم بدلاً من الإرسال)

ماذا تحدد في البوابة: عنوان IP أو الواجهة؟

يسمح لك النظام بتحديد كليهما ، في حين أنه لا يقسم ولا يعطي تلميحات إذا فعلت شيئًا خاطئًا.

عنوان IP
يجب أن يكون عنوان البوابة يمكن الوصول إليه عبر Layer2. بالنسبة إلى Ethernet ، يعني هذا أنه يجب أن يكون للموجه عنوان من نفس الشبكة الفرعية على إحدى واجهات IP النشطة ، بالنسبة لـ ppp ، أن عنوان البوابة محدد على إحدى الواجهات النشطة كعنوان الشبكة الفرعية.
إذا لم يتم استيفاء شرط إمكانية الوصول للطبقة 2 ، يعتبر المسار غير نشط ولا يقع في FIB.

السطح البيني
كل شيء أكثر تعقيدًا ويعتمد سلوك جهاز التوجيه على نوع الواجهة:

  • يفترض اتصال PPP (Async و PPTP و L2TP و SSTP و PPPoE و OpenVPN *) مشاركين فقط وسيتم إرسال الحزمة دائمًا إلى البوابة للإرسال ، إذا اكتشفت البوابة أن المستلم هو نفسه ، فسيتم نقل الحزمة إلى عمليتها المحلية.
    أساسيات التوجيه الثابت في Mikrotik RouterOS
  • يفترض Ethernet وجود العديد من المشاركين وسوف يرسل طلبات إلى واجهة arp مع عنوان مستلم الحزمة ، وهذا سلوك متوقع وطبيعي تمامًا للمسارات المتصلة.
    ولكن عند محاولة استخدام الواجهة كطريق لشبكة فرعية بعيدة ، ستحصل على الموقف التالي: المسار نشط ، يمر اختبار ping للبوابة ، لكنه لا يصل إلى المستلم من الشبكة الفرعية المحددة. إذا نظرت إلى الواجهة من خلال المتشمم ، فسترى طلبات arp بعناوين من شبكة فرعية بعيدة.
    أساسيات التوجيه الثابت في Mikrotik RouterOS

أساسيات التوجيه الثابت في Mikrotik RouterOS

حاول تحديد عنوان IP كبوابة كلما أمكن ذلك. الاستثناء هو المسارات المتصلة (التي تم إنشاؤها تلقائيًا) وواجهات PPP (Async و PPTP و L2TP و SSTP و PPPoE و OpenVPN *).

لا يحتوي OpenVPN على رأس PPP ، ولكن يمكنك استخدام اسم واجهة OpenVPN لإنشاء مسار.

مسار أكثر تحديدًا

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

أساسيات التوجيه الثابت في Mikrotik RouterOS

جميع المسارات من المخطط المحدد نشطة (موجودة في FIB). أشر إلى شبكات فرعية مختلفة ولا تتعارض مع بعضها البعض.

إذا أصبحت إحدى البوابات غير متوفرة ، فسيتم اعتبار المسار المرتبط غير نشط (تمت إزالته من FIB) وسيتم البحث عن الحزم من المسارات المتبقية.

أحيانًا ما يُعطى المسار الذي يحتوي على الشبكة الفرعية 0.0.0.0/0 معنى خاصًا ويسمى "المسار الافتراضي" أو "بوابة الملاذ الأخير". في الواقع ، لا يوجد شيء سحري فيه وهو يتضمن ببساطة جميع عناوين IPv4 الممكنة ، ولكن هذه الأسماء تصف مهمتها جيدًا - فهي تشير إلى البوابة حيث يتم إعادة توجيه الحزم التي لا توجد لها مسارات أخرى أكثر دقة.

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

يعد فهم المسار الأكثر تحديدًا أمرًا أساسيًا لأي جهاز TCP / IP.

المسافات

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

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

يمكن أن يأخذ المقياس قيمة من 0 إلى 255:
أساسيات التوجيه الثابت في Mikrotik RouterOS

  • 0 - متري للطرق المتصلة. لا يمكن تعيين المسافة 0 من قبل المسؤول
  • 1-254 - المقاييس المتاحة للمسؤول لتعيين المسارات. المقاييس ذات القيمة الأقل لها أولوية أعلى
  • 255 - متري متاح للمسؤول لتحديد المسارات. على عكس 1-254 ، يظل المسار بمقياس 255 دائمًا غير نشط ولا يقع في FIB
  • مقاييس محددة. المسارات المشتقة من بروتوكولات التوجيه الديناميكي لها قيم مترية قياسية

تحقق من البوابة

Check gateway هو امتداد MikroTik RoutesOS للتحقق من توفر البوابة عبر icmp أو ARP. مرة واحدة كل 10 ثوانٍ (لا يمكن تغييرها) ، يتم إرسال طلب إلى البوابة ، إذا لم يتم تلقي الاستجابة مرتين ، فسيتم اعتبار المسار غير متاح ويتم إزالته من FIB. إذا تم تعطيل فحص البوابة ، فسيستمر فحص المسار وسيصبح المسار نشطًا مرة أخرى بعد عملية تحقق ناجحة واحدة.
أساسيات التوجيه الثابت في Mikrotik RouterOS

يؤدي فحص البوابة إلى تعطيل الإدخال الذي تم تكوينه فيه وجميع الإدخالات الأخرى (في جميع جداول التوجيه ومسارات ecmp) باستخدام البوابة المحددة.

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

تحتوي معظم بروتوكولات VPN و tunnel على أدوات مدمجة للتحقق من نشاط الاتصال ، مما يجعل تمكين التحقق من البوابة لها عبئًا إضافيًا (ولكنه صغير جدًا) على أداء الشبكة والجهاز.

مسارات ECMP

مسارات متعددة متساوية التكلفة - إرسال الحزم إلى المستلم باستخدام عدة بوابات في وقت واحد باستخدام خوارزمية Round Robin.

يتم إنشاء مسار ECMP بواسطة المسؤول عن طريق تحديد عدة بوابات لشبكة فرعية واحدة (أو تلقائيًا ، إذا كان هناك مساران مكافئان لـ OSPF).
أساسيات التوجيه الثابت في Mikrotik RouterOS

يتم استخدام ECMP لموازنة الحمل بين قناتين ، من الناحية النظرية ، إذا كانت هناك قناتان في مسار ecmp ، فيجب أن تكون القناة الصادرة مختلفة لكل حزمة. لكن آلية التخزين المؤقت للتوجيه ترسل حزمًا من الاتصال على طول المسار الذي سلكته الحزمة الأولى ، ونتيجة لذلك ، نحصل على نوع من التوازن يعتمد على الاتصالات (موازنة التحميل لكل اتصال).

إذا قمت بتعطيل ذاكرة التخزين المؤقت للتوجيه ، فستتم مشاركة الحزم الموجودة في مسار ECMP بشكل صحيح ، ولكن هناك مشكلة في NAT. تعالج قاعدة NAT الحزمة الأولى فقط من الاتصال (تتم معالجة الباقي تلقائيًا) ، ويتضح أن الحزم التي لها نفس عنوان المصدر تترك واجهات مختلفة.
أساسيات التوجيه الثابت في Mikrotik RouterOS

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

التصفية عن طريق التوجيه

يحدد خيار النوع ما يجب فعله بالحزمة:

  • أحادي الإرسال - إرسال إلى البوابة المحددة (الواجهة)
  • ثقب أسود - تجاهل الحزمة
  • حظر ، يتعذر الوصول إليه - تجاهل الحزمة وأرسل رسالة icmp إلى المرسل

عادةً ما يتم استخدام التصفية عندما يكون ذلك ضروريًا لتأمين إرسال الحزم على طول المسار الخطأ ، بالطبع ، يمكنك تصفية ذلك من خلال جدار الحماية.

زوجان من الأمثلة

لتوحيد الأشياء الأساسية حول التوجيه.

جهاز توجيه منزلي نموذجي
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1

  1. مسار ثابت إلى 0.0.0.0/0 (المسار الافتراضي)
  2. طريق متصل على الواجهة مع الموفر
  3. طريق متصل على واجهة LAN

جهاز توجيه منزلي نموذجي مع PPPOE
أساسيات التوجيه الثابت في Mikrotik RouterOS

  1. طريق ثابت إلى المسار الافتراضي ، تتم إضافته تلقائيًا. تم تحديده في خصائص الاتصال
  2. طريق متصل لاتصال PPP
  3. طريق متصل على واجهة LAN

جهاز توجيه منزلي نموذجي مزود بمزودي خدمة وفائض
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

  1. توجيه ثابت إلى المسار الافتراضي من خلال الموفر الأول مع فحص توفر المقياس 1 والمدخل
  2. توجيه ثابت إلى المسار الافتراضي من خلال المزود الثاني بالمقياس 2
  3. طرق متصلة

تمر حركة المرور إلى 0.0.0.0/0 عبر 10.10.10.1 أثناء توفر هذه البوابة ، وإلا فإنها تتحول إلى 10.20.20.1

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

جهاز توجيه منزلي نموذجي مزود بموفرين ، التكرار و ECMP
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1,10.20.20.1 distance=1

  1. طرق ثابتة لفحص بوابة chack
  2. مسار ECMP
  3. طرق متصلة

تكون مسارات التحقق باللون الأزرق (لون المسارات غير النشطة) ، لكن هذا لا يتعارض مع بوابة التحقق. يعطي الإصدار الحالي (6.44) من RoS أولوية تلقائية لمسار ECMP ، ولكن من الأفضل إضافة مسارات اختبار إلى جداول التوجيه الأخرى (الخيار routing-mark)

في Speedtest والمواقع المماثلة الأخرى ، لن تكون هناك زيادة في السرعة (تقسم ECMP حركة المرور حسب الاتصالات ، وليس حسب الحزم) ، ولكن يجب تنزيل تطبيقات p2p بشكل أسرع.

التصفية عبر التوجيه
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
add dst-address=192.168.200.0/24 gateway=10.30.30.1 distance=1
add dst-address=192.168.200.0/24 gateway=10.10.10.1 distance=2 type=blackhole

  1. طريق ثابت إلى المسار الافتراضي
  2. توجيه ثابت إلى 192.168.200.0/24 عبر نفق ipip
  3. منع المسار الثابت إلى 192.168.200.0/24 عبر موجه ISP

خيار تصفية لا تنتقل فيه حركة مرور النفق إلى موجه الموفر عند تعطيل واجهة ipip. نادرا ما تكون هناك حاجة لمثل هذه المخططات ، لأن يمكنك تنفيذ الحظر من خلال جدار الحماية.

حلقة التوجيه
حلقة التوجيه - حالة يتم فيها تشغيل حزمة بين أجهزة التوجيه قبل انتهاء صلاحية ttl. عادةً ما يكون ذلك نتيجة خطأ في التكوين ، في الشبكات الكبيرة يتم التعامل معه عن طريق تنفيذ بروتوكولات التوجيه الديناميكي ، في الشبكات الصغيرة - بحذر.

يبدو شيئًا كالتالي:
أساسيات التوجيه الثابت في Mikrotik RouterOS

مثال (أبسط) لكيفية الحصول على نتيجة مماثلة:
أساسيات التوجيه الثابت في Mikrotik RouterOS

مثال حلقة التوجيه ليس له فائدة عملية ، لكنه يوضح أن أجهزة التوجيه ليس لديها أي فكرة عن جدول التوجيه للجيران.

التوجيه الأساسي للنهج وجداول التوجيه الإضافية

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

أساسيات التوجيه الثابت في Mikrotik RouterOS

مسار أكثر تحديدًا هي قاعدة تحديد المسار الرئيسية داخل جدول التوجيه.

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

مثال مع التوزيع عبر جدار الحماية:
أساسيات التوجيه الثابت في Mikrotik RouterOS

  • 192.168.100.10 -> 8.8.8.8
    1. يتم تصنيف حركة المرور من 192.168.100.10 عبر- isp1 в [Prerouting|Mangle]
    2. في مرحلة التوجيه في الجدول عبر- isp1 يبحث عن طريق إلى 8.8.8.8
    3. تم العثور على المسار ، يتم إرسال حركة المرور إلى البوابة 10.10.10.1
  • 192.168.200.20 -> 8.8.8.8
    1. يتم تصنيف حركة المرور من 192.168.200.20 عبر- isp2 в [Prerouting|Mangle]
    2. في مرحلة التوجيه في الجدول عبر- isp2 يبحث عن طريق إلى 8.8.8.8
    3. تم العثور على المسار ، يتم إرسال حركة المرور إلى البوابة 10.20.20.1
  • إذا أصبحت إحدى البوابات (10.10.10.1 أو 10.20.20.1) غير متوفرة ، فستنتقل الحزمة إلى الجدول رئيسي وسيبحثون عن طريق مناسب هناك

قضايا المصطلحات

يحتوي RouterOS على مشكلات معينة في المصطلحات.
عند العمل مع القواعد في [IP]->[Routes] يشار إلى جدول التوجيه ، على الرغم من أنه مكتوب أن التسمية:
أساسيات التوجيه الثابت في Mikrotik RouterOS

В [IP]->[Routes]->[Rule] كل شيء صحيح ، في حالة التسمية في إجراء الجدول:
أساسيات التوجيه الثابت في Mikrotik RouterOS

كيفية إرسال حزمة إلى جدول توجيه محدد

يوفر RouterOS عدة أدوات:

  • القواعد في [IP]->[Routes]->[Rules]
  • علامات الطريق (action=mark-routing) في [IP]->[Firewall]->[Mangle]
  • VRF

قواعد [IP]->[Route]->[Rules]
تتم معالجة القواعد بالتسلسل ، إذا كانت الحزمة تتطابق مع شروط القاعدة ، فلن تمر أكثر من ذلك.

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

أساسيات التوجيه الثابت في Mikrotik RouterOS

تتكون القواعد من شروط وإجراء:

  • شروط. كرر عمليًا قائمة العلامات التي يتم من خلالها فحص الحزمة في FIB ، فقط بنود الخدمة مفقودة.
  • نشاط
    • بحث - إرسال حزمة إلى الجدول
    • البحث فقط في الجدول - قفل الحزمة في الجدول ، إذا لم يتم العثور على المسار ، فلن تنتقل الحزمة إلى الجدول الرئيسي
    • إسقاط - أسقط حزمة
    • يتعذر الوصول إليها - تجاهل الحزمة بإشعار المرسل

في FIB ، تتم معالجة حركة المرور إلى العمليات المحلية بتجاوز القواعد [IP]->[Route]->[Rules]:
أساسيات التوجيه الثابت في Mikrotik RouterOS

وسم [IP]->[Firewall]->[Mangle]
تسمح لك ملصقات التوجيه بتعيين البوابة لحزمة باستخدام أي شروط جدار حماية تقريبًا:
أساسيات التوجيه الثابت في Mikrotik RouterOS

عمليًا ، لأن ليس كل منهم منطقيًا ، وقد يعمل البعض بشكل غير مستقر.

أساسيات التوجيه الثابت في Mikrotik RouterOS

توجد طريقتان لتسمية الحزمة:

  • وضعها على الفور علامة التوجيه
  • ضع أولا علامة الاتصال، ثم على أساس علامة الاتصال لوضع علامة التوجيه

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

أمثلة على الاستخدام

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

MultiWAN والعودة حركة المرور الصادرة (الإخراج)
مشكلة شائعة في تكوين MultiWAN: يتوفر Mikrotik من الإنترنت فقط من خلال مزود "نشط".
أساسيات التوجيه الثابت في Mikrotik RouterOS

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

نقطة أخرى مثيرة للاهتمام. إذا تم تكوين مصدر nat "بسيط" على واجهة ether1: /ip fi nat add out-interface=ether1 action=masquerade ستنقل الحزمة عبر الإنترنت باستخدام src. العنوان = 10.10.10.100 ، مما يجعل الأمور أسوأ.

هناك عدة طرق لإصلاح المشكلة ، لكن أيًا منها سيتطلب جداول توجيه إضافية:
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping distance=2
add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 routing-mark=over-isp2

استخدام [IP]->[Route]->[Rules]
حدد جدول التوجيه الذي سيتم استخدامه للحزم ذات عنوان IP المصدر المحدد.
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route rule
add src-address=10.10.10.100/32 action=lookup-only-in-table table=over-isp1
add src-address=10.20.20.200/32 action=lookup-only-in-table table=over-isp2

يمكن استخدامها action=lookup، ولكن بالنسبة لحركة المرور المحلية الصادرة ، فإن هذا الخيار يستبعد تمامًا الاتصالات من الواجهة الخاطئة.

  • يقوم النظام بإنشاء حزمة استجابة باستخدام Src. العنوان: 10.20.20.200
  • يتحقق قرار التوجيه (2) خطوة [IP]->[Routes]->[Rules] ويتم إرسال الحزمة إلى جدول التوجيه أكثر من ISP2
  • وفقًا لجدول التوجيه ، يجب إرسال الحزمة إلى البوابة 10.20.20.1 عبر واجهة ether2

أساسيات التوجيه الثابت في Mikrotik RouterOS

لا تتطلب هذه الطريقة متعقب اتصال يعمل ، بخلاف استخدام جدول Mangle.

استخدام [IP]->[Firewall]->[Mangle]
يبدأ الاتصال بحزمة واردة ، لذلك نحددها (action=mark-connection) ، للحزم الصادرة من اتصال محدد ، قم بتعيين تسمية التوجيه (action=mark-routing).
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip firewall mangle
#Маркировка входящих соединений
add chain=input in-interface=ether1 connection-state=new action=mark-connection new-connection-mark=from-isp1
add chain=input in-interface=ether2 connection-state=new action=mark-connection new-connection-mark=from-isp2
#Маркировка исходящих пакетов на основе соединений
add chain=output connection-mark=from-isp1 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=output connection-mark=from-isp2 action=mark-routing new-routing-mark=over-isp2 passthrough=no

إذا تم تكوين العديد من ips على واجهة واحدة ، يمكنك إضافة إلى الشرط dst-address لكى تتأكد.

  • حزمة تفتح الاتصال على واجهة ether2. تذهب الحزمة إلى [INPUT|Mangle] الذي يقول لتمييز جميع الحزم من الاتصال على أنها من ISP2
  • يقوم النظام بإنشاء حزمة استجابة باستخدام Src. العنوان: 10.20.20.200
  • في مرحلة قرار التوجيه (2) ، يتم إرسال الحزمة ، وفقًا لجدول التوجيه ، إلى البوابة 10.20.20.1 عبر واجهة ether1. يمكنك التحقق من ذلك عن طريق تسجيل الدخول إلى الحزم [OUTPUT|Filter]
  • في هذه المرحلة [OUTPUT|Mangle] تم فحص تسمية الاتصال من ISP2 وتتلقى الحزمة تسمية الطريق أكثر من ISP2
  • تتحقق خطوة إضافة التوجيه (3) من وجود ملصق توجيه وترسله إلى جدول التوجيه المناسب
  • وفقًا لجدول التوجيه ، يجب إرسال الحزمة إلى البوابة 10.20.20.1 عبر واجهة ether2

أساسيات التوجيه الثابت في Mikrotik RouterOS

MultiWAN وإرجاع حركة مرور dst-nat

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

/ip firewall nat
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether1 action=dst-nat to-address=192.168.100.100
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether2 action=dst-nat to-address=192.168.100.100

سيكون جوهر المشكلة هو نفسه ، والحل مشابه لخيار Firewall Mangle ، وسيتم استخدام سلاسل أخرى فقط:
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting connection-state=new in-interface=ether1 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp1
add chain=prerouting connection-state=new in-interface=ether2 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp2
add chain=prerouting connection-mark=web-input-isp1 in-interface=ether3 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting connection-mark=web-input-isp2 in-interface=ether3 action=mark-routing new-routing-mark=over-isp2 passthrough=no

أساسيات التوجيه الثابت في Mikrotik RouterOS
لا يُظهر الرسم التخطيطي NAT ، لكنني أعتقد أن كل شيء واضح.

MultiWAN والوصلات الصادرة

يمكنك استخدام إمكانيات PBR لإنشاء اتصالات vpn متعددة (SSTP في المثال) من واجهات جهاز توجيه مختلفة.

أساسيات التوجيه الثابت في Mikrotik RouterOS

جداول توجيه إضافية:

/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=over-isp3

add dst-address=0.0.0.0/0 gateway=192.168.100.1 distance=1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 distance=3

علامات العبوة:

/ip firewall mangle
add chain=output dst-address=10.10.10.100 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp1 passtrough=no
add chain=output dst-address=10.10.10.101 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp2 passtrough=no
add chain=output dst-address=10.10.10.102 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp3 passtrough=no

قواعد NAT البسيطة ، وإلا فإن الحزمة ستترك الواجهة مع Src خاطئ. عنوان:

/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade

التحليل:

  • يقوم جهاز التوجيه بإنشاء ثلاث عمليات SSTP
  • في مرحلة قرار التوجيه (2) ، يتم تحديد مسار لهذه العمليات بناءً على جدول التوجيه الرئيسي. من نفس المسار ، تتلقى الحزمة Src. العنوان مرتبط بواجهة ether1
  • В [Output|Mangle] تتلقى الحزم من اتصالات مختلفة تسميات مختلفة
  • تُدخل الحزم الجداول المقابلة للتسميات في مرحلة ضبط التوجيه وتتلقى مسارًا جديدًا لإرسال الحزم
  • لكن الحزم لا تزال تحتوي على Src. عنوان من ether1 ، على خشبة المسرح [Nat|Srcnat] يتم استبدال العنوان وفقًا للواجهة

من المثير للاهتمام ، على جهاز التوجيه ، سترى جدول الاتصال التالي:
أساسيات التوجيه الثابت في Mikrotik RouterOS

يعمل متعقب الاتصال في وقت سابق [Mangle] и [Srcnat]، لذلك تأتي جميع الاتصالات من نفس العنوان ، إذا نظرت بمزيد من التفصيل ، فحينئذٍ Replay Dst. Address ستكون هناك عناوين بعد NAT:
أساسيات التوجيه الثابت في Mikrotik RouterOS

على خادم VPN (لدي واحد على منصة الاختبار) ، يمكنك أن ترى أن جميع الاتصالات تأتي من العناوين الصحيحة:
أساسيات التوجيه الثابت في Mikrotik RouterOS

اصمد في الطريق
هناك طريقة أسهل ، يمكنك ببساطة تحديد بوابة معينة لكل عنوان من العناوين:

/ip route
add dst-address=10.10.10.100 gateway=192.168.100.1
add dst-address=10.10.10.101 gateway=192.168.200.1
add dst-address=10.10.10.102 gateway=192.168.0.1

لكن مثل هذه الطرق لن تؤثر فقط على حركة المرور الصادرة ولكن أيضًا على حركة المرور العابر. بالإضافة إلى ذلك ، إذا كنت لا تحتاج إلى حركة مرور إلى خادم vpn للانتقال عبر قنوات اتصال غير مناسبة ، فسيتعين عليك إضافة 6 قواعد أخرى إلى [IP]->[Routes]с type=blackhole. في الإصدار السابق - 3 قواعد في [IP]->[Route]->[Rules].

توزيع اتصالات المستخدم حسب قنوات الاتصال

مهام بسيطة يومية. مرة أخرى ، ستكون هناك حاجة إلى جداول توجيه إضافية:

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2

باستخدام [IP]->[Route]->[Rules]
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route rules
add src-address=192.168.100.0/25 action=lookup-only-in-table table=over-isp1
add src-address=192.168.100.128/25 action=lookup-only-in-table table=over-isp2

إذا استخدام action=lookup، ثم عند تعطيل إحدى القنوات ، ستنتقل حركة المرور إلى الجدول الرئيسي وتنتقل عبر قناة العمل. ما إذا كان هذا ضروريًا أم لا يعتمد على المهمة.

استخدام العلامات في [IP]->[Firewall]->[Mangle]
مثال بسيط مع قوائم عناوين IP. من حيث المبدأ ، يمكن استخدام أي شروط تقريبًا. التحذير الوحيد لـ layer7 ، حتى عند إقرانه بملصقات الاتصال ، قد يبدو أن كل شيء يعمل بشكل صحيح ، لكن بعض حركة المرور ستظل تسير في الاتجاه الخطأ.
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting src-address-list=users-over-isp1 dst-address-type=!local action=mark-routing new-routing-mark=over-isp1
add chain=prerouting src-address-list=users-over-isp2 dst-address-type=!local action=mark-routing new-routing-mark=over-isp2

يمكنك "قفل" المستخدمين في جدول توجيه واحد من خلاله [IP]->[Route]->[Rules]:

/ip route rules
add routing-mark=over-isp1 action=lookup-only-in-table table=over-isp1
add routing-mark=over-isp2 action=lookup-only-in-table table=over-isp2

إما من خلال [IP]->[Firewall]->[Filter]:

/ip firewall filter
add chain=forward routing-mark=over-isp1 out-interface=!ether1 action=reject
add chain=forward routing-mark=over-isp2 out-interface=!ether2 action=reject

ريتريت برو dst-address-type=!local
حالة إضافية dst-address-type=!local من الضروري أن تصل حركة المرور من المستخدمين إلى العمليات المحلية للموجه (نظام أسماء النطاقات ، winbox ، ssh ، ...). إذا كانت عدة شبكات فرعية محلية متصلة بالموجه ، فمن الضروري التأكد من أن حركة المرور بينها لا تنتقل إلى الإنترنت ، على سبيل المثال ، باستخدام dst-address-table.

في المثال باستخدام [IP]->[Route]->[Rules] لا توجد استثناءات من هذا القبيل ، ولكن حركة المرور تصل إلى العمليات المحلية. الحقيقة هي أن الدخول في حزمة FIB ملحوظ [PREROUTING|Mangle] له تسمية توجيه ويذهب إلى جدول توجيه بخلاف main ، حيث لا توجد واجهة محلية. في حالة قواعد التوجيه ، يتم أولاً التحقق مما إذا كانت الحزمة مخصصة لعملية محلية وفقط في مرحلة PBR للمستخدم تنتقل إلى جدول التوجيه المحدد.

باستخدام [IP]->[Firewall]->[Mangle action=route]
هذا العمل يعمل فقط في [Prerouting|Mangle] ويسمح لك بتوجيه حركة البيانات إلى البوابة المحددة دون استخدام جداول توجيه إضافية ، من خلال تحديد عنوان البوابة مباشرةً:

/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/25 action=route gateway=10.10.10.1
add chain=prerouting src-address=192.168.128.0/25 action=route gateway=10.20.20.1

عمل route له أولوية أقل من قواعد التوجيه ([IP]->[Route]->[Rules]). في حالة علامات الطريق ، كل شيء يعتمد على موضع القواعد ، إذا كانت القاعدة بها action=route يستحق أكثر من action=mark-route، ثم سيتم استخدامه (بغض النظر عن العلم passtrough) ، أو تحديد المسار.
هناك القليل جدًا من المعلومات على الويكي حول هذا الإجراء ويتم الحصول على جميع الاستنتاجات تجريبيًا ، على أي حال ، لم أجد خيارات عند استخدام هذا الخيار يعطي مزايا على الآخرين.

التوازن الديناميكي القائم على قدرة شرائية (PPC)

مصنف اتصال - هو نظير أكثر مرونة من ECMP. على عكس ECMP ، فإنه يقسم حركة المرور من خلال الاتصالات بشكل أكثر صرامة (لا يعرف ECMP أي شيء عن الاتصالات ، ولكن عند إقرانه مع ذاكرة التخزين المؤقت للتوجيه ، يتم الحصول على شيء مشابه).

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

مثال مع ثلاثة عناوين:

192.168.100.10: 192+168+100+10 = 470 % 3 = 2
192.168.100.11: 192+168+100+11 = 471 % 3 = 0
192.168.100.12: 192+168+100+12 = 472 % 3 = 1

مثال على التوزيع الديناميكي لحركة المرور بواسطة src.address بين ثلاث قنوات:
أساسيات التوجيه الثابت في Mikrotik RouterOS

#Таблица маршрутизации
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=3 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=1 routing-mark=over-isp3

#Маркировка соединений и маршрутов
/ip firewall mangle
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/0 action=mark-connection new-connection-mark=conn-over-isp1
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/1 action=mark-connection new-connection-mark=conn-over-isp2
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/2 action=mark-connection new-connection-mark=conn-over-isp3

add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp1 action=mark-routing new-routing-mark=over-isp1
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp2 action=mark-routing new-routing-mark=over-isp2
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp3 action=mark-routing new-routing-mark=over-isp3

عند تعليم المسارات ، هناك شرط إضافي: in-interface=br-lan، بدونها action=mark-routing ستحصل حركة الاستجابة من الإنترنت ، ووفقًا لجداول التوجيه ، ستعود إلى المزود.

تبديل قنوات الاتصال

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

عادةً ما يتم استخدام البرامج النصية التي ، من خلال قناة اتصال معينة ، تتحقق من توفر عنوان IP على الإنترنت ، بينما تختار شيئًا موثوقًا به ، على سبيل المثال ، google dns: 8.8.8.8. 8.8.4.4. لكن في مجتمع Mikrotik ، تم تكييف أداة أكثر إثارة للاهتمام لهذا الغرض.

بضع كلمات حول التوجيه العودي
يعد التوجيه التكراري ضروريًا عند إنشاء مناظرة Multihop BGP والدخول في المقالة حول أساسيات التوجيه الثابت فقط بسبب ماكر مستخدمي MikroTik الذين اكتشفوا كيفية استخدام المسارات العودية المقترنة ببوابة الاختيار لتبديل قنوات الاتصال دون برامج نصية إضافية.

حان الوقت لفهم خيارات النطاق / النطاق المستهدف بشكل عام وكيف يرتبط المسار بالواجهة:
أساسيات التوجيه الثابت في Mikrotik RouterOS

  1. يبحث المسار عن واجهة لإرسال الحزمة بناءً على قيمة نطاقها وجميع الإدخالات في الجدول الرئيسي بقيم نطاق هدف أقل من أو متساوية
  2. من الواجهات التي تم العثور عليها ، يتم تحديد الواجهة التي يمكنك من خلالها إرسال حزمة إلى البوابة المحددة
  3. يتم تحديد واجهة الإدخال المتصل الذي تم العثور عليه لإرسال الحزمة إلى البوابة

في وجود مسار تعاودي ، يحدث كل شيء كما هو ، ولكن على مرحلتين:
أساسيات التوجيه الثابت في Mikrotik RouterOS

  • 1-3 يتم إضافة مسار آخر إلى المسارات المتصلة ، والتي يمكن من خلالها الوصول إلى البوابة المحددة
  • 4-6 إيجاد الطريق الموصل للبوابة "الوسيطة"

تحدث جميع عمليات التلاعب بالبحث المتكرر في RIB ، ويتم نقل النتيجة النهائية فقط إلى FIB: 0.0.0.0/0 via 10.10.10.1 on ether1.

مثال على استخدام التوجيه العودي لتبديل المسارات
أساسيات التوجيه الثابت في Mikrotik RouterOS

إعدادات:
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping distance=1 target-scope=10
add dst-address=8.8.8.8 gateway=10.10.10.1 scope=10
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

يمكنك التحقق من إرسال الحزم إلى 10.10.10.1:
أساسيات التوجيه الثابت في Mikrotik RouterOS

التحقق من البوابة لا يعرف شيئًا عن التوجيه العودي ويرسل ببساطة pings إلى 8.8.8.8 ، والتي (بناءً على الجدول الرئيسي) يمكن الوصول إليها من خلال البوابة 10.10.10.1.

إذا كان هناك فقد في الاتصال بين 10.10.10.1 و 8.8.8.8 ، فسيتم فصل المسار ، لكن الحزم (بما في ذلك اختبارات اختبار الاتصال) إلى 8.8.8.8 تستمر في المرور عبر 10.10.10.1:
أساسيات التوجيه الثابت في Mikrotik RouterOS

في حالة فقد الارتباط بـ ether1 ، يحدث موقف غير سار عندما تمر الحزم قبل 8.8.8.8 عبر المزود الثاني:
أساسيات التوجيه الثابت في Mikrotik RouterOS

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

/ip route
add dst-address=8.8.8.8 gateway=10.20.20.1 distance=100 type=blackhole

أساسيات التوجيه الثابت في Mikrotik RouterOS

هناك في هابريه مقالة، حيث يتم النظر في الموقف مع NetWatch بمزيد من التفصيل.

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

بضع كلمات حول التوجيه الافتراضي وإعادة التوجيه (VRF)

تم تصميم تقنية VRF لإنشاء العديد من أجهزة التوجيه الافتراضية داخل جهاز واحد مادي واحد ، وتستخدم هذه التقنية على نطاق واسع من قبل مشغلي الاتصالات (عادةً بالاشتراك مع MPLS) لتوفير خدمات L3VPN للعملاء الذين لديهم عناوين شبكة فرعية متداخلة:
أساسيات التوجيه الثابت في Mikrotik RouterOS

لكن VRF في Mikrotik منظم على أساس جداول التوجيه وله عدد من العيوب ، على سبيل المثال ، تتوفر عناوين IP المحلية لجهاز التوجيه من جميع VRFs ، يمكنك قراءة المزيد رابط.

مثال على تكوين vrf:
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0

من الجهاز المتصل بـ ether2 ، نرى أن ping ينتقل إلى عنوان جهاز التوجيه من vrf آخر (وهذه مشكلة) ، بينما لا ينتقل الأمر ping إلى الإنترنت:
أساسيات التوجيه الثابت في Mikrotik RouterOS

للوصول إلى الإنترنت ، تحتاج إلى تسجيل مسار إضافي يصل إلى الجدول الرئيسي (في مصطلحات vrf ، يُطلق على هذا تسريب المسار):
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip route
add distance=1 gateway=172.17.0.1@main routing-mark=vrf1
add distance=1 gateway=172.17.0.1%wlan1 routing-mark=vrf2

فيما يلي طريقتان لتسريب المسار: استخدام جدول التوجيه: 172.17.0.1@main واستخدام اسم الواجهة: 172.17.0.1%wlan1.

وقم بإعداد العلامات لحركة العودة في [PREROUTING|Mangle]:
أساسيات التوجيه الثابت في Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=from-vrf1 passthrough=no
add chain=prerouting connection-mark=from-vrf1 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf1 passthrough=no 
add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=from-vrf2 passthrough=no
add chain=prerouting connection-mark=from-vrf2 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf2 passthrough=no 

أساسيات التوجيه الثابت في Mikrotik RouterOS

الشبكات الفرعية بنفس العنوان
تنظيم الوصول إلى الشبكات الفرعية بنفس العنوان على نفس جهاز التوجيه باستخدام VRF وخريطة الشبكة:
أساسيات التوجيه الثابت في Mikrotik RouterOS

التكوين الأساسي:

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0

قواعد جدار الحماية:

#Маркируем пакеты для отправки в правильную таблицу маршрутизации
/ip firewall mangle
add chain=prerouting dst-address=192.168.101.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting dst-address=192.168.102.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf2 passthrough=no

#Средствами netmap заменяем адреса "эфимерных" подсетей на реальные подсети
/ip firewall nat
add chain=dstnat dst-address=192.168.101.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
add chain=dstnat dst-address=192.168.102.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24

قواعد التوجيه لحركة العودة:

#Указание имени интерфейса тоже может считаться route leaking, но по сути тут создается аналог connected маршрута
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf1
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf2

إضافة المسارات المستلمة عبر dhcp إلى جدول توجيه محدد
يمكن أن يكون VRF مثيرًا للاهتمام إذا كنت بحاجة إلى إضافة مسار ديناميكي تلقائيًا (على سبيل المثال ، من عميل dhcp) إلى جدول توجيه محدد.

إضافة واجهة إلى vrf:

/ip route vrf
add interface=ether1 routing-mark=over-isp1

قواعد إرسال حركة المرور (الصادرة والعبور) من خلال الجدول أكثر من ISP1:

/ip firewall mangle
add chain=output out-interface=!br-lan action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting in-interface=br-lan dst-address-type=!local action=mark-routing new-routing-mark=over-isp1 passthrough=no

مسار إضافي مزيف للتوجيه الصادر للعمل:

/interface bridge
add name=bare

/ip route
add dst-address=0.0.0.0/0 gateway=bare

هذا المسار مطلوب فقط حتى تتمكن الحزم الصادرة المحلية من المرور عبر قرار التوجيه (2) من قبل [OUTPUT|Mangle] واحصل على ملصق التوجيه ، إذا كانت هناك مسارات نشطة أخرى على جهاز التوجيه قبل 0.0.0.0/0 في الجدول الرئيسي ، فهذا غير مطلوب.
أساسيات التوجيه الثابت في Mikrotik RouterOS

سلسلة connected-in и dynamic-in в [Routing] -> [Filters]

تصفية المسار (الواردة والصادرة) هي أداة تُستخدم عادةً مع بروتوكولات التوجيه الديناميكية (وبالتالي فهي متاحة فقط بعد تثبيت الحزمة التوجيه) ، ولكن هناك سلسلتان مثيرتان للاهتمام في المرشحات الواردة:

  • متصل - تصفية الطرق المتصلة
  • ديناميكي - ترشيح المسارات الديناميكية التي يتلقاها PPP و DCHP

لا تسمح لك التصفية بتجاهل المسارات فحسب ، بل تتيح لك أيضًا تغيير عدد من الخيارات: المسافة ، وعلامة التوجيه ، والتعليق ، والنطاق ، والنطاق المستهدف ، ...

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

تعيين علامة التوجيه للمسارات الديناميكية
مثال من جهاز توجيه منزلي. لدي اتصالان VPN تم تكوينهما ويجب التفاف حركة المرور فيهما وفقًا لجداول التوجيه. في الوقت نفسه ، أريد إنشاء المسارات تلقائيًا عند تنشيط الواجهة:

#При создании vpn подключений указываем создание default route и задаем дистанцию
/interface pptp-client
add connect-to=X.X.X.X add-default-route=yes default-route-distance=101 ...
add connect-to=Y.Y.Y.Y  add-default-route=yes default-route-distance=100 ...

#Фильтрами отправляем маршруты в определенные таблицы маршрутизации на основе подсети назначения и дистанции
/routing filter
add chain=dynamic-in distance=100 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn1
add chain=dynamic-in distance=101 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn2

لا أعرف السبب ، ربما يكون خطأ ، ولكن إذا قمت بإنشاء vrf لواجهة ppp ، فسيظل المسار إلى 0.0.0.0/0 في الجدول الرئيسي. خلاف ذلك ، سيكون كل شيء أسهل.

تعطيل المسارات المتصلة
في بعض الأحيان يكون هذا مطلوبًا:

/route filter
add chain=connected-in prefix=192.168.100.0/24 action=reject

أدوات التصحيح

يوفر RouterOS عددًا من الأدوات لتصحيح أخطاء التوجيه:

  • [Tool]->[Tourch] - يسمح لك بمشاهدة الحزم على الواجهات
  • /ip route check - يسمح لك بمعرفة البوابة التي سيتم إرسال الحزمة إليها ، ولا تعمل مع جداول التوجيه
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - ping and trace باستخدام جدول التوجيه المحدد
  • action=log в [IP]->[Firewall] - أداة ممتازة تسمح لك بتتبع مسار الحزمة على طول تدفق الحزمة ، هذا الإجراء متاح في جميع السلاسل والجداول

المصدر: www.habr.com

إضافة تعليق