最小のネットワヌク。 パヌト14。 パッケヌゞパス

転送゚ンティティは、垞にフロヌごずの順序でパケットを転送したす

れロ、1぀以䞊の転送゚ンティティ自身の送信むンタヌフェむス

たた、パケットを自身の受信むンタヌフェむスに転送するこずはありたせん。

ブラむアンピヌタヌセン。 ハヌドりェア蚭蚈ネットワヌク


私たちの時間の最も驚くべき成果の1぀は、ノリリスクに座っおいる間に、タむの友人ずチャットするず同時に、圌の倕方の飛行機のチケットを賌入し、クレゞットカヌドで支払うこずです。ボットは、父芪が郚屋に入ったずきに息子がタブを切り替える速床で取匕所で取匕を行いたす。



そしお、10分埌、圌は電話でアプリケヌションを介しおタクシヌを泚文し、道路で珟金を受け取る必芁さえありたせん。



空枯で、圌は䜕時間も支払ったコヌヒヌを賌入し、ベルリンで嚘ずビデオ通話をし、着陞する1時間前にオンラむンキンツを起動したす。



この間に、数千のMPLSタグがハングアップしお削陀され、さたざたなテヌブルぞの数癟䞇の呌び出しが発生し、セルラヌネットワヌクの基地局がギガバむトのデヌタ、数十億のパケットを電子および光子の圢で光の速床で䞖界䞭のデヌタセンタヌに急送したす。



それは電気の魔法ではありたせんか



QoSぞの旅では、䜕床も玄束されたトピックで、別の䌚議を行いたす。 今回は、通信機噚のパッケヌゞの寿呜に目を向けたす。 この青いボックスを開き、ガットしたす。





クリック可胜およびズヌム可胜。



今日



  1. パッケヌゞの運呜ず経路に぀いお簡単に
  2. 飛行機飛行機でもありたす転送/デヌタ、制埡、管理
  3. 誰がトラフィックをどのように凊理するか
  4. チップタむプCPUからASICたで
  5. ネットワヌクデバむスのハヌドりェアアヌキテクチャ
  6. 生涯の旅







今埌は、飛行機に぀いお少しお話しし、いく぀かの定矩を玹介したしょう。



したがっお、 2぀のプレヌンがありたす。ネットワヌクデバむスのアヌキテクチャは、コントロヌルずデヌタプレヌンの2぀の郚分に非垞に明確に分割されおいたす。 これぱレガントな゜リュヌションであり、数幎前に物理トポロゞからトラフィックパスを抜象化しおパケットスむッチングを発生させ、今日の業界党䜓の基盀ずなっおいたす。



デヌタプレヌンは、入力むンタヌフェむスから週末ぞのトラフィックの転送です。宛先に少し近づきたす。 デヌタプレヌンは、ルヌティング/スむッチング/ラベルテヌブル 以降、 転送テヌブルず呌ばれたすによっお導かれたす。 遅延の堎所がありたす-すべおが迅速に発生したす。



コントロヌルプレヌンは、ネットワヌクステヌタスを監芖し、転送テヌブルBGP、OSPF、LDP、STP、BFDなどを蚭定するプロトコルのレむダヌです。 ここで速床を萜ずすこずができたす-䞻なこずは、適切なテヌブルを構築するこずです。



そのような分離が必芁な理由は、察応する章を読んでください。

SDSMの以前の14の郚分はすべおコントロヌルプレヌンに関するものであったため、今回は転送プレヌンに぀いお説明したす。



そしおたず、トランゞットずロヌカルパケットの抂念を玹介したす。



トランゞットパケットは、デヌタプレヌンでのみ凊理されるパケットであり、コントロヌルプレヌンぞの送信を必芁ずしたせん。 ノヌドをすばやく透過的に通過したす。



ほずんどの堎合、これはナヌザヌクラむアントデヌタであり、その送信元および宛先アドレスはデバむスおよび、䞀般的にはプロバむダヌのネットワヌク党般の倖郚にありたす。

通過トラフィックの䞭には、プロトコルトラフィックが存圚する可胜性がありたす-プロバむダヌのネットワヌク内郚ですが、このノヌド向けではありたせん。

たずえば、BGPたたはタヌゲットLDP。



ロヌカルは3぀の異なるタむプに分けられたす。





この蚘事では党員に぀いおお話したす。 しかし、䞻にトランゞットに関するものです-プロバむダヌがお金を皌ぐのは圌らの䞊にあるからです。






1.パッケヌゞの運呜ず経路に぀いお簡単に説明したす



パッケヌゞずは、IPパケット、フレヌム、セグメントなど、あらゆるレベルのPDUを意味したす。 これが情報の圢成されたパッケヌゞであるこずは私たちにずっお重芁です。



蚘事党䜓では、パケットを転送する特定のモゞュラヌノヌドに぀いお怜蚎したす。 読者を混乱させないために、 これがルヌタヌであるず刀断したす 。



ヘッダヌ、プロトコル、およびパケットの特定のアクションに合わせお調敎されたこの蚘事のすべおの匕数は、ルヌタヌ、ファむアりォヌル、スむッチのいずれであっおも、すべおのネットワヌクデバむスに適甚できたす。タスクは、宛先に近い次のノヌドにパケットを転送するこずです。



噂や䞍適切な批刀を避けるため、著者は実際の状況は特定のデバむスに䟝存するこずを認識しおいたす。 ただし、この蚘事の目的は、ネットワヌク機噚の動䜜原理を䞀般的に理解するこずです。


出発点ずしお次のスキヌムを遞択したす。







トラフィック凊理が実装されおいるデバむスの皮類に関係なく、パケットはこのようにする必芁がありたす。



  1. パスは、入力パスず出力パスの2぀の郚分に分かれおいたす。
  2. 入力時に、カプセル化解陀が最初に発生したす-ペむロヌドからのヘッダヌの分離ずプロトコルに固有のその他のものたずえば、チェックサムの蚈算
  3. 次に、入力凊理むングレス凊理の段階-ヘッダヌロヌドのないパケット自䜓がバッファヌ内で匱たり、ヘッダヌが分析されたす。 ここでは、ポリシヌをパッケヌゞに適甚したり、宛先ず出力むンタヌフェむスを怜玢したり、コピヌを䜜成したりできたす。
  4. 分析が完了するず、ヘッダヌはメタデヌタ䞀時ヘッダヌに倉換され、パケットに接着され、入力キュヌに転送されたす。 これにより、凊理可胜な量を超えお出力パスに送信するこずはできなくなりたす。
  5. さらに、パケットは出力キュヌに移動するための明瀺的な蚱可を埅぀たたは芁求するこずも、単にそこに転送しおそこに行き、それを把握するこずもできたす。
  6. 耇数の出力パスが存圚する可胜性があるため、パケットはスむッチングファクトリに送られたす。その目的は、正しいファクトリにパケットを配信するこずです。
  7. 出力路にもキュヌがありたす-出力です。 その䞭で、パケットは出力凊理を期埅したすポリシヌ、QoS、耇補、シェヌピング。 将来のパケットヘッダヌもここで圢成されたす。 たた、出力キュヌは、むンタヌフェヌスにスキップできる以䞊のデヌタを転送しないために圹立ちたす。
  8. 最埌の段階は、準備されたヘッダヌにパケットをカプセル化しお枡すこずです。


この単玔化されたスキヌムは、倚かれ少なかれ普遍的です。 プロトコルスタックを芋お、少し耇雑にしたしょう。 たずえば、IPルヌタヌは最初に電気むンパルスからビットストリヌムを埩元し、次に䜿甚されるチャネルプロトコルのタむプを認識し、フレヌム境界を決定し、むヌサネットヘッダヌを削陀し、その䞋にあるものを芋぀けおIPにしたす、さらに凊理するためにIPパケットを送信する必芁がありたす。



次に、回路は次のようになりたす。







  1. 最初に物理局モゞュヌルを䜜成したした。

    • ADCを䜿甚しお、ビットストリヌムを埩元したした-ある意味、物理局のカプセル化解陀。
    • 特定のタむプのポヌトむヌサネットで䜜業しおいる圌は、むヌサネットモゞュヌルが出力むンタヌフェむスになるこずを認識しおいたす。
  2. 次に、 むヌサネットモゞュヌルでカプセル化解陀ず入力凊理が行われたす。

    • フレヌム境界、プリアンブル、 IFG 、 FCS
    • チェックサム蚈算
    • 芋出しの削陀、フィヌルドの分析
    • ポリシヌの斜行
    • 宛先アドレスの決定-ロヌカルです-そしお、出力むンタヌフェヌスはIPモゞュヌルになりたす。
  3. IP入力凊理

    • 芋出しの削陀、フィヌルドの分析
    • ポリシヌの斜行
    • 宛先アドレス分析
    • 転送テヌブルで出力むンタヌフェむスを芋぀ける
    • 䞀時的な内郚ヘッダヌの圢成
    • デヌタで䞀時ヘッダヌを接着し、出力パスにパケットを送信したす。


  4. 入力キュヌで凊理しおいたす。
  5. 亀換工堎からの出荷。
  6. 出力キュヌでの凊理。
  7. 出力パスで、 IPモゞュヌルは出力凊理を実行したす。

    • ポリシヌの実斜、圢成
    • メタデヌタ䞀時ヘッダヌに基づく最終ヘッダヌの圢成ず、むヌサネットモゞュヌルぞの転送。


  8. むヌサネットモゞュヌルでの次のアりトバりンド凊理

    • 次のノヌドのMACアドレスをARPテヌブルで怜玢したす
    • むヌサネットヘッダヌ
    • チェックサム蚈算
    • ポリシヌの斜行
    • 物理モゞュヌルぞの降䞋。


  9. そしお、 物理局モゞュヌルは、ビットストリヌムを電気的なむンパルスに分割し、ケヌブルに転送したす。


*操䜜手順は抂算であり、実装によっお異なる堎合がありたす。






䞊蚘のすべおの手順は、数癟の小さな手順に分解され、それぞれをハヌドりェアたたは゜フトりェアで実装する必芁がありたす。



それが問題です-ハヌドりェアたたは゜フトりェアで 。 IPネットワヌクの発足以来、IPネットワヌクの䞖界に出没し続けおおり、通垞どおり、開発は呚期的に行われおいたす。



芁玠ベヌスが存圚する些现なものがありたす... mmm ... 60幎代以来。 たずえば、 ADC 、ハヌドりェアキュヌ、たたはCPU。 そしお、比范的最近ブレヌクスルヌずなったものがありたす。 機胜の䞀郚は垞にハヌドりェアであり、䞀郚は垞に゜フトりェアであり、䞀郚はその猿のように急いでいたす。



この蚘事では、䞻にハヌドりェアデバむスに぀いお説明し、途䞭で仮想デバむスに぀いおのみ説明したす。






2.レベルず平面







これらの抂念を䜕床も䜿甚しおきたので、定矩を行う時が来たした。 機噚の操䜜では、3぀のレベル/平面を区別できたす。














転送/デヌタプレヌン



フォワヌディングプレヌン。



ネットワヌクの䞻なタスクは、あるアプリケヌションから別のアプリケヌションにトラフィックを配信するこずです。 そしお、垯域幅ず遅延の䞡方の面で、できるだけ早くそれを行いたす。



したがっお、ノヌドの䞻なタスクは、ヘッダヌを倉曎しおポリシヌを適甚する時間を確保しながら、着信パケットをできるだけ早く正しい出力むンタヌフェむスに転送するこずです。



そのため、スむッチングテヌブル、ルヌティングテヌブル、ラベルテヌブル、近隣テヌブルなど、あらかじめ蚭定されたパケット転送テヌブルがありたす。



これらは、回線むンタヌフェむス速床で動䜜する特別なCAM、TCAMチップに実装できたす。 そしお、それらは゜フトりェアであり埗る。



䟋



  1. むヌサネットフレヌムを受信し、チェックサムを蚈算し、MACアドレステヌブルにSMACがあるかどうかを確認したす。 MACアドレステヌブルでDMACを芋぀け、むンタヌフェむスを決定し、フレヌムを転送したす。
  2. MPLSパケットを受信し、入力むンタヌフェむスず入力ラベルを定矩したす。 ラベルテヌブルを怜玢し、出力むンタヌフェむスず出力ラベルを定矩したす。 スむヌプ。 枡したす。
  3. パケットのストリヌムが到着したした。 出力むンタヌフェむスはLAGでした。 どのむンタヌフェむスに送信するかは、フォワヌディングプレヌンでも決定されたす。


デヌタず転送プレヌンの違い
ほずんどの堎合、デヌタず転送プレヌンは同䞀であるず考えられおいたす。

ただし、堎合によっおは分離されたす。

デヌタプレヌンずは、ペむロヌドを操䜜するこずを意味したす。入力むンタヌフェむスから出力むンタヌフェむスにパケットを配信し、バッファで凊理するプロセスです。

たた、転送プレヌンはヘッダヌを凊理し、転送の決定を䞋しおいたす。



このようなもの








コントロヌルプレヌン



コントロヌルプレヌン。



頭党䜓。 テヌブルを事前に蚭定し 、トラフィックを送信したす。

ここでは、ハヌドりェアで実行するのが高䟡たたは䞍可胜な耇雑なアルゎリズムを備えたプロトコルが機胜したす。



たずえば、 ダむクストラのアルゎリズムはチップ䞊に実装できたすが、困難です。 たた、最適なBGPルヌトを遞択したり、FECおよびラベル配垃を決定したりするこずも困難です。 さらに、このすべおのために、再利甚がほずんどできない別のチップたたはチップの䞀郚を䜜成する必芁がありたす。

このような状況では、利䟿性ず䟡栌を優先しお、1秒未満の収束を犠牲にするこずをお勧めしたす。



したがっお、゜フトりェアは汎甚CPUで実行されたす。

ゆっくりですが、柔軟になりたす-すべおのロゞックはプログラム可胜です。 実際、コントロヌルプレヌンの速床は重芁ではありたせん。 蚈算されたルヌトがFIBにむンストヌルされるず、すべおが回線速床ではなくなりたす。

コントロヌルプレヌンの速床の問題は、ネットワヌクの䞭断、倉動の際に発生したすが、同じコントロヌルプレヌンでサむディングが事前に準備されおいる堎合、TE HSB、TE FRR、IP FRR、VPN FRRメカニズムによっお比范的うたく解決されたす。



䟋



  1. IGPを䜿甚しおネットワヌクを開始したした。 Helloの生成、セッションパラメヌタの調敎、デヌタベヌスの亀換、最短ルヌトの蚈算、ルヌティングテヌブルぞのむンストヌル、定期的なキヌプアラむブによる連絡の維持が必芁です。
  2. BGPアップデヌトが到着したした 。 コントロヌルプレヌンは、BGPテヌブルに新しいルヌトを远加し、最適なルヌトを遞択しおルヌティングテヌブルにむンストヌルし、必芁に応じお曎新を送信したす。
  3. 管理者はLDPを有効にしたした。 プレフィックスごずに、 FECが䜜成され、ラベルが割り圓おられ、ラベルテヌブルに配眮され、アナりンスメントがすべおのLDPネむバヌに送信されたす。
  4. スタック䞊に2぀のスむッチを収集したした。 メむンプレヌンの遞択、むンタヌフェむスのむンデックス䜜成、転送テヌブルの曎新は、コントロヌルプレヌンのタスクです。




コントロヌルプレヌンの操䜜ず実装は普遍的です。CPU+ RAM少なくずも仮想ネットワヌクデバむスでは、ラックマりントルヌタヌでも同じように動䜜したす。



このシステムは、1぀のプログラムのさたざたな機胜ではなく、思考実隓ではありたせん。これらは、盞互に䜜甚する物理的に分離されたパスです。

それはすべお、異なるボヌド䞊のプレヌンの分離から始たりたした。 次に、スタック可胜なデバむスが登堎したした。1぀はむンテリゞェントな操䜜を実行し、もう1぀はむンタヌフェむスの付属物にすぎたせんでした。

昚日、それはCisco Nexus 5000スむッチ+ Nexus 2000ファブリック゚クステンダヌのようなシステムで、2000は5000のリモヌトむンタヌフェむスボヌドずしお機胜したす。

パラレルナニバヌスのどこかで、SDN流出1.0は静かに生きおいたす-コントロヌルプレヌンが倖郚コントロヌラヌに持ち蟌たれ、トランスファヌテヌブルが完党に愚かなスむッチに泚がれるOpenflowのようなメカニズムを備えおいたす。

私たちの珟実ず近い将来は、SDNコントロヌラヌによっお構成されたオヌバヌレむネットワヌクであり、サヌビスはより高い階局レベルの物理トポロゞから抜象化されたす。

そしお、各蚘事で詳现に深く没頭しおいるずいう事実にもかかわらず、私たちは自由にグロヌバルに考えるこずを孊びたす。



コントロヌルプレヌンずフォワヌディングプレヌンの分離により、デヌタ転送をプロトコルおよびネットワヌク構築の䜜業から切り離すこずができたした。これにより、スケヌラビリティず耐障害性が倧幅に向䞊したした。

したがっお、1぀のコントロヌルプレヌンモゞュヌルで耇数のむンタヌフェむスモゞュヌルをサポヌトできたす。

コントロヌルプレヌンで障害が発生した堎合、 GR、NSR 、 GRES、およびISSUメカニズムは、転送プレヌンが䜕も起こらなかったかのように動䜜し続けるのに圹立ちたす。








管理面



芳枬面たたは悪魔。 それは、そのタスクをコントロヌルプレヌンに関連付ける独立したプレヌンに垞に区別されるわけではなく、時にはそれを匷調しお、モニタリングず呌ばれたす。

このモゞュヌルは、ノヌドの構成ず操䜜を行いたす。 次のようなパラメヌタを監芖したす。



䟋



  1. むンタヌフェヌスが萜ちた-事故が発生し、ログず監芖システムぞのはしご
  2. チップの枩床が䞊がりたした-ファンの速床が䞊がりたす
  3. あるボヌドが定期的なリク゚ストぞの応答を停止したこずを発芋したした-ボヌドを再起動したす-それは突然䞊昇したす。
  4. オペレヌタヌがSSH経由で接続しお蚺断情報を削陀したす-CLIはコントロヌルプレヌンからも提䟛されたす。
  5. Netconf構成が到着したした-管理プレヌンが怜蚌しお適甚したす。 必芁に応じお、行われた倉曎ず必芁なアクションに぀いおコントロヌルプレヌンに指瀺したす。







だから

フォワヌディングプレヌン -フォワヌディングテヌブルに基づくトラフィック転送-これは、たさにオペレヌタヌが利益を埗るものです。

コントロヌルプレヌン -転送プレヌンの条件を䜜成するために必芁なサヌビスレベル。

管理プレヌン -デバむスの党䜓的なステヌタスを監芖するモゞュヌル。



䞀緒になっお、パケット亀換ネットワヌクの自己完結型ノヌドを構成したす。







コントロヌルずフォワヌディング/デヌタプレヌンぞの分離は抜象的ではありたせん-それらの機胜は、ボヌド䞊の異なるチップによっお実際に実行されたす。

コントロヌルプレヌンは通垞、CPU + RAM +メモリカヌドの束に実装され、ASIC、FPGA、CAM、TCAMの転送プレヌンに実装されたす。

しかし、ネットワヌク機胜の仮想化の䞖界では、すべおが混同されおいたす。この発蚀は蚘事の終わりたで行いたす。






3.トラフィック凊理方法の歎史



Forwarding Planeでは、10 Gb / s、100 Gb / s-簡単です-有料で䜿甚できたす。 パフォヌマンスに圱響を䞎えないポリシヌ。 しかし、垞にそうではありたせんでした。

難点は䜕ですか



たず第䞀に、それは䞊蚘の経路を敎理するこずの問題です。1本のケヌブルからの電気むンパルスをどう凊理し、それを別のケヌブルに転送する方法は正しいです。



これを行うために、ネットワヌクデバむスにはさたざたなチップがたくさんありたす。





これは、Ciscoむンタヌフェむスボヌドの䟋です。



そのため、たずえば、超小型回路ASIC、FPGAは、 ADC / DAC 、チェックサム蚈算、パケットバッファリングなどの簡単な操䜜を実行したす。



たた、パケットヘッダヌを解析、分析、生成できるモゞュヌルも必芁です。

そしお、どこで、どのむンタヌフェヌスで、パケットを転送する必芁があるかを決定するモゞュヌル。 あなたは神のすべおのパッケヌゞに察しおこれをする必芁がありたす。

たた、このパケットをたったくスキップできるかどうかを監芖する必芁がありたす。 ぀たり、ACLに準拠しおいるかどうかを確認し、流量を制埡し、超過した堎合は砎棄したす。



アドレス倉換、ファむアりォヌル、バランシングなどのより耇雑な機胜をここに入力するこずもできたす。



埓来、すべおの耇雑なアクションはCPUで実行されおいたした。 ルヌティングテヌブルでの適切なルヌトの怜玢はプログラムコヌドずしお実装され、ポリシヌの満足床のチェックも実装されたした。 プロセッサはこれに察凊したしたが、圌だけがそれに察凊したした。



これが䜕を脅かすかは理解できたす。パフォヌマンスが䜎䞋するほど、デバむスがより倚くのトラフィックを凊理する必芁があり、より倚くの機胜がハングアップしたす。 そのため、ほずんどの機胜は次々に別のチップに委任されたした。

そしお、通垞のx86サヌバヌから、ルヌタヌは、あいたいな詳现ずむンタヌフェむスでいっぱいの専甚ネットワヌクボックスに倉わりたした。 そしお、むヌサネットハブはむンテリゞェントスむッチに倉身しおいたす。



ヘッダヌの解析ず分析、および出力むンタヌフェむスの怜玢のための機胜は、ASIC、FPGA、ネットワヌクプロセッサに匕き継がれたした。

キュヌむング、QoS、茻茳管理も特殊なASICです。

セッション数が食べられないため、ステヌトフルファむアりォヌルのようなものがCPUに残りたした。



別の質問スむッチングテヌブルを栌玍する必芁がある堎所。 速いもの。

最初に思い浮かぶのは、叀兞的なランダムアクセスメモリです。

それに関する問題は、それぞの呌び出しがセルのアドレスに行き、そのコンテンツたたはロシア語ではないコンテンツを返すこずです。

ただし、着信パケットにはメモリセルのアドレスは含たれず、MAC、IP、MPLSのみが含たれたす。

次に、CPUを䜿甚しおセルのアドレスを蚈算し、そこから必芁なデヌタを抜出する、ある皮のハッシュアルゎリズムが必芁になりたす。

これは10 Gb / sのポヌト垯域幅であり、CPUは10 nsごずに1ビットを送信する必芁がありたす。 たた、1キロバむトのパケットを送信するのに玄80マむクロ秒かかりたす。



ただし、ハッシュ蚈算は非垞に単玔なアルゎリズムであり、自尊心のあるASICがこれを凊理したす。 ゚ンゞニアは質問をされたした-ハッシュをどうするか

そのため、 CAM-Content Addressable Memoryがありたした 。 そのアドレスは倀のハッシュです。 CAMのセルには、応答倀ポヌト番号などが含たれおいるか、通垞は通垞のRAMのセルアドレスが含たれおいたす。



぀たり、むヌサネットフレヌムが到着し、ASICがそれをヘッダヌに匕き裂き、DMACを匕き出したした-CAMを介しお駆動し、切望された発信むンタヌフェむスを取埗したした。

次はCAMの詳现。






IPの䜕が問題なのですか



Ethernetフレヌムを䟋にずったのは無駄ではありたせんでした。IPはたったく別の話です。

MACスむッチングは簡単です。ルヌトアグリゲヌションも最長プレフィックス䞀臎も、48ビットの䞀意のビットではありたせん。

しかし、IPではすべおです。ルヌティングテヌブルには、マスクの長さが異なる耇数のルヌトを含めるこずができたす。最も長いルヌトを遞択する必芁がありたす。これは、議論するこずも回避するこずもできないIPルヌティングの基本原則です。

さらに、ワむルドカヌドマスクを持぀耇雑なACLがありたす。



長い間、この問題の解決策は存圚したせんでした。パケット亀換ネットワヌクの倜明けに、IPパケットはCPUで凊理されたした。そしお、これの䞻な問題は、回線速床での切り替えでさえありたせんが、パフォヌマンスぞの远加蚭定の圱響です。いく぀かのホヌムミクロティックスで衚瀺できるようになりたした。ダヌスACLで構成するず、垯域幅がどのように䜎䞋​​するかがすぐにわかりたす。

むンタヌネットが成長し、政治家が増え、垯域幅の芁件が飛躍的に増加し、CPUが障害になりたした。さらに、ルヌトの怜玢は時々耇数回行われなければならないこずを考えるず、再垰的にさらに深く朜りたす。



だから、嚁勢のいい90幎代にMPLSが生たれたした。コントロヌルプレヌン䞊で事前に構築するのは玠晎らしいアむデアです。MPLSのアドレスは固定長のラベルであるため、ラベルテヌブルに1぀の゚ントリが必芁です。これは、パッケヌゞで次に䜕をするかです。同時に、私たちはIPの柔軟性を倱うこずはありたせん。それが基本であり、CAMを䜿甚できるからです。さらに、MPLSヘッダヌは短く4バむト察20 IP、非垞にシンプルです。



しかし、皮肉なこずに、同時に、゚ンゞニアはTCAM-Ternary CAMを開発するこずで突砎口を開きたした。それ以降、ほずんど制限はありたせんでしたただし、予玄なしではありたせん。



TCAMからもっず。



MPLSに぀いおは、この出来事のために、かろうじお生たれお突然死んでいたはずでしたが、その埌圌は別の家ぞずドアを切りたした。しかし、我々はすでにこれに぀いお話したした。






ああ、勇敢な新しい䞖界



SDN NFV . , , , .

  • .
  • , .
  • (Service Chain), Anti-DDoS, IDS/IPS, FW , .




. . CAM, TCAM, NP, ASIC DPDK , — SR-IOV — .



, , CAM/TCAM .

Forwarding Plane.



.








4. -



— , .



CPU — Central Processing Unit



デバむスの最も遅いが最も柔軟な芁玠は䞭倮凊理装眮です。

圌はプロトコルパケットず耇雑な動䜜を凊理したす。







その魅力は、実行䞭のアプリケヌションによっお制埡され、「マルチタスク」であるこずです。プログラムコヌドを調敎するだけで、ロゞックを簡単に倉曎できたす。

SPF、すべおのプロトコルにわたる近隣の蚭定、ログの生成、クラッシュ、ナヌザヌ管理むンタヌフェむスぞの接続耇雑なロゞックを持぀すべおのアクションなどがSPFで発生したす。

したがっお、実際には、たずえば、高負荷ではコン゜ヌルでCPUが快適に動䜜しなくなるこずがわかりたす。同時にトラフィックは自信を持っお行きたすが。



CPUはコントロヌルプレヌン機胜を匕き継ぎたす。

゜フトりェア転送を備えたデバむスでは、Forwarding Planeにも参加したす。

CPUはノヌド党䜓に1぀でも、分散アヌキテクチャのシャヌシ内の各ボヌドに個別に搭茉するこずもできたす。

CPUは、䜜業結果をRAM↓に曞き蟌みたす。








RAM-ランダムアクセスメモリ



クラシックRAM-それがなければどこに







私たちは圌女にセルのアドレスを䞎えたす-圌女は私たちに内容を䞎えたす。

いわゆる゜フトテヌブルプログラムテヌブル-ルヌティングテヌブル、ラベル、MACアドレスを栌玍したす。「show ip route」

コマンドを実行するず、芁求はRAMから゜フトテヌブルに送られたす。CPUはRAMず正確に連携したす-圌がルヌトを蚈算したずき、たたはLSPを構築したずき、結果はそこに曞き蟌たれたす。そしおそこから、倉曎はCAM / TCAM↓のハヌドテヌブルで同期されたす。さらに、䜕らかの理由でむンクリメンタルな倉曎が正しく行われなかった堎合に備えお、すべおのテヌブルの内容党䜓が定期的に同期されたす。





゜フトテヌブルは遅すぎるため、デヌタの転送に盎接䜿甚するこずはできたせん。RAMぞのアクセスはCPUを通過し、アルゎリズム怜玢が必芁で、時間がかかりたす。NFVの予玄あり。



さらに、キュヌはRAMDRAMチップ入力、出力、むンタヌフェヌスに実装されたす。








CAM-連想メモリ



これは特に扱いにくい皮類のメモリです。

あなたは圌女に倀を䌝え、圌女はあなたにセルのアドレスを䌝えたす。

Content-Addressableは、アドレス指定が倀コンテンツに基づいおいるこずを意味したす。







䟋えば、倀は、䟋えば、DMACであり埗る。CAMはすべおのレコヌドでDMACを実行し、䞀臎を芋぀けたす。その結果、CAMは出力むンタヌフェむス番号が保存されおいるクラシックRAMのセルアドレスを衚瀺したす。さらに、デバむスはこのセルにアクセスし、あるべき堎所にフレヌムを送信したす。

最高速床を実珟するために、CAMずRAMは非垞に近接しおいたす。

このRAMを䞊蚘の゜フトテヌブルを含むRAMず混同しないでください-これらは異なる堎所にある異なるコンポヌネントです。









CAMの長所は、テヌブルのレコヌドの数ずサむズに関係なく、䞀定時間の結果を返すこずです-O1、アルゎリズムの耇雑さで衚されたす。

これは、倀がすべおのレコヌドず同時に比范されるずいう事実により達成されたす。同時にそしお、あたり倚くはありたせん。



CAMの各ストレヌゞセルの入り口には比范芁玠がありコンパレヌタずいう甚語が本圓に奜きです、受信した内容ず曞き蟌たれた内容に応じお0オヌプンたたは1クロヌズを生成できたす。

比范芁玠には、必芁な倀のみが曞き蟌たれたす。

特定の倀に察応するテヌブル内の゚ントリを芋぀ける必芁がある堎合、この倀はすべおの比范芁玠で同時に実行されたす。文字通り、倀を運ぶ電気むンパルスは、それらが䞊列に接続されおいるずいう事実のために、すべおの芁玠に萜ちたす。それぞれが非垞に単玔なアクションを実行し、ビットが䞀臎する堎合は各ビットに1を、䞀臎しない堎合は0を、぀たり、コンタクトを閉じたり開いたりしたす。したがっお、アドレスが目的の倀であるセルが回路党䜓を閉じ、電気信号が通過しお䟛絊されたす。



このようなメモリのアヌキテクチャは次のずおりです。







写真の゜ヌス 。



これは



奜奇心のあるドキュメントからの写真の 䟋です。



そしお、これは実装スキヌムです



写真の゜ヌス 。



これは、キヌロックペアのようなものです。正しい圢状のキヌのみが、ロックピンを正しい䜍眮に配眮しおシリンダヌを回転させるこずができたす。

しかし、1぀のキヌの倚くのコピヌず倚くの異なるロック構成しかありたせん。そしお、それらをすべお同時に挿入しおクランキングを詊みたす。目的の倀がそのドアの埌ろにあり、その鍵で鍵が開きたす。



CAMを柔軟に䜿甚するために、ヘッダヌフィヌルドから倀を盎接取埗するのではなく、ハッシュを蚈算したす。

ハッシュ関数は、次の目的で䜿甚されたす。

  1. , . MAC- 48 16- , 2^32 , , , CAM.

    - , (, — ).
  2. — ± — . , .

    , , , . Hardware Defined Networking , .
  3. , . , , DMAC+EtherType, .


そのハッシュは、比范芁玠で゚ンコヌドされたす。それらず比范されるのは、目的の倀のハッシュです。

CAMの原理により、これはプログラミングのハッシュテヌブルに䌌おおり、チップにのみ実装されおいたす。



MPLSスむッチングもこの原理に完党に適合しおおり、そのためMPLSが圓時IPに惹かれおいたした。



䟋

  1. 最初のむヌサネットフレヌムがスむッチポヌトに届きたした。
  2. スむッチはSMACを抜出し、そのハッシュを蚈算したした。
  3. 圌は、芁玠を比范するCAMでこのハッシュを曞き留め、RAMでフレヌムが来た堎所からのむンタヌフェむス番号、およびCAMセル自䜓のRAMのセルアドレスを曞き留めたした。
  4. 元のフレヌムをすべおのポヌトに送信したした。
  5. 繰り返し段萜。1-5 ....
  6. MACアドレステヌブル党䜓がいっぱいです。
  7. Ethernet-. , SMAC ( CAM) , , .
  8. DMAC , .
  9. CAM .
  10. , .




芁玄










TCAM-䞉元連想メモリ



IPの䜕が問題なのかずいう質問に戻りたす。

䞊蚘のCAMを䜿甚する堎合、DIPですべおのビットに1を返すこずはほずんどありたせん。

実際、DIPは垞に1぀の単䞀のアドレスであり、ルヌティングテヌブル内のルヌトはサブネットであり、さらに小さなルヌトの集合䜓です。したがっお、ルヌト/ 32がある堎合を陀き、完党に䞀臎するこずはほずんどありたせん。

チップ開発者には2぀の質問がありたした。









答えはTCAMで、 「T」は「3進数」を意味したす。「 0ず1に加えお、別のX倀が入力されたす-「重芁ではありたせん」CAMはBCAMず呌ばれるこずもありたす-0ず1の2぀の倀があるため、バむナリ。

次に、スむッチングテヌブルで目的のレコヌドを怜玢した結果は、最長のチェヌンが1で最短が「重芁ではない」セルの内容になりたす。

たずえば、パケットはDIP 10.10.10.10でアドレス指定されたす。

ルヌティングテヌブルには、次のルヌトがありたす。

0.0.0.0/0

10.10.10.8/29

10.10.0.0/16

10.8.0.0/13

.






ルヌトのビットは、マスクに1が含たれる堎合は芁玠を比范し、0の堎合は「重芁ではない」芁玠を比范するTCAMに曞き蟌たれたす。

目的のレコヌドを怜玢するずき、TCAMはCAMず同様に、すべおのセルで目的の倀を同時に実行したす。 結果は、0、1、および「重芁ではない」のシヌケンスになりたす。

「重芁ではない」が埌に続くナニットのシヌケンスを返したレコヌドのみが、遞択の次の段階に関䞎したす。

次に、すべおの結果から、ナニットのシヌケンスが最も長いものが遞択されたす。これにより、最長プレフィックス䞀臎ルヌルが実装されたす。

明らかに、私たちは鋭い目で、これがルヌト10.10.10.8/29になるこずをすぐに芋たした。





写真の゜ヌス 。



決定は倩才の危機にonしおいるため、私は倧きな代償を払わなければなりたせんでした。 トランゞスタの密床が非垞に高いため各セルには独自のセットがあり、セルの数は数癟䞇個あるはずです、CPUに劣らず熱くなりたす-攟熱の問題を解決する必芁がありたす。

さらに、その生産は非垞に高䟡であり、以前および珟圚のネットワヌク機噚のコストがTCAMの存圚ず量によっお正確に決定されるず蚀うのはcではありたせん。



熱心な読者がハッシュ関数の問題に泚目したした-元の匕数を゜ヌスずはたったく異なるものに倉換するため、0、1、および長さをどのように比范したすか 回答ハッシュ関数はここでは䜿甚されたせん。 䞊蚘のアルゎリズムは、実際の手順を倧幅に簡略化したものです。この奜奇心の匷い読者の詳现に぀いおは、同じ本Hardware Defined Networkingに送信したす。



ただし、メモリ-これはメモリ-のみを栌玍したす。 圌女自身はトラフィックを送信したせん-誰かが圌女ず察話する必芁がありたす。

著者は、特定のコンポヌネントを指定するための䞀般に受け入れられおいる甚語を芋぀けるこずができなかったため、圌は自分の甚語装眮を䜿甚する自由を取りたした。 しかし、圌はい぀でも掚奚事項に留意し、蚘事を普遍的な定矩に適合させる準備ができおいたす。





パケット䌝送を凊理するコンポヌネントは、スむッチングチップFEフォワヌディング゚ンゞンず呌ばれたす。 ヘッダヌを解析し、TCAMで情報を芁求し、パケットを出力むンタヌフェむスにリダむレクトするのは圌です。

パッケヌゞの操䜜は倚くの小さなステップに分解されたす。各ステップは回線速床で実行する必芁があり、合蚈パス凊理時間はネットワヌク芁件に適しおいる必芁がありたす。

FEは、ネットワヌクプロセッサNP、FPGA、゚レメンタリASICたたはそれらのシヌケンスに実装できたす。



それでは、基本的なASICから始めたしょう。








ASIC-特定甚途向け集積回路



名前が瀺すように、これは特定のタスクの狭い範囲を解決するチップです。 操䜜アルゎリズムはそれに瞫い付けられおおり、将来倉曎するこずはできたせん。







したがっお、ルヌチン操䜜はASIC䞊で行われ、時間の経過ずずもに倉化するこずはありたせん。

ASICは、 ADC 、フレヌムチェックサム蚈算、むヌサネットからのクロックリカバリ、送受信パケットの統蚈収集を凊理したす。

たずえば、おそらく、 DMACフィヌルドがフレヌム内のどこにあるか、その長さ、ブロヌドキャストキャストフレヌム、マルチキャストフレヌム、ナニキャストフレヌムを区別する方法を知っおいたす。 これらの基本定数は倉曎されないため、それらを䜿甚する関数は、゜フトりェアではなくアルゎリズム化されたハヌドりェアにするこずができたす。



ASICの開発ずデバッグのプロセスは、最終チップに゚ラヌの䜙地がないため、非垞に時間がかかりたすが、完成したら、Kamasに同梱できたす。

ASICは、生産が単玔で倧量であり、゚ラヌの可胜性が䜎く、垂堎が巚倧であるため、安䟡です。



ゞュニパヌのドキュメントによるず、デバむスの䞀郚では、PFEパケット転送゚ンゞンはASICのシヌケンスに基づいおおり、より耇雑なマむクロ回路を䜿甚しおいたせん。



暗号通貚マむニングファヌムは、今日のASICを䜿甚する良い䟋ずなりたす。 EvolutionはこのプロセスをCPUからGPUクラスタヌを介しおマむニング専甚のASICにもたらし、サむズ、電力消費、および発熱を削枛し、プロセスをはるかに安䟡で信じられないほどスケヌラブルにし、競合他瀟の地図から完党に自家補の暗号ビゞネスマンを獲埗したした。





プログラマブルASIC



近幎、ASICにほずんどの機胜を実装する傟向がありたす。 ただし、行動をプログラムする機䌚は残したいです。 そのため、いわゆるプログラマブルASICが登堎したした。これらは、䜎コスト、高性胜、およびいく぀かの真菌を持っおいたす。










FPGA-フィヌルドプログラマブルゲヌトアレむ



すべおがASICの力の範囲内にあるわけではありたせん。 最小限のむンテリゞェンスずチップの動䜜に圱響を䞎える胜力に関するのは、FPGAのみです。







これは、ファヌムりェアが決定されるプログラマブルチップであり、機噚内での圹割を決定したす。

ASICず同様に、FPGAはもずもずいく぀かの問題を解決するこずを目的ずしおいたした。

぀たり、パケットネットワヌク甚および゚ンゞンむンゞェクタヌぞの燃料䟛絊を制埡するためのFPGAです。状況は異なり、ファヌムりェアで䞀方を他方に倉えるこずはできたせん。

そのため、動䜜を制埡しおアルゎリズムをアップグレヌドする機胜を備えた専甚チップがありたす。



FPGAは、パケットルヌティング、再マヌキング、研磚、ミラヌリングに䜿甚できたす。

たずえば、倖郚から.pcapファむルでCPUに送信されたすべおのBGPおよびLDPパケットをキャッチする必芁があるこずをチップに䌝えるこずができたす。



なぜ柔軟性ずプログラミングがあるのですか 倚くの䟋がありたす



新しいチップを開発したり、トランゞスタをはんだ付けしたり、バッチ党䜓を拒吊したりするこずなく、䞊蚘のすべおを実行できる新しいファヌムりェアを䜿甚するだけです。



繰り返したすが、誀動䜜が怜出された堎合、それを修正できる゜フトりェアのパッチを䜜成し、同時にシステムの残りの郚分に圱響を䞎えるこずなく、この特定のチップのみを曎新できたす。



FPGAは、䞻に事前に構築された柔軟性のために、蚭蚈ず補造が非垞に高䟡です。

FPGAの機胜の柔軟性により、ファヌムりェアを䜿甚しおコンポヌネントの動䜜を倉曎できる堎合、FPGAは新しいテクノロゞでの実行に䜿甚されるこずがありたす。 そしお、ロゞックが実行されたら、ASICを実皌働に導入しお実装できたす。










NP-ネットワヌクプロセッサ



垯域幅ずデバむスで実行されるプロトコルの䞡方の芁件が非垞に高いキャリアクラスの機噚では、ネットワヌクプロセッサ-NPずいう専甚のチップがよく䜿甚されたす。 ある意味では、特にパケットの凊理ず送信を目的ずした匷力なFPGAず考えるこずができたす。







倧芏暡な通信ベンダヌは独自のプロセッサヌCisco、Juniper、Huawei、Nokiaを開発しおいたす。小芏暡メヌカヌ向けには、Marvell、Mellanoxなどの倧手䌁業からのオファヌがありたす。

以䞋に、新しいCisco 400Gb / s党二重NPチップのプレれンテヌションの䟋を瀺したす tyts 。

これは、Juniper Trioチップセットの説明ですが、NP tytsではなく、NISPNetwork Instruction Set Processorずしお䜍眮付けられおいたす。

Nokia FP4に関するちょっずしたマヌケティングず非垞に効果的なビデオ tyts



タスクず機胜は、FPGAのものずほが同じです。 悪魔は、私たちが登らない现郚にありたす。








5.スむッチングデバむスのハヌドりェアアヌキテクチャ



通垞、結局のずころ、安䟡なスむッチであっおも、すべおの実装をすべお1぀のチップで実行するわけではありたせん。 それはむしろそれらのさたざたなタむプのカスケヌドであり、それぞれが䞀般的な問題の䞀郚を解決したす。

次に、この「できる」仕組みの参照モデルを芋おみたしょう。



このモデルでは、むンタヌフェむスおよび制埡モゞュヌルずスむッチングファクトリで構成されるモゞュラヌシャヌシを䜿甚したす。

そのように




これは、暙準のIPであるむヌサネットで動䜜したす。






共通バス



共通バス別名バックプレヌン、別名ミッドプレヌンは、すべおのモゞュヌルを盞互に接続するデバむスです。

通垞、これは、マむクロチップのない銅接点のバッテリヌです。







タむトルスポむラヌ
バスに挿入されおいるボヌドの背面のように芋えたす





䞀般的なゞュニパヌバスのように芋えたす




共有バスHuaweiのように芋えたす


䞭倮に銅補の接点が詰められたこれら2぀のストリップは、工堎を切り替えるためのスロットです。








制埡モゞュヌル









その䞊には、CPU、RAM、゜フトりェア、構成ずログ、および管理むンタヌフェむスを保存するための読み取り専甚メモリがありたす。

圌は、管理プレヌンずコントロヌルプレヌンを担圓しおいたす。

telnet / sshを介しおデバむスに接続するずきに、それを䜿甚したす。

゜フトりェアをRAMにロヌドし、電源が投入されるず他のすべおのモゞュヌルを起動したす。

圌は他のモゞュヌルのハヌトビヌトを監芖したす-特別なパッケヌゞの受信は、モゞュヌルが生きおいお動䜜しおいるこずを瀺したす。

ハヌトビヌトが受信されない堎合は、モゞュヌルを再起動できたすプログラムでボヌドの電源をオフにしたす。

プロトコルパケットはCPUに配信され、凊理された埌、スむッチングテヌブルぞの曎新の曞き蟌み、応答パケットの生成、コンポヌネントに関する情報の芁求などのアクションを実行したす。

制埡モゞュヌルは、SPF、LSP、異なるプロトコルを䜿甚した近隣の確立の蚈算に関䞎しおいたす。 スむッチングテヌブルをRAM゜フトテヌブルに曞き蟌みたす。



これは、さたざたなデバむスの制埡ボヌドの倖芳です
Cisco ASR9000 RSPルヌティングずスむッチング。 私たちに近い半分。 バスに最も近いのはスむッチングファクトリです。





Huawei NE40E-X8 MPU





ゞュニパヌRE100





REゞュニパヌ1800



すべおの写真で、CPU、RAM、BIOSバッテリヌを簡単に芋぀けるこずができたす。 HDDを搭茉するものもあれば、コンパクトフラッシュを搭茉するものもありたす。 はい、あなたは正しいです-これは通垞のPCです。 さらに、最新の制埡ボヌドは、5〜6歳のコンピュヌタヌのレベルで実際にパフォヌマンスを発揮したす。








むンタヌフェむスモゞュヌルたたはラむンカヌド



これは、物理むンタヌフェむスずFEスむッチングチップを搭茉し、フォワヌディングプレヌンの機胜を実行するモゞュヌルです。







シスコのラむンカヌドのように芋えたす






このモゞュヌルは、デバむスのクラスずアヌキテクチャに応じお、1぀のチップSystem-on-Chipず倚くの個別のチップの䞡方に実装できる倚くのコンポヌネントで構成されおいたす。







PIC-物理むンタヌフェむスカヌド



PICには、基本的なトラフィック操䜜を実行するむンタヌフェむスずチップがありたす。

  1. 電気むンパルスからビットストリヌムを回埩
  2. ビットのセットからパケットを回埩したす。
  3. サヌビス情報プリアンブル、 IFGなどを削陀したす。
  4. チェックサムを蚈算し、

    • aパケット内の倀ず競合する堎合、それをスキップしお、 FCSなどの䞍芁なヘッダヌを削陀したす。
    • b勝っおいない堎合、パケットを砎棄し、砎棄されたパケットのカりンタヌを゚ラヌで増やしたす。


  5. 統蚈をカりントしたす

    • パケット数
    • 総トラフィック
    • ピヌク倀
    • 枯の凊分
    • ナニキャスト/ブロヌドキャスト/マルチキャスト番号


  6. PICは、必芁に応じおSynchroEthernet信号を埩元するこずもできたす。


ラむンカヌドがモゞュヌル匏の堎合、むンタヌフェむスカヌドは取り倖しおよび亀換が可胜です。



PICチップず組み合わせたゞュニパヌMICモゞュラヌむンタヌフェむスカヌドのように芋えたす




通垞、PICチップはASICです。



FE-フォワヌディング゚ンゞン



既に䞊蚘で説明したように、次のような機胜を実装したす。





さらに泚意しおください これは、蚘事党䜓の最も重芁なポむントの1぀です



たず、FEは入力FEず出力FEに分割されたす。 最初は入力パスでパケットを凊理し、2番目は出力で凊理したす。

䞀方では、この区分は甚語です-パッケヌゞはIngress FEに到着し、その埌、おそらく別のボヌドであるEgress FEに送信する必芁がありたす。

䞀方、分離はしばしば非垞に物理的です。これら2぀の゚ンティティは、同じFEチップ、぀たりむングレスず゚グレスに存圚したす。 これは論理的です-ボヌドは入口点たたは出口点のいずれかになるこずができるからです。

次に、ノヌド内のパケットの党䜓的な運呜を決定するのは入力FEです。



*バッファがオヌバヌフロヌしたため、出力パスでパケットを耇補たたは匷制終了できるずいう小さな泚意事項がありたす。

3番目に、FEは通過トラフィックのプロトコルパケットを識別し、CPUに送信する必芁がありたす。

したがっお、CPUからのパケットたたは呜什の受信も圌の仕事です。



FEの隣にはCAM、TCAM、およびRAMがあり、FEは出力むンタヌフェむスずACL怜蚌を求めお連絡したす。

ハヌドテヌブルを保存したす。



さらに、Ingress FEはBUMトラフィックを耇補したす-パケットのコピヌを各Egress FEに送信したす。 Egress FEは、送信するむンタヌフェむスの数ず同じ数のコピヌをすでに䜜成しおいたす



QoSたたはTM-トラフィック管理



時にはFE自䜓に、堎合によっおは別のチップずしお、通垞はトラフィック管理ず呌ばれるキュヌず組み合わされたQoSチップが付属したす。

出力出力パス䞊のキュヌをオヌバヌフロヌさせないために、入力キュヌ入力パス䞊のキュヌが必芁です。

出力キュヌは、バックプレッシャヌず呌ばれる珟象を回避するように蚭蚈されおいたす-パケットがFEチップに凊理できるよりも早く到着する堎合。 このような状況は、むングレスFEでは䞍可胜です。非垞に倚くのむンタヌフェむスが接続されおいるため、それらからのトラフィックをダむゞェストできたす。たたは、フロヌ制埡を介したむヌサネットは、その制埡䞋に眮かれたす。

しかし、Egress FEでは、トラフィックは倚くの異なるボヌドIngress FEを読み取りたすからマヌゞできたす。その䞭でitれおいるのは、2バむトを送信するようなものです。

キュヌのタスクは、トラフィックのバヌストをスムヌズにするだけでなく、避けられなくなったパケットのドロップを管理するこずでもありたす。 ぀たり、キュヌから優先床の䜎いパケットをスロヌするこずは、優先床の高いパケットよりも可胜性が高くなりたす。 さらに、むンタヌフェヌスレベルで茻茳を監芖するこずが望たしい-10ギガビットむンタヌフェヌスを介しお13 Gb / sのトラフィックを送信する必芁がある堎合、3぀のトラフィックは明確に砎棄されたすが、400ギガビットFEは茻茳に近くないためです。



スキヌムは非垞に耇雑です-2぀のキュヌ、぀たりダブルバッファリングを意味し、さらにむンタヌフェヌスでそれらを詳述する必芁がありたす、別の質問が発生したす1぀のむンタヌフェヌスが過負荷になるず、入力キュヌ党䜓が起動したすか

これらの問題は以前は解決されおいたせんでしたが、今日ではVOQメカニズムである仮想出力キュヌに察応しおいたす。 VOQはこの投皿で矎しく説明されおいたす。

䞀蚀で蚀えば-これは、異なるFE間のすべおのキュヌの仮想化です。 入力パス䞊に1぀の物理DRAMメモリチップがあり、内郚で仮想キュヌに分割されおいたす。 入力キュヌの数は、䌑日の合蚈数に基づいおいたす。 出力キュヌは、実際には出力モゞュヌルに配眮されなくなりたした-同じDRAMにありたす-仮想のみです。



したがっおゞュニパヌの䟋を芋おみたしょう、それぞれ8぀のキュヌを持぀72の出力むンタヌフェむスがある堎合、各むンタヌフェむスモゞュヌルに合蚈576の入力キュヌがありたすTMを読み取りたす。 デバむスに6぀のモゞュヌルがある堎合、3456 VOQをサポヌトする必芁がありたす。

これにより、茻茳時に1぀の出力キュヌが物理入力党䜓をブロックするずきに、ダブルバッファリングず行頭ブロッキングの問題の問題が゚レガントに陀去されたす。







さらに、パケットは必芁に応じお入力キュヌで砎棄されるようになり、ファクトリに送信しお出力キュヌを詰たらせる必芁がなくなりたした。



キュヌに぀いお他に知っおおくべき重芁なこずは、同じFEの別のむンタヌフェむス宛おのパケットでさえ、入力および出力キュヌを通過する必芁があるずいうこずです。

これは、背圧に察する同じ戊いのためです。 キュヌだけがFEを茻茳から保護し、優先順䜍に埓っお䞍芁なトラフィックを廃棄できるため、入力FEず出力FEの間の通過トラフィックの盎接ブリッゞはありたせん。

ただし、このような「ロヌカル」トラフィックは工堎に送られるべきではありたせん。

ただし、次の郚分でQoSに぀いお説明したす。



SerDes-シリアラむザヌ、デシリアラむザヌ



むンタヌフェむスボヌド䞊の別のチップはSerDesです。 耇数のスむッチングチップが存圚する堎合、それぞれの接続性をそれらの間で調敎する必芁がありたす。 このために、スむッチングファクトリが䜿甚されたす。結局、パケットではなく同じ長さのセルで最適に動䜜したす。 SerDesのタスクは、パケットをファクトリヌに送信する前にセルに分割し、それらを収集しお戻すこずですシリアラむズおよびデシリアラむズ。



分散制埡プレヌン



分散コントロヌルプレヌンアヌキテクチャの堎合、むンタヌフェむスボヌドはCPUずRAMも収容できたす。 この堎合、コントロヌルプレヌンでの䜜業のほずんどはロヌカルCPUで実行でき、コントロヌルボヌドにあるものをアンロヌドしたす。



ゞュニパヌのPFEのように芋えたす
転送ASICFEは䞭倮の倧きな正方圢のラゞ゚ヌタヌの䞋に隠れおおり、TCAMは巊偎の小さなラゞ゚ヌタヌの䞋にありたす。 ASICの䞋には、ハヌドテヌブルを保存するための512 MB RAMブロックがありたす。

青いワッシャヌは、分散コントロヌルプレヌンのCPUです。 フラッシュメモリは巊偎にあり、RAMは䜎くなっおいたすこれは゜フトテヌブルではなく、䞀時デヌタを保存するためのRAMです。

同じバッテリヌの隣。 ぀たり、かなりのコンピュヌタヌでもありたす。



これは、ロゞックを実装するラむンカヌドの䞀郚です-ご芧のずおり、ポヌトはありたせん。



別に、むンタヌフェむスボヌドは別のスロットに挿入されたす。














スむッチング工堎









キャリアグレヌドのハむ゚ンドルヌタヌを䜿甚する堎合、通垞は最倧20個のむンタヌフェむスカヌドを䜿甚でき、各むンタヌフェむスカヌドには少なくずも1぀のFEスむッチングチップがありたす。 各スむッチングチップは、その脚の䞀郚をむンタヌフェむスに向け、䞀郚は背面バスに向けおいたす。 たた、銅媒䜓にはスルヌプットに関する独自の制限があるため、そこには倚くの脚がありたす。1぀たたは2぀の出口では十分ではありたせん。





2぀のスむッチングチップを盞互に接続する方法は たあ、ちょうど同じ





3぀のチップを互いに接続する方法はたあ、おそらくそのようなものですか





8を線む方法は





よろしいですか気になりたせんか



8チップのシステムのスルヌプットは、ペアのスルヌプットず同じたたです。結局、通信のレッグ数を枛らすたびにスルヌプットは倉わりたせん。

2番目のポむントは、たずえば16個のチップがあり、それぞれに32個のコンタクトがある堎合、完党に接続されたトポロゞをどのように䜜成したすか各32コアのケヌブルの16 * 15/2バンドル



この問題は、ノンブロッキングClosネットワヌクたたはオヌバヌサブスクリプションのないネットワヌクに察凊されたした。

入力スむッチング芁玠入力FE、出力出力FE、および䞭継がありたす。トランゞットのタスクは、入力を週末に接続するこずです。入力は、トランゞットを介しお出力に接続されたす。



入力ず出力は互いに盎接関連しおおらず、䞭継も接続されおいたせん。

より倚くの入力および出力スむッチング芁玠が必芁です-トランゞット芁玠を远加したす。もっず必芁ですか新しいカスケヌドのカスケヌドを远加したす。





これは、最新のルヌタヌのパッチカヌドが詰め蟌たれおいる堎所です。非垞に愚かなASICで、入力から出力ぞのパケットの転送方法のみを知っおいたす。

スむッチングボヌドは背面バスに接続し、他のすべおのボヌドず接続したす。

通垞、それらはN + 1モヌドで動䜜したす。぀たり、党員が負荷を共有したすが、1぀のボヌドが故障した堎合、残りのボヌドがすべおを凊理したす。

ずころで、ボヌド自䜓は、Kloseファクトリヌ階局の䞊䜍カスケヌドず呌ばれたす。



残っおいるのは现胞の問題だけです。さお、これらのASICパッケヌゞをすぐに転送したすが、なぜ他のパッケヌゞをカットしたすか

ここで、ECMPから類掚できたす。異なるパス間でパッケヌゞ単䜍のバランスを蚭定したこずがある人は、それがどれほどの痛みを匕き起こしたか芚えおいるでしょう。 TCPが䞭途半端に凊理する無秩序なパケット配信は、たずえばIPテレフォニヌやビデオを根本的に砎壊する可胜性がありたす。

パッケヌゞごずのバランシングの問題は、同じスレッドの2぀のパケットが簡単に別々の方向に進むこずができるこずです。同時に、それらの1぀は小さく、非垞に迅速に受信者に到達し、もう1぀の過成長アクセラレヌタは狭いバッファに留たりたす。だから圌らは乱れた。





工堎でも同じこずが起こりたす。



これに察凊する良い方法はスレッドバランシングです-ハッシュは倀のタプルSMAC、DMAC、SIP、DIP、プロトコル、SPort、DPort、MPLSラベルなどによっお蚈算され、同じストリヌムのすべおのパケットが䞀方向に送信され始めたす。



しかし、それは䞍完党に機胜したす。倚くの堎合、1぀の非垞に油っぜいスレッドが1぀のリンクをロヌドでき、他のスレッドはアむドル状態です。そしお、この青いボックス内ではなく、オペレヌタのネットワヌク䞊でこれに耐えるこずができたす。



゚レガントな゜リュヌションは次のずおりです。

パッケヌゞは同じ小さなサむズのセルにカットされたす。

セルは線でバランスが取れおいたす。぀たり、1぀のセルがここにあり、もう1぀のセルがそこにあり、3番目のセルが次のリンクにあるなどです。

各セルには番号が付けられおいるため、目的のFEに到達するず、簡単に組み立おお完党なパッケヌゞに戻すこずができたす。

入口から出口たでの距離はほが同じであるため、セルのサむズは同じで、配送時間もほが同じです。



電話亀換で最初に実装されたチャヌルズクロヌれのアむデアは、むヌサネットスむッチずルヌタヌに借甚され、珟圚ではデヌタセンタヌネットワヌクに眮き換わり、埓来の3レベルモデルに取っお代わりたした。



これは、切り替え工堎の倖芳です
Huawei NE40E-X16:





.

Juniper:





Huawei NE40E-X8:












6.生涯の旅



パッケヌゞはデバむス内に正確に存圚したす。ケヌブルでは、電磁パルスです。

入力むンタヌフェむスで生成され、PICがビットストリヌムからそれを埩元し、出力で停止し、それらに戻りたす。

したがっお、ラむフタむムず同じデバむス内でパッケヌゞを芋぀けるこずを怜蚎できたす。



通過パケットずプロトコルパケットの2぀の堎合を考えたす。






トランゞットパッケヌゞ



暙準のむヌサネット/ IPパケットを扱っおいるずしたす。

ホストはIPルヌタヌです。

パケットは、L3ポヌトAからL3ポヌトBぞの送信䞭に続きたす。







  1. 光信号がポヌトに到着したす。ここで電気むンパルスに倉換されたす。
  2. PIC, .

    Ethernet Ethernet-. , .

    Ethernet . FCS.

    , FCS .

    — , 1.

    PIC : , , Unicast, Broadcast, Multicast.
  3. Ethernet FE.
  4. FE DMAC , CAM , .

    CAM RAM.

    Ethernet , DMAC — MAC- . RAM , — Payload IP ( EtherType ).



    FE IP (Payload). , .

    ?

    • (IP , MAC, MPLS- .)
    • (DSCP, IEEE802.1p, EXP .)
    • TTL.
    • , , (, , ).




    , , .

    • TTL 1 , 0. — CPU ICMP TTL Expired in Transit .
    • ACL — .
    • DIP .

      Ingress FE TCAM , IP-. RAM.

      FE RAM Egress FE, NextHop.

      Ingress FE MAC- Next-Hop' (Adjacenies Tables).

      FE (BUM- , L2VPN), LAG ECMP .

      ( Ethernet), - (BFD, ) CPU (BGP, OSFP .)

    • CoS-, . .




    , Egress FE:

    • Egress FE
    • 優先順䜍
    • TTL
    • Next Hop (MAC-)




    Egress FE , ; — , ; — , , , (DSCP); TTL — , ; Next Hop MAC , DMAC Ethernet-.
  5. . Egress FE.
  6. , .
  7. , SerDes .
  8. .

    , .

    (2-4), . , .

    — , .
  9. SerDes , .
  10. .

    FE (Back Pressure). . CoS, . , .

    , .



    QoS: , , , .



    VOQ (Virtual Output Queue), , : 10 / 13.

    PIC.
  11. Egress FE.
  12. Egress FE :

    , TTL, Ethernet, SMAC , DMAC (, MAC Ingress FE, ).

    , ( , ).
  13. PIC, , FCS, IFG, .
  14. , , , .













ほずんどのロヌカルパケットはCPUで凊理されたす。

ロヌカルのものは、このノヌドで䜜成されたもの、ナニキャスト、すべお/倚くのものブロヌドキャストたたはマルチキャスト、たたはCPUでの凊理を意図的に必芁ずするものTTL期限切れ、ルヌタヌアラヌトであるこずを思い出しおください。FEたでの



受信トレむ

はすべお、乗り継ぎの堎合ず同じです。さらに、スむッチングチップは、CAMを䜿甚しお、DMACがロヌカルデバむスのMACアドレスであるこずを認識し、EtherTypeを調べたす。 BPDUたたはISIS PDUである堎合、パケットはすぐに目的のプロトコルに送信されたす。

IPの堎合-TCAMで芋るず、そのDIPを芋るIPモゞュヌルにそれを枡したすたたロヌカル-IPv4たたはNext Header IPv6ヘッダヌのProtocolフィヌルドを調べる必芁があるこずを意味したす。

プロトコルが決定され、パケットを次に転送するモゞュヌルBFD、OSPF、TCP、UDPなどに぀いお決定されたす。したがっお、宛先アプリケヌションが芋぀かるたで、パッケヌゞは最埌たでデプロむされたす。

Ingress FEがこれを凊理するず、パケットの内容が特別な通信チャネルを介しおCPUに送信されたす。

このステップでは、かなりむンテリゞェントなデバむスがポリシヌを適甚しお、CPUに送信されるプロトコルパケットの速床を制限したす。これにより、telnetパケットだけでプロセッサが過負荷になるこずはありたせん。







このパッケヌゞがトポロゞの倉曎に関する情報新しいOSPF、LSAなどをもたらした堎合、コントロヌルプレヌンは゜フトテヌブルRAMを曎新する必芁があり、倉曎はハヌドテヌブルCAM / TCAM + RAMに送信されたす。

パケットが応答を必芁ずする堎合、デバむスはそれを圢成し、元の゜ヌスに送信する必芁がありたすたずえば、来たBGPアップデヌトぞのTCP Ackたたはそれをどこかに転送したすたずえば、OSPF LSAたたはRSVP Resv。



発信プロトコルパケットはCPU䞊で圢成されたす。゜フトテヌブルに基づいお、すべおのヘッダヌのすべおのフィヌルドが埋められ、実装に応じお、入力たたは出力FEにドロップされたす。

- , , . , FE, , FE Lookup .

, , ACL, , . , .

, CPU , , .





ただハヌドりェアで凊理されおいるコントロヌルプレヌンプロトコルがいく぀かありたす。顕著な䟋はBFDです。そのタむマヌは最倧1ミリ秒でスピンアりトしたす。私たちが思い出すように、CPUは柔軟性がありたすが、䞍噚甚ではなく、BFDパケットがパス党䜓を通過しおBFDヘッダヌに展開するたで、プロセッサが䞭断されるたで、それに切り替わるたで、パケットを読み取り、新しいパケットを生成し、送信し、数十パスしたすそしお数癟ミリ秒-芋お、BFDはすでに厩壊しおいたす。



したがっお、ほずんどの堎合、BFDパケットはチップ䞊で分解され、答えがその䞊で準備されたす。そしお、セッション自䜓のみがCPUを介しお蚭定されたす。



この問題の倧きなものはさらに進んで、ほずんどの日垞的な操䜜を鉄に移したした。
, , Juniper PPM — Periodic Packet Management , Control Plane :

  • Bidirectional Forwarding Detection (BFD)
  • Connectivity Fault Management (CFM)
  • Link Aggregation Control Protocol (LACP)
  • Link Fault Management (LFM)
  • Multiprotocol Label Switching (MPLS)
  • Real-time Performance Monitoring (RPM)
  • Spanning Tree Protocol (STP)
  • Synchronous Ethernet (SYNCE)
  • Virtual Router Redundancy Protocol (VRRP)




. RTT . , , . . ICMP CPU. . RTT , CPU .

ICMP- ICMP- (NP, ASIC, FPGA), CPU. ping .

, ( OAM ), , CFM .








おわりに





おそらく䞊蚘の非垞識な量からすでに理解しおいるように、ベンダヌに䟝存しないナニバヌサル蚀語でハヌドりェアスむッチングを蚘述するこずは䞍可胜です。さらに悪いこずに、たずえ1぀のベンダヌを遞んだずしおも、その異なる機噚ラむンや異なるボヌドでさえ、たったく異なるアヌキテクチャを䜿甚しおいたす。

したがっお、たずえば、シスコには゜フトりェアルヌティングを備えたプラットフォヌムがあり、ハヌドりェアもありたす。

たたは、Huaweiでは、むンタヌフェむスキュヌをTMチップたたはPICに実装できたす。

たたは、シスコがネットワヌクプロセッサを䜿甚しおいる堎合、ゞュニパヌはASICを管理したす。



箱入りデバむスの堎合、スむッチングファクトリを削陀しお出力チップを怜玢する必芁がありたす。

SOHOセグメントのルヌタヌでは、確かに、CAM / TCAMはありたせん。

千の異なる方法で行うこずができる行の呚りの振り付けは、本の䞭で別の600ペヌゞに倀したす。「次の行は速く動いおいたす。倱われたRFCの物語。」



仮想化の珟代䞖界に぀いお蚀えるこずは、圌らが叀い支配者を転芆させ、新しい支配者を王䜍に匕き䞊げるずいうこずです。



ほがすべおの段萜で、経隓豊富で迷惑な読者は、より詳现な説明を行う堎所を明確にする必芁があるこずに気付くでしょう。そしお、圌は正しく...そしお同時に間違っおいたす。タむトルに「小さい」ず「季節の」のどちらを入れるかに぀いお長い間疑問を抱いおいたした。そしお、これはプロトコルや電気工孊の深い知識を必芁ずしないハヌドりェアスむッチングの無限の䞖界ぞの玹介にすぎないため、「小さなもの」を眮きたす。たた、さたざたなベンダヌの実装の耇雑さに没頭し始めた堎合、枊巻く枊巻く郚品から抜け出すこずはできたせん。



この蚘事が、生涯にわたる個人的な旅の出発点ずなるこずを願っおいたす。






謝蟞

アレクサンダヌ・クリッパヌ、アンドレむ・グラズコフ、アレクセむ・クロトフ、linkmeupチヌムによる校正資料ずコメント。機噚の写真を提䟛しお

くれたMarat Babayan。むラストは

Artyom Chernobay。

私の2人の雇甚䞻は、忍耐力を瀺した、たたは圌らの無知のために、この蚘事を終えるこずができたした。



SDSMのすべおの問題

13.最もベテランのネットワヌク。パヌト13。 MPLSトラフィック゚ンゞニアリング

12.最もホットなネットワヌク。パヌト12。 MPLS L2VPN

11.1。 最小のネットワヌク。 №6. MPLS L3VPN

11. . . MPLS L3VPN

10. . . MPLS

9. . .

8.1 . №3. IBGP

8. . パヌト゚むト。 BGPおよびIP SLA

7. . . VPN

6. . .

5. : . NAT ACL

4. : . STP

3. : .

2. . パヌト2

1. . パヌト1 cisco

0. . . 蚈画䞭



All Articles