🛠️ Junos OS 核心操作指南:與傳統 Cisco IOS 在 CLI 邏輯上的關鍵差異分析
對熟悉 Cisco IOS 的工程師而言,第一次接觸 Junos OS 最容易卡住的點,往往不是指令「長得像不像」,而是背後的 CLI 邏輯完全不同: Junos 是「先編輯候選設定 → 檢核 → commit 一次套用」;而傳統 IOS 更像「直接改 running-config → 再另存」。 這篇以實務角度把差異拆解成可落地的操作心法與對照指令,讓你能快速上手並避免常見踩雷。
一、CLI 的「兩世界」:Operational vs Configuration
Junos 把日常操作切成兩個世界:Operational mode(看狀態、查資訊、清 counters)與 Configuration mode(編輯候選設定)。Cisco IOS 則常把「show / conf t」混在同一套 CLI 氣氛裡。
# Junos:進出模式
> configure # 進入 configuration mode
# exit # 離開 configuration mode
> show ... # operational mode 查狀態
# show ... # configuration mode 也可 show(多用於看 config)
! Cisco IOS:常見節奏
Router# show ...
Router# conf t
Router(config)# ...
Router(config)# end
Router# write memory (或 copy run start)
核心差異:在 Junos,你應把「查狀態」與「改設定」視為兩個工作流;這會直接影響變更安全性與稽核品質。
二、候選設定(Candidate Config)vs Running Config:變更的安全邏輯
Junos 的配置不是「打了就生效」,而是先寫進候選設定,最後再 commit 套用;這對企業變更流程非常關鍵。
# Junos:典型變更流程
configure
set system host-name R1-Junos
commit check # 先檢核語法/依賴關係
commit # 一次套用
exit
! Cisco IOS:典型變更流程(傳統觀念)
conf t
hostname R1-IOS ! 多數設定當下就進 running-config
end
write memory ! 另存到 startup-config
實務建議:Junos 的 commit check 是「上線前的最低成本驗證」,養成習慣能顯著降低變更事故率。
三、Rollback 與 commit confirmed:Junos 內建的「救命繩」
Junos 最實用的優勢之一,是把回滾設計成標準能力,而不是靠人記得怎麼救。
1) commit confirmed:遠端變更必備
# Junos:先套用,若 5 分鐘內沒確認,會自動回滾
commit confirmed 5
# 確認一切正常後再正式提交(取消倒數)
commit
這個思路等同把「變更後可自動回復」內建在流程中,尤其在你調整 ACL、管理面存取、或更動 Gateway/路由政策時非常重要。
2) rollback:快速回到上一版
# Junos:回到上一個 commit 的版本
rollback 1
show | compare
commit
Cisco 也能靠 archive / config replace 等方式達到類似效果,但 Junos 的一致性與日常可用性通常更高。
四、階層式設定(Hierarchical)是 Junos 的「語言本體」
Cisco IOS 以「進介面、進路由程序」的模式來組織設定;Junos 則是嚴格的樹狀階層。 你可以用兩種方式編輯:階層式 edit 或 set/delete。
1) set/delete:快速且可複製貼上
# Junos:set/delete 範例
set interfaces ge-0/0/1 unit 0 family inet address 10.10.10.1/24
delete interfaces ge-0/0/1 unit 0 family inet address 10.10.10.1/24
2) edit/top/up:讀結構、做批次調整
# Junos:階層式編輯
edit interfaces ge-0/0/1 unit 0 family inet
set address 10.10.10.1/24
top
3) 互相轉換:show | display set 是神技
# Junos:把階層式 config 轉成 set 形式,方便複製/比對
show configuration interfaces ge-0/0/1 | display set
建議用法:讀設定用階層式,搬設定用 display set,兩者切換能顯著提升效率。
五、比對與可視化:show | compare 讓變更「可審核」
Junos 強調變更可被理解與審核,因此提供非常直覺的差異比對。
# Junos:看候選設定 vs 目前生效設定差異
show | compare
! Cisco IOS:常見替代方式(依平台功能而異)
show running-config
show startup-config
! 或搭配 archive / diff / config replace 能力
如果你的環境有變更審核或稽核需求,Junos 的 compare 幾乎是「變更單」的天然輸出。
六、管線(pipe)過濾:Junos 的 CLI 查詢更接近資料處理
Cisco 有 | include / | section 等過濾;Junos 則把 pipe 做得更像資料處理器,常用的包括 match/except/count/last。
# Junos:常用 pipe
show interfaces terse | match ge-0/0
show configuration | match "system host-name"
show log messages | last 50
show interfaces | match "Errors" | count
若你習慣「用 CLI 直接把資訊收斂成答案」,Junos 的 pipe 會讓排障速度更快。
七、設定載入與取代:merge/override/replace-pattern 的企業實戰價值
Junos 對「批次變更」與「策略化套用」提供很多原生能力,適合標準化與大規模維運。
# Junos:載入設定(示意)
load merge terminal
# 貼上片段後 Ctrl+D
# 覆蓋/取代(風險較高,務必搭配 compare + commit confirmed)
load override terminal
# 以 pattern 批次替換(常用於大量改描述、IP 段、社群等)
replace pattern "OLD" with "NEW"
實務建議:批次操作務必先 show | compare,再 commit confirmed,最後再正式 commit。
八、快速對照:你最常用的 IOS 指令,在 Junos 對應是什麼?
IOS:show run → Junos:show configuration
IOS:copy run start / wr mem → Junos:commit(設定即被保存為可回滾版本)
IOS:conf t → Junos:configure
IOS:no xxx → Junos:delete xxx
IOS:show ip int brief → Junos:show interfaces terse
IOS:show ip route → Junos:show route
IOS:terminal length 0 → Junos:set cli screen-length 0
IOS:reload in / revert → Junos:commit confirmed(更貼近變更保護)
把這段對照記熟,你的上手時間會直接少一半。
九、最佳實務(務實版):把 Junos 用出「企業級安全」
- 所有遠端高風險變更:優先使用
commit confirmed。 - 每次上線前:固定
commit check+show | compare。 - 標準化:用
display set做模板,用groups/apply-groups做策略套用。 - 可回滾:把 rollback 當成流程的一部分,而不是事故發生後才想起來。
延伸閱讀
- 🧩 Juniper 初始設定與基本測試教學"
- ⚙️ Juniper DHCP 錯誤排除與正確設定教學"
- Juniper 設備啟用 DHCP 伺服器設定教學(Junos OS)
- 📚 Juniper 官方文件入口(Junos Documentation)
- 📚 Cisco IOS 官方設定與參考文件入口
— WWFandy・Network 筆記
💬 留言互動|你最常踩雷的 CLI 差異是哪一個?
你從 IOS 轉 Junos 時,最不習慣的是 commit、階層式設定、還是 pipe 過濾? 在下方留言你的設備型號與使用情境(交換 / 路由 / 防火牆),我可以把「常用操作對照表」擴充成更貼近你現場的版本。
前往留言區