概念
Archive是一個啟用自動保存的指令,能保存甚麼?Running-Config跟Config的Log。
Archive在管理上是很實用的,聽同學說在設備上的一舉一動都會被錄下來,這點可以透過Archive去達成,看得一清二楚。
由於Archive是思科的功能,似乎在其他家沒有,因此就不特別分類,並且在此篇完成實戰。
目的
瞭解Archive的設定。
設定

TFTP-Server(11.12.13.1)可以使用3CDeamon,將電腦跟R1串起來。
!R1
config t
int g0/0
ip addr 11.12.13.2 255.255.255.0
no sh
exit
首先要先PING到TFTP-Server,出現”!”就可以往下進行。
進入到Global Configuration mode,輸入指令 archive。
R1(config)#archive
R1(config-archive)#
這裡對archive其中兩個指令說一下,其他的還好。
path: path tftp://11.12.13.1/$h
這個指令可以把Running-Config用tftp存到11.12.13.1,$h為hostname,進到路徑會看到 R1-0之類的,-0為Config編號。
maximum:預設是10,如果沒有改,最多只會保留10個archive config。
path tftp://11.12.13.1/$h
接著手動保存。
end
archive config
可以看到冒出”!”,config透過TFTP方式成功送到Server。
show archive
可以看到第一筆已經在出現了,編號為0。
這樣有個狀況,沒有辦法在Config有更動的時候,即時備份出一份。一旦Config被保存的時候,Archive就應該馬上匯出一份。
R1(config-archive)#write-memory
馬上來嘗試有沒有效果。
copy running-config startup-config
write memory
這兩者都會觸發Archive,然後直接輸出一份config。
要是忘記保存呢?是不是就當前Running-Config就不會留下了?可以下指令,每隔一段時間就執行archive,去保存config。
為了區分是Running-config還是Startup-config,所以先做一點變更。
R1(config)#
int loopback 1
ip addr 1.1.1.1 255.255.255.255
exit
archive
time-period 1 !每隔一分鐘就保存Running-config
這裡很明顯了,是保存Running-config。等待一分鐘來看看,確實有收到,裡面也有loopback的設定。
由於有了變動,現在,要去嘗試版本控制最重要的功能:發現各版本區別。
R1#
show archive config differences tftp://11.12.13.1/R1-0
這是比較Running-config跟指定的檔案差別,跟第一個檔案相比,變動的部分都會顯示出來,就能知道兩者差異。
不過,這是還不夠的。這只能看到Config的變動,但是沒有順序,沒有誰下的,這樣對於安全性是不夠的。接下來要啟用log config,這樣一旦對設定有疑問,就能看出要找誰。
R1(config-archive)#log config
R1(config-archive-log-cfg)#logging enable
R1#show archive log config all
idx sess user@line Logged command
1 1 console@console | logging enable
看到了第一個被記錄的指令是由console連入,下 logging enable。
接著,新增其他的帳號。
R1(config)#
username jn privilege 15 password jn
line vty 0 4
login local
exit
R1#show archive log config all
idx sess user@line Logged command
1 1 console@console | logging enable
2 1 console@console | username jn privilege 15 password jn
3 1 console@console | !config: USER TABLE MODIFIED
4 1 console@console |line vty 0 4
5 1 console@console | login local
6 1 console@console | exit
這裡可以直接看到,新增使用者jn的密碼是jn。密碼是很敏感的事情,因此需要被隱藏起來。
R1(config)#
archive
log config
hidekeys
exit
exit
username jn2 privilege 15 password jn2
R1#show archive log config all
idx sess user@line Logged command
1 1 console@console | logging enable
2 1 console@console | username jn privilege 15 password jn
3 1 console@console | !config: USER TABLE MODIFIED
4 1 console@console |line vty 0 4
5 1 console@console | login local
6 1 console@console | exit
7 2 console@console |archive
8 2 console@console | log config
9 2 console@console | hidekeys
10 2 console@console |exit
11 2 console@console | exit
12 2 console@console |username jn2 privilege 15 password *****
13 2 console@console |!config: USER TABLE MODIFIED
新增的使用者jn2,看到的密碼變成*****。
接著使用telnet登入,然後新增使用者jn3。
R1#
config t
username jn3 privilege 15 password jn3
exit
R1#show archive log config all
14 3 jn@vty0 |username jn3 privilege 15 password *****
15 3 jn@vty0 |!config: USER TABLE MODIFIED
看到連入的jn做了那些設定。
不過這裡log config只是暫存的,一旦重新開機,就會全部消失。
這些log config紀錄可以馬上傳到syslog server,讓log可以被保存。
R1(config-archive-log-cfg)#notify syslog !也要另外設定logging server
再下一些指令,從syslog server上看,的確可以看到。

到這裡已經可以把誰下了甚麼指令跟順序都記錄起來,方便日後的管理。