⚙️ إضافة VLANs تلقائيًا في MikroTik — سكربت جاهز مع DHCP/NAT/Hotspot (131 → 200)
السلام عليكم معشر المشبكين 👋،
في هذا الدليل العملي ستنشئ عشرات الفيلانات VLAN بضغطة واحدة على MikroTik — مع تهيئة كاملة: VLAN Interface + عنوان IP + DHCP Server/Pool + NAT + Hotspot لكل VLAN. السكربت يعتمد حلقة تلقائية من VLAN 131 حتى 200 على منفذ ترنك واحد.
🎯 الفكرة بسرعة
- إنشاء VLAN لكل رقم في المدى (131→200) على واجهة واحدة (ترنك).
- توليد شبكة /24 لكل VLAN بالاعتماد على أوكتت أساسي
8.9.X.0/24
(يمكن تغييره). - إضافة DHCP (Network + Server) وPool تلقائي لكل VLAN.
- تفعيل NAT (Masquerade) لكل شبكة للخروج إلى الإنترنت.
- إنشاء Hotspot لكل VLAN (باستخدام الإعدادات الافتراضية أو التي تضبطها لاحقًا).
str
=بداية مدى VLAN، end
=نهاية المدى، int
=منفذ الترنك (مثل ether10)، ip1
=الأوكتتان الأوليان للشبكة (مثل 8.9).
🧰 المتطلبات قبل التشغيل
- حدّد منفذ الترنك الذي سيحمل كل الفيلانات (مثل ether10 إلى سويتش/راوتر آخر).
- تأكد أن الطرف المقابل يدعم VLAN Trunk وقائم عليه Tagging لنفس قائمة الـ VLANs.
- تأكد من وجود حزمة DHCP وحزمة Hotspot مثبّتتين على الراوتر.
- إن كنت تستخدم تصميم Bridge VLAN Filtering، راجع قسم “وضع الجسر” أدناه.
✅ السكربت الأصلي (جاهز للنسخ)
:global str 131 :global end 200 :global int "ether10" :global ip1 "8.9" :for x from=$str to=$end do={ :local name ("M-" . $x) :local ip2 $x /interface vlan add name=$name vlan-id=$x interface=$int /ip address add address="$ip1.$ip2.1/24" interface=$name /ip pool add name=$name ranges="$ip1.$ip2.3-$ip1.$ip2.254" /ip firewall nat add chain=srcnat action=masquerade src-address="$ip1.$ip2.0/24" /ip dhcp-server network add address="$ip1.$ip2.0/24" gateway="$ip1.$ip2.1" /ip dhcp-server add name=$name address-pool=$name interface=$name disabled=no /ip hotspot add name=$name interface=$name disabled=no }
✏️ غيّر int
إلى واجهتك، وبدّل ip1
إلى نطاقك الأساس، وعدّل مدى str/end
كما تريد.
🛡️ نسخة محسّنة وآمنة (تمنع التكرار)
هذه النسخة تتحقّق قبل كل إضافة—فلا تُنشئ كائنًا موجودًا أصلًا (VLAN, Address, Pool, NAT, DHCP, Hotspot). ممتازة للتشغيل المتكرر أو بعد إعادة تشغيل.
:global str 131 :global end 200 :global int "ether10" :global ip1 "8.9" :for x from=$str to=$end do={ :local name ("M-" . $x) :local ip2 $x :local cidr ("$ip1.$ip2.0/24") :local gw ("$ip1.$ip2.1") :local poolRange ("$ip1.$ip2.3-$ip1.$ip2.254") # VLAN Interface :if ([:len [/interface vlan find where name=$name]] = 0) do={ /interface vlan add name=$name vlan-id=$x interface=$int } # IP Address :if ([:len [/ip address find where address="$gw/24" interface=$name]] = 0) do={ /ip address add address="$gw/24" interface=$name } # DHCP Pool :if ([:len [/ip pool find where name=$name]] = 0) do={ /ip pool add name=$name ranges=$poolRange } # NAT :if ([:len [/ip firewall nat find where chain=srcnat src-address=$cidr]] = 0) do={ /ip firewall nat add chain=srcnat action=masquerade src-address=$cidr } # DHCP Network :if ([:len [/ip dhcp-server network find where address=$cidr]] = 0) do={ /ip dhcp-server network add address=$cidr gateway=$gw } # DHCP Server :if ([:len [/ip dhcp-server find where name=$name]] = 0) do={ /ip dhcp-server add name=$name address-pool=$name interface=$name disabled=no } # Hotspot :if ([:len [/ip hotspot find where name=$name]] = 0) do={ /ip hotspot add name=$name interface=$name disabled=no } }
🔌 إعداد منفذ الـ Trunk (نصيحة مهمة)
السكربت يضع الفيلانات مباشرة على $int (مثل ether10). تأكّد أن المنفذ متصل بطرف يقبل Tagged VLANs (سويتش/راوتر) وأن الطرف المقابل مُهيّأ على نفس قائمة الـ VLANs.
بديل مُستحسن: وضع الجسر (Bridge VLAN Filtering)
لو عندك bridge رئيسي، الأفضل إنشاء الفيلانات على interface=bridge وليس على ether10، ثم تحديد Tag/Untag عبر:
/interface bridge vlan add bridge=bridge vlan-ids=131-200 tagged=bridge,ether10 untagged=<منافذ_الوصول>
هذا يُبسّط الإدارة ويستفيد من تسريع العتاد حيثما أمكن.
🧪 أوامر فحص سريعة
/interface vlan print where name~"^M-" /ip address print where interface~"^M-" /ip dhcp-server print /ip firewall nat print where chain=srcnat /ip hotspot print
🧠 أفضل الممارسات
- لا تُنشئ آلاف الكائنات دفعة واحدة وقت الذروة — نفّذ أثناء صيانة.
- راقب CPU/RAM وعدادات الـ DHCP/Hotspot بعد الإنشاء.
- يمكنك تقليل مدى الـ Pool إذا أردت عدد عناوين أقل لكل VLAN.
- استخدم Profile واحد للـ Hotspot واربِطه لاحقًا بكل واجهة لتوحيد الإعدادات.
⚠️ تحذير وإخلاء مسؤولية
قبل التنفيذ خذ Backup لإعداداتك (/system backup save
).
تحقّق من توافق تصميم الشبكة (Trunk/Access/Bridge) حتى لا يتعطل المرور.
لا تُفعِّل Hotspot على VLANs لا تحتاج مصادقة عليها.
تم بحمد الله — إذا رغبت نسخة مخصّصة (مدى مختلف، IP Schema آخر، أو ربط تلقائي بBridge VLAN Filtering) أخبرني بالتفاصيل وأجهزها لك فورًا 🔧
تعليقات
إرسال تعليق