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

هذا الدليل مكتوب لـRouterOS v7 فقط، وقد جرّبنا خطواته فعلاً على الإصدار 7.25 بصفة عميل. النتيجة كانت مصافحة ناجحة، وفقد ping بنسبة 0%، وخروجاً من عنوان السيرفر. الغرض هنا ربط الشبكات الخاصة وحماية الاتصال والعمل عن بعد، ضمن ما تسمح به الأنظمة النافذة عندك.

ما الذي تحتاجه قبل البدء؟

لا تبدأ بالأوامر قبل أن تجهّز هذه القائمة القصيرة. أغلب الأعطال تأتي من معلومة ناقصة، لا من الراوتر نفسه.

  • راوتر يعمل بإصدار من RouterOS v7. تحقق بالأمر /system resource print.
  • سيرفر WireGuard له عنوان عام، وسنستعمل في الأمثلة العنوان 203.0.113.10.
  • شبكة النفق 10.66.66.0/24، فيأخذ السيرفر 10.66.66.1 والراوتر 10.66.66.2.
  • منفذ UDP مفتوح على جدار السيرفر، وهو 51820 في مثالنا.
  • ساعة صحيحة على الجهازين، فهي تريحك كثيراً حين تقرأ السجلات لاحقاً.

الخطوة الأولى: إنشاء الواجهة على MikroTik

أنشئ الواجهة أولاً. يولّد RouterOS المفتاح الخاص تلقائياً إن لم تعطه واحداً، وهذا أفضل من لصق مفتاح في رسالة أو ملف.

/interface wireguard add name=wg0 listen-port=13231 mtu=1420
/interface wireguard print
/ip address add address=10.66.66.2/24 interface=wg0

الأمر الثاني يعرض قيمة public-key. انسخها، فهي التي ستضعها في السيرفر. أما المفتاح الخاص فيبقى على الراوتر، ولا يُرسل إلى أحد.

الخطوة الثانية: تسجيل الراوتر على السيرفر

على سيرفر لينكس يعمل بـwg-quick، أضف الراوتر بصفته Peer في ملف الإعداد:

[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>

[Peer]
PublicKey = <MIKROTIK_PUBLIC_KEY>
AllowedIPs = 10.66.66.2/32

لاحظ أن AllowedIPs هنا يحدد ما يقبله السيرفر من هذا العميل. فإن كنت تريد لاحقاً الوصول إلى شبكة المكتب من السيرفر، فأضف شبكة المكتب إلى القائمة، وأضف لها مساراً.

الخطوة الثالثة: إضافة السيرفر على الراوتر

الآن نعلّم الراوتر أين يجد السيرفر، وأي عناوين يسمح بها داخل النفق:

/interface wireguard peers add interface=wg0 \
    public-key="<SERVER_PUBLIC_KEY>" \
    endpoint-address=203.0.113.10 endpoint-port=51820 \
    allowed-address=10.66.66.0/24 persistent-keepalive=25s

القيمة persistent-keepalive=25s مهمة إن كان الراوتر خلف NAT، وهذه حال كثير من الخطوط المنزلية والتجارية. فهي تبقي الطريق مفتوحاً كي يصل السيرفر إلى الراوتر في أي لحظة.

وهناك نقطة تخلط على كثيرين، فالجدول يلخصها:

الإعدادما يفعلهما لا يفعله
allowed-addressيحدد العناوين المسموحة داخل النفق لهذا الطرفلا يضيف مساراً إلى جدول التوجيه
/ip routeيحدد الترافيك الذي يدخل النفق فعلاًلا يغني عن allowed-address
persistent-keepaliveيبقي الطريق مفتوحاً خلف NATلا يسرّع النفق
mtu=1420يترك مساحة لترويسة WireGuardلا يعالج كل مشكلات المسار وحده

الخطوة الرابعة: التحقق خطوة بخطوة

لا تكتفِ بأن الواجهة ظاهرة. فواجهة WireGuard قد تبدو سليمة بلا أي اتصال حقيقي، لأن البروتوكول لا يبني جلسة ظاهرة ما لم يوجد ترافيك أو مصافحة.

/interface wireguard peers print detail
/ping 10.66.66.1 count=10

في الأمر الأول راقب حقل last-handshake، فظهور وقت حديث فيه يعني أن المصافحة تمت. وراقب rx وtx، فالقيمتان يجب أن تزيدا معاً. أما الأمر الثاني فهو الدليل العملي، وقد كان الفقد فيه 0% في تجربتنا.

وعلى السيرفر استعمل الأمر wg show لترى الصورة من الطرف الآخر. فإن رأى الراوتر مصافحة ولم ينجح ping، فالمشكلة في الجدار أو في العناوين غالباً، لا في المفاتيح.

أشهر الأعطال وكيف تقرؤها

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

  • لا مصافحة أبداً، وقيمة rx صفر: المنفذ مغلق، أو العنوان خطأ، أو المفتاح العام منسوخ ناقصاً.
  • مصافحة ناجحة بلا ping: تحقق من عنوان 10.66.66.2 على الواجهة، ومن AllowedIPs على السيرفر.
  • ينجح ping وتتعلق المواقع: هذه علامة مشكلة MTU أو MSS، ولها حل مستقل.
  • ينقطع النفق بعد خمول: تأكد من persistent-keepalive على طرف الراوتر.

وتذكر أن WireGuard يعمل على UDP، فالقواعد التي تفتح TCP لا تكفيه. وهذه ملاحظة صغيرة توفر عليك وقتاً طويلاً.

ماذا عن السرعة؟

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

لكن عندنا قياس من طرف السيرفر. على أحد سيرفراتنا، بمعالج Xeon E5-2698 v4 وWireGuard داخل VM بأربع أنوية، بلغت قدرة التشفير الداخلية نحو 1.7Gbps. والتنزيل عبر النفق بلغ 57MB/s على رابط محدود بـ480Mbps، أي 60MB/s نظرياً، بزمن وصول نحو 6ms عبر النفق محلياً.

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

نصائح صغيرة قبل اعتماد النفق

بعد نجاح الاختبار، لا تنتقل إلى الإنتاج مباشرة. احفظ الإعداد بالأمر /export file=wg-client، وانقل الملف إلى مكان آمن، ولا تنشره. وأعد تشغيل الراوتر مرة في وقت هادئ، وتأكد أن النفق يعود وحده دون تدخل، فهذا اختبار بسيط يكشف ما لا يكشفه ping.

وإن كان السيرفر معرّفاً باسم نطاق بدل عنوان ثابت، فيمكنك كتابة الاسم في endpoint-address. لكن تحقق من عمل DNS على الراوتر عند الإقلاع، وإلا فسيتأخر النفق. أما العنوان الثابت فأبسط، وأقل عرضة للمفاجآت.

ولا تستعمل مفتاحاً واحداً لعدة أجهزة. لكل راوتر مفتاحه وعنوانه داخل النفق. فهذا يسهل عليك معرفة من اتصل، وسحب صلاحية جهاز واحد دون أن تمس البقية. وسجّل في حقل comment اسماً وظيفياً واضحاً، مثل office-router، فستحتاج إليه حين يكبر عدد الأطراف.

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

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

الخلاصة

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

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