Cisco Nexus 9000 アーキテクチャ

Cisco Live! 2019 Melbourne で行われたセッションスライドを元に。
0
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture"は #CiscoNexus シリーズの中で最新のアーキテクチャである Nexus 9000シリーズとそれを支えるCloud Scale ASICに特にフォーカスしたセッションです。10/40Gへの移行を支えたNexus 5k / 7k から、100/400Gへの発展を担うNexus 9kへと進化は続きます。 pic.twitter.com/nNCTJSUdTK

2019-04-10 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" スイッチが担うスイッチングという処理自体は変わらずとも、その高速化を支える技術は進化し続けています。Bus接続からCrossbar接続へ、そしてASIC間接続へ、100Mから100Gへの1万倍の性能向上はそれを支えるアーキテクチャの進化の歴史でもあります。 pic.twitter.com/lSigILP9np

2019-04-10 08:28:02
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" 高速処理を実現する手法として用いられる手段の1つがコンポーネントの統合です。同じASICでも1 Chipで処理している範囲は異なります。たとえばNexus 7kとNexus 9kのラインカード上のチップ搭載数を見ることがあれば、その違いは明確で9kはスカスカです。 pic.twitter.com/Bz2p3AM4f2

2019-04-10 08:38:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" 現在のスイッチ用ASICは、以前であれば別々のチップで処理していた機能を統合したまさに"Switch On Chip"となっています。Cloud Scale ASICを搭載したNexus 9000はその最たる例で、驚くほど基板上にチップが少ない実装となっています。 pic.twitter.com/huW574t1TJ

2019-04-11 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" 第1世代のNexus 9000では、ネットワーク転送の基本処理は汎用ASICにまかせ独自性が求められる範囲のみを対象とした自社ASICも搭載するDual ASIC実装でした。開発リソースを自社ASIC機能範囲に集中できる利点と引き換えにスケールが制約されていました。 pic.twitter.com/fuA0WmjcGv

2019-04-11 08:28:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" 第2世代以降の #CiscoNexus 9000シリーズでは転送処理を含む全機能をCloud Scale ASICとして単一ASIC実装しています。大幅にスケール性能が向上すると共に、転送処理レベルで制御できる自由度が向上し #CiscoACI の様々な機能実装にも活用されています。 pic.twitter.com/hnwf98nwfJ

2019-04-11 08:38:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Cloud Scale ASICは、ASICとしてはかなり驚異的なスピードで開発され続けています。そのASICの開発スピードとそれを活用したソフトウェアの開発の両輪を全て自社でコントロールできるところがASICを自社で開発することの大きなメリットです。 pic.twitter.com/0pgmlJmzfw

2019-04-12 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Cloud Scale ASICでは、見た目としてはシングルチップでも内部的には複数のSliceから構成されているものがあります。多くの場合、最初に複数Sliceのチップとして提供が開始され、その後単一もしくはより少ないSlice数へと発展していきます。 pic.twitter.com/VYU8jjdY5c

2019-04-12 08:28:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" ASIC内のSliceはそれぞれIngressとEgressの両方の処理が実装されており、入力パケットはPacket ParserによってLoopup Pipelineを通されて適切なEgress Sliceへと送られます。出力パケットは送出順の整理やポリシー適用が行われた上で送出処理されます。 pic.twitter.com/XzU6f0SNvp

2019-04-12 08:38:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" パケットを受信したCloud Scale ASICのSliceでは、Packet Parserにより転送先の確認や分類、優先度制御などの各処理を担うLookup Pipelineを通された上で、Egress Sliceへと送出されます。 pic.twitter.com/7qrIY7N7uN

2019-04-15 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Cloud Scale ASICの持つ特徴的な機能がFlex Tileです。Lookup処理の中で参照先として使われるTileのTable割当バランスは変更が可能となっており、Border LeafではLPMを多めに、ACIでポリシーを多用する際にはPolicyを多めに等調整が可能になっています。 pic.twitter.com/gwwYN9uhuf

2019-04-15 08:28:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Flex Tileの機能は Stand-aloneな #CiscoNexus でも #CiscoACI でもどちらでもご利用頂けます。事前に定義されたテンプレートを適用し再起動することによって有効化されます。 pic.twitter.com/MWRr3guVai

2019-04-15 08:38:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" IP Unicastの転送処理ではVRF毎に分類された上でHRT (Host Route Table)とLPM (Longest Prefix Match)による宛先決定が処理された上でFabric内のMulti-pathでの利用経路を決定する処理が行われて送り出されます。 pic.twitter.com/jBbcCBPo9d

2019-04-16 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" VXLAN転送のEncap/Decap処理も全てASICレベルで行われるため、VXLAN処理が遅延につながることはありません。 pic.twitter.com/OEZriLo6CV

2019-04-16 08:28:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Multicastの転送処理についても、Unicast同様にASICでの転送処理が行われます。MRoute Lookup後、Reverse Path Forwarding (RPF)チェックとMulticast Expansion Table (MET)により出力先の決定が行われて送出されます。 pic.twitter.com/DUJ47VinEs

2019-04-16 08:38:01
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" TCAMはパケットの分類を行うために用いられ、各種ACLやQoS、SPAN、CoPP、FTEのためのフィルタ等、ASICレベルの転送処理の制御に用いられるSlice上の専用メモリ空間です。Cloud Scale ASICではモデルごとにIngress/Egress用のTCAM割当が決まっています。 pic.twitter.com/Kl1Gstbfbo

2019-04-17 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" TCAMの割当は変更することが可能となっていますが、容量は限られているため何かを増やす場合は何かを減らす必要があります。割当の変更はFlex Tile同様に再起動により有効化されます。 pic.twitter.com/dWs9sh6BnR

2019-04-17 08:28:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" スイッチの状態を把握するには、CPUを通じて把握できるプロセスやプロトコル等の状態だけでなく、ASICレベルで処理されている転送処理の状態の把握も重要です。ASICレベルの情報を如何にCPU負荷をかけずに取得する仕組みを提供するのか、も重要です。 pic.twitter.com/48Zy5rrx6E

2019-04-17 08:38:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Cloud Scale ASICはASICレベルのデータプレーンにおける転送処理の情報や、ASIC自身の処理に関する統計情報を出力するための仕組みとしてFlow Table (FT), Flow Table Export (FTE), Streaming Statistics Export (SSX)と呼ばれる機能を実装しています。 pic.twitter.com/pryrQW10zf

2019-04-18 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Flow Table (FT)は、データプレーンレベルの全フローの情報とメタデータをASICレベルで取得・送出します。 #CiscoTetration, #CiscoNetworkInsights, NetFlowなどで取得されたフローデータを利用することが可能です。 pic.twitter.com/9TQyBXzchF

2019-04-18 08:28:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Flow Tableで取得したデータをNetFlowレコードとして出力する場合には、FTデータをCPUでフローレコードにした上でNetFlowコレクタ宛に出力する必要があるため、完全なASICレベルだけの処理ではなくなります。 pic.twitter.com/rX5tAgGDZp

2019-04-18 08:38:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Flow Table Events (FTE)は、しきい値条件をトリガーとしてフローの情報をASICレベルで通知する仕組みです。これまでは把握することが困難であったBuffer Drop等の各種ドロップや、遅延、バーストなどのしきい値を定義して利用することが可能です。 pic.twitter.com/IUd3PXP3TV

2019-04-19 08:18:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" Streaming Statistics Export (SSX)は、ASIC自身の各種統計情報をCPU処理することなく通知するための機能です。非常に短いサイクルで定期的にASICの統計情報をSSX Exportとして通知することが可能です。 pic.twitter.com/zO5xg8pKwU

2019-04-19 08:28:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" FT, FTE, SSXの各種Hardware Telemetry機能はCloud Scale ASICの進化に合わせて実装されてきたため、モデルによって実装機能が異なります。LS3600FX2において全機能の実装がひとまず完成しています。 pic.twitter.com/XeGTrqDACu

2019-04-19 08:38:00
拡大
Takao Setaka @twtko

#CLMEL BRKDCT-3640 "Nexus 9000 Architecture" #CiscoNexus 9000シリーズのCloud Scale ASICではEgress側で共有したBufferを利用するOutput Queue Buffer方式となっています。Slice毎にEgress Bufferを持つため、当該Sliceに紐付くポート範囲でBufferを共有して利用することが可能です。 pic.twitter.com/nx5GQoDE3U

2019-04-22 08:18:00
拡大