تشغيل IPv6 على MikroTik خلف راوتر فايبرهوم في وضع الجسر (زين)

المشكلة: راوتر فايبرهوم في وضع الجسر ← MikroTik ← أجهزة الشبكة المحلية لا تحصل على عناوين IPv6 عالمية.

السبب: شركة زين توزع IPv6 عبر SLAAC فقط — بادئة واحدة بحجم /64. لا تدعم DHCPv6 Prefix Delegation. راوترات OpenWRT كمثال تتعامل مع هذا تلقائياً، لكن MikroTik لا. Client DHCPv6 يقعد معلق searching.

تم التجربة على: MikroTik hEX S، RouterOS 7.23، في وضع الجسر FiberHome LG6851F. شبكة Zain السعودية.


الحطوات

اتصل بـ SSH على الراوتر:

الخطوة 1: طف DHCPv6 Client

/ipv6 dhcp-client set 0 disabled=yes

الخطوة 2: تعيين عنوان ثابت من بداية SLAAC إلى جسر الشبكة المحلية

خذ البداية اللي اخذتها من واجهة WAN (مثال: 2a02:cb80:4180:2847::/64) وعيّن ::1 إلى الجسر:

/ipv6 address add address=2a02:cb80:4180:2547::1/64 interface=bridge advertise=yes

استبدل bridge باسم الجسر الفعلي، والبداية اللي اخذتها من ether1.

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

/ipv6 nd add interface=bridge ra-interval=20s-1m advertise-dns=yes other-configuration=yes

الخطوة 4: تأكيد تفعيل التوجيه

/ipv6 settings set forward=yes accept-router-advertisements=yes

التحقق

تأكد أن أجهزة الشبكة المحلية تحصل على عناوين عالمية:

/ipv6 neighbor print

سترى إدخالات مثل:

2a02:cb80:4180:2567:be34:11ff:fe0f:2c78  BC:24:11:0F:2C:78  bridge

من أي جهاز في الشبكة:

curl -6 ipv6.icanhazip.com

او من خلال المتصفح هنا


آلية العمل

زين (SLAAC /64)
    │
    ▼
راوتر FiberHome (وضع Bridge)
    │  fe80::1 (بوابة link-local)
    ▼
MikroTik ether1 (WAN)
    │  يحصل على عنوان SLAAC من الشركة
    │  يرسل RAs على الجسر بنفس البداية
    ▼
أجهزة الشبكة المحلية
    تحصل على عناوين عالمية عبر SLAAC من إعلانات MikroTik
    المسار الافتراضي → MikroTik → fe80::1 → شركة الاتصال

سكربت اذا تغيرت البداية

إذا غيرت الشركة البداية بيوقف العنوان الثابت ::1 عن العمل. هذا السكريبت لتحديثه:

/system script add name=ipv6-sync-bridge source=":local wan [ipv6/address/get [find interface=ether1 global] address]; :local end [:find \$wan \"/\"]; :local addr [:pick \$wan 0 \$end]; :local p -1; :for i from=1 to=4 do={:set p [:find \$addr \":\" (\$p+1)]}; :local prefix [:pick \$addr 0 (\$p+1)]; :local bridge (\$prefix . \":1/64\"); :local cur [ipv6/address/get [find interface=bridge global] address]; :if (\$bridge != \$cur) do={/ipv6/address/set [find interface=bridge global] address=\$bridge; :log info \"IPv6 bridge address updated to \$bridge\"}"

تشغيله

/system script run ipv6-sync-bridge
3 إعجابات

يعطيك العافية، خبره نفتخر فيها في دعم وتبني IPv6
الصراحه افكر في شراء فايبرهوم بسبب فتحه root ومقالك راح يفيدني كثير وجاء في وقته