Netwatch در RouterOS وضعیت یک host را با پروبهایی مثل ICMP، TCP، HTTP/HTTPS یا DNS میسنجد و وقتی حالت عوض شد میتواند اسکریپت Console اجرا کند. همین قابلیت برای مانیتور درگاه اینترنت و failover ساده روی میکروتیک پایهٔ کار است؛ مرجع این آموزش صفحهٔ رسمی Netwatch در مستندات RouterOS است.
آموزش MikroTik Netwatch؛ مانیتور host و اسکریپت failover
پیشنیازهایی که معمولاً جا میماند: دسترسی WinBox یا SSH با سطح مناسب، دانستن آیپی یا دامنهٔ هدف پروب، نسخهٔ RouterOS (از ۷٫۴ پروبهای پیشرفتهتر آمدهاند و ورودیهای قدیمی معمولاً بهصورت type=simple میمانند)، و یک اسکریپت کوتاه که واقعاً تست کردهاید. نقشها را جدا کنید: پروب Netwatch فقط وضعیت را میسنجد؛ اسکریپت up/down تصمیم failover را اجرا میکند؛ روتر مسیر/رابط را عوض میکند.
- هدف پروب را مشخص کنید؛ مثلاً یک DNS عمومی مثل 8.8.8.8 یا gateway ISP. فقط وقتی host واقعاً «سلامت لینک» را نشان میدهد، failover معنی دارد.
- در ترمینال مسیر /tool/netwatch را باز کنید یا در WinBox به Tools → Netwatch بروید.
- با + یک ورودی جدید بسازید؛ فیلد Host را پر کنید و Interval را مثلاً روی 30s بگذارید (پیشفرض مستند اغلب ۱۰ ثانیه است).
- Type را آگاهانه انتخاب کنید: simple یا icmp برای پینگ، tcp-conn برای دستدهی TCP، http-get/https-get برای صفحه، dns برای کوئری DNS.
- برای شروع، طبق مثال رسمی فقط up-script لاگ بگذارید تا مطمئن شوید تغییر حالت دیده میشود: /tool/netwatch add host=8.8.8.8 interval=30s up-script=":log info \"Ping to 8.8.8.8 successful\""
- با /log print where message~"8.8.8.8" یا تب Log ببینید پیام ظاهر میشود.
- وقتی پروب پایدار شد، down-script و up-script واقعی failover را بگذارید (مثلاً disable یک route و enable مسیر پشتیبان). اول روی lab تست کنید.
- صفحهٔ status پروب را باز کنید و آستانههای پیشفرض (مثل thr-avg یا thr-loss-percent در icmp) را با لینک واقعیتان بسنجید؛ مستند تأکید میکند مقادیر پیشفرض همیشه اعمال میشوند حتی اگر خودتان تعریف نکرده باشید.
طبق مستند، up-script وقتی حالت از fail به OK میرود اجرا میشود و down-script برعکس. startup-delay پیشفرض حدود ۵ دقیقه بعد از بوت صبر میکند تا روتر وسط بالا آمدن اشتباه down اعلام نکند. اگر بعد از enable یا reboot هشدار کاذب میبینید، گزینههای ignore-initial-up و ignore-initial-down را با دقت بخوانید؛ down اولیه را بیتوجه خاموش نکنید.
اگر الان پروب سبز است ولی اسکریپت failover چیزی عوض نمیکند، در نظرات نسخهٔ RouterOS، type پروب و دو خط up/down-script (بدون رمز) را بنویسید تا علت را جدا کنیم.
خطاهای رایج و نکات امنیتی
- host همیشه down است → src-address اشتباه، فایروال خروجی، یا هدف واقعی از روتر قابل دسترسی نیست.
- اسکریپت اجرا نمیشود → فقط تغییر حالت trigger میکند؛ اگر همیشه Up بوده، down رخ نداده است.
- بعد از بوت چند دقیقه «ساکت» است → startup-delay عمدی است.
- اسکریپتهای Netwatch با کاربر *sys اجرا میشوند؛ متغیر global تعریفشده آنجا لزوماً در نشست admin خوانا نیست.
- failover کورکورانه روی پینگ یک DNS عمومی میتواند مسیر را بیدلیل عوض کند؛ هدف پروب را به معنای سلامت لینک نزدیکتر کنید.
شما Netwatch را بیشتر برای تشخیص قطعی WAN میخواهید یا برای جابهجایی بین دو ISP؟ تجربهٔ type پروب و interval را هم بگویید.
در شبکههای دو-ISP، الگوی رایج این است که پروب یک هدف پایدار روی اینترنت را بزند و down-script مسیر اصلی را disable کند و مسیر پشتیبان را enable. برعکس، up-script وقتی لینک برگشت مسیر اصلی را برمیگرداند. مهم است اسکریپتها idempotent باشند: دوبار اجرا شدن down نباید روتر را در وضعیت نامعلوم بگذارد.
مستند تأکید میکند از نسخههای جدیدتر، typeهای icmp و http و dns اضافه شدهاند و ورودیهای قدیمی simple میمانند. اگر بعد از ارتقا رفتار پروب عوض شد، اول Status و thresholdها را ببینید نه اینکه فوراً کل failover را بازنویسی کنید. مقدارهای پیشفرض thr-* گاهی برای لینکهای پرنویز خانگی سختگیرانه یا برعکس سهلگیرانه است.
تست درست failover یعنی یک بار عمداً host را از دید روتر قطع کنید (مثلاً با filter خروجی موقت) و ببینید اسکریپت و recovey هر دو رخ میدهند. فقط نگاهکردن به رنگ سبز در Netwatch کافی نیست. لاگ را همزمان باز نگه دارید تا ترتیب رویدادها معلوم شود.
مرجع کامل فیلدها و مثال لاگ همان صفحهٔ Netwatch در مستندات RouterOS است؛ برچسبهای انگلیسی WinBox را ملاک بگیرید حتی اگر رابط ترجمه شده باشد.