backup-restore

روتر سودار مجهز به ابزارهای قدرتمند پشتیبان گیری و بازیابی است که امکان مدیریت امن تنظیمات را فراهم می‌کند.

محتویات هر Snapshot

هر snapshot شامل موارد زیر است:

  • تنظیمات روتر: شامل running-config یا startup-config به همراه پروفایل های Tune

  • کلیدهای خصوصی و گواهینامه‌ها: Private keys و CAs/Certificates وارد شده (قابل حذف با گزینه no-pki)

  • مواد مجوز: License و license request و کلیدهای مجوز روتر

انواع فایل‌های قابل پشتیبان‌گیری

  • running-config: تنظیمات فعلی روتر - قابل backup (فقط restore به startup-config)

  • startup-config: تنظیمات ذخیره شده - قابل backup و restore

  • scripts: اسکریپت های ذخیره شده - قابل backup و restore

مکان‌های ذخیره‌سازی Backup

سودار از سه روش ذخیره‌سازی پشتیبان پشتیبانی می‌کند:

  • sftp: - پشتیبان‌گیری به سرور راه دور از طریق SFTP

  • backup: - پشتیبان‌گیری به حافظه محلی روتر

  • device: - پشتیبان‌گیری به حافظه جداشدنی (USB، هارد اکسترنال)

مفاهیم پایه

Repository (مخزن)

Repository ها مخازن رمزگذاری شده‌ای هستند که snapshot ها در آن ذخیره می‌شوند:

  • هر repository با رمز عبور محافظت می‌شود

  • کاربران مختلف می‌توانند repository های جداگانه داشته باشند

  • Repository پیش‌فرض: router-backup

  • تمامی snapshot ها رمزگذاری شده و در برابر دستکاری محافظت می‌شوند

مشخصات Repository

  • Repository path: مسیر ذخیره‌سازی در سرور (پیش‌فرض: home کاربر)

  • Repository name: نام فولدر مخزن

  • Repository password: رمز عبور برای رمزگذاری و کنترل دسترسی

Tag (برچسب)

  • هر snapshot با یک tag منحصر به فرد شناسایی می‌شود

  • برای restore از همان tag استفاده می‌شود

  • Tag پیش‌فرض: router-config

گزینه‌های مهم

no-pki

به صورت پیش‌فرض تمام کلیدهای PKI و Wireguard در backup ذخیره می‌شوند. با no-pki فقط config ذخیره می‌شود.

هشدار امنیتی

پشتیبان‌گیری از کلیدها به خصوص روی سرورهای راه دور به لحاظ امنیتی توصیه نمی‌شود زیرا private key ها انتقال پیدا می‌کنند. در صورت نیاز، اقدامات امنیتی اضافی برای snapshot های راه دور اعمال کنید.

license

در زمان restore می‌توانید مشخص کنید license بازیابی شود یا خیر:

  • بدون گزینه: license بازیابی نمی‌شود (پیش‌فرض - توصیه شده)

  • license: license هم بازیابی می‌شود

توجه

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

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


سناریو 1: پشتیبان‌گیری محلی ساده

هدف

ایجاد snapshot محلی از startup-config در خود روتر

پیکربندی

مرحله 1: پشتیبان‌گیری با backup: URI

n1# copy system:startup-config backup:
Destination tag [router-config]? daily-backup-1
Backup successful!
n1#

این ساده‌ترین روش backup است که snapshot در حافظه محلی روتر با نام daily-backup-1 ذخیره می‌شود.

مرحله 2: پشتیبان‌گیری با repository دلخواه

n1# copy system:startup-config backup:site1-bkp
Repository name [router-backup]? site1-repo
Repository password []? SecurePass123
Destination tag [router-config]? site1-bkp
Backup successful!
n1#

در این روش:

  • Repository جدید site1-repo با رمز SecurePass123 ساخته می‌شود

  • Snapshot با tag site1-bkp ذخیره می‌شود

مرحله 3: پشتیبان‌گیری بدون PKI

n1# copy system:startup-config backup:config-only no-pki
Destination tag [router-config]? config-only
Backup successful!
n1#

این backup فقط شامل تنظیمات است و کلیدهای PKI/Wireguard در آن نیست.

بررسی و تست

مشاهده لیست backup ها

n1# show archive snapshots backup:
Repository name [router-backup]?
Repository password []?

     Tag              Host              Time              Type 
==================================================================
daily-backup-1       n1       Sun Jan 15 09:30:22 2024   Config
------------------------------------------------------------------
config-only          n1       Sun Jan 15 09:35:10 2024   Config
n1#

مشاهده محتوای snapshot

n1# show archive config backup:daily-backup-1
Repository name [router-backup]?
Repository password []?
Destination tag [daily-backup-1]?

daily-backup-1
==============
hostname n1
!
interface ge0
 ip address 192.168.1.1/24
!
interface ge1
 ip address 10.0.0.1/30
!
router ospf
 network 192.168.1.0/24 area 0
!
end
n1#

سناریو 2: پشتیبان‌گیری به سرور SFTP

هدف

ارسال snapshot به سرور backup راه دور برای امنیت بیشتر

توپولوژی

[n1] ge0: 192.168.1.10/24 ---- [Backup Server] 192.168.1.100
                                SFTP user: backup
                                SFTP pass: BackupPass2024

پیش‌نیازها

الزامی

قبل از استفاده از SFTP باید یک بار به سرور SSH زده و کلید host را تأیید کنید:

n1# ssh backup@192.168.1.100
Are you sure you want to continue connecting (yes/no)? yes

در غیر این صورت با خطای Connection reset by peer مواجه می‌شوید.

پیکربندی

مرحله 1: پشتیبان‌گیری با URI کامل

n1# copy system:startup-config sftp:backup:BackupPass2024@192.168.1.100:/backups/router1:r1pass/daily1
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password [*************]?
Repository path [/backups]?
Repository name [router1]?
Repository password [******]?
Destination tag [daily1]?
Backup successful!
n1#

مرحله 2: پشتیبان‌گیری تعاملی

n1# copy system:startup-config sftp:
Address or name of remote host []? 192.168.1.100
Remote host user []? backup
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? edge-router
Repository password []? EdgePass999
Destination tag [router-config]? manual-backup-1
Backup successful!
n1#

مرحله 3: استفاده از ip host

n1(config)# ip host backupserver 192.168.1.100
n1(config)# exit
n1# copy system:startup-config sftp:backup@backupserver
Address or name of remote host [backupserver]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? edge-router
Repository password []? EdgePass999
Destination tag [router-config]? host-backup
Backup successful!
n1#

مرحله 4: پشتیبان‌گیری از running-config

n1# copy system:running-config sftp:backup@192.168.1.100
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? live-configs
Repository password []? LivePass123
Destination tag [router-config]? current-state
Backup successful!
n1#

توجه

running-config فقط قابل backup است و نمی‌توان آن را مستقیماً restore کرد. تنها startup-config قابل restore است.

مرحله 5: پشتیبان‌گیری از script

n1# copy scripts:script1 sftp:backup@192.168.1.100
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Backup successful!
n1#

مرحله 6: پشتیبان‌گیری بدون کلیدهای خصوصی

n1# copy system:startup-config sftp:backup@192.168.1.100 no-pki
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? safe-configs
Repository password []? SafePass456
Destination tag [router-config]? config-only
Backup successful!
n1#

بررسی و تست

مشاهده snapshot های راه دور

n1# show archive snapshots sftp:backup@192.168.1.100
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? edge-router
Repository password []? EdgePass999

     Tag              Host              Time              Type 
==================================================================
manual-backup-1      n1       Sun Jan 15 10:15:30 2024   Config
------------------------------------------------------------------
host-backup          n1       Sun Jan 15 10:20:45 2024   Config
n1#

مشاهده محتوای snapshot راه دور

n1# show archive config sftp:backup@192.168.1.100
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? edge-router
Repository password []? EdgePass999
Destination tag [router-config]? manual-backup-1

manual-backup-1
===============
hostname n1
!
interface ge0
 ip address 192.168.1.10/24
!
end
n1#

سناریو 3: پشتیبان‌گیری به حافظه جداشدنی (USB)

هدف

ذخیره snapshot روی USB یا هارد اکسترنال

پیش‌نیازها

  • USB متصل به روتر (مثلاً /dev/sdb1)

پیکربندی

مرحله 1: پشتیبان‌گیری به USB

n1# copy system:startup-config device:sdb1/backups/router1/repo1:Pass123/usb-backup1
Repository path [/backups/router1]?
Repository name [repo1]?
Repository password [*******]?
Destination tag [usb-backup1]?
Backup successful!
n1#

در این دستور:

  • sdb1: نام دستگاه USB

  • /backups/router1: مسیر در USB

  • repo1: نام repository

  • Pass123: رمز repository

  • usb-backup1: tag

مرحله 2: پشتیبان‌گیری ساده به USB

n1# copy system:startup-config device:sdb1
Repository path []? /router-backups
Repository name [router-backup]? usb-repo
Repository password []? USBPass999
Destination tag [router-config]? emergency-backup
Backup successful!
n1#

بررسی و تست

مشاهده snapshot های USB

n1# show archive snapshots device:sdb1
Repository path []? /backups/router1
Repository name [router-backup]? repo1
Repository password []? Pass123

     Tag              Host              Time              Type 
==================================================================
usb-backup1          n1       Sun Jan 15 11:00:00 2024   Config
n1#

هشدار

هنگام بوت شدن روتر، هیچ حافظه جداشدنی نباید متصل باشد وگرنه boot با شکست مواجه می‌شود.


سناریو 4: بازیابی Backup

هدف

restore کردن snapshot ها به startup-config

پیکربندی

مرحله 1: بازیابی از حافظه محلی

n1# copy backup:daily-backup-1 system:startup-config
Repository name [router-backup]?
Repository password []?
Tag to restore [daily-backup-1]?
Restore successful! Restart your device to load new startup config
n1#

مهم

تنظیمات restore شده تنها پس از reload اعمال می‌شوند.

مرحله 2: بازیابی از سرور SFTP

n1# copy sftp:backup@192.168.1.100 system:startup-config
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? edge-router
Repository password []? EdgePass999
Tag to restore [router-config]? manual-backup-1
Restore successful! Restart your device to load new startup config
n1#

مرحله 3: بازیابی از USB

n1# copy device:sdb1 system:startup-config
Repository path []? /backups/router1
Repository name [router-backup]? repo1
Repository password []? Pass123
Tag to restore [router-config]? usb-backup1
Restore successful! Restart your device to load new startup config
n1#

مرحله 4: بازیابی از روتر دیگر (بدون license)

برای restore کردن config از روتر دیگر، به صورت پیش‌فرض license بازیابی نمی‌شود:

n1# copy sftp:backup@192.168.1.100 system:startup-config
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? router2-backups
Repository password []? R2Pass123
Tag to restore [router-config]? router2-config
Restore successful! Restart your device to load new startup config
n1#

نکته

به صورت پیش‌فرض license بازیابی نمی‌شود، بنابراین می‌توانید backup از روتر دیگر را بدون نگرانی از license نادرست restore کنید.

مرحله 5: بازیابی همراه با license

اگر می‌خواهید license هم restore شود:

n1# copy backup:full-backup system:startup-config license
Repository name [router-backup]?
Repository password []?
Tag to restore [full-backup]?
Restore successful! Restart your device to load new startup config
n1#

مرحله 6: اعمال تنظیمات

n1# reload
Proceed with reload? [confirm] yes
n1#

سناریو 5: مقایسه و مدیریت Snapshot ها

هدف

مقایسه تنظیمات و مدیریت snapshot های قدیمی

پیکربندی

مرحله 1: مقایسه running-config با backup

n1# show archive config differences system:running-config backup:daily-backup-1
Repository name [router-backup]?
Repository password []?
Destination tag [daily-backup-1]?

running-config                                      daily-backup-1
==============                                      ==============
hostname n1                                         hostname n1
!                                                   !
interface ge0                                       interface ge0
 ip address 192.168.1.10/24                          ip address 192.168.1.10/24
!                                                   !
interface ge1                                       interface ge1
 ip address 10.0.0.1/30                     >        no ip address
!                                                   !
router ospf                                 <
 network 10.0.0.0/30 area 0               <
!                                           <
end                                                 end
n1#

علامت > و < تفاوت‌ها را نشان می‌دهند.

مرحله 2: مقایسه دو backup مختلف

n1# show archive config differences backup:daily-backup-1 sftp:backup@192.168.1.100
Repository name [router-backup]?
Repository password []?
Destination tag [daily-backup-1]?
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? edge-router
Repository password []? EdgePass999
Destination tag [router-config]? manual-backup-1

daily-backup-1                                      manual-backup-1
==============                                      ===============
hostname n1                                         hostname n1
!                                                   !
interface ge0                                       interface ge0
 ip address 192.168.1.10/24                          ip address 192.168.1.10/24
!                                                   !
interface ge1                                       interface ge1
 ip address 10.0.0.1/30                     >        ip address 10.0.0.2/30
!                                                   !
end                                                 end
n1#

مرحله 3: مقایسه startup با running

n1# show archive config differences system:startup-config system:running-config

startup-config                                      running-config
==============                                      ==============
hostname n1                                         hostname n1
!                                                   !
interface ge0                                       interface ge0
 ip address 192.168.1.10/24                          ip address 192.168.1.10/24
!                                                   !
                                            >       interface ge2
                                            >        ip address 172.16.0.1/24
                                            >       !
end                                                 end
n1#

این نشان می‌دهد ge2 در running-config تنظیم شده اما هنوز save نشده است.

مرحله 4: حذف snapshot قدیمی از محلی

n1# delete backup:old-backup
Repository name [router-backup]?
Repository password []?
Destination tag [router-config]? old-backup
Snapshot deleted successfully!
n1#

مرحله 5: حذف snapshot از سرور SFTP

n1# delete sftp:backup@192.168.1.100
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? edge-router
Repository password []? EdgePass999
Destination tag [router-config]? obsolete-backup
Snapshot deleted successfully!
n1#

مرحله 6: حذف snapshot از USB

n1# delete device:sdb1
Repository path []? /backups/router1
Repository name [router-backup]? repo1
Repository password []? Pass123
Destination tag [router-config]? old-usb-backup
Snapshot deleted successfully!
n1#

سناریو 6: مدیریت چند Repository

هدف

استفاده از repository های مختلف برای سازماندهی بهتر

پیکربندی

مرحله 1: ایجاد repository برای backup های روزانه

n1# copy system:startup-config backup:day1
Repository name [router-backup]? daily-backups
Repository password []? DailyPass123
Destination tag [router-config]? day1
Backup successful!
n1#

مرحله 2: ایجاد repository برای backup های هفتگی

n1# copy system:startup-config backup:week1
Repository name [router-backup]? weekly-backups
Repository password []? WeeklyPass456
Destination tag [router-config]? week1
Backup successful!
n1#

مرحله 3: ایجاد repository برای تست‌ها

n1# copy system:startup-config backup:test-baseline
Repository name [router-backup]? test-configs
Repository password []? TestPass789
Destination tag [router-config]? test-baseline
Backup successful!
n1#

مرحله 4: مشاهده snapshot های repository روزانه

n1# show archive snapshots backup:
Repository name [router-backup]? daily-backups
Repository password []? DailyPass123

     Tag              Host              Time              Type 
==================================================================
day1                 n1       Mon Jan 15 08:00:00 2024   Config
------------------------------------------------------------------
day2                 n1       Tue Jan 16 08:00:00 2024   Config
------------------------------------------------------------------
day3                 n1       Wed Jan 17 08:00:00 2024   Config
n1#

مرحله 5: مشاهده snapshot های repository هفتگی

n1# show archive snapshots backup:
Repository name [router-backup]? weekly-backups
Repository password []? WeeklyPass456

     Tag              Host              Time              Type 
==================================================================
week1                n1       Sun Jan 14 23:00:00 2024   Config
------------------------------------------------------------------
week2                n1       Sun Jan 21 23:00:00 2024   Config
n1#

بررسی و تست

با استفاده از repository های مختلف می‌توانید:

  • Backup های روزانه، هفتگی، ماهانه را جدا نگه دارید

  • دسترسی کاربران مختلف را با password های جداگانه کنترل کنید

  • Backup های مربوط به پروژه‌های مختلف را سازماندهی کنید


سناریو 7: Backup خودکار با Script

هدف

ایجاد script برای backup خودکار روزانه

پیکربندی

مرحله 1: ایجاد script برای backup محلی

n1(config)# script daily-backup
#!/bin/sh
DATE=$(date +%Y-%m-%d)
echo "Starting daily backup: $DATE"
vtysh -c "copy system:startup-config backup:backup-$DATE"
echo "Backup completed successfully"
exit 0
n1(config-script)# exit
n1(config)# write
n1(config)# exit
n1#

مرحله 2: ایجاد script برای backup به SFTP

n1(config)# script sftp-backup
#!/bin/sh
DATE=$(date +%Y-%m-%d-%H%M)
cat << EOF | vtysh
copy system:startup-config sftp:backup@192.168.1.100
192.168.1.100
backup
BackupPass2024
/backups
edge-router
EdgePass999
backup-$DATE
EOF
exit 0
n1(config-script)# exit
n1(config)# write
n1(config)# exit
n1#

مرحله 3: تست script ها

n1# script:daily-backup
Starting daily backup: 2024-01-15
Backup successful!
Backup completed successfully
n1#
n1# script:sftp-backup
Backup successful!
n1#

مرحله 4: اضافه کردن به cron برای اجرای خودکار

n1(config)# ! اجرای روزانه ساعت 2 صبح
n1(config)# ! این کار از طریق لینوکس انجام می‌شود
n1(config)# exit
n1# 

نکته

برای اجرای خودکار می‌توانید از cron job های سیستم عامل استفاده کنید. script های سودار با فرمت script:scriptname قابل فراخوانی هستند.


سناریو 8: Backup انتخابی PKI

هدف

مدیریت backup کلیدهای PKI در سناریوهای مختلف

پیکربندی

مرحله 1: backup کامل شامل PKI

n1# copy system:startup-config backup:full-with-keys
Repository name [router-backup]?
Repository password []?
Destination tag [router-config]? full-with-keys
Backup successful!
n1#

مرحله 2: backup بدون PKI

n1# copy system:startup-config backup:config-only no-pki
Repository name [router-backup]?
Repository password []?
Destination tag [router-config]? config-only
Backup successful!
n1#

مرحله 3: مشاهده تفاوت در Type

n1# show archive snapshots backup:
Repository name [router-backup]?
Repository password []?

     Tag              Host              Time              Type 
==================================================================
full-with-keys       n1       Sun Jan 15 14:00:00 2024   PKI
------------------------------------------------------------------
config-only          n1       Sun Jan 15 14:05:00 2024   Config
n1#

توجه کنید:

  • Type: PKI - شامل config + کلیدها

  • Type: Config - فقط config

مرحله 4: backup فقط کلیدهای PKI

اگر فقط می‌خواهید از کلیدها backup بگیرید (بدون config):

n1# copy system:startup-config backup:keys-only
Repository name [router-backup]? pki-backups
Repository password []? PKIPass123
Destination tag [router-config]? wireguard-keys
Backup successful!
n1#

کاربردها

  • full-with-keys: برای disaster recovery کامل

  • config-only: برای انتقال config به روتر دیگر

  • keys-only: برای backup امن کلیدها در محل جداگانه



soodar# show archive snapshots system:

     Tag          Host              Time              Type 
===========================================================

wireguard-keys   soodar   Sat Jun  3 10:05:44 2023   PKI   
-----------------------------------------------------------
bkp1             soodar   Sat Jun  3 10:12:02 2023   Config
soodar# 
soodar# show archive snapshots sftp:iman@192.168.230.130
Address or name of remote host [192.168.230.130]? 
Remote host user [iman]? 
Remote host password [admin]?
Repository path []? backup
Repository name [router-backup]? site1
Repository password []?  
 

        Tag              Host                 Time              Type 
=====================================================================
---------------------------------------------------------------------
n3-config             n3            Thu May 11 13:33:40 2023   Config
---------------------------------------------------------------------
bkp2                  soodar        Sat Jun  3 09:55:19 2023   Config
---------------------------------------------------------------------  
soodar# 

باز نشانی startup-config

local

soodar# copy system:bkp1 startup-config 
Repository name [router-backup]? repo1
Repository password []? 
Tag to restore [bkp1]? bkp1
Restore successful! Restart your device to load new startup config
soodar# 

sftp

soodar# copy sftp:iman@192.168.230.130 startup-config 
Address or name of remote host [192.168.230.130]? 
Remote host user [iman]? 
Remote host password [admin]? 
Repository path []? backup
Repository name [router-backup]? site1
Repository password []? 
Tag to restore [router-config]? bkp2
Restore successful! Restart your device to load new startup config
soodar# 

توجه

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

مثال restore کردن backup (بدون license به صورت پیش‌فرض):

soodar# copy sftp:iman@192.168.230.130 startup-config
Address or name of remote host [192.168.230.130]? 
Remote host user [iman]? 
Remote host password [admin]? 
Repository path []? backup
Repository name [router-backup]? site1
Repository password []? 
Tag to restore [router-config]? bkp2
Restore successful! Restart your device to load new startup config
soodar# 

مشاهده config هایی که بکاپ گرفته اید

می توانید config هایی که بک آپ گرفته اید را قبل از restore کردن مشاهده کنید :

soodar# sh archive config system:bkp1
Repository name [router-backup]? repo1
Repository password []? 
Destination tag [bkp1]?  

bkp1
====
hostname soodar

interface ge0
      ip address 192.168.1.55/24



soodar# 
soodar# sh archive config sftp:iman@192.168.230.130
Address or name of remote host [192.168.230.130]? 
Remote host user [iman]? 
Remote host password [admin]? 
Repository path []? backup
Repository name [router-backup]? site1
Repository password []? 
Destination tag [router-config]? bkp2

bkp2
====
hostname soodar

interface ge0
      ip address 192.168.1.55/24



soodar# 

URI Format ها

سودار از سه فرمت URI برای backup/restore پشتیبانی می‌کند:

1. SFTP URI

sftp:[user]:[password]@[host]:[path]/[repo]:[repo-password]/[tag]

مثال کامل:

sftp:admin:pass123@192.168.1.100:/backups/router1:repopass/backup1

2. Backup URI (محلی)

backup:[tag]

مثال:

backup:daily-backup

3. Device URI (USB)

device:DEVNAME/[repo-path]/[repo]:[repo-password]/[tag]

مثال:

device:sdb1/backups/router1/repo1:pass123/usb-backup

Reset و بازنشانی روتر

write erase ساده

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

n1# write erase
n1#

توجه

پس از write erase موارد زیر حذف می‌شوند:

  • تمام تنظیمات شبکه

  • تنظیمات routing و protocol ها

  • تنظیمات interface ها

  • تنظیمات VRF ها

موارد زیر حفظ می‌شوند:

  • رمز عبور کاربران

  • ساعت سیستم

  • کلیدهای PKI, SSH, Wireguard

  • پروفایل‌های Tune

  • License

پس از write erase، interface ge0 به آدرس پیش‌فرض 192.168.1.55/24 تنظیم می‌شود.

write erase با IP دلخواه

برای reset از راه دور بدون قطع ارتباط:

n1# write erase 85.15.233.19/24 85.15.233.1
n1#

در این دستور:

  • 85.15.233.19/24: آدرس IP برای interface ge0

  • 85.15.233.1: آدرس gateway پیش‌فرض

مزایا

این روش برای مدیریت راه دور بسیار مفید است:

  • ارتباط شبکه قطع نمی‌شود

  • نیازی به دسترسی فیزیکی نیست

  • می‌توانید بلافاصله به روتر متصل شوید

اعمال تغییرات

برای اعمال write erase باید روتر را reload کنید:

n1# reload
Proceed with reload? [confirm] yes

مثال کامل reset از راه دور

n1# ! فرض: روتر در سایت راه دور با IP 85.15.233.19
n1# ! می‌خواهیم روتر را reset کنیم بدون از دست دادن ارتباط

n1# ! ابتدا backup بگیریم
n1# copy system:startup-config sftp:backup@192.168.1.100
Address or name of remote host [192.168.1.100]?
Remote host user [backup]?
Remote host password []? BackupPass2024
Repository path []? /backups
Repository name [router-backup]? site-backup
Repository password []? SitePass999
Destination tag [router-config]? before-reset
Backup successful!

n1# ! حالا reset می‌کنیم با حفظ IP
n1# write erase 85.15.233.19/24 85.15.233.1

n1# ! reload می‌کنیم
n1# reload
Proceed with reload? [confirm] yes

# بعد از reload، روتر با IP 85.15.233.19 در دسترس است
# می‌توانیم دوباره SSH کنیم و config جدید بزنیم

عیب‌یابی (Troubleshooting)

مشکل 1: Connection reset by peer در SFTP

علت: کلید SSH سرور در روتر ذخیره نشده است.

راه‌حل:

n1# ssh backup@192.168.1.100
The authenticity of host '192.168.1.100' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
# حالا کلید ذخیره شد
n1# exit
n1# copy system:startup-config sftp:backup@192.168.1.100

مشکل 2: Repository password نادرست

علت: رمز repository اشتباه وارد شده است.

راه‌حل: رمز صحیح repository را وارد کنید. اگر فراموش کردید، باید repository جدید بسازید.

n1# show archive snapshots backup:
Repository name [router-backup]? test-repo
Repository password []? <رمز صحیح>

مشکل 3: Boot failure با USB متصل

علت: حافظه جداشدنی هنگام boot متصل بوده است.

راه‌حل:

  1. روتر را خاموش کنید

  2. USB را جدا کنید

  3. روتر را روشن کنید

هشدار

هیچ وقت با USB متصل روتر را boot نکنید!

مشکل 4: License نادرست بعد از restore

علت: backup از روتر دیگر با گزینه license restore شده است.

راه‌حل: دوباره بدون گزینه license restore کنید:

n1# copy backup:other-router system:startup-config

توجه

به صورت پیش‌فرض license restore نمی‌شود، بنابراین این مشکل فقط زمانی رخ می‌دهد که صریحاً از گزینه license استفاده شده باشد.

مشکل 5: تفاوت بین running و startup

بررسی:

n1# show archive config differences system:startup-config system:running-config

راه‌حل: اگر تغییرات مورد نظر است، save کنید:

n1# write

مشکل 6: فضای ناکافی برای backup

بررسی فضا:

n1# show system resources

راه‌حل: snapshot های قدیمی را حذف کنید:

n1# delete backup:old-snapshot1
n1# delete backup:old-snapshot2

نکات امنیتی

1. محافظت از Password های Repository

Repository password ها رمزگذاری می‌شوند اما:

  • از password های قوی استفاده کنید (حداقل 12 کاراکتر)

  • password ها را به صورت امن نگهداری کنید

  • برای repository های مختلف از password های متفاوت استفاده کنید

  • password ها را به صورت دوره‌ای تغییر دهید

2. Backup کلیدهای خصوصی

هشدار امنیتی

پشتیبان‌گیری از کلیدهای خصوصی به سرورهای راه دور بسیار خطرناک است!

اگر ضروری است:

  • از کانال رمزگذاری شده (SFTP over TLS) استفاده کنید

  • سرور backup را ایمن و در شبکه خصوصی نگه دارید

  • دسترسی به snapshot ها را با firewall محدود کنید

  • از no-pki برای backup های معمولی استفاده کنید

  • Backup های شامل PKI را سریعاً حذف کنید

3. مدیریت License

  • License هر روتر منحصر به فرد است

  • به صورت پیش‌فرض license بازیابی نمی‌شود (رفتار امن)

  • اگر می‌خواهید license را هم restore کنید، از گزینه license استفاده کنید

  • License اشتباه باعث محدودیت عملکرد یا deactivation می‌شود

  • قبل از restore، license فعلی روتر را یادداشت کنید

4. SFTP Authentication

بهترین شیوه‌ها:

  • از SSH key authentication به جای password استفاده کنید

  • دسترسی SFTP را محدود به IP های مشخص کنید

  • لاگ های SFTP را به طور منظم بررسی کنید

  • از fail2ban برای محافظت در برابر brute force استفاده کنید

5. USB Security

  • USB های backup را در مکان امن (گاوصندوق) نگه دارید

  • از رمزگذاری USB استفاده کنید (LUKS encryption)

  • دسترسی فیزیکی به USB را محدود کنید

  • Label های واضح روی USB بگذارید

  • USB های قدیمی را به صورت امن پاک کنید

6. Repository Organization

ساختار پیشنهادی:

router-backups/
├── daily-backups/      (رمز: DailyPass123)
├── weekly-backups/     (رمز: WeeklyPass456)
├── monthly-backups/    (رمز: MonthlyPass789)
├── test-configs/       (رمز: TestPass000)
└── emergency-backups/  (رمز: EmergPass999)

بهترین شیوه‌ها (Best Practices)

1. استراتژی Backup 3-2-1

قانون طلایی backup:

  • 3 کپی از data

  • 2 نوع storage مختلف

  • 1 کپی off-site

مثال پیاده‌سازی:

[Backup 1] Local backup:     -> n1# copy system:startup-config backup:daily
[Backup 2] SFTP Server:      -> n1# copy system:startup-config sftp:backup@server
[Backup 3] USB (off-site):   -> n1# copy system:startup-config device:sdb1

2. Naming Convention

از نام‌های معنادار و منظم استفاده کنید:

تاریخ-based:

backup-2024-01-15
backup-2024-01-16
backup-2024-01-17

Purpose-based:

before-upgrade
after-upgrade
baseline-config
working-config

Hybrid:

n1-baseline-2024-01-15
n1-preupgrade-2024-02-01
edge-router-daily-2024-03-10

3. Retention Policy

تعریف سیاست نگهداری:

نوع Backup

نگهداری

دوره

روزانه

7 روز

همه روزه ساعت 02:00

هفتگی

4 هفته

یکشنبه ها ساعت 23:00

ماهانه

12 ماه

روز اول ماه ساعت 00:00

سالانه

5 سال

اول سال

4. Automation با Script

Script backup روزانه:

n1(config)# script daily-backup
#!/bin/sh
DATE=$(date +%Y-%m-%d)
vtysh -c "copy system:startup-config backup:daily-$DATE"

# پاکسازی backup های بیش از 7 روز قدیمی
# (این قسمت نیاز به پیاده‌سازی دارد)
exit 0
n1(config-script)# exit
n1(config)# write

5. Verification و Testing

Testing منظم restore:

  • هر ماه یک بار فرآیند restore را تست کنید

  • از روتر تست برای بررسی backup ها استفاده کنید

  • محتوای snapshot ها را قبل از حذف بررسی کنید

بررسی Integrity:

n1# show archive config backup:daily-2024-01-15
# محتوا را بررسی کنید

6. Documentation

مستندسازی کامل:

  • لیست تمام repository ها و password ها (در مکان امن)

  • شرح هر tag و محتوای آن

  • تاریخ ایجاد و دلیل backup

  • مکان فیزیکی USB ها

  • دسترسی‌های SFTP

مثال مستند:

Repository: edge-router-backups
Password: EdgePass999 (در vault شرکت)
Location: SFTP server 192.168.1.100:/backups/edge
Purpose: Backup های روزانه edge router
Retention: 30 روز
Contact: admin@company.com

7. Monitoring و Alerting

پیگیری وضعیت backup:

  • اطمینان از اجرای موفق backup های خودکار

  • بررسی فضای ذخیره‌سازی

  • alert در صورت شکست backup

  • لاگ کردن تمام عملیات backup/restore


خلاصه دستورات

Backup Commands

دستور

شرح

copy system:startup-config backup:tag

Backup محلی

copy system:running-config backup:tag

Backup از running config

copy system:startup-config sftp:user@host

Backup به SFTP

copy system:startup-config device:sdb1

Backup به USB

copy system:startup-config backup:tag no-pki

Backup بدون کلیدها

Restore Commands

دستور

شرح

copy backup:tag system:startup-config

Restore محلی (بدون license)

copy sftp:user@host system:startup-config

Restore از SFTP (بدون license)

copy device:sdb1 system:startup-config

Restore از USB (بدون license)

copy backup:tag system:startup-config license

Restore همراه با license

Management Commands

دستور

شرح

show archive snapshots backup:

لیست snapshot های محلی

show archive snapshots sftp:user@host

لیست snapshot های SFTP

show archive snapshots device:sdb1

لیست snapshot های USB

show archive config backup:tag

مشاهده محتوای snapshot

show archive config differences backup:t1 backup:t2

مقایسه دو snapshot

delete backup:tag

حذف snapshot محلی

delete sftp:user@host

حذف snapshot SFTP

Reset Commands

دستور

شرح

write erase

Reset به پیش‌فرض (ge0: 192.168.1.55/24)

write erase IP/MASK GATEWAY

Reset با IP دلخواه

reload

ریستارت روتر


خلاصه

سیستم backup و restore سودار ویژگی‌های قدرتمندی ارائه می‌دهد:

چند مکان ذخیره‌سازی: Local, SFTP, USB
Repository های رمزگذاری شده: امنیت و سازماندهی
مدیریت PKI: کنترل دقیق بر backup کلیدها
مقایسه Snapshot: تشخیص تغییرات
License Management: کنترل license در restore
URI Format: انعطاف‌پذیری در مشخص کردن مقصد
Script Support: خودکارسازی backup
Remote Reset: write erase با IP دلخواه

نکات کلیدی:

  • همیشه قبل از تغییرات مهم backup بگیرید

  • backup ها را در چند مکان ذخیره کنید

  • به طور منظم restore را تست کنید

  • از no-pki برای backup های روزانه استفاده کنید

  • به صورت پیش‌فرض license بازیابی نمی‌شود (رفتار امن)

  • اگر نیاز به restore کردن license دارید، از گزینه license استفاده کنید

  • با USB متصل روتر را boot نکنید

  • password های repository را امن نگه دارید

با استفاده صحیح از این ابزارها می‌توانید:

  • تنظیمات را به صورت امن نگهداری کنید

  • در مواقع اضطراری سریعاً بازیابی کنید

  • تغییرات را پیگیری و مدیریت کنید

  • استراتژی backup سازمانی پیاده‌سازی کنید

  • از دست رفتن data را به حداقل برسانید