IS-IS(Intermediate System to Intermediate System、略称ISIS)は、ネットワーク内でルーティング情報を交換するために使用されるリンクステート型の内部ゲートウェイプロトコル(IGP)です。ルータはネットワークトポロジ情報を共有することで、データの最も効率的な経路を見つけることができます。IS-ISは通常、単一の自律システム内に展開され、大規模な企業ネットワークやサービスプロバイダネットワークで使用されています。
IS-ISプロトコルは、ISO/IEC 10589:2002 [ 2 ] [ 3 ]で、オープンシステム相互接続(OSI)参照設計内の国際標準として定義されています。
IS-ISは、管理ドメインまたはネットワーク内での使用を目的として設計された内部ゲートウェイプロトコルです。これは、自律システム間のルーティングに使用される外部ゲートウェイプロトコル、主にBGP( Border Gateway Protocol )とは対照的です。[ 4 ]
IS-ISは、ルーターのネットワーク全体にリンク状態情報をフラッディングすることで動作するリンク状態ルーティングプロトコルです。各IS-ISルーターは、他のルーターからフラッディングされたリンク状態情報を収集して、独自のリンク状態データベース(LSDB)を構築します。OSPFと同様に、 IS-ISはダイクストラ法を使用してネットワーク内の最適なパスを計算します。パケット(データグラム)は、計算された最短パスに沿って宛先に転送されます。[ 5 ]
IS-ISは、Digital Equipment CorporationによってDECnetフェーズVの一部として開発されました。[ 6 ]
インターネット技術タスクフォース(IETF)は1990年にIS-IS仕様を公開したが[ 7 ]、そのRFCは後に撤回され、歴史的文書としてマークされた[ 8 ]。これは、国際標準化機構(ISO)規格の最終版ではなく草案を再公開したため混乱を招いたためである。
このプロトコルは、エンド システムやホストではなく中間システム間での使用を目的として、1992 年に ISO によって ISO 10589 として標準化されました。IS-IS の目的は、コネクションレス モード ネットワーク サービス(CLNS)と呼ばれるISO が開発したOSIプロトコル スタックを使用してデータ グラムのルーティングを可能にすることでした。IS-IS は、インターネット エンジニアリング タスク フォース ( IETF)がOSPFと呼ばれる同様のプロトコルを開発していたのとほぼ同時期に開発されました。IS-IS は後に、グローバル インターネットのネットワーク層プロトコルであるインターネット プロトコル(IP)でのデータ グラムのルーティングをサポートするように拡張されました。この拡張は、統合 IS-ISとして知られています。[ 9 ]
2005年までに、IS-ISは大規模サービスプロバイダーのネットワークバックボーンの事実上の標準となった。[ 10 ]
ISO IS-IS規格は、ネットワークコンポーネントに関する独自の用語を定義しており、その一部は業界で一般的に使用されている用語とは異なっている。
IS-ISはブロードキャスト(LAN)とポイントツーポイントの両方のネットワークリンク上で動作します。ルーティング情報を交換するために、隣接するルータ間で隣接関係が形成されます。[ 6 ]
ほとんどのIPルーティングプロトコルとは異なり、IS-ISは伝送にレイヤ3に依存するのではなく、レイヤ2上で直接動作し、インターフェースを識別するためにIPアドレスを使用しません。
その代わりに、IS-ISはレイヤ2アドレス(SNPA、例えばイーサネット上のMACアドレス)を使用してインターフェースを識別し、ISOネットワークアドレスを使用してルーティングノードを識別します。
各中間システムには、ネットワークエンティティタイトル(NET)が割り当てられます。これは、 IS-ISルーティングドメイン内でルータを識別するために使用されるNSAPアドレスです。NETは、NSELフィールドがゼロに設定された、ネットワークエンティティタイトルとして使用されるNSAPです。
プロトコルで必須ではないものの、一般的な運用方法として、システムIDフィールドにはルーターのループバックインターフェースのいずれかから取得した一意のIPv4アドレスを設定する。
単一の中間システムには、最大3つのNETアドレスを設定できます。これは、ISをあるエリアから別のエリアに移行する際に役立つ場合があります。
NETは、エリア、システムID、およびNSELフィールドで構成されます。エリア自体は、 AFI(アドレスファミリ識別子)とエリアIDで構成されます。
領域の長さは1~13バイトの可変長です。システムIDは6バイト、NSELは1バイトです。
例えば、ISOネットワークアドレス「49.0100.1921.6821.1138.00」の各フィールドは以下のとおりです。
大規模ネットワークを管理する場合、IPアドレスを直接使用するのは不便な場合があります。
大規模ネットワークでは、ルーターは「if-bundle-22-2.qcore1.pye-paris.as6453.net」のようなホスト名で識別されることが多く、これには位置情報やトポロジー情報がエンコードされている場合があります。
多くのルーティングプロトコルでは、ルータはIPアドレスで識別され、ホスト名はDNSを使用して外部で解決されます。IS-ISはIPではなくデータリンク層上で直接動作するため、ホスト名のマッピングをプロトコル自体の中で分散させることができます。
IS-ISリンクステートPDUには、ルーターのNETから派生したIS-ISシステムIDに関連付けられたホスト名をアドバタイズするType-Length-Value 137 (TLV 137)が含まれる場合があります。 [ 12 ]
OSPFと同様に、IS-ISはエリアという概念を用いてネットワークを分割し、ルーターが自身のエリアに関する完全なリンク状態情報のみを保持すればよいようにすることで、ネットワーク全体のルーターへの負荷を軽減します。
IS-ISでは、ISはレベル1、レベル2、またはレベル1/レベル2で動作します。
レベル1ルーターが、自身のエリア外の宛先にトラフィックを送信する必要がある場合、そのトラフィックをレベル1/レベル2ルーターに転送します。
レベル1/レベル2ルーターは、レベル1 LSPのアタッチドビット(ATT)を設定することで、境界ルーターとしてのステータスを通知します。このLSPを受信したルーターは、LSPの発信元へのデフォルトルートを追加します。
外部ルートは、レベル1/レベル2ルーターを介してレベル1エリアに再配布される場合があります。デフォルトでは、外部ルートはレベル2バックボーンにアドバタイズされません。レベル2への再配布は、レベル1/レベル2ルーターで明示的に設定する必要があります。
IS-IS LSPには、LSPヘッダーの属性ブロック(長さ8ビット)に、LSP自体に関する情報が含まれています。
IS-ISが最初に導入されたとき、 IS到達可能性(TLV 2)とIP到達可能性(TLV 128および130)のデフォルトのタイプ・長さ・値(TLV)フォーマットでは、最大値が63の6ビットリンクメトリックフィールドと、最大値が1023の10ビットパスメトリックフィールドが使用されていました。
ネットワーク規模とリンク速度が増加するにつれて、これらの指標の制限は、より大規模なトポロジーにとって制約となった。
この問題を解決するために、新しいTLVが導入されました。拡張IS到達性のためのTLV 22と、拡張IP到達性のためのTLV 135です。
これらの拡張機能により、サポートされるリンクメトリックは24ビット(最大値16,777,215)に、パスメトリックは32ビット(最大値4,294,967,295)に増加します。
TLV 22と135を含まない指標は狭義と呼ばれ、それらを含む指標は広義と呼ばれます。[ 13 ]
広範囲の指標と狭い範囲の指標は、レベルごとに個別に設定できます。
OSPFと比較すると、IS-IS隣接関係の確立ルールはより単純で、主にルーターのレベルに依存します。
レベル1の隣接関係はエリア住所の一致を必要とするのに対し、レベル2の隣接関係はエリアメンバーシップとは無関係に形成される。
OSPFと同様に、ブロードキャストドメイン内のすべてのルーターは隣接関係を確立し、LSPを交換する必要があり、その結果、ドメイン内の各ルーターに対応するLSP。
この問題を解決するため、各LANセグメント上で指定中間システム(DIS)が選出されます。優先順位とシステムIDが最も高いルータがDISとして選出されますが、より高い優先順位(または優先順位が同じ場合はより高いシステムID)を持つ別のルータが接続された場合は、そのルータが新しいDISとして選出されます。
各ルータがブロードキャストドメイン内の他のすべてのルータと隣接関係を形成する代わりに、各ルータはDISとのみ隣接関係を形成し、ハブアンドスポーク型のトポロジーにおいて、DISが下位ルータへのLSPの中継を担当する。
選出されたDISルーターは擬似ノードであり、1つの実際のルーターのリソース(システムIDを含む)を使用します。
DISによって生成されたLSPの擬似ノードIDは、常にゼロ以外の擬似ノードIDフィールドを持つ。
DISはLANセグメント上で定期的にCSNPを送信し、他のルータからのPSNPに応答します。
DISが通信を停止した場合、そのセグメントで新しいDISが選出されます。
IS-ISは、IIH(IS-IS Hello)、リンクステートPDU(LSP)、シーケンス番号PDU(SNP)などのプロトコルデータユニット(PDU)の認証をサポートしています。認証は、インターフェースごと、レベルごと(レベル1またはレベル2)に設定できます。
認証メカニズムには、単純なパスワード認証と、HMAC-MD5およびHMAC-SHAの派生版を用いた暗号認証が含まれる。
リプレイ攻撃を軽減するため、IS-ISは隣接関係確立時にIIH PDUにシーケンス番号を使用し、古いメッセージや重複したメッセージが受け入れられないようにしています。
レイヤ3で動作するOSPFとは異なり、IS-ISはPDUをレイヤ2フレームにカプセル化し、IPv4やIPv6などのレイヤ3プロトコルに依存しません。
IPv6ルーティング情報をサポートするため、IPv6インターフェースアドレス用のTLV 232とIPv6到達可能性用のTLV 236が追加されました。
サポートされているレイヤ3プロトコル( NLPID(ネットワークレイヤプロトコルID)とも呼ばれる)を表示するには、TLV 129が使用されます。ここでは、IPv4のコードは0xCC、IPv6のコードは0x8Eです。
IPv4とIPv6のトポロジーが重複しない場合、問題が発生する可能性があります。これは、設定ミスやネットワーク内のルーターによるIPv6のサポート不足が原因で発生する可能性があります。このような状況に対応するため、IS-ISにはマルチトポロジーサポートが追加されました。
TLV 229は、IPv4ユニキャストやIPv6ユニキャストなどのマルチトポロジーをサポートすることを示すために追加されました。
マルチトポロジーが有効になっている場合、IS-ISはIPv4とIPv6用にそれぞれ別のSPFツリーを計算します。これはリソース使用量が2倍になることを意味しますが、一方でトラフィックのブラックホールを防ぐことができます。
マルチトポロジが有効になっている場合、IS-IS はマルチトポロジ IS到達可能性に TLV 222 を、マルチトポロジ IP 到達可能性に TLV 235 を、マルチトポロジ IPv6 到達可能性に TLV 236 を使用します。
構成によっては、ルータはレベル1、レベル2、またはレベル1/レベル2両方のリンクステートデータベースを持つことができます。IS-ISは、これらのデータベースからルーティングテーブルを生成するためにダイクストラ法を使用します。
しかし、IS-ISルーターが異なるレベルのデータベース、あるいは外部と内部で全く同じプレフィックスを持つ状況が発生する場合があります。このような状況で最適なパスを選択するために、ルートは優先順位の高いものから低いものへと特定の順序で処理されます。
IS-ISは、Helloパケット(IIH)を使用してルータに関する情報を共有し、隣接関係を確立します。Helloパケットは、隣接するルータ間の障害を検出するのにも役立ちます。
ハローパケットの送信間隔を短くすることで障害検出を高速化できますが、CPU負荷が増加します。
代替手段として、BFDを使用することもできます。BFDは、ルーティングプロトコルとは独立して動作する低オーバーヘッドの障害検出プロトコルであり、CPUへの影響を最小限に抑えながら、1秒未満の検出を実現できます。
IS-IS は、最短経路ブリッジング (SPB)の制御プレーンの基盤です。SPB は、メッシュトポロジー内のイーサネットスイッチ間で等コストのマルチパスルーティングを可能にします。イーサネットフレームは、負荷分散された複数のサービス固有のパスに沿って転送され、それらはすべて等しく最短です。これをサポートするため、SPB は新しい TLV で IS-IS を拡張します。[ 14 ]