Non Stop Routingの実装と課題の実装と課題
MPLS JAPAN 2004

ノーテルネットワークス株式会社
近藤 卓司
tkondo@nortelnetworks.com

はじめに• ルータのノードレベルのHigh
ルータのノードレベルのAvailability実現技術の実現技術の一つとして…
一つとして• コントロールプレーンがリスタートする際の影響をいかにして最小化するか?
いかにして最小化するか …
• 2つのアプローチがあるつのアプローチがある– いかにしてフォワーディング処理を継続するか？
→ Graceful Restart (Non Stop Forwarding)– いかにしてルーティング処理を(もちろんフォワーディング処理もいかにしてルーティング処理を もちろんフォワーディング処理も)もちろんフォワーディング処理も継続するか?
継続するか→ Non Stop Routing

MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

1

アプローチ比較
Graceful Restart(Non Stop Forwarding)
フォワーディング処理継続
ルータ/スイッチ的発想
ルータ スイッチ的発想
隣接交渉型
標準およびドラフトに基づいた一般的な実装• 割と簡単••••MPLS JAPAN 2004

Non Stop Routing
ルーティング処理継続
交換機的発想自己解決型
一部ベンダ(ノーテルなど一部ベンダ ノーテルなど)
ノーテルなど独自の実装• かなり難しい••••

Copyright © 2004 Nortel Networks. All rights reserved.

2

Graceful Restart• 基本動作– 隣接ルータに事前にリスタートすると言う通知を出してリスタート– リスタートルータ(Localルータルータ)とそれを助ける隣接ルータ
ル
リスタートルータ
ルータ とそれを助ける隣接ルータ(Helperルとそれを助ける隣接ルータータ)はその間のルーティング処理は行わず、直前の情報に基づータ はその間のルーティング処理は行わず、直前のFIB情報に基づはその間のルーティング処理は行わず、直前のいてStale(古い、古い、Freshでないでない)フォワーディングを継続
いて古い、でない フォワーディングを継続– リスタート完了後にルーティング処理を再開し同期• Graceful Restartに対応するためにプロトコルごとの拡張がに対応するためにプロトコルごとの拡張が必要– 現時点での対応はBGP、、IS-IS、、OSPF、、LDP、、REVP-TE
現時点での対応は• プロトコルごとに動作が異なる– 大きく分けると…
大きく分けると– TCPベースは事前通知型、ベースは事前通知型、Helloベースは直前
ベースは直前(または直後ベースは事前通知型、ベースは直前 または直後)通知型
または直後 通知型

MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

3

CP
CP
CP

Control Plane(active)(backup)(failed)

DPDP
DP

Data Plane(active)(stale)(clear)

TCPベースベース Graceful Restart(例例: BGP)
Restarting
ルータ

ピア確立

最初にお互いの能力を通知してピアを確立
Capabilities negotiation
Attribute 64
BGP Open

Helper
ルータCPCP

CP
DP

DP

CP

ピア(TCPセッションセッション)ダウンピア
セッション ダウン

リスタート開始

CPDPDP

CP

CP
CP

経路情報をStaleにしてにして経路情報をフォワーディング継続(現在の実装ではパケットロスゼロが可能
現在の実装ではパケットロスゼロが可能)
現在の実装ではパケットロスゼロが可能
ルーティング処理は中断

Hold Time

Hold Time

BGP Open

Hold Time内で内でリスタート完了

CP

CP
DP

CP

All updates

DPCP

ピアを再確立して同期

Hold Time内で内でリスタート失敗
MPLS JAPAN 2004

CPCP

DP

ピアのダウンを認識しリルーティング

Copyright © 2004 Nortel Networks. All rights reserved.

CPDP

CP

4

CPCP
CP

Control Plane(active)(backup)(failed)

DPDP
DP

Data Plane(active)(stale)(clear)Helloベース
ベース Graceful Restart(例例: IS-IS)
Restarting
ルータ

ネイバー確立Adjacency Full

Helper
ルータ

CP
CP

CP
DP

直前(または直後に直前 または直後に)リスタート通知
または直後に リスタート通知

DPCP

Hello w/RR bit set

リスタート開始

CPDP

CP

Adjacencyダウン
ダウン DPCPCP

Hello w/RA bit set

経路情報をStaleにしてにして経路情報をフォワーディング継続(現在の実装ではパケットロスゼロが可能
現在の実装ではパケットロスゼロが可能)
現在の実装ではパケットロスゼロが可能
ルーティング処理は中断

Hold Time

Hold Time

Hello w/o RR set

Hold Time内で内でリスタート完了

CPCP
DPCP

LSDBs sync’dDPCP

ネイバーを再確立して同期

Hold Time内で内でリスタート失敗

CPCP

DP

ネイバーのダウンを認識しリルーティングCPDPCP※RR: Restart Request、RA: Restart ACKMPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

5Graceful Restartの課題の課題• Non Stop Forwardingと言うと聞こえは良いが、実際にはと言うと聞こえは良いが、実際には長い時間 Headlessフォワーディングをする
フォワーディングをする– リスタート中にルーティングループやブラックホールを起こす可能性がある• タイマー値の設計が要求される– Holdタイマー値はノーテルのタイマー値はノーテルのDefaultではではBGP360秒、秒、IS-IS90秒、秒、タイマー値はノーテルのでは秒、OSPF 30秒、秒、LDP180秒、秒、RSVP-TE
30秒
秒秒、秒、
– 最適なタイマー値はネットワークのトポロジや規模にも依存する– 短すぎるとリスタートできない間にStaleフォワーディングを中断してフォワーディングを中断して短すぎるとリスタートできない間にしまい意味がなくなり、長すぎるとStaleフォワーディング状態が継続
フォワーディング状態が継続しまい意味がなくなり、長すぎるとし危険が多い– 実はコントロールプレーンが冗長化されてなくても使えるが、リスター
ト時間がより長くなるケースが多いのでタイマー値には注意が必要– オペレーションに負担がかかる
MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

6Graceful Restartの課題の課題• Graceful Restart動作はピアやネイバーに完全に依存
動作はピアやネイバーに完全に依存– 隣接ルータにGraceful
Restart Helperモード
モード サポートが必須
隣接ルータに– 異なるベンダ間の場合は相互接続性の問題も発生– IP-VPNの場合、ユーザのの場合、ユーザのCEルータに実装と相互接続性を要求するの場合、ユーザの ルータに実装と相互接続性を要求することになる• 基本的にはUnplanned
リスタートには向いていない
基本的には– RFC3623 “Graceful OSPF Restart”にも記述があるようににも記述があるようにUnplannedにも使えるが推奨しないにも使えるが推奨しない– オペレータ側に準備ができているPlannedと異なり、コントロールと異なり、コントロールオペレータ側に準備ができているプレーンの故障(障害のプレーンの故障 障害)や予期せぬスイッチオーバなどの障害 や予期せぬスイッチオーバなどのUnplannedのや予期せぬスイッチオーバなどのStaleフォワーディングには危険が多い
フォワーディングには危険が多い

MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

7

Non Stop Routing• 基本動作– ルータ内にActiveととBackupのの2つの環境を作りその間を完全につの環境を作りその間を完全にルータ内に同期化– Activeの環境に障害が発生するとすぐにの環境に障害が発生するとすぐにBackup環境に切り替え環境に切り替えの環境に障害が発生するとすぐにてルーティング処理を継続– もちろんフォワーディング処理も継続

プロトコルごとに基本動作に違いはない
自己解決型であり、ピアやネイバーに実装を必要としないタイマー値の設計が不要
Unplannedリスタートにも向いている
リスタートにも向いている• ただし、冗長化されたコントロールプレーンが前提••••

MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

8

CP
CP
CP

Control Plane(active)(backup)(failed)DP
DP
DP

Data Plane(active)(stale)(clear)

TCPベースベース Non Stop Routing(例例: BGP)
Restarting
ルータ

特別な事前通知は不要

ピア
ルータ

BGP Open

ピア確立
リスタート開始

CP
CP

CP
DP

DP

CP

ピア(TCPセッション
セッション)保持
ピア
セッション 保持
CP

DP

DPCP

CP
CP

ルーティングおよびフォワーディング継続(パケットロスゼロ
パケットロスゼロ)
パケットロスゼロ

高速スイッチオーバ

ピアはスイッチオーバに気が付かない(ルーティングも継続ルーティングも継続)
ルーティングも継続

ピア(TCPセッションセッション)保持
ピア
セッション 保持リスタート完了

CPCP
DP

CP

リスタート失敗
MPLS JAPAN 2004

CP
CP

DP

All updatesDP

ピアのダウンを認識しDP
リルーティング

Copyright © 2004 Nortel Networks. All rights reserved.

CP

CP
CP

9

CP
CP
CP

Control Plane(active)(backup)(failed)DP
DP
DP

Data Plane(active)(stale)(clear)Helloベース
ベース Non Stop Routing(例例: IS-IS)
Restarting
ルータ

ネイバー確立リスタート開始

Adjacency Full

ネイバールータ

CP
CP

CP
DP

DP

CP

リスタート通知不要
Adjacency保持保持CP

DPDP

CP

CP
CP

ルーティングおよびフォワーディング継続(パケットロスゼロパケットロスゼロ)
パケットロスゼロ

高速スイッチオーバ

ネイバーはスイッチオーバに気が付かない(ルーティングも継続ルーティングも継続)
ルーティングも継続

Adjacency保持
保持

リスタート完了

CPCP
DPCP

リスタート失敗
MPLS JAPAN 2004

CPCPDPAll updates

ネイバーのダウンを認識しリルーティング

Copyright © 2004 Nortel Networks. All rights reserved.

DPCP

CPDP

CP

10

Non Stop Routing 内部動作(例例: OSPF)
ネイバー
ルータ

Restarting
ルータ

StableLSA
andneighb
or info.

Hot
LSA
andneighbor info.
OSPFn

OSPFn

Journaling

Timer

BackupControl
Plane

Hello

LS-AckLS-Update

Hello

ActiveControlPlane• 通常時すべてのOSPF情報
情報(ネイバーやLSAデータベース
データベース)
通常時すべての情報 ネイバー Adjacenciesやデータベース
はJournalingによりによりActiveプロセスからプロセスからBackupプロセスへ同期化プロセスへ同期化
によりプロセスから• Backup側はこの側はこのOSPF情報をインタフェース情報と合わせて情報をインタフェース情報と合わせて側はこのショーテストパスの計算やRIBの生成に使用し、の生成に使用し、Active側と全く同じ側と全く同じショーテストパスの計算やの生成に使用し、状態を保持
MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

11

Non Stop Routing 内部動作
(例例: OSPF)
LS-AckRestarting
ルータ

ネイバー
ルータ

Hello

StableLSA
andneighbor info.

Hot
LSA
andneighbor info.

LS-Update
OSPFn

OSPFn

Journaling

Timer

BackupControl
Plane

LS-AckActiveControlPlane• PlannedおよびおよびUnplannedリスタート時はリスタート時はActive側から側からBackup側へ側へ
およびリスタート時は側から高速切り替えを実施してルーティングとFreshなフォワーディングを継続
高速切り替えを実施してルーティングとなフォワーディングを継続• ただし、現状の実装では障害検出は数msで可能だが、切り替え
ただし、現状の実装では障害検出は数 で可能だが、切り替え(主にで可能だが、切り替え 主に障害解析や通知情報作成などの準備)に障害解析や通知情報作成などの準備 に1~2秒程度かかる秒程度かかる(実際にはその間のルーティング処理は中断し実際にはその間のルーティング処理は中断しStaleフォワーディング
フォワーディング)実際にはその間のルーティング処理は中断しフォワーディング
MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

12Non Stop Routingの課題の課題• 実装には高度で複雑なHW/SW環境が必要環境が必要
実装には高度で複雑な– コントロールプレーン間のハイキャパシティ メッセージング環境やマルチCPUなどのハードウェアが必要
マルチなどのハードウェアが必要– JournalingははOSのカーネルレベルで組み込まないと難しいのカーネルレベルで組み込まないと難しい– 既存のルータにプロトコル的に後付けで載せて動くような技術ではない• TCPベースのプロトコルには現時点では拡張性に課題がある
ベースのプロトコルには現時点では拡張性に課題がある– 例えばBGPははTCPを用いるがアプリケーションレベルのを用いるがアプリケーションレベルのACKがないがない
例えばを用いるがアプリケーションレベルの– TCPセッション状態を同期するにはアプリケーションの同期の後にセッション状態を同期するにはアプリケーションの同期の後にTCP
セッション状態を同期するにはアプリケーションの同期の後にの同期を取る必要がありTCP
ACKに遅延が生じるに遅延が生じるの同期を取る必要があり

MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

13

TCP ACKの遅延問題の遅延問題(例
例: BGP)

ActiveTCP

Update 到着

BGP

プロセス
更新

Standby
TCP
BGP

処理したデータを送信

パケット確認

Ack

リード待ち
ループ

Done
(x msgs)
TCPセッション情報
セッション情報/アップデートを送信
セッション情報 アップデートを送信

セッション情報を更新

Ack
TCP ACK• TCP ACKは以下が完了するまでの遅延が発生
は以下が完了するまでの遅延が発生:
は以下が完了するまでの遅延が発生– Active BGPがデータを処理がデータを処理– Standby BGPが処理されたデータを受信が処理されたデータを受信– Standby TCPがセッション情報を受信がセッション情報を受信
MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

14

Non Stop Routingの実装戦略の実装戦略

ProtocolGraceful
RestartNon StopRouting

OSPF
IS-IS
BGP

Planned

LDP

Planned

RSVP-TE※BGPにはにはIP-VPNのためののためのMP-BGP、、にはのための
LDPにはにはPWE3のためののためのE-LDPを含むを含むにはのためのMPLS JAPAN 2004

• 他社との接続のためGraceful
他社との接続のため
RestartののHelperモードは必須
モードは必須実装• vsではなく両方式を実装
ではなく両方式を実装• Non Stop Routingの実装にの実装に時間がかかるプロトコルはGraceful Restartでカバー
でカバー• 両方式の柔軟な設定を提供– 例えばIP-VPNなどではなどではVRFごとごと
例えばなどではに選択設定可能

Copyright © 2004 Nortel Networks. All rights reserved.

15

Non Stop Routingの設定例の設定例(例例: OSPF)
routing {…
ospf {
non-stop-routing | no-non-stop-routing;graceful-restart {disable;no-unplanned;
recovery-time <seconds>;…
services {vrf {vrf-instance-name vrf1 {…
ospf {
non-stop-routing | no-non-stop-routing;graceful-restart {disable;no-unplanned;
recovery-time <seconds>;
MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

16

Non Stop Routingの状態表示例の状態表示例(例例: OSPF)
mpe> show routing carrier-grade…
OSPF
Service State: Active
Non-Stop-Routing: Enabled
Sparing State: In-Sync
Spare Objects:
Count
Adds
LSAs:
2455
2469
Interfaces:
1418
Adjacencies:
1115
Graceful-Restart: Enabled
Local-Mode: Disabled…

MPLS JAPAN 2004

Deletes
1444

Copyright © 2004 Nortel Networks. All rights reserved.

Updates154
2017Non Stop Routingの今後の今後• TCP ACKの遅延問題の解決の遅延問題の解決– 遅延を生じさせず同期を取る独自技術を開発中• 切り替え時間の更なる短縮– ルーティング処理断ゼロ切り替えは難しいが、少なくとも50msルーティング処理断ゼロ切り替えは難しいが、少なくとも以内の切り替えが目標値• Graceful Restartと同様にマルチキャストとと同様にマルチキャストとIPv6と同様にマルチキャストとプロトコルへも対応• BRASアプリケーションへの応用
アプリケーションへの応用– Session Manager (PPPoX、、L2TP)、、AAA (DHCP、、Radius)などのなどのNon Stop Routing (Hot Standby)

MPLS JAPAN 2004

Copyright © 2004 Nortel Networks. All rights reserved.

18