مدیریت پیکربندی

نمای کلی

این مقاله مجموعه ای از دستورات مورد استفاده برای مدیریت پیکربندی را شرح می دهد.

پیکربندی Undo و Redo

هر عملی که در رابط کاربری گرافیکی انجام می شود یا هر دستوری که از CLI اجرا می شود در /system history ثبت می شود  . می‌توانید با اجرای دستورات undo یا redo از CLI یا با کلیک کردن روی دکمه‌های Undo و Redo از رابط کاربری گرافیکی، هر اقدامی را لغو یا دوباره انجام دهید. 

یک مثال ساده برای نشان دادن اضافه شدن قانون فایروال و نحوه لغو و انجام مجدد عمل:

				
					[admin@v7_ccr_bgp] /ip/firewall/filter> add chain=forward action=drop
 
[admin@v7_ccr_bgp] /ip/firewall/filter> print
Flags: X - disabled, I - invalid; D - dynamic
0 X chain=input action=drop protocol=icmp src-address=10.155.101.1 log=no
log-prefix=""
 
1 chain=forward action=drop
 
[admin@v7_ccr_bgp] /ip/firewall/filter> /system/history/print
Flags: U - undoable, R - redoable, F - floating-undo
Columns: ACTION, BY, POLICy
ACTION BY POLIC
F filter rule added admin write
U --- write
[admin@v7_ccr_bgp] /ip/firewall/filter>
				
			

ما یک قانون فایروال اضافه کرده ایم و می توانیم تمام کارهای انجام شده را در /system historyمشاهده کنیم.

بیایید همه چیز را لغو کنیم

				
					[admin@v7_ccr_bgp] /ip/firewall/filter> /undo
[admin@v7_ccr_bgp] /ip/firewall/filter> print
Flags: X - disabled, I - invalid; D - dynamic
0 X chain=input action=drop protocol=icmp src-address=10.155.101.1 log=no
log-prefix=""
 
[admin@v7_ccr_bgp] /ip/firewall/filter>
				
			

همانطور که می بینید قانون فایروال ناپدید شد.
حالا آخرین تغییر را دوباره انجام دهید

				
					[admin@v7_ccr_bgp] /ip/firewall/filter> /redo
[admin@v7_ccr_bgp] /ip/firewall/filter> print
Flags: X - disabled, I - invalid; D - dynamic
0 X chain=input action=drop protocol=icmp src-address=10.155.101.1 log=no
log-prefix=""
 
1 chain=forward action=drop
 
[admin@v7_ccr_bgp] /ip/firewall/filter>
				
			

تاریخچه سیستم قادر است دستورات CLI دقیقی را نشان دهد که در حین اقدامات “Undo” یا “Redo” اجرا می شوند، حتی اگر عملکرد را از رابط کاربری گرافیکی انجام دهیم، به عنوان مثال، خروجی تاریخچه دقیق پس از افزودن قانون پذیرش TCP از WinBox:

				
					[admin@v7_ccr_bgp] /system/history> print detail
Flags: U - undoable, R - redoable, F - floating-undo
 F redo=
      /ip firewall filter add action=accept chain=forward disabled=no log=no \
          log-prefix="" protocol=tcp
    undo=/ip firewall filter remove *4 action="filter rule added" by="admin"
    policy=write time=oct/10/2019 18:51:05
 
 F redo=/ip firewall filter add action=accept chain=forward
    undo=/ip firewall filter remove *3 action="filter rule added" by="admin"
    policy=write time=oct/10/2019 18:49:03
 
 
U redo="" undo="" action="---" by="" policy=write time=sep/27/2019 13:07:35
[admin@v7_ccr_bgp] /system/history>
				
			

حالت ایمن

گاهی اوقات می توان پیکربندی روتر را به گونه ای تغییر داد که روتر را غیرقابل دسترسی (به جز از کنسول محلی) کند. معمولاً این کار به صورت تصادفی انجام می شود، اما زمانی که اتصال به روتر از قبل قطع شده باشد، هیچ راهی برای لغو آخرین تغییر وجود ندارد. برای به حداقل رساندن چنین خطری می توان از حالت ایمن استفاده کرد.

دکمه “Safe Mode” در رابط کاربری گرافیکی Winbox به شما امکان می دهد وارد حالت Safe Mode شوید، در حالی که در CLI، می توانید با استفاده از میانبر صفحه کلید F4 یا فشار دادن [CTRL]+[X] به آن دسترسی داشته باشید . برای خروج بدون ذخیره تغییرات ایجاد شده در CLI، [CTRL]+[D] را فشار دهید. 

				
					[admin@MikroTik] ip route>[CTRL]+[X]
[Safe Mode taken]
[admin@MikroTik] ip route<SAFE>
				
			

پیام حالت ایمن گرفته شده نمایش داده می‌شود و تغییرات سریع را نشان می‌دهد تا نشان دهد که جلسه اکنون در حالت ایمن است. تمام تغییرات پیکربندی انجام شده (همچنین از سایر جلسات ورود به سیستم)، در حالی که روتر در حالت ایمن است، در صورتی که جلسه حالت امن به طور غیرعادی خاتمه یابد، به طور خودکار لغو می شوند. شما می توانید تمام این تغییرات را که به طور خودکار لغو می شوند و با یک پرچم F در تاریخچه سیستم برچسب گذاری می شوند، مشاهده کنید:    

				
					[admin@MikroTik] /ip/route>
[Safe Mode taken]
[admin@MikroTik] /ip/route<SAFE> add
[admin@MikroTik] /ip/route<SAFE> /system/history/print
Flags: U, F - FLOATING-UNDO
Columns:
 ACTION, BY, POLICY ACTION BY POLICY
F route 0.0.0.0/0 added admin write
				
			

حال اگر اتصال telnet (یا ترمینال WinBox) قطع شود، پس از مدتی (تایم اوت TCP 9 دقیقه است) تمام تغییراتی که در حالت ایمن ایجاد شده اند، لغو خواهند شد. خروج از جلسه با [Ctrl]+[D] همچنین همه تغییرات حالت امن را خنثی می کند، در حالی که /quit این کار را نمی کند.      

اگر کاربر دیگری بخواهد وارد حالت امن شود، پیام زیر به او داده می شود

				
					[admin@MikroTik] >
Hijacking Safe Mode from someone - unroll/release/don't take it [u/r/d]:
				
			
  • [u] – همه تغییرات حالت امن را لغو می کند و جلسه فعلی را در حالت ایمن قرار می دهد.
  • [r] – تمام تغییرات حالت امن فعلی را نگه می دارد و جلسه فعلی را در حالت ایمن قرار می دهد. صاحب قبلی حالت امن در این مورد مطلع شده است:
				
					[admin@MikroTik] ip firewall rule input
[Safe mode released by another user]
				
			
    • [d] – همه چیز را همانطور که هست رها می کند.

    اگر در حالت ایمن تغییرات زیادی ایجاد شود و در تاریخچه جایی برای نگهداری همه آنها وجود نداشته باشد (در حال حاضر سابقه تا 100 اقدام اخیر را نگه می دارد)، جلسه به طور خودکار از حالت ایمن خارج می شود و هیچ تغییری به طور خودکار انجام نمی شود. لغو شد. بنابراین، بهتر است پیکربندی را در مراحل کوچک و در حالت ایمن تغییر دهید. دوبار فشار دادن [Ctrl] + [X] راهی آسان برای خالی کردن لیست عملکرد حالت ایمن است.

    پشتیبان گیری و بازیابی سیستم

    پشتیبان گیری سیستم راهی برای شبیه سازی کامل پیکربندی روتر در فرمت باینری است.

    اطلاعات بیشتر در مورد پشتیبان گیری و بازیابی  در اینجا یافت می شود .

    پیکربندی صادرات و واردات

    RouterOS اجازه می دهد تا بخش هایی از پیکربندی را در قالب متن ساده صادر و وارد کنید. از این روش می توان برای کپی بیت های پیکربندی بین دستگاه های مختلف استفاده کرد، به عنوان مثال، کل فایروال را از یک روتر به روتر دیگر شبیه سازی کرد.

    یک دستور صادرات را می توان از هر منو (که منجر به صادرات پیکربندی فقط از این منوی خاص و تمام منوهای فرعی آن می شود) یا از منوی ریشه برای صادرات کامل پیکربندی اجرا کرد و فقط برای CLI در دسترس است.

    دستور Export گذرواژه های کاربر سیستم، گواهی های نصب شده، کلیدهای SSH، Dude یا پایگاه داده User-manager را صادر نمی کند.

    گواهی‌های نصب‌شده ،  پایگاه‌های داده Dude و User-manager باید به‌صورت دستی صادر و به دستگاه جدیدی وارد شوند.

    رمزهای عبور کاربر سیستم و کلیدهای SSH کاربر را نمی توان صادر کرد.

    در حین وارد کردن پیکربندی، پیشنهاد می کنیم از همان نسخه RouterOS استفاده شده در هنگام صادرات پیکربندی استفاده کنید تا از مواردی که برخی از دستورات در یک یا نسخه دیگر RouterOS وجود ندارند، جلوگیری کنید. 

    صادرات پیکربندی

    پارامترهای دستور زیر پذیرفته می شوند:

    پارامتر

    توضیحات

    compact

    خروجی فقط پیکربندی اصلاح شده، رفتار پیش فرض

    file

    پیکربندی را به یک فایل مشخص صادر کنید. هنگامی که فایل مشخص نشده است خروجی صادرات به ترمینال چاپ می شود

    show-sensitive (yes|no; Default: no). RouterOS version 7 only

    hide-sensitive (yes|no; Default: no). RouterOS version 6 only

    نمایش اطلاعات حساس مانند رمز عبور، کلیدها و غیره.

    پنهان کردن اطلاعات حساس مانند رمز عبور، کلیدها و غیره

    terse

    با این پارامتر، دستور صادرات فقط پارامترهای پیکربندی را بدون پیش‌فرض خروجی می‌دهد.

    verbose

    با این پارامتر، دستور export کل پارامترهای پیکربندی و موارد از جمله پیش فرض ها را خروجی می دهد.

  • به عنوان مثال، پیکربندی را از /ip addressمنو صادر کنید و آن را در یک فایل ذخیره کنید:

				
					[admin@MikroTik] > /ip address print
Flags: X - disabled, I - invalid, D - dynamic
#   ADDRESS            NETWORK         BROADCAST       INTERFACE
0   10.1.0.172/24      10.1.0.0        10.1.0.255      bridge1
1   10.5.1.1/24        10.5.1.0        10.5.1.255      ether1
[admin@MikroTik] > /ip address export file=address
[admin@MikroTik] > /file print
# NAME                            TYPE         SIZE       CREATION-TIME
0  address.rsc                     script       315        dec/23/2003 13:21:48
[admin@MikroTik] >
				
			
  • به‌طور پیش‌فرض، فرمان صادرات فقط پیکربندی ویرایش‌شده توسط کاربر را می‌نویسد، پیش‌فرض‌های RouterOS حذف می‌شوند.

    به عنوان مثال، سیاست پیش‌فرض IPSec صادر نمی‌شود و اگر یک ویژگی را تغییر دهیم، تنها تغییر ما صادر می‌شود:

				
					[admin@rack1_b4] /ip ipsec policy> print
Flags: T - template, X - disabled, D - dynamic, I - inactive, * - default
0 T * group=default src-address=::/0 dst-address=::/0 protocol=all
      proposal=default template=yes
[admin@rack1_b4] /ip ipsec policy> export
# apr/02/1970 17:59:14 by RouterOS 6.22
# software id = DB0D-LK67
#
[admin@rack1_b4] /ip ipsec policy> set 0 protocol=gre
[admin@rack1_b4] /ip ipsec policy> export
# apr/02/1970 17:59:30 by RouterOS 6.22
# software id = DB0D-LK67
#
/ip ipsec policy
set 0 protocol=gre
				
			

توجه:

پرچم * نشان می دهد که ورودی پیش فرض سیستم است و نمی توان آن را به صورت دستی حذف کرد.

در اینجا لیستی از تمام منوها حاوی ورودی های پیش فرض سیستم است

منو

ورودی پیش فرض

/ppp profile

“default”, “default-encryption”

/ip hotspot profile

default

/ip hotspot user profile

default

/ip ipsec policy

default

/ip ipsec policy group

default

/ip ipsec proposal

default

/ip ipsec mode-conf

read-only

/ip smb shares

pub

/ip smb users

guest

/ipv6 nd

any

/mpls interface

all

/routing bfd interface

all

/routing bgp instance

default

/routing ospf instance

default

/routing ospf area

backbone

/routing ospf-v3 instance

defailt

/routing ospf-v3 area

backbone

/snmp community

public

/tool mac-server mac-winbox

all

/tool mac-server

all

/system logging

“info”, “error”, “warning”, “critical”

/system logging action

“memory”, “disk”, “echo”, “remote”

/queue type

“default”, “ethernet-default”, “wireless-default”, “synchronous-default”, “hotspot-default”, “only-hardware-queue”, “multi-queue-ethernet-default”, “default-small”

/ppp profile

“default”, “default-encryption”

اگر منوی خاصی نتواند به فرمان صادرات پاسخ دهد، با شروع از RouterOS v7.11، یک پیام خطا در خروجی فرمان صادرات پس از مهلت زمانی چاپ خواهد شد (“#error exporting “/xxx” (timeout) “) و فرآیند به منوی بعدی منتقل می شود.

با شروع از RouterOS 7.13، می توانید بخش هایی از یک منوی خاص را صادر کنید. به عنوان مثال، این امکان وجود دارد که یک لیست آدرس خاص را از بین چندین لیست آدرس در روتر خود صادر کنید.

 

				
					[admin@MikroTik] > ip firewall address-list export where list=mylist
				
			

واردات پیکربندی

وارد کردن دستور منوی ریشه اجازه می دهد تا اسکریپت پیکربندی را از فایل مشخص شده اجرا کنید. فایل اسکریپت (با پسوند “.rsc”) می تواند حاوی هر دستور کنسولی از جمله اسکریپت های پیچیده باشد.

به عنوان مثال، فایل پیکربندی ذخیره شده را بارگیری کنید

				
					[admin@MikroTik] > import address.rsc
Opening script file address.rsc
 
Script file loaded and executed successfully
[admin@MikroTik] >
				
			

دستور Import اجازه می دهد تا پارامترهای زیر را مشخص کنید:

اموال

توضیحات

from-line

اجرای اسکریپت را از شماره خط مشخص شده شروع کنید. این گزینه فقط در حالت کلامی موجود است.

file-name

نام فایل اسکریپت (.rsc) که باید اجرا شود.

verbose

هر خط را از فایل می خواند و به صورت جداگانه اجرا می کند و به آسانی دستور اشکال زدایی یا خطاهای دیگر را می دهد.

dry-run

واردات را بدون ایجاد هیچ تغییری در پیکربندی شبیه سازی می کند. این به کشف خطاهای نحوی کمک می کند. این گزینه فقط در حالت کلامی موجود است.

اگر دستگاه دارای یک پیکربندی پیش فرض یا موجود است که نیاز به تعویض دارد، لازم است تنظیمات مجدد را شروع کنید.

این شامل اعمال یک پیکربندی تمیز و خالی با استفاده از دستور /system/reset-configuration no-defaults=yes و به دنبال راه‌اندازی مجدد دستگاه است.

واردات خودکار

همچنین امکان اجرای خودکار اسکریپت ها پس از آپلود در روتر با FTP یا SFTP وجود دارد. فایل اسکریپت باید با پسوند *.auto.rsc نامگذاری شود. پس از اجرای دستورات موجود در فایل، یک فایل *.auto.log جدید ایجاد می شود که حاوی اطلاعات موفقیت یا عدم موفقیت واردات است.

“.auto.rsc” در نام فایل برای اجرای خودکار فایل الزامی است.

عیب یابی واردات

بخش‌های پیکربندی که باید در فایل‌های rsc صادر شده مراقب آن باشید

مواردی که باید از فایل‌های صادراتی که با «/export» ایجاد شده‌اند، حذف شوند، قبل از وارد کردن در دستگاه جدید.

  • تغییر نام رابط با طرح نامگذاری پیش فرض اترنت در تضاد است.
				
					/interface ethernet
set [ find default-name=ether5 ] auto-negotiation=no name=ether1-gateway
set [ find default-name=ether6 ] name=ether2
set [ find default-name=ether7 ] name=ether3
set [ find default-name=ether8 ] name=ether4
set [ find default-name=ether1 ] name=ether5
set [ find default-name=ether2 ] name=ether6
set [ find default-name=ether3 ] name=ether7
set [ find default-name=ether4 ] name=ether8
				
			
  • در نسخه‌های قدیمی‌تر، ورودی‌های پیش‌فرض «صادرات» ممکن است با «افزودن» به جای دستور «set» نشان داده شوند. برای جلوگیری از خطا، باید قبل از وارد کردن ویرایش شود.
  • بررسی کنید که آیا تعداد کل تعداد رابط های فیزیکی با دستگاه های جدید و قدیمی مطابقت دارد یا خیر. اگر مواردی وجود نداشته باشد که در حین وارد کردن .rsc با خطا مواجه می شوند.

در صورت وارد کردن مشکل، موارد زیر را انجام دهید:

  • از پارامتر dry-run برای شبیه سازی واردات بدون ایجاد هیچ تغییری در پیکربندی استفاده کنید . این به کشف خطاهای نحوی کمک می کند. این گزینه فقط در حالت کلامی موجود است.
  • پیکربندی آن دستگاه را بازنشانی کنید.
  • دوباره دستور import را با آرگومان “verbose=yes” اجرا کنید. همچنین فرآیند واردات را در مورد مشکلی که قبلاً با آن مواجه شده‌اید متوقف می‌کند، اما مکان شکست صادرات را نیز نشان می‌دهد. به این ترتیب جایی که موارد نیاز به ویرایش در فایل واردات .rsc دارند را به شما نشان می دهد.

تاخیر راه اندازی

اگر پیکربندی شما متکی به رابط‌هایی است که ممکن است هنوز پس از اجرای فرمان راه‌اندازی نشده باشند، پیشنهاد می‌شود که تأخیرها را معرفی کنید یا تا زمانی که همه رابط‌های مورد نیاز در دسترس هستند، نظارت کنید. این نمونه اسکریپت به شما امکان می دهد تعداد رابط های مورد انتظار خود را تعیین کنید و چه مدت صبر کنید تا در دسترس قرار گیرند

				
					{
:local i 0
#Number of interfaces. It is necessary to reconfigure this number for each device (/interface print count-only)
:local x 10
#Max time to wait
:local t 30
while ($i < $t && [:len [/interface find]] < $x) do={
:put $i
:set $i ($i + 1)
:delay 1
}
if ($i = $t) do={
:log warning message="Could not load all physical interfaces"
} else={
#Rest of your script
}
}
				
			
  •  اسکریپت بالا تا زمانی که 10 واسط قابل مشاهده باشد یا 30 ثانیه صبر می کند. اگر در حال حاضر 10 اینترفیس وجود نداشته باشد، پیامی در لاگ می‌گذارد. متغیرها را با توجه به نیاز خود تغییر دهید.

    تنظیم مجدد

    RouterOS اجازه می دهد تا پیکربندی را با دستور بازنشانی کنید/system reset-configuration

    این دستور تمام تنظیمات روتر را پاک می‌کند و آن را روی پیش‌فرض‌های کارخانه از جمله نام ورود و رمز عبور تنظیم می‌کند (“admin” با رمز عبور خالی یا برای برخی از مدل‌ها، رمز عبور کاربر و بی‌سیم را روی برچسب بررسی کنید ). برای جزئیات بیشتر در مورد پیکربندی پیش فرض به لیست مراجعه کنید .

    پس از اجرای دستور تنظیم مجدد پیکربندی، روتر راه اندازی مجدد شده و تنظیمات پیش فرض را بارگذاری می کند. با شروع از نسخه 7.13، پس از تنظیم مجدد، یک درخواست مجوز با گزینه مشاهده توافقنامه مجوز کاربر نهایی نمایش داده می شود.

     

    فایل پشتیبان پیکربندی موجود قبل از تنظیم مجدد ذخیره می شود. به این ترتیب، اگر بازنشانی به اشتباه انجام شود، می‌توانید پیکربندی قبلی را به راحتی بازیابی کنید.

    اگر روتر با استفاده از Netinstall نصب شده باشد و یک اسکریپت به عنوان پیکربندی اولیه مشخص شده باشد، دستور reset این اسکریپت را پس از پاکسازی پیکربندی اجرا می کند. برای جلوگیری از انجام این کار، باید روتر را دوباره نصب کنید.

    با پارامترهای زیر می توان رفتار تنظیم مجدد پیش فرض را نادیده گرفت:

    پارامتر

    توضیحات

    keep-users

    کاربران موجود را از پیکربندی حذف نکنید

    no-defaults

    پیکربندی پیش فرض را بارگیری نکنید، فقط پیکربندی را پاک کنید

    skip-backup

    قبل از تنظیم مجدد، از تولید خودکار فایل پشتیبان صرفنظر کنید

    run-after-reset

    پس از تنظیم مجدد فایل .rsc مشخص شده را اجرا کنید. به این ترتیب می توانید پیکربندی سفارشی خود را بارگیری کنید.

    اگر اجرای یک فایل .rsc خاص بیش از 2 دقیقه طول بکشد، یک اسکریپت با شکست مواجه می شود و LOG حاوی خطای “بیش از حد مجاز زمان اجرا”  یا در موارد نادر std failure: timeout ” خواهد بود.

     

    به عنوان مثال پیکربندی هارد ریست بدون بارگیری تنظیمات پیش فرض و پرش از فایل پشتیبان:

				
					[admin@MikroTik] > /system reset-configuration no-defaults=yes skip-backup=yes
Dangerous! Reset anyway? [y/N]: y
				
			

و همینطور با استفاده از Winbox: