IS-ISの隣接関係

IS-ISでISが構築する隣接関係について説明します。IS-ISではルート情報を得るための情報交換を目的としてISやESと隣接関係を必要とします。初めにIS-ISにおける隣接関係とネイバーの違いについて説明し、その後ISの隣接関係の種類と手順を見ていきます。

隣接関係とネイバー

IS-ISではシステムの関係性として隣接とネイバーの関係があります。

隣接はISがネイバーに対して到達できる情報(到達可能性情報)を持ったIS-ISの定義する状態で、ESを含むほとんどのシステムと隣接関係となりますが、擬似ノードは隣接関係とはなりません。

ネイバーは単一のローカルネットワークを通じて直接到達できるシステムに対する呼び方です。隣接のような定義された「状態」ではなく、隣にいて隣接関係にある、もしくは隣接関係になる可能性のあるシステムへの呼び名です。認識しているかどうかは関係なく、お隣さんをネイバーと呼びます。ESや擬似ノードを含む全ての隣接システムがネイバーと言えます。

隣接関係の確立やネイバーの認識では下図に示したESH、ISH、IIHの3つのPDUを使用します。IS同士の隣接はプロトコルとしてIS-ISが使用され、ISとESとの隣接にはES-ISが使用されます。基本的にポイントツーポイント回線とブロードキャスト回線での動作は同じですが、ブロードキャスト回線はDISが選択されることと送信アドレスが決まっている特徴を持ちます。

ESとISの関係

ESとISが持つ関係について説明します。ESとISには「ES-ISの関係」と「IS-ISの関係」の2つがあります(下図)。上の隣接関係とネイバーの説明ではESとISはES-ISの関係だけを持つように見えますが、実際にはIS-ISの関係も持ち合わせています。IS-ISはIS間の情報交換を行うプロトコルですが、IS-ISはルート計算を行う関係でESの情報を必要とします。そのためES-ISとIS-ISのそれぞれでESの情報を取り扱うことになります。

ES-ISの関係

下図ではIS1からISHが送信されていて、受信したES1が到達可能性情報からルート情報を作成したことを示しています。また同様にES1がESHを送信し、受信したIS1が到達可能性情報からルート情報を作成したことを示しています。このとき使用されるプロトコルはES-ISです。ESはレベル1の動作しか行いませんのでISもレベル1のISとして動作していなければなりません。

ISHとESHにはESがゲートウェイの情報を取得することと、ESの存在をISに通知する目的があります。

下図のようにIS1から送信するISHにはIS1が持つNETとSNPA(MAC)アドレスの情報が含まれていて、ES1がISHを受信するとNETとSNPAとインターフェースを紐づけたルート情報を作成しゲートウェイの存在を認識することになります。

ES1から送信するESHにはES1が持つNSAPアドレスとSNPA(MAC)アドレスの情報が含まれていて、IS1がESHを受信するとES1をネイバーとして認識しルート情報が作成されます。

上記の動作はポイントツーポイント回線、ブロードキャスト回線のどちらにも当てはまりますが、ブロードキャスト回線(Ethernet)の場合は下表のアドレスが使用されます。このアドレスはIEEEで「Group MAC Addresses Used in ISO 9542 ES-IS Protocol」として既定されています。

ISH 09-00-2B-00-00-04 全てのESへ送信
ESH 09-00-2B-00-00-05 全てのISへ送信

IS-ISの関係

ESとISのもう一つの関係がIS-ISの関係です。IS-ISはIS同士が情報交換を行うプロトコルですが、ESに対する隣接情報を保持する必要があるためESの送信するESHを受信します。下図はESとISがHello PDUを送りあっている様子です。IS1はIS-ISの機能としてIIHを送信していますが、ES1はESでありIS-ISも動作しないためIIHを破棄します。一方ES1はES-ISの機能としてESHを送信していますが、IS1ではこれを受信してES1を隣接と認識します。

IS1が送信するIIHはIS-ISの機能として送信しているもので、あて先はすべてのIS宛てになっています。ES1はISではないためIIHを受け取ることはありません。ここではあえてIIHを送信しているように示していますが、ISが存在しないとわかっているのであれば送信する必要はありません。

逆にESHはIS-ISにとって隣接となるために必要な情報です。ES1から送信されたESHはES-ISで受信されるのと同時にIS-ISでも受信し、ES-ISとは独立してESとの関係を構築します。ESHにはES1が持つNSAPアドレスとSNPA(MAC)アドレスの情報が含まれていて、IS-ISではES1を隣接として認識しルート計算に使用します。

このようにIS-ISがESを隣接として認識するのはES-ISの情報を傍受する形で行われる一方的な関係であるといえます。

タイマー

ES-ISのHello PDUの送信はタイマーによって管理されます。

ISからESへ送信するISHはISCT(IS Configuration Timer)によってタイミングが決定します。下図はISCTを60秒に設定した場合の動作です。ISではISCTが切れるたびにレポート構成機能を実行してISHを送信します。ISH内にはHolding Timeが含まれていてISHを受け取るESで構成情報の保持時間として使用されます。Holding Timeは通常はISCTの2倍が設定されます。ISCTに規定値はありませんのでベンダもしくは運用で設定します。

ESからISへ送信するESHはESCT(ES Configuration Timer)によってタイミングが決定します。下図はESCTを50秒に設定した場合の動作です。ESではESCTが切れるたびにレポート構成機能を実行してESHを送信します。ESH内にはHolding Timeが含まれていてESHを受け取るISで隣接関係の保持時間として使用されます。通常はESCTの2倍が設定されます。ESCTにも規定値はありませんが、ESCTの値はISから指定することが可能です。ISがISHを送信する際にSuggested ESCTオプションを使用することでESに対してConfiguration Timeの値を指定することができます。

タイマー 説明
ES Configuration Timer ESがレポート構成機能を実行する間隔。レポート構成機能がESHを送信する。 Hello PDU内でHolding Timeを設定し隣接関係の保持時間をネイバーに連絡する。Holding TimeはConfiguration Timeの2倍の値
IS Configuration Timer ISがレポート構成機能を実行する間隔。レポート構成機能がISHを送信する。  
Holding Timer Hello PDU内で示される時間隣接関係を保持する

ISとの隣接関係

IS間の隣接関係はIS-ISによって送信されるIIHによって行われます。

確立手順は回線の種類によって動作が異なりますが、ネイバーとの関係を表すためにDown、initialising、Upの3つの状態が存在しUpになると隣接関係となります。

ポイントツーポイント回線

ポイントツーポイント回線の隣接関係はISHとIIHの2つのPDUを使用します。初めにネイバーがIS-ISでないシステムの場合に備えてISHを送信し、相手から返信されたIIHを受け取ると隣接となります。

下図では初めにIS1がISHを送信しています。同じタイミングでIS2も送信しますがここではIS1を先に示しています。IS2ではISHを受信するとIIHを返信します。IS1がIIHを受信すると受け入れテストを行い、条件が合えば隣接となります。IS2でも同様の動作を行ってIS1と隣接になります。

この動作はIS-ISとES-ISの調和のためにISHを先に送信していますが、IS-ISとES-ISを分離してIIHとISHを独立して送信しても成り立ちます。

隣接になるための条件は後で説明しています。

ブロードキャスト回線

ブロードキャスト回線(Ethernet)の隣接関係は、受信したIIHによって相手が自分を認識したと確認できると隣接関係になります。相手が自分を認識したかどうかを判断するのはIIH内にSNPA(MAC)アドレスが含まれているかどうかで判断します。

ISがIIHを初めて送信する際には何の情報も付加せずに送信を行いますが、すでに相手からIIHを受信していた場合は相手のSNPAアドレスを含めて送信します。この動作によって受信したIIHに自分のSNPAアドレスが含まれている時、相手が自分を認識したと判断し隣接となります。

下図はIS1とIS2の隣接確立の様子を示しています。初めにIS1から送信するIIHにはSNPAアドレスが含まれていないため受信したIS2は隣接とは見なしませんが、IS1の存在は認識し状態をinitializingに置きます。次にIS2からIIHを送信するときにはすでに受信したIS1のIIHからSNPAアドレスを学習しIIH内に含めて送信します。IS1ではIS2から受信したIIH内に自分のSNPAアドレスが含まれているため、相手が自分を認識したことを確認し状態をUpにして隣接となります。そしてIS1はIS2と同様の手順でIIHを送信します。IS2では受信したIIH内に自分のSNPAアドレスが含まれているため状態をUpにして隣接となります。

ブロードキャスト回線でも隣接になるための条件があり、条件が合わない場合は隣接とはなりません。

上記の動作はISが2台であることから一対一であるように表していますが、ブロードキャスト回線(Ethernet)であるため下表のマルチキャストアドレスが使用されます。そのためブロードキャスト回線内のISは自分以外のすべてのISと隣接関係になります。

このマルチキャストアドレスはIEEEで「Standard Group MAC Address」として既定されています。

レベル1 IIH(All L1 IS) 01-80-C2-00-00-14 全てのL1ISへ送信
レベル2 IIH(All L2 IS) 01-80-C2-00-00-15 全てのL2ISへ送信

ISの隣接確立条件

ISでは IIHを受信した際に受け入れチェックが行われます。IS間の隣接は以下の項目が双方で同じでなければ確立されません。

・ID Length

・最大エリアアドレス(数)

・認証(設定されている場合)

・エリアアドレス(レベル1のみ)

・レベル

上の条件で注意しなければならないのはエリアアドレスとレベルです。エリアアドレスはレベル2の隣接ではチェックが行われないため、ISをどのレベルで動作させるのかに注意が必要です。例えば下図はIS1とIS2が隣接になる様子を示したものですが、エリアが異なるためレベル1では隣接とはなりませんが、レベル2ではエリアの情報は必要ありませんので隣接になります。この動作はエリア間を接続するための意図した設定によるものであれば問題ありませんが、動作を把握していない場合は意図せずに「つながってしまう」ことになります。

このようになってしまうのはISがレベル1、レベル2の両方(L1L2)で動作しそれぞれが独立しているためです。ISの動作レベルはこの両方のレベルで動作するのがデフォルトですが、どちらかのレベルだけで動作するように固定することも可能です。

下表はISの動作タイプ(レベル)で隣接になることができる組み合わせを示しています。この中でL1はエリアアドレスが同じである必要があり、L2はエリアアドレスが異なっていても隣接になることを認識しておく必要があります。

  Level 1 Level 2 Level 1,2
Level 1 L1 L1
Level 2 L2 L2
Level 1,2 L1 L2 L1, L2

複数のエリアが存在する場合には「エリア=エリアアドレス」とはならないため注意する必要があります。複数のエリアアドレスの付与についてはアドレッシングのページの補足を参照してください。

DISの選定

ブロードキャスト回線の場合、隣接関係になると続けてDIS(Designated IS)の選定に入ります。DISはブロードキャスト回線内の特別なISで1台だけが選定されます。DISになったISは「疑似ノードの作成」と「CSNPの送信」の役割を持つことになります。

DISの選定には回線に対するプライオリティ値とSNPA(MAC)アドレスが使用されます。プライオリティ値はDISになる優先度を示したIIHに含まれる値(0~127)で、最も大きい値を持つISがDISに選定されます。プライオリティ値が同じでDISが決まらない場合は最も大きいSNPAアドレスによって決定します。

各ISがDISを選定すると、選定したDISを回線内のIS全体で共有します。IIH内にはLAN IDフィールドが含まれていてそれぞれのISが、選定したDISのLAN IDを自分が送信するIIHのLAN IDに設定することによってすべてのISが共通した認識を持つことができるようになっています。LAN IDは下図のようにシステムID(System ID)に回線ID(Circuit ID)をつなげたものです。回線IDはISがインターフェースに個別に設定するIDです。IS間で共通認識を持つためにDISの選定とは異なるIDを使用するのはLAN IDをのちに疑似ノードIDとして使用するためです。

下図はDISの選定手順を示しています。

1)まず各ISには下記の設定が行われていて、それぞれがLAN IDを作成します。LAN IDは上で説明したようにISのシステムIDに回線IDをつなげたものです。回線IDはIS内の各インターフェースに一意に割り当てられている1以上の値です。

2)すべてのISがIIHを作成して送信します。IIHにはプライオリティ値とMACアドレスとLAN IDが含まれています。

3)それぞれのISがIIHを受信しDISの選定を行います。選定はIIH内のプライオリティ値が大きいものが優先的に選択されます。プライオリティ値が同じ場合はMACアドレスが大きいものが選択されます。

4)各ISが選定したDISのLAN IDを自分が発信するIIHのLAN IDに設定して送信します。すべてのISが同じLAN IDを選択しているはずなので、これによってすべてのISが同じLAN IDを認識し、DISがIS2に確定します。

決定したLAN IDはDISが後に作成する疑似ノードを表すIDとして扱われるため、DISを含む各ISは疑似ノードを参照しているのと同じ意味になります。(下図の疑似ノードの表現は厳密には正しくありませんので次の疑似ノードの説明を参照してください)

疑似ノード

ブロードキャスト回線内でDISが選定されるとDISがCSNPの送信と疑似ノードの作成を始めます。CSNPの送信は保持するLSPの交換を行う際に必要なもので「LSPの交換」のページで説明しています。疑似ノードはいわば名簿でありブロードキャスト回線内のすべてのシステムの一覧を一定に保つ役割を持ちます。疑似ノードは理論的に必ず必要なものではありませんが、IS-ISではDISがLSPとして作成しエリア全体に共有します。疑似ノードを使用することによる効果はいくつかありますが、重複するデータを省くことによる占有リソースの減少や、一覧を共有することによるシステムごとの不一致を減らすことなどが考えられます。同じリンスステートプロトコルであるOSPFのNetwork LSAも同様の概念を使用しています。

DISが作成する疑似ノードの表現は前で説明した通りですが、より正確にすると下図のようになります。

疑似ノードはその名前の通り実体がなくLSPとして配布されるだけの存在ですので固有のシステムIDは持ちません。その代りLSPとして配布される際にLSP IDが付与されます(図内の赤字)。前の説明で「LAN IDが疑似ノードを表すIDとなる」と説明したとおりDISであるIS2のLAN IDにLSP番号(LSP Number)が付与された形式になっています。LSP番号はLSPが複数に分かれた際に識別に使用する番号(LSP ID最後の00)です。

ブロードキャスト回線ではすべてのISが疑似ノードを参照し、疑似ノード内には各ISのエントリーが含まれていることからスター型のトポロジーを形成します。

下図はシステムIDから疑似ノードを表すLSP IDまでの番号の命名について示したものです。この命名規則は複雑ではありませんが、同じような様式の数字が別の目的で異なる名前で存在することになり非常に煩雑です。

LSP ID内にはソースID(Source ID)という名のシステムIDと、回線ID(Circuit ID)を基にした疑似ノードID(Pseudonode ID)があり、そこに連番を表すLSP番号(LSP Number)が付与されています。また上の説明で回線IDは1以上であると説明していますが、それによって疑似ノードのLSP ID内の疑似ノードIDも自動的に1以上の数字が入ることになります。そして逆に疑似ノードIDが0の場合は疑似ノードのLSP IDではなくIS自身のLSP IDになると決まっています。

タイマー

IS-ISの隣接関係はタイマーによって制御されます。隣接関係の構築で使用されるタイマーを下にまとめました(ISISHoldingMultiplierはタイマーではなく係数です)。

通常のISがiSISHelloTimer を使用して3秒間隔でIIHを送信し、DISはdRISISHelloTimer 使用して1秒おきにIIHを送信します。IIHを受け取ったISはIIHに含まれているHolding Timeだけ隣接関係を保持します。Holding TimeはISISHoldingMultiplier × iSISHelloTimer(DISの場合はdRISISHelloTimer)です。

IS-ISでPDUを送信する際には25%のジッタが適用されます。そのためIIHが10秒場合は7.5~10秒の値となります。ただしジッタを適用して1秒未満になる場合は適用されません。

タイマー 説明 IIH間隔 Holding Time
dRISISHelloTimer DISがIIHを送信する間隔 1秒 10
iSISHelloTimer DIS以外のISがIIHを送信する間隔 3秒 30
ISISHoldingMultiplier dRISISHelloTimer、iSISHelloTimerに掛ける乗数。それぞれのHello PDUのホールドタイマーを示す 10

下図は通常のISがIIHを送信する様子を表しています。IS1がIIHを3秒間隔で送信していて各IIHにはHolding Timeが30で設定されています。DISでIIHを受信すると隣接関係を構築してHolding Timerとして30秒がセットされます。30秒以内にIIHを受信するとHolding Timerがリセットされます。Holding Timerが0になると隣接関係が解除されます。

DISの場合は逆の動作になります。異なるのはDISのIIHが1秒間隔であることとHolding Timeが10となることです。

認証

IS-ISでは認証の設定が行えます。認証設定は任意であるため設定しても設定しなくても隣接は確立されますが、認証設定をしている場合は認証情報が同じである必要があります。

IS-ISで使用される認証は基本的にクリアテキストによるパスワード認証のみです。設定されるパスワードはPDUのオプションTLV(Type 10)としてテキストがそのまま記述されますので安全ではなく、設定ミスによる偶発的なエラーに対応できます。

下図では認証オプションを使用しパスワード(pass1)を送信している様子です。値(Value)のはじめの1はクリアテキストを表す既定値でパスワードと連結して”1pass1”となります。この認証はLSPの交換でも同じように動作します。