30 Minutes NetWorking
No.RT25

30Minutes NetWorking

BSCI

第25回Integrated IS-IS(3) NSAP

■ OSIアドレッシング

スーパーインター博士

さてネット君。OSIプロトコル・スイートはTCP/IPプロトコル・スイートとは別の体系だな。

ハイパーネット助手

えぇ、そうですね。
レイヤ3以上のプロトコルが全く違いますものね。

スーパーインター博士

うむ。よってレイヤ3の論理アドレスも異なる
OSIで使用されるアドレスをNSAPという。

ハイパーネット助手

えぬえすえーぴー?

スーパーインター博士

エヌサップ、と呼ぶ。
ATMでも使用されるレイヤ3アドレスだ。

ハイパーネット助手

えぬさっぷ、ですね。
IS-ISはCLNP/CLNSを使うから、NSAPが必要だ、と。

スーパーインター博士

ただし、覚えておいて欲しいのは、Integrated IS-ISでもNSAPは必要ということだ。

ハイパーネット助手

そうなんですか?
普通のIS-ISはともかく、Integrated IS-ISはIPも使えるから、IPアドレスだけってわけにはいかないんですか?

スーパーインター博士

そうはいかない。Integrated IS-ISでもNSAPでISを識別するからな。
Helloやアドバタイズの際に使うのは、たとえIntegratedでもNSAPだ。

ハイパーネット助手

は〜。
あくまでもNSAPが基本で、IPはおまけみたいなものですか?

スーパーインター博士

そういうわけでもないが、まぁ、そういう形で覚えてもらって問題はない。
さて、このNSAPアドレスの特徴だが……、そうだな。IPアドレスと比較しよう。

ビット数名前説明
4バージョンIPのバージョン
4ヘッダ長IPヘッダの長さ
8サービスタイプ上位プロトコルによって割り当てられた重要度
16データ長IPヘッダとセグメント・データを合わせた長さ
16ID大きいデータを分割した際につける識別番号
3フラグ分割する際に使用するフラグ
13フラグメント・オフセット分割を繋ぎあわせる時に使う
8TTLパケットの生存時間。無限ループを防ぐ
8プロトコル使用している上位プロトコルの番号
16ヘッダ・チェックサムIPヘッダのエラーチェック

[Table20-01:IPヘッダ]

スーパーインター博士

上の表はIPヘッダの一部だが。
プロトコル、という項目があるな。

ハイパーネット助手

ありますね。IPを使用する上位プロトコルの番号ですよね。
0x06がTCPで、0x11がUDPとか。

スーパーインター博士

うむ。NSAPはIPでいうところのアドレスとプロトコルがセットになっている、と考えたまえ。
簡単に書くと、こう。

NSAP
デバイスのアドレス上位レイヤのプロトコル

[TableRT25-01:NSAPアドレス]

ハイパーネット助手

デバイスのアドレスと、上位プロトコルの2つでNSAP、ですね。

■ NSAPアドレスの構造

スーパーインター博士

NSAPは可変長アドレスで、実はいくつかのバージョンにより異なる。
今回は、CiscoルータがCNLSをルーティングする際に認識できるNSAPの説明をする。

ハイパーネット助手

CCNP向けですね。

スーパーインター博士

まぁ、そういうことだ。
このような構造になっている。

I
D
P
AFIオーソリティおよびフォーマット記述子可変長エリアID
IDIインタードメイン識別子可変長
D
S
P
HODSP上位ドメイン固有パート可変長
SIDシステムID6バイト
NSELNセレクタ1バイト

[TableRT25-02:NSAPの構造]

ハイパーネット助手

…。博士。

スーパーインター博士

なんだね?

ハイパーネット助手

助けてください…。

スーパーインター博士

あぁ、まぁ、あれだ。確かに新しい略語だらけで大変かもしれんな。
では、わかりやすいようにIPアドレスとの比較をしてみよう。

NSAPAFIIDIHODSPSIDNSEL
IPアドレスネットワーク部サブネットワーク部ホスト部プロトコル
区別エリアID

[TableRT25-03:NSAPアドレスとIPアドレスの対比]

ハイパーネット助手

ネットワーク部とサブネットワーク部とホスト部。
なんとなくわかったような。

スーパーインター博士

つまり、AFIとIDIのIDPはドメインを表し、HODSPはエリアSIDはホストを示す、ってことだな。

ハイパーネット助手

で、NSELはIPヘッダのプロトコル、ですね。

スーパーインター博士

まぁ、そういうことだが。
例えば、そのデバイスそのものを表したい場合、NSELは邪魔になる。

ハイパーネット助手

デバイスそのものを表す?

スーパーインター博士

つまり、上位プロトコルはなんでもいいから、デバイス自体のアドレスをしめす場合だな。

ハイパーネット助手

え〜っと。NSELは上位プロトコルを示すんですよね。
デバイス自体を示すならば、上位プロトコルの部分はいらない、かな。

スーパーインター博士

うむ、その場合NSELに0x00を入れる。このNSAPをNETと呼ぶ。

ハイパーネット助手

ねっとわーくえんてぃてぃたいとる。
エンティティって「実体」って意味ですよね。

スーパーインター博士

そうだ。デバイスという「実体」を表すアドレス、ということだな。

ハイパーネット助手

あ〜、なるほど。

スーパーインター博士

さらに、IDPとHODSPの部分を所属するドメイン+エリアを示すエリアIDとしている。

ハイパーネット助手

エリアIDはネットワークアドレスみたいな感じですね。

■ NSAPアドレスの表記法

スーパーインター博士

さて、そのNSAPの表記方法だが。なんといっても長いので16進数表記を使う。

ハイパーネット助手

IPv6と同じですね。

スーパーインター博士

うむ。IPv6は「(コロン)」で分割するが、NSAPは「.(ドット)」を使う。

ハイパーネット助手

そこらへんはIPv4と同じなんだ。

スーパーインター博士

うむ。
まず、システムIDの部分から話そう。一番後ろのNSEL。これが1バイト2ケタ

ハイパーネット助手

デバイスを示す場合、00ですね。

スーパーインター博士

次がSID。これが6バイト12桁
ネット君。6バイト12桁のアドレスと聞いてなにか思い出すものはないかね?

ハイパーネット助手

6バイト12桁? 6バイトって48ビットですよね。
……MACアドレス!!

スーパーインター博士

よしよし。CiscoルータではMACアドレスをSIDとして使うことが多い。
表記法はMACアドレスと同じように、2バイト4桁づつドットで区切る。

ハイパーネット助手

「1111.1111.1111」みたいな形ってことですね。

スーパーインター博士

うむ。
残りのエリアIDの部分だが、1〜13バイトが使用できる。つまり最大で13バイト + SID6バイト + NSEL1バイトの20バイトってことだな。

ハイパーネット助手

IPv4の4バイトに比べると長いですね。

スーパーインター博士

エリアIDにはいくつかの表現方法がある。
Cisco IOSがIS-ISで認識するフォーマットで説明しよう。まず、AFIは1バイト

ハイパーネット助手

2桁ですね。

スーパーインター博士

AFIが49はプライベートアドレスとみなされる。他には39や47が使われる。
これに慣例上では2バイト追加してエリアIDを構成する。

ハイパーネット助手

合計3バイト?

スーパーインター博士

あくまでも「慣例上」はな。最大で13バイトまで可変することが可能だからな。
NSAPは先頭から見ていくとわかりづらいので、後ろから見ていくことがポイントだ。

ハイパーネット助手

先頭が可変だからですね。

スーパーインター博士

そういうことだ。
ちょっと例をあげてみよう。

  • 39.0001.1111.2222.3333.00
    • エリアID … 39.0001
    • システムID … 1111.2222.3333
    • Nセレクタ … 00
  • 39.1234.5678.aaaa.bbbb.cccc.00
    • エリアID … 39.1237.5678
    • システムID … aaaa.bbbb.cccc
    • Nセレクタ … 00
ハイパーネット助手

最後の1バイトがNSEL、次の6バイトがSID、残りがエリアIDですね。

■ NSAPアドレスの割り振り

スーパーインター博士

さて、実際NSAPをホストに割り振るのだが。
NSAPはデバイスに1つということがまず重要だ。

ハイパーネット助手

NSAPはデバイスに1つ?
なんか普通ですけど?

スーパーインター博士

そうか?

NSAPアドレスの設定

[FigureRT25-01:NSAPアドレスの設定]

ハイパーネット助手

はぅっ。
IPアドレスはインタフェースごとでしたっけ。

スーパーインター博士

そういうことだ。NSAPはデバイスにつき1つ。インタフェースごとではない。
ここで、前回でてきた図をだすと。

OSPFのエリア境界 IS-ISのエリア境界

Left [FigureRT24-06:OSPFのエリア境界]
Right [FigureRT24-07:IS-ISのエリア境界]

スーパーインター博士

OSPFのエリア境界はルータ内、IS-ISはリンク上と言ったな。
何故かといえば、IS-ISではルータのアドレスが1つしかないため、内部に境界ができないのだよ。

ハイパーネット助手

IS-ISのルータはエリアの中に入り込んじゃってるんですね。

スーパーインター博士

うむ。ルータにつき1つのアドレスしか持たないからな。

ハイパーネット助手

なるほど。

スーパーインター博士

さて、NSAPの割り振りのポイントだが。まぁ、IPアドレスの考えと似ているが。
まず、同一のエリアに所属するISとESは同一のエリアIDを持つ

ハイパーネット助手

IPアドレスで言えば、同一のネットワークアドレスを持つようなものですね。

スーパーインター博士

うむ。さらに同一エリア内のISとESのSIDはユニークでなければならない。

ハイパーネット助手

これもまぁ、そうですね。

スーパーインター博士

そうだな。
さらにバックボーンを形成するすべてのレベル2ISのSIDもユニークでなければならない。

ハイパーネット助手

んん?
IPアドレスで言うと、レベル2って違うエリア(ネットワーク)に所属しているんですよね。なんでSID(ホストアドレス)が同じじゃいけないんです?

IPアドレスのホスト部分

[FigureRT25-02:IPアドレスのホスト部分]

スーパーインター博士

そうだな。IPアドレスのホスト部とSIDは微妙に違いがあるからだ。
各デバイスを識別するには、SIDのみが有効なのだよ。

ハイパーネット助手

スーパーインター博士

IPアドレスはネットワーク部 + ホスト部でインタフェースを個別に識別する。
一方、NSAPは個々のデバイスを識別するのはSIDだけ、ということだな。

ハイパーネット助手

エリアIDは?

スーパーインター博士

エリアIDはルーティングする範囲を決定する役割を持つ。
つまり、エリアID+SIDで識別しない、ということだ。

NSAPのSID

[FigureRT25-03:NSAPのSID]

ハイパーネット助手

なんか変な感じですね。

スーパーインター博士

HelloなどがSIDしか使わない点からきているのだ。
ただし、違うエリアのレベル1ISやESのSIDは重複してもよい

ハイパーネット助手

……?
なんでです?

スーパーインター博士

異なるエリアに所属するレベル1ISやES同士は、直接パケットを交換しないからだ。
レベル2は異なるエリアに所属していても、お互いを識別する必要があるからな。

ハイパーネット助手

ははぁ、なんともややこしいというか。

スーパーインター博士

まぁ、なるべく同一ドメイン内ではSIDはユニークに、ということだな。
SIDさえ違えば、エリアを移動する際にも重複することはないからな。

ハイパーネット助手

なるほど。

スーパーインター博士

では、前回使った図にアドレスを追加してみよう。

NSAPの割り振り・例

[FigureRT25-04:NSAPの割り振り・例]

スーパーインター博士

どうにも長いアドレスはやりにくいな。
ともかく、エリアIDがエリアによって違うことと、SIDがエリア内で重複しないことをまず確認。

ハイパーネット助手

ふむふむ。

スーパーインター博士

レベル2ルータ間でSIDが重複しないことも重要だ。

ハイパーネット助手

さっきの話ですね。
図だと、SIDは完全にユニークになってますよね。

スーパーインター博士

あとは、それぞれのアドレスはNETということだ。
特定のプロトコルというわけではなく、そのデバイス自身を表すアドレス、ということだな。

ハイパーネット助手

NSELが00ですね。

スーパーインター博士

そういうことだ。
よし、今回は終わりにしよう。

ハイパーネット助手

了解です。
30分間ネットワーキングでした〜♪

NSAP
[Network Service Access Point]
ATM
[Asynchronous Transfer Mode]
非同期転送モード。
48バイトデータ + 5バイトヘッダの53バイト固定長のセルとよばれる単位で転送される。
「セルリレー」とも。
NET
[Network Entity Title]
MACアドレスをSID
他にも、単純にシーケンシャルに1から割り振る方法や、そのルータの持つループバックアドレスを変換する(192.168.0.1→0192.0168.0000.0001など)方法もある。
39や47
39はデータ国別コード[Data Contry Code]。47は国際コード[International Code Designator]。
ハイパーネット助手ハイパーネット君の今日のポイント
  • OSIプロトコルでのアドレスをNSAPという。
  • Integrated IS-ISでもNSAPは必要。
  • NSAPは1つのデバイスにつき1つ。
  • NSAPはエリアIDとSIDとNSELからなる可変長アドレス。
  • NSELが00のアドレスをデバイスを示すNETという。
  • エリアIDは同一エリア内で同じものを使う。
  • SIDは同一エリア内・バックボーン内でユニーク。

30 Minutes NetWorking No.RT25

管理人:aji-ssz(at)selene.is.dream.jp