2023-09-07 Cisco IOS IOS-XE バージョン選定まとめ
Cisco IOS / IOS-XE のどのバージョンを選択すれば良いか、判断材料となる情報をまとめました。
目的
Cisco IOS / IOS-XE の安全なバージョンを選べるようになる
- バージョン番号を見た時、リスクの高低を見抜ける
機器とバージョンの情報を元に、サポートされるバージョンを選べるようになる
Cisco IOS の基本
Cisco Internet Operating System
の略です。最近は色々と派生 OS が出ています。
IOS と IOS-XE はほぼ一緒の使い勝手ですが、IOS-XR は Junos ライクでだいぶ変わっています。
- IOS : Cat1000 , 2960 系 , C921 , C1100 など
- IOS-XE : ISR4k , ASR1k , Catalyst9000 など
- IOS-XR : ASR9k , CRS-X など
登場当初 - モノリシック カーネルの組み込み OS
組み込み用のため容量が小さく、軽量です。
反面すべてのプロセスが同一のメモリ空間で動作し、1 つのプロセスがクラッシュすると他のプロセス・メモリなどに影響が及んでしまいます。
- ルータ全体の再起動が必要だった
最近の IOS
IOS-XE 15.x- :
- Catalyst4500X から導入
- カーネルが Linux Kernel となった
- IOS はデーモンとして IOSd プロセスが動作する
- 4500X は CPU に組み込み系の MIPS を採用
IOS-XE 16.x- :
- Crimson DB をベースとした動作に変更
- IPC でプロセス間のデータをやり取りしていた -> DB 経由に
- プロセスで保存していたステートを DB に持たせる
- Catalyst 9000 では x86 系 CPU に変更
- 9200L は例外として NOT x86 で、ARMv8 らしい
- DB を使用した OS にするのは Arista の
パクリリスペクトで、Juniper も Junos Evolved で採用を始めている
IOS-XE 16.x- のデータベース
プロセスの動作状態を DB に保存します。プロセスが異常動作しても、DB のデータを元にプロセスを再起動させ、OS 全体に波及させないようにします。
構造化して保存することで、読みやすいデータに変更します。プロセス間の情報のやり取りを DB 経由で行い、複雑さを減らします。
- 直接プロセス間通信を行うと、複雑度が増加し、コード追加・修正などが困難に
Cisco IOS バージョンの読み方
大まかに以下の要素が存在します
IOS バージョンの要素
- メンテナンス デプロイメント
- アーリーデプロイメント
- トレイン
- メジャーバージョン
- スロットル
- リビルド
- フィーチャーセット
例
- Catalyst 6500 Sup2T : IOS 12.2(18)SXF16 IP Services
- SXF トレイン / 12.2 メジャーバージョン / (18) スロットル / 16 リビルド / IP Services フィーチャセット
- Catalyst 9500 High Performance : IOS-XE 16.12.3a Network Advantage
- 16 メジャーバージョン / (12) スロットル / 3a リビルド / Network Advantage フィーチャセット
IOS トレインとは
IOS の種類を指します。最近はトレインの概念はあまり使われなくなってきています。
- Feature Release と Extended Maintenance Release に分けるくらい
- 概念はあまり変わっていないので、覚えておいて損はない
T トレイン :
- テクノロジートレインの略
- 新機能を実装する IOS トレイン
- 新機能をアグレッシブに実装するため不具合が多い
M トレイン :
- メインライン トレインの略
- 不具合修正をメインに実施する
- T トレインよりは不具合が少ない (出ないとは言っていない)
- 12.3T -> 12.4M のように、一つ前の T トレインがベースとなる
S , SY , E トレイン :
- 機器個別のトレイン
- 最近は全体的に IOS の統合が進んでおり、トレインの数を減らしている
IOS スロットルとは
IOS をメンテナンスするマイナーバージョンを指します。
新ハードウェアのサポート・機能追加・不具合修正が行われます。
これが若い番号の場合、安定していないと見るべきです。
メジャーバージョンアップしたばかりで、新機能が十分に市場で評価されていない状態といえます。
IOS リビルドとは
IOS をメンテナンスするマイナーバージョンを指します。
基本的に不具合修正のみ行われますが、まれに新ハードウェアサポート・追加機能が入ります。
これが若い番号の場合、安定していないと見るべきです。
新スロットルで発生する不具合がまだまだ見つかっておらず、十分に市場で評価されていない状態といえます。
IOS バージョン選定の基本の一つは、リビルド番号が十分に大きいバージョンを選ぶことです。
末尾の英数字は、致命的な不具合や脆弱性対策を行う、緊急メンテナンスを意味します。
IOS フィーチャーセットとは
フィーチャーセットは、使用できる機能をまとめた概念です。
Router
- IP Base : 基本的なルーティング
- IP Services : 高度なルーティング
- Advanced IP Services : めっちゃ高度なルーティング
- Advanced Enterprise Services : めちゃくちゃ高度なルーティング
最近は IP Services が一番最上位な場合や、App ライセンスなどで差別化する場合も多いです。
IPsec 暗号化は、専用の HSEC ライセンスを買わないと速度が出ないように制限されています。
- US の製品なので、敵性国家に高速な暗号化通信をデフォルトで提供しないようになっている
- 特にプリセールス フェーズでは注意が必要
- デフォルト 50Mbps -> HSEC 250Mbps など
旧 Catalyst
-L が一番下、-S が低機能版、-E がつくと、高機能版
Lan Lite : スイッチの機能がかなり制限されたバージョン QoS で ACL が使えなかったりする
Lan Base : L2 スイッチとしては大体使用可能
IP Lite / IP Base : L3 スイッチの基本機能をサポート
IP Services / Enterprise Services : L3 スイッチの機能をすべてサポート
Catalyst 9000
-E が低機能版、-A が高機能版 (-E が下になったため、注意 !)
Network Essentials : 旧 Lan Base / IP Base
Network Advantage : 旧 IP Services
フューチャーセットって言うと、恥ずかしい目に合うため注意。
- 未来ってなんだよ (哲学)
IOS-XE ED・SM / MD・EM
ED・SM
Early Deployment / Standard Maintenance Release の略です。
T トレインと近い概念で、新機能を積極的に取り入れるバージョン
新機能 = 新規不具合
EoL が速い
MD・EM
Maintenance Deployment・Extended Maintenance Release の略です。
M トレインと近い概念で、不具合修正をメインに実施するバージョン
EoL までが長期で、リビルド回数が多い
Catalyst 3850 / 9000 の場合、16.3 , 16.6 , 16.9 , 16.12 など、3 刻みのスロットルが MD となり、長期サポートが行われる
最近の IOS-XE
共通コードと標準化
IOS-XE は共通のコードで動作するよう、標準化が進められています。 [1]
例) ASR1k のルータと Catalyst 3850 で同一のバージョンが動作
- NTP / OSPF など、ハードウェアに依存しない機能は、基本的に同じ動作となる
- ルーティング プロトコルなど、ルータのほうが高機能として差別化している場合が多いため、全く同じではありません
- QoS などは QFP / ASIC のハードウェアに依存して動作するため、機種ごとに動作が異なります
Catalyst スイッチは 1000 シリーズを除き、UADP ASIC + IOS-XE にほぼ一本化
- Catalyst 2960 -> Catalyst 1000 : Classic IOS
- Catalyst 2960XR -> Catalyst 9200 : Classic IOS -> IOS-XE
- Catalyst 3650/3850 -> Catalyst 9300 : IOS-XE
- Catalyst 4500 -> Catalyst 9400 / 9500 : IOS-XE
- Catalyst 6500/6800 -> Catalyst 9600 : Classic IOS -> IOS-XE
2024 年現在ではルータ・無線 AP・DNA Center も Catalyst ブランドを使用しているため、ちょっとややこしいです。
新機能が実装されるバージョン
コンフィギュレーションガイドとリリースノートを参照します。
コンフィギュレーションガイド
機能のページの最後に Feature History という項目があります。
実装された最初のバージョンが載っています。
リリースノート
Whats New -> Software Features にリリースノートのバージョンから実装された機能が記載されています。
不具合修正が行われるバージョン
Bug Search Tool で Known Fixed Releases に記載のあるバージョンです。
ここに書いてあるバージョン以外は、修正されていないと思ったほうが良いです。
- 不具合が修正された時点で、EoM (End of Maintenance) になっていないリリースに対して修正が行われます
- 不具合によっては上記に当てはまっても修正されない場合もあります
例えば CSCvo03530 では発見されたバージョンが 16.9.2 ですが、新しいはずの 16.10.x では修正されていません。
理解度テスト
実際にお客様の質問を想定して、以下の問い合わせに回答できるか、理解度を確認してみましょう。
既設で導入済みの Catalyst 9500 を別拠点に導入したいのですが、どのバージョンを選べば良いですか ?
Catalyst 9500 を新規導入したいのですが、どのバージョンを選べばよいですか ?
Catalyst9500 で StackWise Virtual を使用したいのですが、どのバージョンからサポートされていますか ?
リファレンス
BRKSDN-2666 - IOS XE Architecture and Programmability
Recommended Releases for Catalyst 9200/9300/9400/9500/9600 and Catalyst 3650/3850 Platforms
Cisco IOS and Cisco NX-OS Software Release Reference Guide
引用
- ↑ IOSの変革および各リリースの相関について 現在、Ciscoは、IOSの各機能の動作が全てのPlatform で同じになるように、ソフトウエアコンポーネントの開発プ ロセスを改革中である。