IS-ISで使用されるNSAPアドレスについて説明します。概要では簡単なNSAPアドレスの構成と一般的なアドレスの決め方の説明を行います。詳細ではアドレス構成の細かな説明を行います。
ここではNSAPアドレスの簡単な説明と、 IS-ISを使用する際にISに設定するNSAPアドレスの構成と決め方を説明します。
NSAPアドレスはOSIネットワークで使用されるESやISのシステムを識別するためのアドレスです。NSAPアドレスを個々のシステムに設定することで各システムを一意に識別することができるようになり、ESやISが相互に通信することができるようになります。NSAPアドレスはISOによってグローバル通信ができるように考えられていますが、OSIプロトコルであるIS-ISはこのNSAPアドレスを使用してドメイン内のシステムが相互通信できるようになります。
アドレスの形式は下図のようにドット区切りの数字で表現されます。最も短くて3オクテット、最も長くて20オクテットの可変長です。
NSAPアドレスは下図のようにISやESなどの通信機器がそれぞれ個別のNSAPアドレスを持つように付与されます。NSAPアドレスはグローバル通信が可能になるようにドメインやエリアの識別が行えるようになっているため、ルールを守って設定する必要があります。
NSAPアドレスの構成は大きく2つのパートに分かれています。
IDP(Inter Domain Part) | ドメインを識別するためのパート。ドメインごとに異なる番号になる |
DSP(Domain Specific Part) | ドメイン内のシステムを識別するためのパート。ドメインで一意に番号を設定する |
そしてパートはさらに細かなフィールドから構成されています。
フィールド |
長さ (Octet) |
記数法 | 用途 |
AFI(Authority and Format Identifier) | 1 | 16進数 | ネットワークアドレス指定機関を識別する。番号はISOによって規定されている |
IDI(Initial Domain Identifier) | 可変長 0~8 | 10進数 | AFIで指定されたネットワークアドレス指定機関から付与された番号が入る |
HO-DSP(High Order Domain Specific Part) | 可変長 0~17 | AFI指定 | エリアをドメイン内で分ける際に任意で使用する |
ID(SystemID) | 可変長 1~8 | AFI指定 | ドメイン内の機器に付けるための番号 |
SEL (Network Selector) | 1 | AFI指定 | 上位層を識別するための番号。ISでは00、ESの場合は上位層が指定する |
Area Address | – | – | IS-ISでエリアの識別に使用する範囲 |
ここからはドメイン内で使用することを想定してローカルアドレスをIS-ISで使用する場合の一般的な決め方を見ていきます。
NSAPのローカルアドレスは閉じたネットワーク環境内であれば自由に使用することのできるアドレスです。ローカルアドレスを使用する場合、以下の条件に沿って決めていきます。
1)AFI:49(1オクテット)
ローカルアドレスではAFIが49に決められています。
2)IDI:なし
AFIに49を使用した場合はアドレス指定機関がないことを意味するため、IDIフィールドはなくなります。
3)SEL:00(1オクテット)
ローカルアドレスをIS-ISで使用する場合、SELは00の固定になります。
4)ID:任意値(6オクテット固定)
残りの桁を使用してエリアを識別するための番号を決めます。長さは任意ですが、IDが6オクテットに固定されているため最大12オクテット分を使用することができます。長さを0にしてフィールドをなくすこともできます。その場合Area AddressはAFIのみとになります。
HO-DSPの長さを12オクテット、エリア番号を1、IDを1にした場合は以下のようになります。この構成はNSAPアドレスの最長の構成です。図内のFIXは長さが固定されていることを表します。
HO-DSPの長さを4オクテット、エリア番号を12、IDを3にした場合は以下のようになります。
HO-DSPの長さを0オクテット、IDを4にした場合は以下のようになります。この構成がローカルアドレスでは最短のアドレスです。エリアはAFIの示す1つだけになります。
HO-DSPの長さを2オクテット、エリア番号を1、IDを5にした場合は以下のようになります。
この構成が一般的に使用される構成になります。
ここからはNSAPアドレスを考える際のとらえ方とアドレスの構成の詳細を説明します。
NSAPアドレスを理解するためのポイントはNSAPアドレスに関する規定が複数存在していることと、それぞれの役割を知ることです。NSAPアドレスに関する規定は次のようなものがあります。
・OSIの規定
・アドレス指定機関の規定
・IS-ISの規定
・GOSIPの規定
・ベンダの規定
これらの規定は下図のように整理することができます。決まり事は大きく緑のエリアの「アドレスを付与する規定」と、青のエリアの「アドレスを利用する規定」に分けることができます。ユーザからするとどちらもNSAPアドレスの規定ですが、「アドレスを付与する規定」ではドメイン間の通信を行うためのドメインアドレスの付与に関してのみ決められているため、そのままではドメイン内での利用には不十分です。「アドレスを利用する規定」ではドメイン内で利用する立場からNSAPアドレスを解釈してプロトコルやユーザが利用しやすくしています。
OSIの規定はOSIネットワークに関する様々な事を決めていますが、NSAPアドレスについては主にアドレス全体の構成と、NSAPアドレスで使用する番号計画をどのように扱うかを規定しています。番号計画はE.164やX121などの番号・アドレスの付与規則を表します。番号をグローバルに管理し要求のあった組織に対して割り振る権限を持ったアドレス指定機関が運用する番号体系です。
アドレス全体の構成では、アドレスのサイズや性質、区分などが決まっています。アドレスのサイズは全体で20オクテットの可変長で、階層化を前提として考えられています。NSAPアドレスはOSIネットワーク用のアドレス形式ですが、OSI専用として決められたのではなく複数の既存の番号計画を内包して選択できる構造になっています。そして階層化したアドレッシングを可能にするためアドレスの構造は、ドメインのアドレスを決めるIDPと、組織内のIDを決めるDSPの2つからなります。下図はNSAPアドレスの構成を示しています。
全体の構成 | 最大20オクテットの可変長アドレスで、IDPとDSPに分かれる |
IDP(Inter Domain Part) |
ドメイン間通信で使用するアドレスを表すパート。使用する番号計画とアドレス割り当てを行う組織を識別する |
DSP(Domain Specific Part) | ドメイン内通信で使用するドメイン内IDを表すパート。DSPの具体的な使用方法は規定されていない |
OSIの規定ではIDPはドメインに対してどのようにアドレスを付与するのかが目的となっていて、DSPの扱いはアドレス指定機関やドメインやプロトコルにゆだねられていることから、NSAPアドレスのパートは多少強引ですが以下のように役割分担をしていると解釈することができます。
NSAPアドレスはそのアドレス内で複数の番号計画を扱えるようになっています。IDPは下図のようにAFIとIDIにフィールド分けられていて、AFIは使用する番号計画の識別番号、IDIはドメインを管理する各組織のアドレスが入ります。AFIの値はOSIの規定で番号計画ごとに決められていて、IDIの値は各番号計を管理するアドレス指定機関が各組織に付与します。
AFI(Authority and Format Indicator)
AFIはドメインアドレスで使用するためのフォーマットと番号計画を表す値で長さは1オクテットです。AFIは下に示した表に従って番号を決定することで次の指定を行います。
・IDIのフォーマット
・IDIの値の割り当てを担当するネットワークアドレス指定機関
・IDIの先頭桁の意味の解釈
・DSPの構文指定
上の表は番号計画と抽象構文の組み合わせで選択を行います。行で番号計画(IDI Format)を選択し、列でDSPフィールドの抽象構文(DSP Syntax)を選択します。番号計画の選択ではIDIの長さ(フォーマット)とアドレス指定機関が決まり、抽象構文の選択ではDSPで使うことのできる数字や文字が決まります。
例えばX.121アドレスがすでに付与されていてDSPをIPアドレスのような10進数で表現する場合には36か52を使用することになります。またアドレスの付与がなくローカル用途で使用する場合はLocalになりますが、DSPをMACアドレスのように(もしくはMACアドレスをそのまま埋め込む形で)使用する場合は49に決まります。
X.121のように2つのAFI値のある番号計画は可変長タイプであるため、IDIに入るアドレスの先頭桁の値(番号計画の問題)によってどちらかを選択します。NSAPのIDPはAFI毎に固定長であるためIDIの最大長よりも短いアドレスの場合はIDIの先頭にパディングが必要です。バイナリ符号化ではパディングに0を使いますが、番号計画から付与されたアドレスの初めの桁が0の場合は区別をつけなければなりません。IDIの初めの有効桁が0でない場合は小さいほうのAFI値を選択し、0の場合は大きいほうのAFI値を選択します。これによってバイナリ符号化の際のパディング値(0か1)が決定します。
IDI(Initial Domain Identifier)
各組織(ネットワークドメイン)を識別するための番号が入るフィールドです。AFIと連結してドメインアドレスとして機能します。IDIの実際の値はAFIで示されたアドレス指定機関によって割り当てられた番号が入ります。IDIの作成規則は各番号計画の問題であるためOSIとしては、アドレスの入れ物(IDI)をだけを準備し収まりだけ注意しています。それが前のAFIで説明しているフォーマットや先頭桁の解釈です。IDIの長さは指定された番号計画によって異なり最短で0オクテット(Local)、最長は8オクテット(E.164)でいずれも10進数です。Localはドメイン内で任意で使用することができるアドレスで、ドメインの区別が必要ないためIDIは存在しません。
下図はAFIをBinaryで指定した場合にIDIのアドレスの長さを比較した例です。桁数が収まるようにオクテット単位でIDIが使用されます。
アドレス指定機関の規定は上のAFIで指定された番号計画のためにアドレス指定機関が設けた決まりです。この規定はそれぞれの番号計画の中での決まりですが、NSAPアドレスの長さや使い方に影響を与えます。例えば、NSAPアドレスを短くして使用する場合、番号計画から付与されるアドレスの長さを把握しておかなければフィールドが被ってしまう危険があるため、使用する番号計画の規定を事前に知っておく必要があります。またアドレス指定機関から識別番号を付与された組織がユーザに番号を付与する際に条件を設けている場合は順守する必要があります。
下図はX.121のアドレスを当てはめた例です。X.121は通常は14桁(7オクテット)のアドレスですが、プライベート番号を使用する場合は可変長となります。
ここまでの規定でIDPの使用方法とドメインで使用するアドレスが決まった状態ですので、ここからはアドレスを利用する立場でドメイン内の規定を設けていきます。
このページで説明しているのはIS-ISで使用するNSAPアドレスであるため、付与されたドメインアドレスに対してIS-ISとしてNSAPアドレスをどのように使用するかの解釈を加えます。下図はIS-ISとしてNSAPアドレスを使用する場合のフィールドです。DSPの右側からSEL、ID、Area Addressとフィールド分けされています。Area AddressにはIDPで付与されたドメインのアドレス(緑部分)とHO-DSPフィールドが含まれています。わざわざこのようにフィールドを分けなおす理由はIS-ISにとってIDPは意味を持たないためです。IDPはプレフィックスでありドメイン内では変更できません。IS-ISからするとIDPは苗字のような存在で、フルネームとしては必要ですがドメイン内では活用することができません。そのためIDPとIDの間に任意でエリアを識別することができるHO-DSPフィールドを配置しています。
Area Address
IS-ISとしてエリアを識別するためのアドレスが入ります。ドメインを表すアドレスはIDPのアドレスですが、そこにDSPの頭に位置するHO-DSPを加えてドメイン内の各エリアを識別するためのアドレスとして扱います。エリア間のルーティングを行う場合はこのArea Addressを元に行います。
HO-DSP(High Order Domain Specific Part)
ドメイン内で複数のエリアを設ける際に使用するアドレスです。IS-ISではHO-DSPとIDPを合わせてArea Addressと解釈します。”HO-DSP”はRFC1142以降で使用される名前ですが、OSI側での名称が存在しないため便宜的に使用します。
ID
システムを識別するための番号です。エリア内ではこのIDを使用してルーティングを行います。そのためエリア内では一意でなければなりません。なおPDU内で指定されるID Lengthフィールドの値は1~8の値でオクテット長を示しますが、0の場合は6オクテットを示し、255の場合は長さ0のNULLフィールドを表します。
SEL(Selector)
SELは上位層(トランスポートエンティティ)を区別するための情報です。この値は自由に使用することが可能ですが、相互通信を行う場合には上位のプロトコルに対して同じ値を使用する必要があります。ただしSEL値を決めるのは上位層であり、値の管理はIS-ISを運用する各ネットワークのローカル(もしくは上位プロトコル)の問題となります。IS-ISのためにNSAPアドレスを使用する場合にはSELに”00”を使用します。IS-ISはネットワークエンティティですが、ネットワーク層の上で動作することからトランスポートエンティティと同じNSAPアドレスによって識別されます。OSIの規定では「ネットワーク層のエンティティを識別するためには、NSAPアドレスと構文的に区別のないNET(Network Entity Title)を使用する」とされていますが、ネットワークエンティティであるIS-ISではSELを”00”で使用することでNETを表します。SELはTCP/IPにおけるプロトコル番号やTCPポートと同じ役割をします。プロトコル番号やTCPポートがルーティングには関わらないのと同じように、SELはルーティングでは使用されません。
IS-ISでのDSPの使い方には各フィールドの長さに関して注意することがあります。
下図はNSAPアドレスの長さを最大の20オクテットにして、IS-ISで使用するフィールドの長さをIDが最も長い状態(8オクテット)で当てはめた例です。青いDSPフィールドの中でSELとIDは番号計画に関係なく一律に同じ長さを確保することができますが、HO-DSPはIDPとIDとSELを差し引いた残りを使用するため、使用する番号計画やIDの長さによって使用できる数が変わります。下図の赤字はHO-DSPが最低限使用することができる長さを示しています。この状態からNSAPアドレスの長さが短くなったり、IDの長さが短くなったりするとHO-DSPの長さが変化します。例えば下図の一番上のX.121は3オクテットのHO-DSPが使用できますが、NSAPアドレス全体の長さが18オクテットになると使用できるHO-DSPの長さが1オクテットになります。その状態からIDの長さが4オクテットになると、使用できるHO-DSPは5オクテットになります。このようにHO-DSPはNSAPアドレスの中で明示的ではありません。そのためHO-DSPの長さを正確に知るためにはIDの長さが指定されていなければなりません。
GOSIP(Government OSI Profile)はアメリカ(NIST)やイギリス国内で設けられたOSI機器の調達に対する規定です。上で説明したOSIやIS-ISの規定は幅の広い選択肢を持つためOSI機器を調達する際に一定の仕様にとなるよう設けられた基準です。GOSIPはOSIネットワーク全体に対して規定されていますが、NSAPアドレスに関しては細かなフィールド分けが行われています。下図はUS GOSIP 2.0によるフィールド分けです。AFIでISO 6523-ICD(47)を使用した独自の分け方がされています。下図のフィールドの分け方は一見するとOSIやIS-ISの規定とは全く異なるように見えますが、OSIとIS-ISの規定を侵さない形で独自のフィールド(赤字)が追加されています。
ベンダの規定はネットワーク機器やアプリケーションサービスを開発するメーカーの実装仕様です。メーカーによって実装のされ方が異なるため内容も異なります。下図ではIDの長さと、SELの例を挙げています。
IDはIS-ISの規定では1~8オクテットの可変長ですが、下図では6オクテットでの使用に固定されています。これはGOSIPの規定でEnd Systemの長さが6オクテットになっているためです。IDが6オクテットに固定されているとNSAPアドレス全体の長さを20オクテットにした場合、HO-DSPフィールドが広がることに注意しておく必要があります。
SELはOSIで規定されているネットワークエンドポイントを識別するためにIS-ISで規定されたIDで、基本的に上位層からの指定によって使用します。ネットワーク層ではIS-ISによるNET以外の明確な利用は規定されていません。ルーティングやルート計算でも基本的に使用しないため、IS-ISとしての受け入れは必要ですが、上位プロトコルの思想によって省かれたとしてもネットワークは機能します(ただし、プロセス間通信では原則として必要です)。この考え方はES-IS(ISO9542)でもNETによってESの持つすべてのNSAPアドレスの存在を意味する実装の可能性について示唆されています。