- ナレッジセンター
- 匠コラム
ハイパースケール環境で磨かれるルーティングプロトコル~OpenFabric~
- 匠コラム
- ネットワーク
- データセンター
ビジネス推進本部
第3応用技術部 第3チーム
平河内 竜樹
現在、ハイパースケールやクラウドスケールなどと表現されるデータセンターのネットワーク要求に応える形で、様々なルーティングプロトコル仕様が提案されています。今回はその中の一つである「OpenFabric」に着目し、その特徴について検証データを交えて紹介します。
OpenFabric:はじめに
OpenFabricは適用対象をClosトポロジに特化させた、IS-ISベースの新しいFabric構築技術です。OpenFabricはIS-ISに対し、ClosトポロジのFabric適用に際して冗長な要素を省略すると共に、追加されたTierの概念に基づきコントロールプレーンとしてのフラッディング動作を最適化することによってシンプルさとスケーラビリティの向上が図られています。
OSPFやIS-ISといったリンクステート型のIGPではリンクステート情報を同期する性格上、環境によっては経路操作における柔軟性の面で問題視されることがあることに加えて、それを必要としない場合においてもリンクステート情報の伝播仕様がコンバージェンスやスケーラビリティの面で課題となり得ます。図1はこの点に関係するIETF資料(引用元:□)の抜粋で、ClosトポロジにおけるIGPフラッディングが複数のSpineおよびLeaf経由で行われることにより、全体として動作が不必要に冗長であることが確認できます。
図1:ClosトポロジにおけるIGPフラッディングの影響(IETF資料から抜粋)
このIGPフラッディングが問題となる環境への対策としては、フラッディング用のパスを別途選出する方式やフラッディングの伝送をHelloが交換されるネットワークとは切り離して個別に行う方式などが提案されています。
OpenFabricを実行するノードは、図2 (引用元:)で示されるIS-ISSL(Spine-Leaf) Extensionのドラフトで定義されたSpine-Leaf TLVを利用して、Tierの情報を交換します。
図2:IS-IS Spine-Leaf ExtensionのIS-IS Spine-Leaf TLV(IETF資料から抜粋)
なおOpenFabricとは別方式となるIS-IS SL Extensionでは、Tier 0とTier 1の間はIS-ISのLevel 1で接続され、同TLV内で上位のSpineノードが付与するDefault Route Gateway bitに沿って下位のLeafではデフォルトルートが利用されます。Tier 0は個別の情報を受け取ることが無いため、テーブルサイズやパス計算量の圧縮に加えて、関連するフラッディングの機会も排除することができます。言い換えると、この構成においてトポロジ全体の情報を保持する対象はTier 1以上のノードとなります。対してOpenFabricでは、全てのノード間がIS-ISのLevel 2で接続され、また経路の集約は行わないことが推奨されています。Tier 0のノードが個別の情報を受け取る構成においても冗長なフラッディングを回避できるという内容が、OpenFabricにおけるスケーラビリティ向上の方策となります。
OpenFabric:試験の環境と結果
ここからはFRRouting 6.1-devを対象としてOpenFabricを利用した際の検証データを紹介します。図3は試験の構成図、表1は設定の抜粋となります。実装情報(□ )によるとリファレンスとしてdraft-white-openfabric-06(□)が示されていたため、仕様情報を確認する際はこちらを参照して行います。
表1:設定の抜粋(FRRouting)
Core-01 / Core-02 / Core-03 / Core-04 |
interface lo ip address {LOOPBACK} ip router openfabric 1 openfabric passive interface {I/F_1} ip router openfabric 1 interface {I/F_2} ip router openfabric 1 interface {I/F_3} ip router openfabric 1 interface {I/F_4} ip router openfabric 1 router openfabric 1 net {NSAP} fabric-tier 2 |
Core-100 / Core-105 / Core-200 / Core-205 |
interface lo ip address {LOOPBACK} ip router openfabric 1 openfabric passive interface {I/F_1} ip router openfabric 1 interface {I/F_2} ip router openfabric 1 interface {I/F_3} ip router openfabric 1 interface {I/F_4} ip router openfabric 1 interface {I/F_5} ip router openfabric 1 router openfabric 1 net {NSAP} fabric-tier 1 |
Edge-10 / Edge-20 |
interface lo ip address {LOOPBACK} ip router openfabric 1 openfabric passive interface {I/F_1} ip router openfabric 1 interface {I/F_2} ip router openfabric 1 interface {I/F_3} ip address {HOST/CE-FACING} ip router openfabric 1 openfabric passive router openfabric 1 net {NSAP} fabric-tier 0 |
図3:試験の構成図
まずノード間で交換されるIS-ISのHelloおよびLSPをパケットキャプチャによって観察したところ、図4・図5の結果が得られ、参照元のI-Dに沿った挙動であることが確認できました。
図4:OpenFabricのIS-ISコントロールプレーン
図5:OpenFabricのIS-ISコントロールプレーン(続き)
ネイバー関連の動作に関しては、従来のIS-ISでも、ポイントツーポイントの接続やLevel-2 onlyのレベル制限といった指定を行うことで同様の動作とすることが可能です。OpenFabricの場合はその条件下で動作することを前提に設計されているため、動作を選択する設定は必要とならないことが改めて確認できたと言えます。
また、広報対象となったLoopbackインタフェースおよびEdge-10・Edge-20に存在するホスト収容想定インタフェースのアドレスは全てのノードに共有され、また中継ホップ数が等しい複数のパスは全てECMPとして転送テーブルにインストールされました。表1からも示される様に、本構成ではトランジットリンクに対してIPアドレスが設定されていない状態です。この状態で各リーフノードにおけるLoopback間およびホスト収容インタフェース間のpingによってIPv4通信を試みたところ、いずれも成功が確認できました。通信の成功後、改めて各ノード上のエントリを確認すると、転送テーブルのエントリはNext Hopが広報元のLoopbackアドレスとなり、Adjacency Tableにもそのアドレスに対応したエントリが存在していました。また、通信中のパケットキャプチャ結果を参照すると、行われているARP交換がLoopbackアドレスに対して実行されていることが確認できました(図6)。
図6:Loopbackアドレスに対するARPの発生
最後に、ステートが変化するイベントとしてEdge-10のホスト収容想定のインタフェースに対してシャットダウンを行い、LSPのフラッディングがどのように行われるかパケットキャプチャによって観察しました。比較対象として同じトポロジで従来のIS-ISを適用し、同様のイベントを発生させました。結果、従来のIS-ISではリンクダウンに伴って発生したLSPが全てのリンクを経由して伝播されていることに加えて、イベントが発生していない他のLeafからもLSPのフラッディングが行われていました。対してOpenFabricの場合、トランジットリンクの中でフラッディングを伝播しないものが存在し、全体の数が明確に削減されていました。使われていないリンクに着目すると図3中の「VLAN1001-1004」「VLAN2001-2003」「VLAN2051-2053」「VLAN220」が該当し、これは全て今回のフラッディング動作においてL2 Link State PDUを受信せずFlooding PDUを受信したSpineに接続されたリンクに相当します。この結果はOpenFabricの仕様に沿っており、図7(引用元:□)で表されている通り、ネイバーの中で選出されたreflooderとそれ以外でPDUを使い分けることによってフラッディング伝播範囲の制御が実現されていることが窺えます。今回は各ノードのNSAPアドレスにノードIDに相当する情報を利用しており、大きな数字のノードがreflooderに選出されていることが確認できました。
図7:OpenFabricにおけるフラッダの選出(IETF資料から抜粋)
OpenFabric:補足
図2のSpine-Leaf TLVの内訳は、この版数に至る迄に変更が加えられた結果で、その後の改版でも変更が行われています(□ □)。OpenFabricは別ドラフトで定められたフォーマットを利用するため、特にソフトウェアやそのバージョンが異なるプラットフォームが混在する環境で利用する際には、リファレンスとしてそちらの版数にも留意する必要があります。
なお、今回の試験ではSpine-Leaf TLVにType 150の値が利用されていることを確認しています。この値はSegment Routing用のIS-IS拡張でも利用が想定された値であり、IANAの情報では、現在はまだテンポラリのステータスではありますがSegment Routing用に割り当たっています(□)。今後、ユニークな値となる様に採番は整理されると考えられますが、実装によって利用する値が異なってくる可能性があり、こちらも混在環境での留意点となります。
今回のまとめ
Fabric想定のトポロジにFRRoutingで利用可能なOpenFabricを適用して試験を行った結果、基本的なIPの到達性と共に、以下の動作を確認することができました。
- Closトポロジ向けに簡素化されたIS-ISによるECMP構成の実現
- トランジットリンクに対するアドレッシングの省略
- 個別経路を保持した状態でのIGPフラッディングの削減
関連記事
- トランスポートで光るIPv6~IPv6 link-local~
- Routing in Dense Topologies – What’s All tde Fuss?
- FRRouting User Guide
執筆者プロフィール
平河内 竜樹
ネットワンシステムズ株式会社 ビジネス推進本部
第3応用技術部 第3チーム
所属
ルータ分野を核とした新旧技術の調査・検証と共に、エンタープライズ・パブリック・サービスプロバイダのネットワーク提案および導入を支援する業務に、10年以上にわたり従事
- CCIE RS
- CCIE SP
Webからのお問い合わせはこちらから
ナレッジセンターを検索する
カテゴリーで検索
タグで検索