技術文章 · 網路與網通建置

交換器設定備份與還原:Running Config、Startup Config 與換機檢查

網管交換器最貴的不是機器,是那份設定檔。這篇從 running-config 與 startup-config 的記憶體差別講起,帶你搞懂匯出設定該選 TFTP 還是 SFTP、檔名與自動化怎麼管、換機還原最會踩的韌體版本相容雷,以及遠端還原前一定要先留好的那條退路。

作者 Steve Chen · 發布  · 更新  · 約 8 分鐘閱讀

網路與網通建置 — 廷皓技術專欄插圖

先講一句可能有點反直覺的話:一台網管交換器上最貴的東西,往往不是那台機器,而是機器裡那份設定檔。硬體燒了,叫貨隔天就到,換上去通電就能亮燈;但那些疊了好幾年的 VLAN 切割、Trunk 幹道、PoE 供電排程、ACL 存取規則,只要沒有備份,就是真的沒有了,只能靠人腦回憶一條一條重建。我實際遇過一間工廠,為了一台掛掉的核心交換器整整停擺一天半:新機器早上十點就送到現場,剩下的時間全花在同一件事上:想不起來原本實際是怎麼設的。設定檔這種東西,平常安安靜靜躺著沒人理,出事那一刻才發現它是整個網路的命根子。

你剛剛改的設定,可能根本還沒存進機器

要談備份,得先弄懂設定實際存在哪裡,這一步搞錯,後面全是白工。主流的企業級網管交換器,機器裡其實同時放著兩份設定。一份叫 running-config,住在 RAM 裡,是此刻正在生效、決定封包怎麼走的那一份;另一份叫 startup-config,住在非揮發性的快閃記憶體(NVRAM)裡,是機器開機時會載入的那一份。這兩者的物理差別很關鍵:RAM 是揮發性記憶體,靠持續供電才維持得住內容,一斷電就整份清空;快閃記憶體不用供電也記得住東西,所以才拿它來存開機設定。

問題就出在這個縫隙。你在指令列敲進去的每一條設定,是立刻寫進 running-config、馬上生效沒錯,但它只活在 RAM 裡。你要是沒有再下一句 copy running-config startup-config(有些平台的簡寫是 write memory),把記憶體那份複製回開機設定,那麼一旦重開機或跳電,機器載入的還是舊的 startup-config,你辛苦改的東西全部蒸發。我處理過好幾件「停電之後網路整個怪掉」的案子,一路追到最後幾乎都是同一個原因:當年改完設定的人,忘了存檔就下班了,機器某次重開之後,載入的是半年前那份舊設定。所以備份的第一個動作,不是急著匯出,是先確認你要備的這份 running-config,已經真的寫進 startup-config,兩份是一致的。備到一份還沒存穩的設定,等於備了個假的。

怎麼匯出:網頁介面、TFTP、SFTP 的取捨

匯出的方式看機種。簡易網管那一級,通常在維護或管理選單裡就有「備份」「匯出設定」的按鈕,按下去存成一個檔案,有的打開就是看得懂的純文字,有的是廠商專屬格式的二進位檔。網管型的機種除了本機下載,還能走網路直接把設定推到伺服器,這時候協定的選擇就有講究了。

最普遍的是 TFTP,好處是幾乎每台設備都內建、架起來也簡單,但它的先天體質要看清楚:TFTP 跑在 UDP 的 69 埠,沒有帳號認證、沒有任何加密,內容整份明碼傳輸。這代表兩件事:第一,只要能連到那台 TFTP 伺服器的人,都有機會讀走、甚至覆寫上面的檔案;第二,你的設定檔在網路上傳輸的過程是全裸的,任何在同一段網路上監聽封包的人,都能把整份設定連同裡面的帳號雜湊、社群字串一起抄走。臨時在一段實體隔離、沒有外人的內網用 TFTP 搬個檔還可以,但只要牽涉到跨網段、或設定檔裡帶著任何機敏資訊,就該改用走 SSH 加密通道的 SFTP 或 SCP。這兩者都建立在 SSH 之上,傳輸過程加密、而且要求認證,才是拿來管理正式環境設定該有的姿勢。多花的力氣不過是架一台稍微像樣的伺服器,換回來的是你的設定檔不會在半路被人撿走。

檔名與版本:讓三個月後的自己看得懂

檔案存下來,千萬別偷懶用預設檔名。我的習慣是把資訊直接寫滿在檔名裡:日期、型號、韌體版本、這次動了什麼,像 20260704_核心交換器_v2.80_新增倉庫VLAN 這樣一長串。當下覺得囉嗦,但三個月後某條規則出包要回滾的時候,你會很感謝這串檔名,光看名字就知道該還原哪一份,不用一個一個打開比對。

設備數量一多,靠人工記名字遲早會亂,這時候值得導入自動化的組態備份機制。市面上有很成熟的開源工具(像 RANCID、Oxidized 這一類),能定時登入每一台設備、自動把設定抓回來、用版本控管的方式存起來,還能同時支援上百種不同廠牌型號。更實用的是它會自動拿每一次抓回來的設定跟前一版比對,只要有人在非預期的時間動了設定,就會標出差異、甚至發出告警。這種「組態飄移」的偵測,本質上是幫你維持一份隨時可信的「已知良好狀態」當基準線,出事時你才有東西可以比對、可以還原,而不是憑印象猜。

換機還原最會踩的雷:韌體版本相容

還原設定最順的情況,是同型號、韌體版本相同或很接近:匯入、重開、核對,半小時內收工。真正的麻煩都出在跨版本跟跨型號。

先講二進位格式的備份檔。它的內容結構是緊貼著韌體內部的資料結構走的,換一版韌體,內部欄位的排列、長度、編碼方式都可能跟著變,所以這種檔案基本上只能還原回「同型號、相近韌體」的機器,跨太多版本就對不上,匯進去可能直接失敗,甚至讓機器開不起來。純文字的設定移植性好一些,畢竟是人看得懂的指令,但也別太樂觀:指令的語法會隨韌體改版增刪變動,舊版能吃的寫法新版未必認得;更現實的是,埠數不同的型號連介面編號都對不上,你把 24 埠機器的設定灌進 48 埠的機器,介面對應會整組錯位。

所以換機還原的標準動作是:先想辦法把新機的韌體,升到跟舊機相同或相近的版本,再來匯入設定。這裡還有個常被忽略的眉角,跨大版本升級往往不能一步登天:不少平台明文限制,一次最多只能跨一到兩個版本,大版本之間要逐階墊上去,例如要從 8 字頭升到 9 字頭,得先裝上 9 系列的第一個版本當跳板,才能再往上升。硬跳過中間版本,輕則升級失敗,重則設定遺失。韌體升級本身的細節,另外有一篇專門在講,這裡就不展開。

最後一個很多人栽過的點:不同平台「匯入設定」的行為並不一樣。有的是整份取代:把現有設定全部清掉,換成檔案裡的;有的是合併疊加:把檔案裡的設定加到現有設定上面。這兩種弄反了,會生出新舊規則混在一起的怪狀態,某條你以為早就刪掉的舊 ACL 還活著,某個 VLAN 設定兩邊互相打架。動手前一定先翻文件,確認你這台的匯入實際是覆蓋還是合併,別憑感覺就按下去。

多久備一次、備到哪裡才算數

頻率我的建議很務實,記住三個時間點就好:每次重大變更的前後各留一份、每次韌體升級之前一定留一份,平常再抓一個固定週期,一季一次對多數中小型網路就很夠。設備多、變動又頻繁的環境,就交給前面說的自動化工具排程去抓,甚至可以綁 syslog 事件:設備一有設定變動就即時觸發一次備份,連手都不用動。

但比頻率更常出包的,其實是存放位置。最常見的災難是:所有備份檔只躺在網管那台筆電裡,哪天筆電硬碟壞了、或這個人離職了,那些備份等於從來沒存在過。稍微像樣的做法,至少要遵守「3-2-1」的精神:同一份資料留三個副本、放在兩種不同的媒介、其中一份放在異地。落到實務上,最低限度是公司的檔案伺服器一份、雲端或另一個地點再一份,別讓任何單一一台裝置的故障,就能把你所有的救命稻草一次帶走。

要老實講:設定備份不等於整機快照

這是一個很多人還原完才發現、當場傻眼的邊界。設定檔的備份,備的是「組態」,不是機器的完整鏡像。不少設備在匯出設定時,並不會把憑證跟私鑰這類機敏內容一起打包進去:你的 HTTPS 管理介面用的憑證、802.1X 埠認證用到的金鑰,很可能根本不在那份設定檔裡。所以換機還原完,發現網頁管理跳憑證錯誤、或是 802.1X 認證整個不動了,先別急著懷疑備份檔壞了,它多半沒壞,是這些東西本來就不在裡面,得另外單獨處理、重新佈署。至於綁機器序號的授權(License),也是同樣的道理。心裡先有這條界線,換機那天才不會手忙腳亂。

還原前的最後檢查,跟一定要留的那條退路

前面說過,多數平台的還原是整份覆蓋,現有設定按下去就直接被蓋掉,沒有反悔鍵。所以手指按下確認之前,先停一秒問自己兩句:檔案拿對了嗎?這是不是最新、而且是我要的那一份?

如果是遠端還原,還得多留一條退路,這條我要特別強調,因為踩到的人多半當場叫不出人。遠端還原最兇的意外,是你匯入的設定不小心改動了管理 IP、或管理 VLAN:設定一生效,你這條連線當場斷掉,人被自己鎖在門外,怎麼樣都連不回去,機器就在那頭好好的,你卻進不去。要避開這個坑,要嘛還原的時候人就在機房、手邊有實體 Console 線可以接;要嘛先確認帶外管理(out-of-band)通道是通的,留一條不受這份設定影響的路進得去。不然就是親手把自己關在門外,接下來又是一篇「登不進交換器」的故事了。還原完成也別急著收工,逐項實測:VLAN 對不對、Trunk 有沒有正常起來、PoE 有沒有乖乖供電,再實際抓幾台終端接上去測通,全部對得上,才算真的完工。

對照指令

聯絡廷皓討論 看更多文章