【SRへの道6】IS-IS設定で分からなかった疑問を解消

トップページはこちら

前回までに行ったこと

前回はISP-B内でIS-ISを動作させました。
しかし、OSPFとは少し異なる設定をしました。こちらなぜなのか疑問を解消していこうと思います。

IS-ISとは


まずIS-ISについてザックリと調べていきます。

IS-ISはOSIプロトコル

IS-ISはIntermediate System to Intermediate Systemの略でIGPのルーティングプロトコルです。もうすでに基本ですが、ダイナミックルーティングをするためのプロトコルは大きく分けてIGP(Interior Gateway Protocol)とBGP(Exterior Gateway Protocol)に分類されていて、IS-ISはOSPF, RIP, EIGRPなどと一緒のIGPに分類されます。
しかしIS-ISはOSPF, RIP, EIGRPなどのIGPとは異なり「ISOが策定したOSIプロトコル」で使用されるルーティングプロトコルになります。

- OSIプロトコルスイートで使用されるルーティングプロトコル
  ⇒ IS-IS
- TCP/IPプロトコルスイートで使用されるルーティングプロトコル
  ⇒ IGP: RIP、EIGRP、OSPF、iBGP
  ⇒ BGP: eBGP

OSI参照モデルとTCP/IP

引用:https://www.itmanage.co.jp/column/osi-reference-model/


最初にネットワークについて学ぶときにOSI参照モデルとTCP/IPという似たような二つの表をみました。こちらが大きくかかわっているのですが、もともとインターネットで使われるプロトコルを標準化するためにISO(国際標準化機構)がOSI参照モデルというものを提唱しました。そのOSI参照モデルはOSI(Open Systems Interconnection:開放型システム間相互接続)で用いられる通信のモデルをもとに作られています。
このOSI(Open Systems Interconnection:開放型システム間相互接続)で動くように開発されたルーティングプロトコルがIS-ISというわけです。なのでIS-ISはもともとIPルーティングはできないのです。
しかしOSIモデルよりTCP/IPが普及し使われるようになったため、IS-ISはOSI環境とTCP/IP環境どちらでも共存できるように対応されました。これがIntegrated IS-ISです!今現在TCP/IPで使われているルーティングプロトコルのIS-ISは実はIntergrated IS-ISという名前なのですが、現在ではIS-ISだけでもIntergrated IS-ISを指します。
以下、Integrated IS-ISの場合でもIS-ISと表記します。

※すこし込み入った話
OSIプロトコルという意味でのIS-ISはOSI(Open Systems Interconnection:開放型システム間相互接続)でのネットワーク層サービスであるCLNS(Connection Less Network Service)上で使用されるルーティングプロトコルでした。
CLNSはCLNP(Connection Less Network Protocol)というプロトコルが提供しています。このCLNPの機能は現在のインターネット上ではIPが代替しています。そのCLNPではルーティングにIS-ISを利用するのです。
というわけでIntegreted IS-ISというのはCLNS上だけではなくIPでも動作できるように改良されたプロトコルなのです。
ちなみにCLNSではメッセージの経路を送信先のNSAPアドレスで個別に指定します。(後で出てきます)

IS-ISはリンクステートプロトコル

少しややこしいですが、IS-ISはOSPFと同様のリンクステートルーティングプロトコルです。なのでOSPFとの共通点が多くあります。

◆ OSPFとの共通点
・ 経路計算にSPFアルゴリズムを使用して、リンクステートデータベースを保持する
・ Helloパケットによりネイバー関係の確立を行う
・ エリアの概念を持っている
・ VLSM、認証、エリア間の経路集約をサポートする
⇒ IS-IS has the capability to provide address summarization between areas.

◆ OSPFとの相違点
・ OSPFは「TCP/IPプロトコルスタック」、IS-ISは「OSIプロトコルスタック」を使用
・ OSPFでは必ずバックボーンエリアが必要となるが、IS-ISでは必須とはならない
・ OSPFの指名ルータはDRと呼び、IS-ISの指名ルータはDISと呼ばれる
・ OSPFではBDRが存在するが、IS-ISではBDRに相当する役割のルータはない
・ Integrated IS-ISではIPv4とIPv6を同時に使用できるが、OSPFではIPv4を使用する場合OSPFv2を使用、IPv6を使用する場合にはOSPFv3のプロトコルを動作させる必要がある。

https://www.infraeye.com/2016/10/13/cciea01/

NSAPアドレス

NSAPアドレスをなぜ使うのか

前回IS-ISを設定したときにNETコマンドを用いてNSAPアドレスを各ルータに設定しました。これはOSPFと異なり戸惑いましたが、前述した通りIS-ISではルーティング自体をOSIのCLNSのアドレス体系であるNSAPアドレスを使用します。IPアドレスではないんですね。IS-ISではルータの識別やトポロジーテーブルを作成する際にもNSAPアドレスを使います。

NSAPアドレスの構成

引用元: https://www.infraeye.com/2016/10/16/cciea06/

・ AFI(Authority and Format Identifier)
⇒ グローバルIPアドレスのように、ISPや企業ごとに決められたアドレスを使用する。 ※1
・ IDI(Initial Domain Identifier)
⇒ ドメインを識別する情報。
・ HO-DSP(High Order Domain Specific Part)
⇒ ドメインをエリア分割した場合の識別に使用する情報
・ System ID
⇒ デバイスを識別する情報。ルータのMACアドレスまたはIPv4アドレスを使用する。
・ NSEL
⇒ 上位プロトコルを識別するために使用する情報。N-selectorとも呼ばれる。※2

※1 AFIに 0x49 を指定した場合、プライベートアドレスであることを表している。
※2 NSELはNSAPデバイス自体を示す 0x00 を通常は使用する。

https://www.infraeye.com/2016/10/16/cciea06/

実際に割り当てた例

https://www.infraeye.com/2016/10/16/cciea06/

こちらの例を参考に今回のIS-ISは設定させていただきました。
XE-B1: 01.0000.0000.0001.00
XE-B2: 01.0000.0000.0002.00
XE-B3: 01.0000.0000.0003.00
XE-B4: 01.0000.0000.0004.00
XE-B5: 01.0000.0000.0005.00

今回後ろのシステムIDは自由につけていい値ということでルータの通し番号通りにつけてあります。NSELは通常ルータでは「00」を付けるそうなのでそうしてあります。
さて、エリアIDなのですが、通常はプライベートアドレスであればAFに49を入れます。そしてIDI ,HO-DSPを付けるのですがこちらAFを省略しても動作しました。すべて同一エリア内のルータなので「01」を付けました。
なぜこれで動作するのかはいまだにわかっておりません。わかり次第追記します。

まとめ

Integrated IS-IS、調べれば調べるほど奥が深くて時間が足りません。今回こちらを完璧に理解するまで立ち止まってしまったら全く前に進みません。ひとまずこちらの理解にとどめておき、先に進めていきたいと思います。もし目標に到達したら戻ってきてより詳しくなりたいと思います。

この記事が気に入ったらサポートをしてみませんか?