コンテンツにスキップ

Cisco Internetworking Operating System

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。6144 (会話 | 投稿記録) による 2009年7月25日 (土) 00:22個人設定で未設定ならUTC)時点の版 (英語版を参考にしていたら英語版へリンクを貼るのを忘れていたでござる)であり、現在の版とは大きく異なる場合があります。

{{Infobox OS |name = Cisco IOS |logo = |screenshot = |caption = |website = Cisco IOS Technologies - Cisco Systems |developer = シスコシステムズ |family = |source_model = クローズドソース |latest_release_version = 12.4(24)T |latest_release_date = |kernel_type = |ui = キャラクタユーザインタフェース |license = |working_state = 開発中 |supported_platforms = シスコルータのほとんどと現行のCatalystスイッチ |updatemodel = |package_manager = }

Cisco IOSCisco Internetwork Operating System)はシスコシステムズのほとんどのルータと現行の全てのスイッチで使用されているソフトウェア(古いスイッチはCatOSを使用している)。IOSはマルチタスクOSと硬く統合されたルーティング・スイッチング・インターネットワーキング・およびテレコミュニケーションの機能のパッケージである。ウィリアム・イェーガーによって開発された。

Cisco IOSは独特なコマンドラインインターフェース(CLI)を有しており、その形式は他のネットワーク製品によって広く模倣されている。IOSのCLIは複数の単語によるコマンドの固定されたセットを提供する。使用可能なセットは現在のCLIの「モード」と権限レベルによって決定される。「グローバルコンフィグレーションモード」はシステム全体の設定を変更するためのコマンドを提供し、「インターフェイスコンフィグレーションモード」は具体的なインターフェイスの設定を変更するコマンドを提供する。すべてのコマンドは0から15までの権限レベルを割り当てられており、ユーザーは自分の持つ権限レベルに応じてコマンドを実行することができる。CLIによって、各権限レベルに応じて利用可能になるコマンドを定義することができる。

バージョニング

Cisco IOSは3つの数字といくつかの文字によってa.b(c.d)eという形式でバージョニングされる。

  • aはメジャーバージョン番号である。
  • bはマイナーバージョン番号である。
  • cはリリース番号である。同じa.bの組み合わせの中で新しいリリースがある際に増える。
  • d(一般的なリリースからは省略される)は暫定的なビルドの番号である。
  • e(0~2個の文字)はリリースされたトレインの識別子である。なし(下記のメインラインであることを明示)、T(テクノロジー用)、E(企業用)、S(サービスプロバイダ用)、XA(臨時機能のためのもの)、XB(別の臨時機能のためのもの)等。

例えば、リリース12.3(1)はバージョン12.3における最初のCisco IOSのメインラインのリリースである。12.3(2)は次のリリースであり以下同様である。12.3(1)はTトレインの最初のリリースであり12.3(2)Tはその次であり以下同様である。暫定的なビルドは次のリリースの候補であり、次のリリースが入手可能になる前にバグを修正するより早い方法として、シスコのサポートによって頻繁に入手可能となる。例えば、12.3(1.2)Tはリリース12.3(1)Tに対応する2回目の暫定的なビルドである。

リビルド - しばしば、与えられたIOSのバージョンの、単一の問題または脆弱性を解決するためにリビルドが作られる。例えば、12.1(8)E14は12.1(8)Eの14個目のリビルドである。リビルドは迅速に欠陥を修理するため、また重大なインフラストラクチャーを運営しており、変化とリスクを最小化したいためメジャーバージョンのアップグレードを望まない顧客のために提供される。

暫定的なリリース - 週単位で生み出され、現在の開発の成果で構成される。シスコの報告ウェブサイトでは、関連した問題を修正するために複数の暫定的なリリースがリストされるかもしれない(この理由は一般には未知である)。

メンテナンスリリース - 性能向上とバグ修正を含む厳しく修正されたりリース。シスコはリビルドおよび暫定的なリリースの上にある、可能な限りのメンテナンスリリースにアップデートするよう薦める。

トレイン

Cisco IOSは違う機能のセットを含む、いくつかの「トレイン」に分けられる。トレインはシスコがターゲットとしている顧客の別市場とグループに多少対応する。

  • メインライントレインはシスコが提供できる最も安定したリリースであるようにデザインされ、ライフタイムの間決して機能セットは拡張されない。アップデートは製品中のバグに対処するためだけにリリースされる。直前のTトレインはメインライントレインの基礎となる。例えば12.1Tは12.2の基礎となる。よって、あるメインライントレインのリリースで利用可能な機能を調べる際には、直前のTトレインを見るとよい。
  • T - テクノロジートレイン。そのライフタイムの間新しい機能とバグの修正を得る。よって、メインラインほど安定しない。(12.0より古いIOSでは、Pトレインがテクノロジートレインとして役立っていた。)シスコはあるTトレインの新しい機能を実装する緊急性がない場合における生産現場でのTトレインの使用を推奨しない。
  • S - サービス・プロバイダトレイン。ある会社のコアルータ製品のみに対応し、サービス・プロバイダの顧客のために大きくカスタマイズされる。
  • E - エンタープライズトレイン。企業における実装のためにカスタマイズされる。
  • B - ブロードバンドトレイン。インターネットベースのブロードバンド機能をサポートしている。
  • XAXB、… - 文書化される必要のある特別な機能のトレイン。

時々、特定のニーズに対応するために別のトレインがリリースされる。例えば、12.0AAトレインはCisco AS5800のために必要な新しいコードが含まれている。

パッケージング・機能セット

ほとんどのIOSを動作させるシスコの製品は1個以上の「機能セット」もしくは「パッケージ」を持っている。典型的にはシスコ製ルータのための8つのパッケージと、シスコ製スイッチングハブのための5つのパッケージが存在する。例えば、Catalystスイッチでの使用を意図しているCisco IOSのリリースは、「標準」バージョン(基本的なIPルーティングのみのサポート)、「強化」バージョン(完全なIPv4ルーティングのサポート)、および「高度なIPサービス」バージョン(強化された機能とIPv6のサポート)が利用可能である。

各パッケージは以下のようなのサービスカテゴリーに対応する。

アーキテクチャ

すべてのIOSにおいて、ルーティングパケット転送LANスイッチング)は別々の機能である。ルーティングなどのプロトコルはCisco IOSのプロセスとして動作し、ルーティング情報ベース(RIB)に貢献する。RIBはルータの転送機能が使用する最終的なIP転送テーブル(FIB、Forwarding Information Base)を作るために処理される。ソフトウェアのみのよる転送機能を持つルータ(例:Cisco 7200)において、アクセス制御リストによるフィルタリングと転送を含むほとんどのトラフィックは、 Cisco Express Forwarding(CEF)もしくはdCEF(配布されたCEF)によって割り込みレベルで行われる。これによって、IOSはパケットを転送するためにプロセスコンテキストスイッチを用いる必要がない。Open Shortest Path FirstBorder Gateway Protocolのようなルーティング機能はプロセスレベルで動作する。Cisco 1200シリーズのようなハードウェアベースの転送を行うルータの場合、IOSはソフトウェアでFIBを作り、実際のパケットを転送する機能を実行するハードウェア(ASIC、ネットワークプロセッサなど)にロードする。

Cisco IOSは「モノリシック」な(すなわち、一つのイメージとして動作し、すべてのプロセスが同じメモリ空間を共用する)アーキテクチャを持っている。プロセス間のメモリの保護は存在しない。したがって、IOSのコード内のバグが、ほかのプロセスが使用しているデータを破壊しうる。「完成への動作」のスケジューラを持っているので、カーネルは動作しているプロセスから先取しない。あるプロセスは、他のプロセスが動作するチャンスを得るためには前に、カーネルのコールが作られなければならない。CRS-1などの非常に高い稼働性を必要とするシスコ製品にとって、この制限は容認できなかった。加えて、ジュニパーネットワークスJUNOSのような競合するルータのOSは、そのような制限がないようにデザインされた。シスコの反応は、モジュール性とプロセス間のメモリーの保護、スレッドの軽さ、割り込みのスケジューリング、および失敗したプロセスの独立した再スタートの機能を提供するIOS XRと呼ばれる新しいCisco IOSの開発であった。IOS XRはサードパーティのリアルタイムオペレーティングシステムQNX)のマイクロカーネルを使用し、現在のIOSのコードの大部分は、新しいカーネルによって提供される機能を利用するために書き換えられている。マイクロカーネルアーキテクチャは、その中で動作するために完全には必要でないすべてのプロセスをカーネルから取り除き、類似しているプロセスとして処理する。その方法を通じて、IOS XRは新しいルータのプラットフォームのための高い稼動性を達成することができる。よって、IOSとIOS XRは機能とデザインにおいて関連するが、大きく異なるコードベースである。2005年、シスコはCisco 12000シリーズでIOS XRを導入し、マイクロカーネルアーキテクチャをCRS-1からシスコの広く展開されたコアルータに拡張した。

2006年、シスコはQNXマイクロカーネル環境をより伝統的なIOSの環境に拡張するIOS Software Modularityを入手可能にしたが、まだ顧客が要求しているソフトウェアアップグレード機能を提供している。それはCatalyst6500で入手可能である。

セキュリティと脆弱性

Cisco IOSは、バッファオーバーランおよびその他のオペレーティングシステムとアプリケーションを苦しませた問題に対し無防備であると判明している。

互換性のために保持されているレガシーCLIでは、Router(config)#username jdoe password 7 0832585B1910010713181Fのような、「タイプ7」ハッシュ値としてCLI上で暗号化されたパスワードが、1995年以降入手可能な「getpass」と呼ばれるソフトウェアを使って、容易に解読できる。上記の例は「stupidpass」と解読される。これは古いニュースであるが、現在でもこれらの弱いハッシュは使用されている。しかし、このプログラムは、enable secretコマンドに設定された、MD5で処理されたパスワードを解読しない。

注:シスコは、すべてのCisco IOS機器が認証(authentication)、認可(authorization)、アカウンティング(accounting)によるセキュリティモデル(AAA)を実装するよう薦めている。AAAはローカル、RADIUSおよびTACACS+データベースを使用することができる。