熱門分類
載入中…
目錄0%

🛠️ Junos OS 核心操作指南:與傳統 Cisco IOS 在 CLI 邏輯上的關鍵差異分析

    🛠️ 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 則是嚴格的樹狀階層。 你可以用兩種方式編輯:階層式 editset/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 當成流程的一部分,而不是事故發生後才想起來。

    💬 留言互動|你最常踩雷的 CLI 差異是哪一個?

    你從 IOS 轉 Junos 時,最不習慣的是 commit、階層式設定、還是 pipe 過濾? 在下方留言你的設備型號與使用情境(交換 / 路由 / 防火牆),我可以把「常用操作對照表」擴充成更貼近你現場的版本。

    前往留言區

    延伸閱讀

    — WWFandy・Network 筆記

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級