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

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

目次

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

IS-ISでイーサネットのインタフェースを設定するとき、router isis配下にpoint-to-pointと書く場合と書かない場合があります。この1語で、DISの選出も疑似ノードも定期的なデータベース同期も、まとめて有無が変わります。

結論を先に言うと、point-to-pointと書いたイーサネットは、ISO/IEC 10589:2002には存在しない動かし方です。規格が知っているネットワークタイプは2つだけで、そこに「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)が整理したものです。

同RFCの言い分は単純で、LANセグメントにルータが2台しかいないなら、ブロードキャストとして扱う理由がないというものです。ポイントツーポイント回線のほうが素直に動く理由として、次の3つを挙げています。

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

重要なのは、RFC 5309が新しいTLVもコードポイントも定義していないことです。プロトコルの拡張ではなく、既存のポイントツーポイントの手順をLAN媒体の上で使うという、運用と設定の取り決めにすぎません。

だからこそ、この動かし方では宛先MACに09:00:2B:00:00:05というISO 9542(ES-IS)のアドレスが流用されます。規格が想定していない動かし方なので、IS-IS自身のマルチキャストアドレス(01:80:C2:00:00:14 / :15)が割り当てられていないのです(IS-ISが使うマルチキャストアドレスはIS-ISパケットの種類とヘッダーフォーマットで解説しています)。

何が変わるのか

同じ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パケットの種類とヘッダーフォーマット、双方向確認は隣接関係の確立と状態遷移、DISと疑似ノードはDISと疑似ノードで解説しています。

実機での検証

検証環境

2台だけをイーサネット(10.1.0.0/24)に接続しました。RFC 5309が対象にしている状況そのものです。両台とも同じエリア49.0001level-1-2、変えるのはLAN側の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
  Level-1                   
    Adjacency Count:        1
    LAN ID:                 R2.01
    Priority (Local/DIS):   64/64
    Next LAN IIH in:        3 s
  Level-2                   
    Adjacency Count:        1
    LAN ID:                 R2.01
    Priority (Local/DIS):   64/64
    Next LAN IIH in:        3 s

Media Type: LANです。設定に何も書かなくてもイーサネットはブロードキャストとして扱われます。そしてLAN IDPriority (Local/DIS)がレベルごとに現れ、DIS(ここではR2)が選ばれています。Next LAN IIH inもレベルごとに別々です。

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        1105 /*            0/0/0
R2.00-00              0x00000005   0x955a        1107 /1200         0/0/0
R2.01-00              0x00000002   0xac86        1107 /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        1109 /*            0/0/0
R2.00-00              0x00000007   0xfb56        1111 /1200         0/0/0
R2.01-00              0x00000002   0xac86        1107 /1200         0/0/0

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

ルータは2台なのにLSPは3つあります。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:07:39.035 UTC

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

隣接が消えました。R2側も同じく空です。

IS-ISで隣接が張れなくなる原因にはMTUの不一致もありますが、そちらでは大きいMTU側がInitのまま残ります(隣接関係の確立と状態遷移で解説しています)。ネットワークタイプの不一致では両側とも相手が見えません。理由は各ルータが教えてくれます。

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

理由が対称的です。

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

Last IIH Receivedの時刻がどちらも設定変更前で止まっていることも、それ以降1つも受理していないことを示しています。

キャプチャを見ると、両者が延々と噛み合わない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が151601:80:c2:00:00:14 / :15へ、R2が1709:00:2b:00:00:05へ送り続けています。PDUの種別も宛先MACも噛み合っていないため、どちらのIIHも相手に届きません。

MTU不一致との違いはここです。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:11:03.517 UTC

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
R2             Gi0/0/0/0        *PtoP*         Up    24       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

STEP 0にあったLAN IDPriority (Local/DIS)Next LAN IIH inまるごと消えています。代わりにExtended Circuit Numberが現れました。DISが存在しないので、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        1100 /*            0/0/0
R2.00-00              0x00000008   0x3cd3        1099 /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        1100 /*            0/0/0
R2.00-00              0x0000000b   0xfa76        1101 /1200         0/0/0

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

疑似ノードLSPR2.01-00が消え、LSPが各レベル3つから2つに減りました。ルータの台数とLSPの数が一致した状態です。

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

同じ約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

同じ2台・同じリンクで、プロトコルのパケット数が5分の1になりました。

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

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台の間では何の役にも立たない負荷にすぎません。上の実測がその効果を示しています。

ただし両端に必ず入れることが絶対条件です。STEP 1で見たとおり、片側だけでは隣接そのものが成立しません。しかもLast PDU Rejectedを見ないと理由が分からないので、設定漏れは発見が遅れがちです。

3台以上が同じセグメントにいる場合はpoint-to-pointにしてはいけません。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)

最終状態のConfigは、両台ともpoint-to-pointを書いていない(既定のbroadcast)状態です。

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もコードポイントも定義していない。
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の経路を運ぶための拡張。

関連記事