↓ メインコンテンツへスキップ
  1. ネットワーク 記事一覧/
  2. IS-IS記事一覧/

IS-ISのネットワークタイプ(broadcast / point-to-point)

目次

IS-ISのネットワークタイプ(broadcast / point-to-point)

イーサネットのインタフェースにpoint-to-pointを書くかどうかで、DISの選出・疑似ノード・定期的なデータベース同期の有無がまとめて変わります。

point-to-pointのイーサネットはISO/IEC 10589:2002には無い動かし方で、「2台しかいないLANはポイントツーポイントとして扱ってよい」と整理したのがRFC 5309です。

規格が知っているネットワークタイプは2つだけ

ISO/IEC 10589:2002の3.6.8と3.6.9が定義しているのは、次の2つです。

名称定義手順を定める節
broadcast subnetwork任意の数のESとISを収容し、加えて1つのSN_UNITDATA要求に応じて1つのSNPDUをその部分集合へ送信できるサブネットワーク(3.6.8)8.4
general topology subnetwork任意の数のESとISを収容するが、ブロードキャストサブネットワークのような多重宛先の伝送機能を持たないサブネットワーク(3.6.9)8.2

8の冒頭も「サブネットワーク独立機能が認識する回線はブロードキャストと一般トポロジの2つだけ」と明記しています。

「ポイントツーポイントのイーサネット」という区分はありません。イーサネットはブロードキャストサブネットワークで、規格どおりなら8.4の手順(DISと疑似ノード)に入ります。

RFC 5309:2台しかいないLANをP2Pとして扱う

実務のpoint-to-pointは、RFC 5309「Point-to-Point Operation over LAN in Link State Routing Protocols」(2008年、Informational)が整理したものです。

ルータが2台しかいないLANをブロードキャストとして扱う理由はない、というのが同RFCの主張で、利点として次の3つを挙げています。

  • 代表ルータ(DIS)が関与しない
  • 疑似ノードのLSPがリンクステートデータベースに現れない
  • IS-ISについては、定期的なデータベース同期も無い

RFC 5309は新しいTLVもコードポイントも定義していません。既存のポイントツーポイントの手順をLAN媒体で使う設定上の取り決めです。

宛先MACについては同RFCの4.1が「ISO 10589で定義されたAllISs・AllL1ISs・AllL2ISsのいずれも使えるが、AllISsの使用を推奨する」と述べています。AllISsはISO/IEC 10589:2002の表9で「ISO 9542が使う」とされている09:00:2B:00:00:05です(IS-ISパケットの種類とヘッダーフォーマット)。また4.5は、ポイントツーポイントの回線がLAN IIHを受け取ったら、LANの回線がポイントツーポイントIIHを受け取ったら、いずれも破棄しなければならないと定めています。片側だけ設定した場合に隣接が成立しないのはこの規定によるものです。

何が変わるのか

同じ2台・同じケーブルでも、この設定ひとつで動作が変わります。

項目broadcast(既定)point-to-point
使うIIHLAN Level 1 / Level 2(PDU Type 15 / 16)Point-to-Point(PDU Type 17)
宛先MAC01:80:C2:00:00:14 / 01:80:C2:00:00:1509:00:2B:00:00:05
IIHの本数レベルごとに別々に送る1種類で両レベルを兼ねる
DISの選出あるない
疑似ノードLSPあるない
定期CSNPDISが送るない
双方向の確認TLV 6(IS Neighbours)TLV 240(3ウェイ、RFC 5303)

確かめるのは、これらが「まとめて付いてくるか、まとめて消えるか」です。IIHのフォーマットはIS-ISパケットの種類とヘッダーフォーマット、双方向確認はIS-ISの隣接関係の確立と状態遷移、DISと疑似ノードはIS-ISのDISと疑似ノードで解説しています。

実機での検証

検証環境

2台だけをイーサネット(10.1.0.0/24)に接続します。RFC 5309が対象とする状況です。両台とも同じエリア49.0001でlevel-1-2、変えるのはpoint-to-pointの有無だけです。

ルータNETLAN IP
R149.0001.0010.0100.1001.0010.1.0.1
R249.0001.0020.0200.2002.0010.1.0.2

検証のSTEP

STEP操作狙い
0両側 broadcast(既定)DIS・疑似ノード・定期CSNPがある状態を計測
1R2だけpoint-to-pointにする片側だけ変えたときに何が起きるか
2両側 point-to-point3つがまとめて消えることの確認と、トラフィックの比較
3両側 broadcast に戻す(最終状態)初期状態と同じ

既定はブロードキャスト(STEP 0)

STEP 0:R1の show isis interface GigabitEthernet0/0/0/0(抜粋)
  Circuit Type:             level-1-2
  Media Type:               LAN
  Circuit Number:           1
  Last IIH Received:        08:01:52 (0.60 sec ago), 1497 octets
  Last PDU Rejected:        07:59:55 (00:01:56 ago), 76 octets, L2 LSP, Wrong Adjacency State
  Last IIH Sent:            08:01:46 (6.28 sec ago), 1497 octets
  
  IPv4 BFD:                 Disabled
  IPv6 BFD:                 Disabled
  
  Level-1                   
    Adjacency Count:        1
    Adjacency Flaps:        0
    LAN ID:                 R2.01
    Priority (Local/DIS):   64/64
    Next LAN IIH in:        3 s
    LSP Pacing Interval:    33 ms
    PSNP Entry Queue Size:  0
    Hello Interval:         10 s
    Hello Multiplier:       3
  Level-2                   
    Adjacency Count:        1
    Adjacency Flaps:        0
    LAN ID:                 R2.01
    Priority (Local/DIS):   64/64
    Next LAN IIH in:        3 s
    LSP Pacing Interval:    33 ms
    PSNP Entry Queue Size:  0
    Hello Interval:         10 s
    Hello Multiplier:       3

Media Type: LANで、何も書かなくてもブロードキャストとして扱われます。LAN IDとPriority (Local/DIS)がレベルごとに現れ、DIS(R2)が選ばれています。Last PDU Rejectedは隣接が成立する前(07:59:55)に届いたLSPの記録で、この時点の異常ではありません。

STEP 0:R1の show isis database
IS-IS 1 (Level-1) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000005   0x1506        1085 /*            0/0/0
R2.00-00              0x00000005   0x955a        1087 /1200         0/0/0
R2.01-00              0x00000002   0xac86        1087 /1200         0/0/0

 Total Level-1 LSP count: 3     Local Level-1 LSP count: 1

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000007   0x7603        1089 /*            0/0/0
R2.00-00              0x00000007   0xfb56        1090 /1200         0/0/0
R2.01-00              0x00000002   0xac86        1087 /1200         0/0/0

 Total Level-2 LSP count: 3     Local Level-2 LSP count: 1

ルータは2台なのにLSPは3つで、R2.01-00がDISの作る疑似ノードLSPです。

片側だけ変えるとどうなるか(STEP 1)

R2だけをpoint-to-pointにします。

STEP 1:R2に投入した設定
router isis 1
 interface GigabitEthernet0/0/0/0
  point-to-point
STEP 1:R1の show isis neighbors
RP/0/RP0/CPU0:R1#show isis neighbors
Wed Sep  9 08:08:05.414 UTC

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF

隣接が消えます。R2側も空です。

MTU不一致では大きいMTU側がInitで残りますが(IS-ISの隣接関係の確立と状態遷移)、ネットワークタイプの不一致では両側とも相手が見えません。理由は各ルータに出ます。

STEP 1:R1の show isis interface GigabitEthernet0/0/0/0(抜粋)
  Circuit Type:             level-1-2
  Media Type:               LAN
  Circuit Number:           1
  Last IIH Received:        08:05:25 (00:02:39 ago), 1497 octets
  Last PDU Rejected:        08:07:56 (8.72 sec ago), 1497 octets, P2P IIH, P2P IIH on LAN Interface
  Last IIH Sent:            08:08:04 (0.28 sec ago), 1497 octets
STEP 1:R2の show isis interface GigabitEthernet0/0/0/0(抜粋)
  Media Type:               P2P
  Circuit Number:           0
  Extended Circuit Number:  0
  Last IIH Received:        08:05:23 (00:02:59 ago), 1497 octets
  Last PDU Rejected:        08:08:21 (2.19 sec ago), 1497 octets, L1 LAN IIH, LAN IIH on P2P Interface
  Last IIH Sent:            08:08:23 (0.01 sec ago), 1497 octets

RFC 5309の4.5のとおり、両側が相手のIIHを破棄しています。

ルータMedia Type拒否した理由
R1LANP2P IIH on LAN Interface(LANのインタフェースにP2PのIIHが来た)
R2P2PLAN IIH on P2P Interface(P2PのインタフェースにLANのIIHが来た)

Last IIH Receivedもどちらも設定変更前で止まっています。

キャプチャでは両者が噛み合わないIIHを送り合っています。

STEP 1:不一致中に流れているIIH(送信元別の集計)
$ tshark -r isis-nwtype-mismatch.pcap -n -Y "isis.type == 15 || isis.type == 16 || isis.type == 17" \
    -T fields -e eth.src -e eth.dst -e isis.type | sort | uniq -c
  26 52:54:00:1f:66:bf	01:80:c2:00:00:14	15
  26 52:54:00:1f:66:bf	01:80:c2:00:00:15	16
   5 52:54:00:4b:d0:88	01:80:c2:00:00:14	15
   5 52:54:00:4b:d0:88	01:80:c2:00:00:15	16
   23 52:54:00:4b:d0:88	09:00:2b:00:00:05	17
列内容
1列目パケット数(uniq -c)
2列目送信元MAC。52:54:00:1f:66:bfがR1、52:54:00:4b:d0:88がR2
3列目宛先MAC
4列目PDU Type

R2の15 / 16が5本ずつあるのは変更前の分です。以降はR1が15と16を01:80:c2:00:00:14 / :15へ、R2が17を09:00:2b:00:00:05へ送り続けています。

MTU不一致では小さい側のIIHは届くので片側がInitで残りますが、ネットワークタイプの不一致では相手のIIHを1つも受理しないため両側とも見えません。

ネットワークタイプ不一致時(STEP 1)のキャプチャー(isis-nwtype-mismatch.pcap) をダウンロード

両側を point-to-point にする(STEP 2)

R1もpoint-to-pointにします。

STEP 2:R1の show isis neighbors
RP/0/RP0/CPU0:R1#show isis neighbors
Wed Sep  9 08:14:03.768 UTC

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
R2             Gi0/0/0/0        *PtoP*         Up    27       L1L2 Capable 

Total neighbor count: 1

隣接が復活し、SNPAが*PtoP*になります。インタフェースの表示も変わります。

STEP 2:R1の show isis interface GigabitEthernet0/0/0/0(抜粋)
  Circuit Type:             level-1-2
  Media Type:               P2P
  Extended Circuit Number:  3
  Level-1                   
    Adjacency Count:        1
  Level-2                   
    Adjacency Count:        1

LAN ID・Priority (Local/DIS)・Next LAN IIH inがまるごと消え、Extended Circuit Numberが現れます。DISが存在しないためです。

STEP 2:R1の show isis database
IS-IS 1 (Level-1) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000009   0xcc4b        919  /*            0/0/0
R2.00-00              0x00000008   0x3cd3        919  /1199         0/0/0

 Total Level-1 LSP count: 2     Local Level-1 LSP count: 1

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x0000000d   0x1e56        920  /*            0/0/0
R2.00-00              0x0000000b   0xfa76        920  /1200         0/0/0

 Total Level-2 LSP count: 2     Local Level-2 LSP count: 1

疑似ノードLSPR2.01-00が消え、LSPが各レベル2つになります。

トラフィックはどれだけ減るか

同じ約130秒の定常状態を両方の設定で比べます。

PDUbroadcast(130秒)point-to-point(132秒)
LAN Level 1 IIH(15)61—
LAN Level 2 IIH(16)60—
Point-to-Point IIH(17)—30
Level 1 CSNP(24)150
Level 2 CSNP(25)150
合計15130
pcapのサイズ188 KB46 KB

パケット数が5分の1になります。

IIHが121本から30本に減るのは、broadcastがレベルごとに別のIIHを送るのに対し、point-to-pointは1種類で両レベルを兼ねるためです。CSNPはゼロで、RFC 5309の「定期的なデータベース同期も無い」のとおりです。

show isis traceでも、切り替えを最後にDISの選出処理が止まっています。

STEP 2:R1の show isis trace all | include ELECT(末尾)
Sep  9 08:09:22.593 isis/1/det ... isis_dis_run_election:739  DIS_ELECTION_RESULT_NO_DIS L1 Gi0/0/0/0
Sep  9 08:09:22.593 isis/1/det ... isis_dis_run_election:719  DIS_RUN_ELECTION L2 Gi0/0/0/0
Sep  9 08:09:22.593 isis/1/det ... isis_dis_run_election:739  DIS_ELECTION_RESULT_NO_DIS L2 Gi0/0/0/0
point-to-point の定常状態(STEP 2)のキャプチャー(isis-nwtype-p2p.pcap) をダウンロード

どちらを選ぶか

LANに2台しかいないならpoint-to-pointにします。DISも疑似ノードLSPも定期CSNPも、2台の間では負荷にすぎません。

ただし両端に必ず入れます。片側だけでは隣接が成立せず、理由はLast PDU Rejectedを見ないと分かりません。

3台以上のセグメントでは使いません。RFC 5309の対象は「2台の場合」です。

STEP 3で両側を broadcast に戻すと初期状態と同じになります。

検証Configおよびshow結果

各STEPで2台から次の3種類を取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 3)。

ファイル内容
..._show.txtshow version / show interface description / show route / show route isis / show isis / show isis hostname / show isis interface / show isis interface brief / show isis neighbors / show isis neighbors detail / show isis database / show isis database detail / show isis topology / show isis adjacency / show isis adjacency detail / show isis adjacency-log / show isis trace all | include ELECT / show isis trace all | include PSEUDO / show isis spf-log / show isis lsp-log / show isis statistics / show cef
..._log.txtそのSTEPの範囲だけに絞ったshow logging(STEP 0のみ起動時からの全履歴)
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)

最終状態は両台ともpoint-to-pointを書いていない状態です。

STEP 0:両側 broadcast(既定)

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun

STEP 1:R2だけpoint-to-pointにする

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun

STEP 2:両側point-to-point

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun

STEP 3:両側 broadcast に戻す(最終状態)

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
キャプチャーファイルは次の3本です。

broadcastの定常状態(STEP 0)のキャプチャー(isis-nwtype-broadcast.pcap) をダウンロード

ネットワークタイプ不一致時(STEP 1)のキャプチャー(isis-nwtype-mismatch.pcap) をダウンロード

point-to-pointの定常状態(STEP 2)のキャプチャー(isis-nwtype-p2p.pcap) をダウンロード

参考

標準タイトル概要
ISO/IEC 10589:2002(第2版)Intermediate System to Intermediate System intra-domain routeing information exchange protocolIS-IS本体の仕様。本記事が参照したのは、ネットワークタイプを定義する3.6.8 / 3.6.9、認識する回線種別が2つだけであることを述べる8の冒頭、ポイントツーポイントの手順を定める8.2、ブロードキャストの手順を定める8.4。
RFC 5309Point-to-Point Operation over LAN in Link State Routing Protocols2台しかいないLANをポイントツーポイントとして扱う考え方を整理した文書(Informational)。新しいTLVもコードポイントも定義していない。4.1でAllISsの使用を推奨し、4.5で種別の合わないIIHの破棄を定めている。
RFC 1142OSI IS-IS Intra-domain Routing ProtocolISO 10589のDraft Proposal(1990年)を再公開したもの。現在はHistoric。ISO/IEC 10589の代わりに参照してはいけません(RFC 7142)。
RFC 7142Reclassification of RFC 1142 to Historic参照すべきはISO/IEC 10589:2002 第2版であることを述べている。
RFC 5303Three-Way Handshake for IS-IS Point-to-Point AdjacenciesポイントツーポイントIIHに載るTLV 240を定義。
RFC 1195Use of OSI IS-IS for Routing in TCP/IP and Dual EnvironmentsIPの経路を運ぶための拡張。

関連記事