Cisco 交換器盤點常用指令
用途:接手網路設備時,用來盤點 Cisco 交換器、重建網路拓撲與設備清單。指令以 Cisco IOS / IOS-XE 為準,不同型號可能略有差異。
一、登入與基本操作
| 指令 | 用途 | 備註 |
|---|---|---|
enable |
進入特權模式(提示符號由 > 變成 #) |
需輸入 enable 密碼 |
configure terminal |
進入設定模式 | 改設定才需要,盤點時不用 |
terminal length 0 |
讓輸出一次顯示完,不分頁 | 方便複製整段輸出存檔 |
exit / end |
離開目前模式 / 直接回到特權模式 | |
copy running-config startup-config |
把目前設定存到開機設定 | 也可用 write memory;有改設定才需要 |
二、找出相鄰設備(拓撲盤點最重要)
| 指令 | 用途 | 備註 |
|---|---|---|
show cdp neighbors |
簡要列出相鄰的 Cisco 設備與連接 port | Cisco 預設開啟 CDP |
show cdp neighbors detail |
相鄰設備的名稱、型號、管理 IP、IOS 版本、雙方 port | 最重要,用來一台一台往下追 |
show lldp neighbors detail |
用 LLDP 查相鄰設備 | 可看到非 Cisco 設備;需先開啟 LLDP |
三、設備基本資料
| 指令 | 用途 | 備註 |
|---|---|---|
show version |
型號、IOS 版本、開機時間、設備名稱 | |
show inventory |
型號與序號(含模組、光纖模組) | 做財產清冊很好用 |
show running-config |
目前生效的完整設定 | 建議每台都存檔備份 |
show startup-config |
開機時載入的設定 | 與 running 不同,代表有改了沒存 |
四、介面與 VLAN
| 指令 | 用途 | 備註 |
|---|---|---|
show ip interface brief |
各介面 IP 與上下線狀態 | 查管理 IP、VLAN 介面 |
show interfaces status |
每個 port 的狀態、VLAN、速度 | 快速看哪些 port 有在用 |
show interfaces trunk |
哪些 port 是 trunk、帶哪些 VLAN | trunk 通常就是接其他交換器 |
show vlan brief |
VLAN 清單與所屬 port | |
show interfaces Gi1/0/1 |
單一 port 詳細狀態與錯誤計數 | 查線路品質問題 |
五、追查終端設備
| 指令 | 用途 | 備註 |
|---|---|---|
show mac address-table |
MAC 位址與所在 port | 某 port MAC 很多但沒有 CDP 鄰居,可能接了小交換器 |
show mac address-table interface Gi1/0/1 |
查單一 port 學到的 MAC | |
show ip arp |
IP 與 MAC 對照表 | 在核心(三層)交換器上查才完整 |
六、狀態與除錯
| 指令 | 用途 | 備註 |
|---|---|---|
show logging |
系統日誌 | 查斷線、port 上下線紀錄 |
show spanning-tree |
生成樹狀態、哪些 port 被擋 | 查迴圈問題 |
show environment all |
電源、風扇、溫度 | 部分型號指令略有不同 |
ping <IP> / traceroute <IP> |
測試連線與路徑 |
七、重建拓撲的步驟
- 在自己電腦執行
ipconfig,預設閘道通常就是核心交換器(或防火牆)的 IP。 - 用 SSH 登入核心交換器,執行
terminal length 0。Telnet 會以明文傳送帳密,不建議使用;老舊設備若不支援 SSH,須經核准才可暫用,並列入汰換或改善計畫。 - 執行
show cdp neighbors detail、show version、show inventory、show ip interface brief、show interfaces status、show vlan brief、show running-config,並存檔。 - 從 CDP 結果取得下一台交換器的管理 IP,登入後重複步驟 3,直到沒有新設備。
- 沒有 CDP 鄰居但 MAC 很多的 port,用
show mac address-table interface追查,再到現場確認。
八、注意事項
- 沒有帳密時,需到現場用 console 線走 Cisco password recovery,過程要重開機,請排在非上班時間。
- 部分 port 若設定了
no cdp enable,就要靠 MAC 表或現場看線。 - 盤點時只用
show指令,不會改變設定;進入configure terminal後的操作才會影響運作。 - 交換器數量多時,可用 Python(Netmiko)寫工具自動爬 CDP,產出設備清單與拓撲圖。
九、查交換器本身的 IP 與 MAC
| 指令 | 用途 | 備註 |
|---|---|---|
show ip interface brief |
查管理 IP | 看 Vlan 開頭那行(如 Vlan1、Vlan10) |
show version | include MAC |
查交換器本身 MAC | 顯示 Base ethernet MAC Address |
show interfaces vlan 1 | include address |
一次看 IP 與 MAC | Vlan1 換成實際管理 VLAN;address is 為 MAC,Internet address is 為 IP |
若要查的是接在交換器上的電腦:先用 show mac address-table 查 MAC,再到核心交換器用 show ip arp 對出 IP。
十、Python 自動盤點工具與端點防護
工具用途:自動完成手動盤點,一台一台登入交換器下 show 指令並整理結果。程式只下 show 指令,不會改任何設定。
- 輸入核心交換器 IP 與帳號,密碼執行時輸入,不寫在程式裡。
- 用 SSH(Python 的 Netmiko 套件)登入,執行
show cdp neighbors detail、show version、show inventory等指令。 - 從 CDP 結果取得下一台的管理 IP,繼續登入,直到沒有新設備。
- 產出設備清單 Excel、port 連線對照表、拓撲圖(瀏覽器開啟)及每台 running-config 備份。
端點防護誤判風險:
| 執行方式 | 被擋機率 | 原因 |
|---|---|---|
直接執行 .py 原始碼 |
低 | 執行的是 Python 官方有簽章的 python.exe,腳本是純文字檔 |
打包成 .exe(PyInstaller) |
較高 | 無數位簽章、使用者少,信譽評等偏低,行為偵測也可能攔截 |
網路行為:工具只連 CDP 查到的設備,不會掃描整個網段。執行前仍應通知網管與資安單位,避免被入侵偵測系統誤判為攻擊。
使用前的做法:
- 用
.py執行,不要打包成 exe。 - 使用前先向資安窗口報備、走例外申請。若需要排除,只用檔案雜湊值(檔案被改過就失效),不要排除整個資料夾,並留下紀錄。
- 先在測試環境試跑,確認運作正常再正式使用。
- 在無法連網的離線環境,
pip install netmiko會失敗,需先在可上網的電腦下載離線安裝檔,掃毒後再帶入。 - 安裝 Python 前確認組織的軟體安裝規範,必要時走申請流程,留下稽核紀錄。
- 不想安裝任何軟體:用 PuTTY 或 Tera Term 開啟記錄輸出,手動下指令後整理記錄檔。
十一、用 Console 線連線交換器
還沒設定管理 IP,或忘記帳密要走 password recovery 時,就要用 Console 線直接連到交換器。
- Console port 位置:依機型不同,可能在前面板或後面板,是一個標示「CONSOLE」的 RJ-45 孔;部分新機型另有 USB 介面的 Console port。
- 不要插錯孔:部分機型背面有一個像 VGA 的多針接頭,那是 RPS(備援電源)接頭,用來接備援電源設備,與登入無關,不要插 Console 線。
- 線材與接法:要用 Cisco Console 線(淺藍色扁線,又稱 rollover 線),一般網路線不能用。另一端是 DB9 序列埠,電腦沒有序列埠時要再接 USB 轉 RS-232 轉接線:電腦 USB → USB 轉 DB9 轉接線 → Console 線(DB9 端)→ RJ-45 端插 CONSOLE 孔。
- 驅動程式:到裝置管理員 →「連接埠 (COM 和 LPT)」查 COM 號碼;若沒有或有驚嘆號,需安裝轉接線驅動(常見晶片 PL2303、FTDI)。
- 連線軟體與參數:PuTTY 或 Tera Term,連線方式選 Serial、填 COM 號碼;參數 9600、8 個資料位元、無同位元、1 個停止位元、不使用流量控制(9600 8N1)。畫面全黑時按幾下 Enter。
- 老舊機型:若型號已停止支援與安全更新(EoL),盤點或稽核時應列入汰換計畫或風險接受清單。
十二、情境題:為什麼外部單位的交換器不直接接核心?
情境(示意):以下為一般化的示意情境,常見於和外部單位介接的網路。外部單位管理的上游交換器,先接到我方機房的分界交換器(二層),再接到我方核心交換器(三層)。各網段以 VLAN 區分,一個 VLAN 對應一個網段。
Q:為什麼不直接接核心?常聽到的說法是怕兩邊的路由亂掉,是這樣嗎?
A:這種接法不奇怪。上游交換器屬於其他單位管理,中間放一台自己的交換器當「分界點」,目的是避免別人的設備直接影響我方核心。路由只是其中一項,實際上二層的風險更需要注意:
- VTP(最危險):若 VTP 網域名稱相同、對方 revision 較大,對方的 VLAN 設定可能整個蓋掉我方核心的 VLAN,造成全面斷線。
- STP:對方優先權較高時可能搶走 Root Bridge,改變整個網路的轉送路徑。
- 路由:兩邊都是三層設備且都開 OSPF/EIGRP 時,可能互相學到路由,對方的錯誤路由或預設路由會流進來。
盲點:分界交換器若是二層設備,路由協定封包會直接穿過去。若上游與核心在同一個 VLAN 且都開動態路由,中間隔著分界交換器仍會建立鄰居。分界交換器是否真的有保護作用,要看設定:
- STP:分界交換器接上游的 port 設 Root Guard。對方想搶 Root Bridge 時,該 port 會被暫時擋下,STP 仍正常運作。不要在交換器之間的線路設 BPDU Filter,那等於關掉這條線的 STP,有備援路徑時會形成迴圈、引發廣播風暴。
- VTP:分界交換器設為 transparent 只保護它自己,它仍會把 VTP 通告轉送下去(v2 不論網域名稱都轉送,v1 在網域名稱相同時轉送),核心照樣可能被覆蓋。核心也要設為 transparent 或 off、設定 VTP 密碼,或改用 VTPv3。
- 路由:核心對該方向使用靜態路由,或將該介面設為 passive-interface,不交換動態路由。
若以上都沒設定,中間那台只是多一個單點故障,沒有實際保護效果。
因為各單位以 VLAN 區隔,上游到分界交換器很可能是 trunk,VTP 與 STP 風險比路由更值得注意。若我方網段的閘道在核心,且上游沒有我方網段的 SVI,上游只是搬運二層流量,路由問題不太會發生。
確認用指令:
| 指令 | 用途 | 在哪台執行 |
|---|---|---|
show interfaces trunk |
看接上游的 port 是否為 trunk、帶哪些 VLAN | 分界交換器 |
show vtp status |
看 VTP 模式與網域名稱 | 分界、核心都執行 |
show spanning-tree |
看 Root Bridge 是誰 | 分界交換器 |
show running-config interface Gi0/x |
看該 port 有無 Root Guard、是否誤設 BPDU Filter | 分界交換器(Gi0/x 換成接上游的 port) |
show ip route |
看有無來自上游的路由 | 核心 |
show ip ospf neighbor |
看上游是否為路由鄰居 | 核心(EIGRP 用 show ip eigrp neighbors) |
稽核觀點:ISO/IEC 27001:2022 對應
| 筆記內容 | 對應控制措施 | 稽核時可以問、可以查 |
|---|---|---|
show inventory 取得型號與序號 |
A.5.9 資訊及其他相關聯資產之清冊 | 資產清冊是否涵蓋所有網路設備?序號與實物是否一致? |
每台備份 running-config;running 與 startup 不同代表改了沒存 |
A.8.9 組態管理、A.8.13 資訊備份 | 是否有組態基準與定期備份?變更後是否存檔並留紀錄? |
盤點只用 show;改設定排在非上班時間 |
A.8.32 變更管理 | 設定變更是否經申請、核准、測試與紀錄? |
show logging 查斷線紀錄 |
A.8.15 存錄 | 設備日誌是否集中保存?保存多久? |
| 老舊機型已停止支援與安全更新 | A.8.8 技術脆弱性管理 | 是否有停止支援(EoL)設備清單,以及汰換計畫或風險接受紀錄? |
| password recovery 只需要實體接觸 console | A.7.2 實體進入 | 機房與機櫃的進出是否受控並留紀錄? |
| 與外部單位相接處的 VTP/STP/路由風險 | A.8.20 網路安全、A.8.22 網路區隔 | 網路架構文件是否標示與外部單位的分界點及防護設定? |
| 密碼執行時才輸入,不寫進程式 | A.5.17 鑑別資訊 | 腳本或設定檔中是否有明文密碼? |
| 安裝 Python 前確認軟體安裝規範 | A.8.19 運作中系統之軟體安裝 | 是否有軟體安裝申請與核准紀錄? |