■ 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ヘッダとセグメント・データを合わせた長さ |
16 | ID | 大きいデータを分割した際につける識別番号 |
3 | フラグ | 分割する際に使用するフラグ |
13 | フラグメント・オフセット | 分割を繋ぎあわせる時に使う |
8 | TTL | パケットの生存時間。無限ループを防ぐ |
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 | システムID | 6バイト | ||
NSEL | Nセレクタ | 1バイト |
[TableRT25-02:NSAPの構造]
…。博士。
なんだね?
助けてください…。
あぁ、まぁ、あれだ。確かに新しい略語だらけで大変かもしれんな。
では、わかりやすいようにIPアドレスとの比較をしてみよう。
NSAP | AFI | IDI | HODSP | SID | NSEL |
---|---|---|---|---|---|
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は「
そこらへんは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つ?
なんか普通ですけど?
そうか?
[FigureRT25-01:NSAPアドレスの設定]
はぅっ。
IPアドレスはインタフェースごとでしたっけ。
そういうことだ。NSAPはデバイスにつき1つ。インタフェースごとではない。
ここで、前回でてきた図をだすと。
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(ホストアドレス)が同じじゃいけないんです?
[FigureRT25-02:IPアドレスのホスト部分]
そうだな。IPアドレスのホスト部とSIDは微妙に違いがあるからだ。
各デバイスを識別するには、SIDのみが有効なのだよ。
?
IPアドレスはネットワーク部 + ホスト部でインタフェースを個別に識別する。
一方、NSAPは個々のデバイスを識別するのはSIDだけ、ということだな。
エリアIDは?
エリアIDはルーティングする範囲を決定する役割を持つ。
つまり、エリアID+SIDで識別しない、ということだ。
[FigureRT25-03:NSAPのSID]
なんか変な感じですね。
HelloなどがSIDしか使わない点からきているのだ。
ただし、違うエリアのレベル1ISやESのSIDは重複してもよい。
……?
なんでです?
異なるエリアに所属するレベル1ISやES同士は、直接パケットを交換しないからだ。
レベル2は異なるエリアに所属していても、お互いを識別する必要があるからな。
ははぁ、なんともややこしいというか。
まぁ、なるべく同一ドメイン内ではSIDはユニークに、ということだな。
SIDさえ違えば、エリアを移動する際にも重複することはないからな。
なるほど。
では、前回使った図にアドレスを追加してみよう。
[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は同一エリア内・バックボーン内でユニーク。