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 |
|---|---|---|
| 使うIIH | LAN Level 1 / Level 2(PDU Type 15 / 16) | Point-to-Point(PDU Type 17) |
| 宛先MAC | 01:80:C2:00:00:14 / 01:80:C2:00:00:15 | 09:00:2B:00:00:05 |
| IIHの本数 | レベルごとに別々に送る | 1種類で両レベルを兼ねる |
| DISの選出 | ある | ない |
| 疑似ノードLSP | ある | ない |
| 定期CSNP | DISが送る | ない |
| 双方向の確認 | 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の有無だけです。
| ルータ | NET | LAN IP |
|---|---|---|
| R1 | 49.0001.0010.0100.1001.00 | 10.1.0.1 |
| R2 | 49.0001.0020.0200.2002.00 | 10.1.0.2 |
検証のSTEP
| STEP | 操作 | 狙い |
|---|---|---|
| 0 | 両側 broadcast(既定) | DIS・疑似ノード・定期CSNPがある状態を計測 |
| 1 | R2だけpoint-to-pointにする | 片側だけ変えたときに何が起きるか |
| 2 | 両側 point-to-point | 3つがまとめて消えることの確認と、トラフィックの比較 |
| 3 | 両側 broadcast に戻す(最終状態) | 初期状態と同じ |
既定はブロードキャスト(STEP 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: 3Media Type: LANで、何も書かなくてもブロードキャストとして扱われます。LAN IDとPriority (Local/DIS)がレベルごとに現れ、DIS(R2)が選ばれています。Last PDU Rejectedは隣接が成立する前(07:59:55)に届いたLSPの記録で、この時点の異常ではありません。
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にします。
router isis 1
interface GigabitEthernet0/0/0/0
point-to-pointRP/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の隣接関係の確立と状態遷移)、ネットワークタイプの不一致では両側とも相手が見えません。理由は各ルータに出ます。
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 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 octetsRFC 5309の4.5のとおり、両側が相手のIIHを破棄しています。
| ルータ | Media Type | 拒否した理由 |
|---|---|---|
| R1 | LAN | P2P IIH on LAN Interface(LANのインタフェースにP2PのIIHが来た) |
| R2 | P2P | LAN IIH on P2P Interface(P2PのインタフェースにLANのIIHが来た) |
Last IIH Receivedもどちらも設定変更前で止まっています。
キャプチャでは両者が噛み合わない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にします。
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*になります。インタフェースの表示も変わります。
Circuit Type: level-1-2
Media Type: P2P
Extended Circuit Number: 3
Level-1
Adjacency Count: 1
Level-2
Adjacency Count: 1LAN ID・Priority (Local/DIS)・Next LAN IIH inがまるごと消え、Extended Circuit Numberが現れます。DISが存在しないためです。
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秒の定常状態を両方の設定で比べます。
| PDU | broadcast(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) | 15 | 0 |
| Level 2 CSNP(25) | 15 | 0 |
| 合計 | 151 | 30 |
| pcapのサイズ | 188 KB | 46 KB |
パケット数が5分の1になります。
IIHが121本から30本に減るのは、broadcastがレベルごとに別のIIHを送るのに対し、point-to-pointは1種類で両レベルを兼ねるためです。CSNPはゼロで、RFC 5309の「定期的なデータベース同期も無い」のとおりです。
show isis traceでも、切り替えを最後にDISの選出処理が止まっています。
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どちらを選ぶか
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.txt | show 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出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
STEP 1:R2だけpoint-to-pointにする
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
STEP 2:両側point-to-point
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
STEP 3:両側 broadcast に戻す(最終状態)
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| キャプチャーファイルは次の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 protocol | IS-IS本体の仕様。本記事が参照したのは、ネットワークタイプを定義する3.6.8 / 3.6.9、認識する回線種別が2つだけであることを述べる8の冒頭、ポイントツーポイントの手順を定める8.2、ブロードキャストの手順を定める8.4。 |
| RFC 5309 | Point-to-Point Operation over LAN in Link State Routing Protocols | 2台しかいないLANをポイントツーポイントとして扱う考え方を整理した文書(Informational)。新しいTLVもコードポイントも定義していない。4.1でAllISsの使用を推奨し、4.5で種別の合わないIIHの破棄を定めている。 |
| RFC 1142 | OSI IS-IS Intra-domain Routing Protocol | ISO 10589のDraft Proposal(1990年)を再公開したもの。現在はHistoric。ISO/IEC 10589の代わりに参照してはいけません(RFC 7142)。 |
| RFC 7142 | Reclassification of RFC 1142 to Historic | 参照すべきはISO/IEC 10589:2002 第2版であることを述べている。 |
| RFC 5303 | Three-Way Handshake for IS-IS Point-to-Point Adjacencies | ポイントツーポイントIIHに載るTLV 240を定義。 |
| RFC 1195 | Use of OSI IS-IS for Routing in TCP/IP and Dual Environments | IPの経路を運ぶための拡張。 |
関連記事
- IS-ISとは
- IS-ISのNSAPアドレスとNET(System ID)
- IS-ISの複数エリアアドレス(マルチホーミング)とエリアの統合・分割
- IS-ISのレベル1とレベル2(階層構造)
- IS-ISパケットの種類とヘッダーフォーマット
- IS-ISの隣接関係の確立と状態遷移
- IS-ISのDISと疑似ノード(Pseudonode)
- IS-ISのネットワークタイプ(broadcast / point-to-point)
- IS-ISのメトリック(narrow / wide)
- IS-ISの認証(hello-password / lsp-password)
- IS-ISのLSPとリンクステートデータベース
- IS-ISの主要TLV
- IS-ISのフラッディングとLSDB同期
- IS-ISのSPF計算と経路選択
- IS-ISのECMP(等コストマルチパス)
- IS-ISのATTビットとレベル1のデフォルトルート
- IS-ISのルートリークとup/downビット
- IS-ISの経路集約
- IS-ISのオーバーロードビット
- IS-ISのIPv6対応とマルチトポロジ(TLV 236 / MT ID 2)
- IS-ISのHelloとHolding Time
- IS-ISの収束タイマー(SPF / LSP生成)
- IS-ISのフラッディングのタイマー(LSP送信間隔・再送・CSNP / PSNP)
- IS-ISのリンク障害と経路切り替え
- IS-ISへの再配布(connected / static)
- IS-ISへのBGP経路の再配布