Cisco のコマンド互換性まとめ
コマンドリストを作成するときに、気にしていることのまとめ。
基本方針
各機器で使用している機能を洗い出す
vlan / EtherChannel / OSPF など、使用する機能別に show コマンドを調査する。
大体コンフィギュレーション ガイドに記載がある。
各機能ごとに 2 つの観点からコマンドを選定する
機能確認 : 正常に動作していること
- トラブルシューティング時に、正常であることを確認できるコマンドをリストアップする
- 例) show interfaces trunk で Vlan が allowed されていること
- show run で allowed が設定されていても vlan が作成されていないと、このコマンドで allowed に出て来ない = 異常と判明する
- 例) show mac address-table でトラフィックを送受信する端末の MAC アドレスが学習されていること
- ソフトウェア不具合に該当した場合、MAC アドレステーブルの正常性を証明する必要があるため、予め取得しておく
- ルーティング テーブルなどのエントリも同様に取得する
冗長確認 : 切り替え時に変化が確認できること
- 冗長切替発生時、正常時と比較して切り替えが確認できるコマンドをリストアップする
- 例) LAG メンバー 2 本のうち、1 本をダウンさせた後、show etherchannel summary で 2 ポートの片方が (P) でバンドルされていて、もう片方が (D) でダウンしていること
- 障害試験の正常時と異常時に取得して、想定通り切り替えができたか確認できる
使用できないコマンドを選定していないか
例えば show interfaces status では以下のミスがあった。
- show interfaces status をルータで取得してしまう
- Vlan / access / trunk を表示するコマンドだが、ルータにこのスイッチポートは基本的に存在しない
- スイッチポート モジュールを搭載したルータには使用可能なのがまたややこしい
- この場合もルーテッド ポートは表示対象外
- ダウン・アップを確認したいのであれば、以下の代替コマンドを使用するべき
- show ip interface brief
- show ipv6 interface brief
- show interface description
- 何々の情報を取得したいからこのコマンド、というように目的を意識しないとこのような失敗をしてしまう
- show interfaces status を Nexus で取得しようとしてエラー
- NX-OS では show interface status (s が無い単数形) が正しい
- 実機確認の重要性がわかる事例
- 普段マクロで取ってて障害になってから、取れてないことがわかったりすると悲惨
仮想 OS , 実機で投入確認を行い、取得できたコマンドをリストに反映する
人間のレビューのように曖昧な確認よりも、実際の機械に確認したもらったほうが確実。
現地で試験表のコマンドを書き換えるのは避けたい。
確認できる仮想 OS としては、以下の例が挙げられる。
- ルータ : IOSv , XRv
- スイッチ : IOSv-L2 , NX-OS 9000v
- ファイアウォール : ASAv
ルータ IOS / IOS-XE
IP ルーティング、IP アプリケーションなど、ハードウェアに依存しない機能は他の IOS と共通のコマンドが使用可能。
ルータの機能が動作するため、スイッチのコマンドは使用できない。
主に該当する機種
IOS
- C891FJ , C892J
- C921J
IOS-XE
- C1111
- ISR4000
- ASR900 , ASR1000
使用不可コマンドの例
show mac address-table
- ルータは通常、送信先の決定に MAC アドレステーブルを使用しない
- L2VPN , bridge などの L2 機能の動作時を除く
show interfaces status
- Vlan / access / trunk を表示する、スイッチポートのコマンドは基本的に使用できない
- C892 など、スイッチポートを持つ機種は表示できる
ルータ IOS-XR
show ip route -> show route など Juniper の Junos っぽいコマンド体系になっている。
基本的に IOS / IOS-XE とは別物としてコマンドを調査する必要あり。
64 bit カーネルの eXR (Eveolved XR) になってからは、ハードウェア管理 VM と IOS-XR VM に分離 [1] [2]しており、メモリ確認など複雑になっている。
- メモリ取得コマンドをアレンジする必要あり
主に該当する機種
ASR9000
NCS5000
Cisco8000
スイッチ IOS / IOS-XE
IOS と IOS-XE で違いを意識してコマンドを変える必要はほとんど無い。
強いて言えば IOS-XE だとハードウェア確認のコマンドが、ある程度 show platform 系にまとめられている。
Ethernet Virtual Circuit (EVC) などルータ系特有な機能のコマンドは使用できない。
主に該当する機種
IOS
- Catalyst 1000
- Catalyst 2960
- Catalyst 3560 , 3750
IOS-XE
- Catalyst 3650 , 3850
- Catalyst 4500-X
- Catalyst 9000
使用不可コマンドの例
show bridge (実行できても何も取得できない)
スイッチ NX-OS
Catalyst の IOS-XE と共通で使えるコマンドが多い。
一方で show etherchannel -> show port-channel など変更になっているコマンドもある。
feature コマンドで有効にしないと、show コマンドが存在しないかのように見えてしまうので注意が必要。
switch# conf t
Enter configuration commands, one per line. End with CNTL/Z.
switch(config)# feature bgp
show ip bgp su
2022 Sep 28 23:46:33 switch %$ VDC-1 %$ %LICMGR-2-LOG_LIC_MISSING_WARNING: A feature that requires LAN_ENTERPRISE_SERVICES_PKG license is not installed. System supports honor based licensing so feature will continue to be fully functional. Use 'show license usage <package-name>' to find features using missing license.
switch(config)# show ip bgp summary
Note: process currently not running
リファレンス
- ↑ ASR9K - eXR 'show memory summary' not showing all physical memory https://www.cisco.com/c/en/us/support/docs/routers/asr-9000-series-aggregation-services-routers/213904-asr9k-exr-show-memory-summary-not-sh.html Analysis From release 6.2.1 onwards, eXR on ASR9K will use the Virtual Machine (VM) virtualisation model, switching from using Linux Container (LXC) model which was used in releases 6.1.2 and 6.1.3.
- ↑ ASR9000 64-bit IOS XR: Increase RAM available to XR VM by disabling ISSU https://community.cisco.com/t5/service-providers-knowledge-base/asr9000-64-bit-ios-xr-increase-ram-available-to-xr-vm-by/ta-p/3845978 host OS Admin VM XR VM XR VM v2