Cisco Internetworking Operating System (Cisco IOS) は、
シスコシステムズが開発した、
ルーターやスイッチで動作する基幹
ソフトウェアです。ウィリアム・イェーガーによって開発されました。
概要
Cisco IOSは、
マルチタスクOSとして、ルーティング、スイッチング、インターネットワーキング、そしてテレコミュニケーション機能を統合的に提供します。コマンドラインインターフェース(CLI)を備え、他社製品でもCisco IOSのコマンドを模倣している場合が多く、共通のコマンド操作が可能な場合があります。CLIで利用できるコマンドは、現在の「モード」とユーザーの権限レベルによって異なります。例えば、「グローバルコンフィグレーションモード」ではシステム全体の設定を変更するコマンドが利用可能ですが、「インターフェイスコンフィグレーションモード」では特定のインターフェースの設定のみが変更可能です。各コマンドには0から15までの権限レベルが割り当てられており、ユーザーはその権限レベルに応じて実行できるコマンドが決まります。
バージョニング
Cisco IOSのバージョンは、`a.b(c.d)e` の形式で表現されます。
a: メジャーバージョン番号を示します。
b: マイナーバージョン番号を示します。
c: リリース番号を示します。同じメジャーバージョンとマイナーバージョンの組み合わせの中で、新しいリリースごとに増加します。
d: (一般的なリリースでは省略)暫定的なビルド番号を示します。
e: (0〜2文字)リリースされたトレインの識別子です。メインライン(明示なし)、テクノロジー(T)、エンタープライズ(E)、サービスプロバイダ(S)、臨時機能(XA, XBなど)があります。
例えば、`12.3(1)` はバージョン12.3の最初のメインラインリリースです。`12.3(2)` はその次のリリースです。`12.3(1)T` はTトレインの最初のリリースであり、`12.3(2)T` はその次になります。暫定的なビルドは、次のリリース候補として、バグ修正を迅速に行うために提供されることがあります。
リビルド
特定のバグや脆弱性を修正するために、既存のIOSバージョンのリビルドが作成されます。例えば、`12.1(8)E14` は `12.1(8)E` の14回目のリビルドです。
暫定的なリリース
週単位で作成され、開発中の成果が含まれます。修正が必要な問題に対応するため、複数の暫定的なリリースが提供されることがあります。
メンテナンスリリース
性能向上やバグ修正を含む、厳格にテストされたリリースです。シスコは、リビルドや暫定リリースではなく、可能な限りメンテナンスリリースへの更新を推奨しています。
トレイン
Cisco IOSは、異なる機能セットを含む複数の「トレイン」に分類されます。トレインは、シスコがターゲットとする顧客の市場やグループに対応しています。
メインライントレイン: 最も安定したリリースであり、ライフタイム中に機能セットが拡張されることはありません。
バグ修正のみが提供されます。直前のTトレインがベースとなります。例えば、`12.1T` は `12.2` の基礎となります。
T(テクノロジートレイン): 新機能とバグ修正が提供されますが、メインラインほど安定していません。古いIOSでは、Pトレインがテクノロジートレインの役割を担っていました。
S(サービスプロバイダトレイン): 特定のコアルータ製品に特化し、サービスプロバイダ向けにカスタマイズされています。
E(エンタープライズトレイン): 企業での利用向けにカスタマイズされています。
B(ブロードバンドトレイン): インターネットベースのブロードバンド機能をサポートしています。
XA, XB, ...: 特殊な機能が必要な場合にリリースされるトレインです。
パッケージング・機能セット
Cisco IOSを動作させる多くの製品には、「機能セット」または「パッケージ」が搭載されています。ルーター向けには通常8つのパッケージ、スイッチングハブ向けには5つのパッケージが存在します。例えば、Catalystスイッチ向けのIOSには、基本的なIPルーティングのみをサポートする「標準」バージョン、完全なIPv4ルーティングをサポートする「強化」バージョン、そして高度な機能とIPv6をサポートする「高度なIPサービス」バージョンがあります。
各パッケージは、以下のサービスカテゴリに対応しています。
IPデータ
集中型音声とデータ
セキュリティとVirtual Private Network(VPN)
アーキテクチャ
ルーティングやパケット転送(LANスイッチング)は、Cisco IOSで異なる機能として扱われます。ルーティングプロトコルはプロセスとして動作し、ルーティング情報ベース(RIB)に情報を提供します。RIBは最終的なIP転送テーブル(FIB)を作成するために処理されます。ソフトウェアベースの転送を行うルーターでは、アクセス制御リスト(ACL)によるフィルタリングや転送など、ほとんどのトラフィック処理はCisco Express Forwarding(CEF)またはdCEFによって割り込みレベルで行われます。これにより、IOSはパケット転送のためにプロセスコンテキストスイッチを行う必要がなくなります。ハードウェアベースの転送を行うルーターでは、IOSはソフトウェアでFIBを作成し、パケット転送を担うハードウェア(ASICなど)にロードします。
Cisco IOSは、プロセス間のメモリ保護がない「モノリシック」アーキテクチャを採用しています。そのため、IOSのコードのバグが他のプロセスで使用されているデータを破壊する可能性があります。また、IOSは「run to completion」スケジューラを使用しており、実行中のプロセスがカーネルを呼び出すまで、他のプロセスが実行されることはありませんでした。
より高い可用性を必要とする製品向けには、IOS XRと呼ばれる新しいCisco IOSが開発されました。IOS XRは、モジュール性、プロセス間のメモリ保護、軽量なスレッド、割り込みスケジューリング、および障害が発生したプロセスの独立した再起動機能を提供します。IOS XRはQNXマイクロカーネルを使用しており、現在のIOSコードの大部分は、この新しいカーネルの機能を利用するために書き換えられています。マイクロカーネルアーキテクチャでは、カーネルで実行する必要のないプロセスはアプリケーションプロセスとして実行され、それによって高可用性を実現しています。IOSとIOS XRは機能とデザインにおいて関連しますが、コードベースは大きく異なります。
セキュリティと脆弱性
Cisco IOSには、UNIX系OSのような権限分離のセキュリティ機能はありません。そのため、バッファオーバーランなどの脆弱性が、システム全体に影響を与える可能性があります。また、CLIで暗号化されたパスワード(Type 7ハッシュ)は、簡単に解読可能です。Type 5パスワードやenable secretコマンドで設定されたMD5処理されたパスワードは、解読が困難です。
シスコは、すべてのCisco IOS機器に、認証(Authentication)、認可(Authorization)、アカウンティング(Accounting)によるセキュリティモデル(AAA)の実装を推奨しています。AAAは、ローカルデータベース、RADIUS、TACACS+を使用できます。
IOSの後継
IOSの後継となるネットワークOSには、以下があります。
IOS-XR
IOS-XE
参考文献
『インサイドCisco IOSアーキテクチャ - Ciscoルータ内部の動作を理解するための手引き』ISBN 978-4-7973-1726-8
外部リンク
*
ネットワーキング ソフトウェア(IOS と NX-OS) - Cisco