TCP/IPネットワークでは,IPアドレスを使ってデバイスを識別したり,経路を判断したりします。OSIプロトコルでは,「NSAPアドレス」と呼ばれる別のアドレス体系が使われます。今回は,Integrated IS-ISで使われるNSAPアドレスを勉強しましょう。

OSIプロトコルで使うアドレス体系

 OSIプロトコルでのアドレッシングは,NSAP(Network Service Access Point)と呼ばれるアドレスを使用します。NSAPは,最大40桁(160ビット)による可変長フォーマットです。IS-ISでは,IS(ルータ)自体に割り当てるアドレスや経路情報など,すべてにNSAPアドレスを使います。Integreted IS-ISは,IS-ISのルーテッドプロコルとしてIPを使えるようにしたものですが,基本的なルーティング方式はIS-ISを使うため,デバイスには必ずNSAPアドレスを設定する必要があります。NSAPアドレスでIS(ルータ)を識別したり,各ISがトポロジテーブルを作成したりします。

 NSAPアドレスは,IPアドレスとは異なり,デバイスのアドレスと,上位プロトコルの識別子からなります。IPヘッダには上位プロトコルを示すフィールド(プロトコル番号フィールド)がありますが,NSAPではそれがアドレスの一部となっています。Cisco機器がIntegrated IS-ISで使うNSAPアドレスのフォーマットは,次の通りになります(図1)。

 図1 NSAPアドレスの構成
NSAPフォーマット

  • IDP ・・・IPアドレスのネットワーク部に相当
    • AFI ・・・ NSAPのフォーマットを指定。NSAPは使用する場所によってフォーマットが変わるため。
    • IDI ・・・ ドメインを識別する
  • DSP ・・・IPアドレスのサブネット部とホスト部に相当
    • HODSP ・・・ ドメインをエリア分割した場合の識別に使う。IPアドレスのサブネット部に相当
    • SystemID ・・・ デバイスを識別する
    • NSEL ・・・ サービス識別子。上位プロトコルの識別に使う

 SystemIDはデバイスを識別する値で,ISやESに割り当てるアドレスです。IPアドレスのように,「インタフェース」に付けられる値ではありません。SystemIDには,MACアドレスが使われることが多いです。

 NSELは上位プロトコルを識別する値で,TCP/IPにおけるIPヘッダの上位プロトコルフィールドやポート番号に相当します。NSELがゼロ(0x00)の場合,そのNSAPデバイスそのものを表すアドレス(IPアドレスと同じ扱い)とされます。このアドレスはNET(Network Entity Title)と呼ばれ,IS-ISではNSAPアドレスにこのNETを使います。

 IPアドレスとNSAPアドレスを対比すると次のような形になります(図2)。赤字部分がIPアドレスに相当する部分です。

 図2 IPアドレスとNSAPアドレスの比較
IPアドレスとNSAPアドレス

NSAPアドレスの記述方法

 Cisco機器に設定するNSAPアドレスは,一般的には次のようになります。

  • AFI ・・・ IPアドレスのグローバルIPアドレス同様,プロバイダや企業ごとに決められたアドレスを使います。0x49がプライベートアドレスとして使われます
  • IDI+HODSP ・・・ ドメインとエリアを識別します。慣例として最小2バイトを使います
  • SystemID ・・・ ルータのMACアドレスか,IPアドレスを使用します
  • NSEL ・・・ デバイスを識別するアドレスのため,NET(0x00)を使用します

 AFIとIDIとHODSPの3つの部分は「エリアID」として使用されています。NSAPアドレスは可変長のため,CiscoIOSはNSAPアドレスを後ろから確認し,次のようにNSAPアドレスのフィールドを識別します。

  • 最後尾の1バイトがNSEL
  • NSELの前6バイトがSystemID
  • 残りがエリアID
    • エリアIDのうち,先頭3バイトがドメインID
    • 残りがエリアID

 ドメインIDとエリアIDは,ドメイン間のルーティング(レベル3ルーティング,ISO-IGRPやIDRPが担当)の場合は別のIDとして認識し,レベル3ルーティングを行います。IS-ISが行うドメイン内ルーティング(レベル1・2ルーティング)ではドメインが同一のため,ドメインIDとエリアIDは区別せず,1つのエリアIDとして使用します。

 NSAPアドレスを表記するときは,ドットで区切って示します。AFIとNSELは1バイトでドットを入れますが,そのほかの部分は2バイトごとにドットを入れます。NSAPアドレスの表記例は,以下のようになります(図3)。

 図3 NSAPアドレスの例
NSAPアドレスの例