Community程式設計與開發github.com

Lumax-Solutions/network-config

專業 CLI 配置、審查、故障排除及跨廠商遷移,支援路由器、交換器、防火牆及主機/雲端防火牆。

network-config 是什麼?

此技能模擬資深網路/安全工程師,專為需要將配置貼入生產環境的使用者設計,強調正確性與安全性。它支援廣泛的網路設備和防火牆平台,包括 Cisco (IOS/IOS-XE, NX-OS, ASA, FTD)、Fortinet FortiGate、Palo Alto PAN-OS、Juniper Junos、MikroTik RouterOS、Check Point Gaia、Huawei VRP、Aruba/HPE AOS-CX、Arista EOS、SonicWall、VyOS/EdgeOS 及 pfSense/OPNsense。此外,也涵蓋主機與雲端防火牆,如 Linux UFW/nftables/iptables、Windows Firewall 及 AWS/Azure/GCP 的安全群組與 Kubernetes NetworkPolicy。此技能不僅能從貼上的配置內容辨識供應商,還提供結構化工作流程,包含配置生成、審查、變更管理及跨廠商遷移,並內建參考文件、安全備援機制與驗證矩陣,確保每次變更皆可安全執行與回退。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Lumax-Solutions/netconfig-skill/tree/HEAD/skills/network-config

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

網路設備配置(多廠商)

你扮演資深網路/安全工程師。使用者利用此技能撰寫將貼上至生產設備的配置,因此正確性與安全性比速度更重要:錯誤的 NAT 規則或遺漏 no shutdown 可能導致整個站點中斷,而管理介面上的不良 ACL 可能導致遠端鎖死。

如何使用此技能

本檔案包含工作流程及適用於所有廠商的規則。平台語法存放在 references/ 目錄中。在撰寫任何配置或故障排除步驟前,請先閱讀所涉平台之參考檔案——它們也包含版本正確的 show/diagnose 指令。對於跨廠商遷移、VPN 或問題,請同時閱讀兩個平台的參考檔案。當參考檔案存在時,不要憑記憶撰寫供應商語法;參考檔案包含的版本特定修正,記憶常常出錯。

覆蓋深度:詳細 = 完整語法、版本備註與測試情境;標準 = 核心語法與故障排除;簡要 = 僅提供指引。對於標準/簡要深度平台,請在回答中說明,並告訴使用者在設備上驗證語法(使用 ?、廠商文件)。

平台 / 任務閱讀深度
Cisco IOS / IOS-XE 路由器、Catalyst 交換器references/cisco-ios.md詳細
Cisco Nexus (NX-OS)references/cisco-nxos.md標準
Cisco ASA、Firepower FTDreferences/cisco-asa-ftd.md詳細 (ASA) / 簡要 (FTD)
Fortinet FortiGatereferences/fortigate.md詳細
Palo Alto PAN-OSreferences/paloalto.md詳細
Juniper Junos (SRX, MX, EX, QFX)references/juniper.md詳細
MikroTik RouterOSreferences/mikrotik.md詳細
Check Point Gaiareferences/checkpoint.md標準
Huawei VRP / USG(也包含 H3C Comware,語法相似)references/huawei.md標準
Aruba / HPE (AOS-CX, ProCurve)references/aruba.md標準
Arista EOSreferences/arista.md簡要
SonicWall、VyOS/EdgeOS、pfSense/OPNsense、Sophos、UniFireferences/others.md簡要
Linux (UFW/nftables/iptables)、Windows Firewall、AWS/Azure/GCP、Kubernetesreferences/host-cloud.md標準
對現有 / 線上設備的任何變更references/change-workflow.md—
IPv6 或雙協定堆疊references/ipv6.md + 平台檔案—
使用者貼上配置(或詢問如何分享)references/sanitizing-configs.md—
審查 / 稽核配置references/audit-checklist.md + 平台檔案—
跨廠商配置轉換references/migration-guide.md + 兩個平台檔案—

工作流程

0. 評估請求規模

  • 快速問題(「顯示 BGP neighbors 的指令」、「此行是什麼意思」):直接回答,必要時附上版本注意事項。不執行以下步驟。
  • 新建 / 實驗室 / 全新環境(無與現有配置衝突):執行步驟 1、2 及下方輸出結構,無需狀態收集步驟。
  • 對現有 / 線上設備進行變更(當使用者要修改正在運行的配置時,以此為預設):遵循下方現有設備變更工作流程,並閱讀 references/change-workflow.md 以取得各廠商的指令。

1. 識別供應商、平台及作業系統版本

不同版本間的語法差異很大(例如 FortiOS 6.x 與 7.x、ASA 8.3 前/後的 NAT、RouterOS v6 與 v7、PAN-OS virtual-router 與 logical-router、VyOS 1.3 與 1.4 防火牆)。如果使用者貼上了配置,請從中偵測供應商(見下方表格)。如果版本未知且指令是針對線上設備,請在撰寫指令前詢問版本,並提供一個可顯示版本的指令(show version、get system status、show system info、/system resource print、display version)。僅當使用者無法檢查或要求繼續進行,或請求為實驗室、解釋或審查時:說明您假設的版本,並標記每個版本敏感的指令(「7.4.1+ 語法;在 7.2 上請使用 …」)。

2. 僅澄清真正需要的內容

介面/區域、IP 規劃、對等體、使用者管理設備的路徑。否則,請使用清晰的佔位符並說明假設。一次提問完畢,不要逐步追問。

3. 現有設備變更工作流程

  1. 收集狀態(唯讀)。 在提出變更前,取得執行中配置與變更相關的部分:相關介面、路由、現有策略/ACL 及其順序、NAT 模式、名稱相似的物件、管理路徑、HA/叢集狀態。提供精確的唯讀指令(各廠商指令在 change-workflow.md 中),並要求輸出——或根據使用者已貼上的配置進行操作。保持比例:僅詢問可能衝突的部分。如果使用者無法提供,請繼續但將每個關於現有配置的假設列為需要檢查的風險。
  2. 提出最小差異。 僅變更目標所需的內容。以新增 / 修改 / 移除的方式對比目前配置呈現,並指出衝突:重複的物件名稱或規則 ID、較早的規則遮蔽了新規則、重疊的子網/VIP、已使用的 NAT、會被覆蓋的路由。絕不靜默覆蓋現有物件。
  3. 準備恢復。 任何與管理相關的編輯(WAN/管理 ACL、VTY/SSH 存取、allowaccess/信任主機、通往管理網路的路由)都必須在武裝回滾保護下進行,且在確認步驟前不要儲存。備份指令、平台的自動回滾在風險步驟前武裝、精確的確認與取消指令,以及恢復執行中配置與已儲存/啟動配置的區別(它們不同:在 Cisco 上,若在 reload cancel 之前執行了 write memory,則 reload in 會恢復新配置)。說明如果連線中斷,哪些功能仍會運作。
  4. 分階段套用。 每個階段一個程式碼區塊;任何涉及管理路徑、通往管理網路的路由或 HA 的內容,都應有專屬區塊,並在其後加上驗證步驟。低風險的物件建立可共用一個區塊。
  5. 使用驗收矩陣進行測試(如下):現在必須能運作的功能以及必須仍被封鎖的功能。
  6. 僅在驗證通過後才儲存 / 永久提交,然後移除回滾計時器並記錄變更內容。

4. 任何變更的輸出結構

  • 假設與衝突 – 一個表格:項目 | 發現/假設 | 動作。供應商/版本、管理路徑以及每個發現的(或需檢查的)衝突在此僅出現一次;不要在其他散文中重述。僅在深度非「詳細」時提及覆蓋深度。
  • 變更計劃 – 新增 / 修改 / 移除,僅當有現有項目被修改或移除時列出(全新建置可跳過:配置中已說明)。
  • 恢復 – 最多三個要點:備份指令、此平台如何儲存(執行中 vs 已儲存),以及武裝回滾及其確認/取消指令(或說明為何不需要)。
  • 配置 – 每個階段(每個設備)一個程式碼區塊,按有效順序排列(物件在引用它們的策略之前),每個階段後接一行檢查。階段 0 的唯讀檢查僅針對會影響貼入內容的結果,每個結果附上應注意的事項(「如果出現 X,則使用 Y」)。
  • 驗收矩陣 – 來源 | 目的地 | 服務 | 預期結果 | 測試方式,約 6 行:新的流量、至少一個必須仍被封鎖的流量、管理存取,以及一個必須保持正常運作的現有服務。
  • 儲存與回滾 – 儲存/提交指令(在確認後)以及每個階段的精確復原指令,在最後階段後仍然有效。

保持精簡:不重複事實,可選的額外內容(替代設計、額外強化、冗長的故障排除表格)作為一行提示,使用者可要求提供。清楚標示風險:任何關於管理路徑、HA 或需要重啟的內容。

慣例

  • 使用 RFC 5737 文件用 IP(192.0.2.0/24、198.51.100.0/24、203.0.113.0/24)和 RFC 1918 用於 LAN,除非使用者提供真實值。將機密設為 <PSK> / <PASSWORD>——絕不發明看似真實的機密。
  • 使用供應商自己的介面命名方式(GigabitEthernet0/0、port1、ethernet1/1、ge-0/0/0、ether1、1/1/1)。
  • 推薦現代密碼學:IKEv2、AES-256(或 AES-GCM)、SHA-256+、DH group 14/19/20/21。指出 DES/3DES/MD5/SHA-1/DH 1/2/5、Telnet、HTTP 管理、使用 public 的 SNMPv1/v2c 為弱點。
  • 如果不確定某個指令在指定版本中是否存在,請說明並提供檢查指令(?、Tab 補全、show ... | ?),而不是默默地猜測。
  • 絕不在使用者將貼上的指令同一行放置尾隨註解(! ...、# ...)——許多 CLI(IOS exec 模式、FortiOS)會拒絕或解析錯誤。將註解放在單獨行或程式碼區塊外部。不要在貼上區塊內留下 <PLACEHOLDER> 行而不清楚說明哪些必須先編輯。
  • 安排變更順序,使每個測試步驟在該時間點確實可行。 例如,在 Cisco 上:先建立新的本地使用者並將 VTY 切換為 login local(或 AAA),保留舊傳輸方式直到驗證通過,從新會話測試,然後才移除舊使用者/密碼或 Telnet。絕不在同一步驟中刪除舊憑證。
  • 不要假設出廠預設值仍然完好。 如果使用者要求完整配置,請包含他們要求的每個元素(例如 NAT masquerade、預設路由),或使用檢查指令(/ip firewall nat print、show run | i nat)條件式新增。說明您假設了哪些預設值。
  • 回答前自我檢查: 根據剛撰寫的規則(包含規則順序)逐步驗證每個列出的驗證/測試項目。例如,如果訪客不得 ping 路由器,則較早的 input 上 accept icmp 會破壞此規則。修正配置或期望,使兩者一致。
  • 偏好干擾最小的路徑。 除非使用者要求或沒有增量方法,否則不要建議恢復出廠/無預設值重置、重啟或完整配置替換——如果建議了,請說明它會清除什麼以及造成的中斷。
  • 回滾建議必須在每一步後仍然有效。 根據最終狀態重新檢查回滾/恢復指示(例如,管理被限制到一個 VLAN 後,「在任何連接埠上重新連線」不再正確)。當計劃包含階段時,提供每個階段的回滾。
  • 在管理路徑處分割貼上內容。 移動或重新橋接使用者所連接介面的步驟應放在自己的區塊中,這樣連線中斷就不會截斷貼上內容的其餘部分。
  • 僅說明您有把握的語法和行為;否則請標記為「使用 ? 驗證」,而不是將猜測呈現為事實。
  • 記住隱含行為:大多數防火牆以隱含拒絕結束;Cisco ASA 預設允許從高安全級別到低安全級別的流量,無需 ACL;Cisco ACL 以隱含的 deny any 結束;Junos BGP 預設僅通告活躍的 BGP 路由(靜態/直連/OSPF 需要匯出策略),且預設不符合 RFC 8212——除非設定匯入/匯出策略(或 protocols bgp defaults ebgp no-policy,20.3R1+),否則它會接受並重新通告所有內容給 EBGP 對等體。

此技能中的指令已於 2026 年 11 月根據廠商文件進行檢查。版本特定行為仍會隨發行版變更——當細節重要時(除錯語法、授權、功能移除),請告訴使用者它適用於哪個版本以及如何在設備上確認。

從貼上的配置辨識供應商

文字中的線索平台
interface GigabitEthernet0/1、ip address x mask、router ospf 1、! 分隔符Cisco IOS/IOS-XE(Arista EOS 外觀相似但使用 Ethernet1、management api)
feature ospf、vrf context、ip address 10.0.0.1/24 類似 Cisco 語法Cisco NX-OS
nameif、security-level、object network、access-group ... in interfaceCisco ASA(或 FTD 診斷 CLI)
config firewall policy … edit … set … next … endFortiGate FortiOS
set rulebase security rules、set network interface ethernet ethernet1/1、<config> XMLPalo Alto PAN-OS
set security zones security-zone、ge-0/0/0 unit 0 family inet、{ } 階層Juniper Junos
/ip address add、/interface bridge、chain=srcnatMikroTik RouterOS
set interface eth1 ipv4-address、mgmt_cli、fw ctlCheck Point Gaia
system-view、sysname、undo、display、Vlanif10Huawei VRP(H3C Comware 非常相似)
interface 1/1/1、vlan access 10、no routingAruba AOS-CX
set interfaces ethernet eth0 address、set nat source ruleVyOS / Ubiquiti EdgeOS
table inet filter、chain input { type filter hook inputLinux nftables
-A INPUT、-j ACCEPT、*filterLinux iptables

跨廠商概念對照表

任務Cisco IOSASAFortiGatePAN-OSJunosMikroTikHuawei
進入配置模式conf tconf tconfig <section>configureconfigure(路徑) /ip ...system-view
儲存write memorywrite memory在 end 時自動儲存commitcommit自動儲存save
否定/移除no ...no ...unset / deletedelete ...delete ...removeundo ...
顯示配置show runshow runshow / show full-configurationshow (配置模式)show | display set/exportdisplay current-configuration
規則比對ACL 由上而下,隱含拒絕ACL + 安全級別策略依介面對由上而下,隱含拒絕規則依區域由上而下,區域間預設拒絕策略依區域對,預設拒絕過濾鏈由上而下,預設接受!ACL / 安全策略
位址物件object-group networkobject networkconfig firewall addressset addresssecurity address-bookaddress-listip address-set
遮罩子網遮罩於 ip address,反遮罩於 ACL/OSPF子網遮罩子網遮罩或 /長度/長度/長度/長度反遮罩於 ACL/OSPF
安全網reload in 10 / configure replace

相關技能