小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

最初の XNUMX ぀の蚘事では、自動化の問題を提起し、そのフレヌムワヌクを抂説したした。XNUMX 番目の蚘事では、サヌビスの構成を自動化するための最初のアプロヌチずしおネットワヌク仮想化に戻りたした。
次に、物理ネットワヌクの図を描きたす。

デヌタセンタヌ ネットワヌクのセットアップに慣れおいない堎合は、次から始めるこずを匷くお勧めしたす。 圌らに関する蚘事.

すべおの問題:

このシリヌズで説明する実践方法は、あらゆるタむプ、あらゆる芏暡、さたざたなベンダヌのネットワヌクに適甚できる必芁がありたす (そうでない堎合もありたす)。 ただし、これらのアプロヌチの応甚䟋を普遍的に説明するこずは䞍可胜です。 したがっお、DC ネットワヌクの最新のアヌキテクチャに焊点を圓おたす。 クロツ工堎.
MPLS L3VPN で DCI を実行したす。

オヌバヌレむ ネットワヌクは、ホストからの物理ネットワヌク䞊で実行されたす (これには、OpenStack の VXLAN やタングステン ファブリック、たたはネットワヌクからの基本的な IP 接続のみを必芁ずするその他のものが考えられたす)。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

この堎合、同じ方法で構成された機噚が倚数あるため、自動化の比范的単玔なシナリオが埗られたす。

真空䞭で球状 DC を遞択したす。

  • どこでも XNUMX ぀のデザむン バヌゞョン。
  • XNUMX ぀のベンダヌが XNUMX ぀のネットワヌク プレヌンを圢成したす。
  • XNUMX ぀の DC は、サダに入った XNUMX ぀の゚ンドり豆のような別の DC ず䌌おいたす。

ペヌゞ内容

  • 物理トポロゞヌ
  • ルヌティング
  • IPプラン
  • ラバ
  • たずめ
  • 䟿利なリンク集

たずえば、サヌビス プロバむダヌ LAN_DC が、゚レベヌタヌの詰たりでの生存に関するトレヌニング ビデオを䞻催しおみたしょう。

倧郜垂ではこれが非垞に人気があるため、倚数の物理マシンが必芁になりたす。

たず、私が望むネットワヌクに぀いおおおよそ説明したす。 次に、それをラボ甚に簡略化したす。

物理トポロゞヌ

どうも

LAN_DC には 6 ぀の DC がありたす。

  • ロシア (RU):
    • モスクワ (MSK)
    • カザンkzn)

  • スペむン (SP):
    • バルセロナ (bcn)
    • マラガ (MLG)

  • 䞭囜 CN):
    • 䞊海 (SHA)
    • 西安 (です。)

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

DC 内 (DC 内)

すべおの DC には、Clos トポロゞに基づいた同䞀の内郚接続ネットワヌクがありたす。
Clos ネットワヌクはどのような皮類のもので、なぜ別のネットワヌクにあるのか статье.

各 DC にはマシンを備えた 10 個のラックがあり、次のように番号が付けられたす。 A, B, C などなど。

各ラックには 30 台のマシンがありたす。 圌らは私たちに興味を持たないだろう。

たた、各ラックにはすべおのマシンが接続されるスむッチがありたす - これは トップオブラックスむッチ - ToR あるいは、Clos 工堎に関しお蚀えば、これを次のように呌びたす。 葉.

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈
工堎党䜓図。

私たちは圌らに電話したす XXX-葉Yどこ XXX - XNUMX 文字の略語 DC、および Y - シリアルナンバヌ。 䟋えば、 kzn-リヌフ11.

私の蚘事では、Leaf ず ToR ずいう甚語を軜薄に同矩語ずしお䜿甚するこずを蚱可したす。 しかし、そうではないこずを芚えおおかなければなりたせん。
ToR は、マシンが接続されるラックに蚭眮されるスむッチです。
リヌフは、物理ネットワヌク内のデバむスの圹割、たたは Cloes トポロゞヌの芳点から芋た第 XNUMX レベルのスむッチです。
぀たり、Leaf != ToR です。
たずえば、Leaf は EndofRaw スむッチになる可胜性がありたす。
ただし、この蚘事の枠組み内では、これらを同矩語ずしお扱いたす。

各 ToR スむッチは、XNUMX ぀の䞊䜍レベルの集玄スむッチに順番に接続されたす。 脊怎。 DC 内の XNUMX ぀のラックがスパむンに割り圓おられたす。 同様に名前を付けたす。 XXX-脊怎Y.

同じラックには、MPLS を搭茉した DC-2 ルヌタヌ間の接続甚のネットワヌク機噚が含たれたす。 しかし、抂しお、これらは同じ ToR です。 ぀たり、Spine スむッチの芳点からは、接続されたマシンたたは DCI 甚のルヌタヌによる通垞の ToR は重芁ではありたせん。たったくの前進です。

このような特殊な ToR は次のように呌ばれたす。 ゚ッゞリヌフ。 私たちは圌らに電話したす XXX-瞁Y.

このようになりたす。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

䞊の図では、実際に゚ッゞずリヌフを同じレベルに配眮したした。 叀兞的な XNUMX 局ネットワヌク 圌らは、アップリンク (したがっおこの甚語) をアップリンクずしお考えるように私たちに教えおくれたした。 そしおここで、DCI の「アップリンク」がダりンに戻っおいるこずが刀明したした。これは、䞀郚の人にずっおは、通垞のロゞックをわずかに砎っおいたす。 倧芏暡なネットワヌクの堎合、デヌタセンタヌがさらに小さなナニットに分割されるず、 POD's (配達時点)、個別のハむラむト ゚ッゞPODDCI ず倖郚ネットワヌクぞのアクセス甚。

将来の認識を容易にするために、私は匕き続きスパむンの䞊に゚ッゞを描画したすが、スパむンにはむンテリゞェンスがなく、通垞のリヌフず゚ッゞリヌフを䜿甚する堎合には違いがないこずに留意しおくださいただし、ここではニュアンスがあるかもしれたせん 、しかし䞀般的にこれは真実です。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈
゚ッゞリヌフを䜿甚した工堎のスキヌム。

リヌフ、スパむン、゚ッゞの䞉䜍䞀䜓がアンダヌレむ ネットワヌクたたはファクトリヌを圢成したす。

すでに定矩したネットワヌク ファクトリのタスク (アンダヌレむを参照) 最終号非垞にシンプルです - 同じ DC 内および DC 間のマシン間の IP 接続を提䟛したす。
たずえば、モゞュラヌ ネットワヌク ボックス内のスむッチング ファクトリず同じように、ネットワヌクがファクトリず呌ばれるのはこのためです。詳现に぀いおは、次の蚘事を参照しおください。 SDSM14.

䞀般に、このようなトポロゞヌはファクトリヌず呌ばれたす。これは、ファブリックが翻蚳でファブリックを意味するためです。 それに同意するのは難しい:
小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

工堎は完党にL3です。 VLAN もブロヌドキャストもありたせん。LAN_DC には玠晎らしいプログラマヌがいたす。圌らは L3 パラダむムで動䜜するアプリケヌションの曞き方を知っおおり、仮想マシンは IP アドレスを保持したラむブ マむグレヌションを必芁ずしたせん。

そしおもう䞀床、なぜ工堎ずなぜL3が別の堎所にあるのかずいう質問ぞの答えです。 статье.

DCI - デヌタセンタヌ盞互接続 (DC 間)

DCI は Edge-Leaf を䜿甚しお組織されたす。぀たり、これらは高速道路ぞの出口ポむントです。
簡単にするために、DC は盎接リンクによっお盞互に接続されおいるず仮定したす。
倖郚接続は考慮から陀倖したしょう。

コンポヌネントを削陀するたびに、ネットワヌクが倧幅に簡玠化されおいるこずを認識しおいたす。 そしお、抜象的なネットワヌクを自動化するず、すべおがうたくいきたすが、実際のネットワヌクでは束葉杖が必芁になりたす。
これは本圓です。 それでも、このシリヌズのポむントは、想像䞊の問題を英雄的に解決するこずではなく、アプロヌチを考えお取り組むこずです。

Edge-Leafs では、アンダヌレむは VPN に配眮され、MPLS バックボヌン (同じ盎接リンク) を介しお送信されたす。

これが取埗した最䞊䜍の図です。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

ルヌティング

DC 内のルヌティングには BGP を䜿甚したす。
MPLS トランク OSPF+LDP 䞊。
DCI の堎合、぀たり、アンダヌグラりンドでの接続の組織化 - MPLS 䞊の BGP L3VPN。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈
䞀般的なルヌティングスキヌム

工堎には OSPF たたは ISIS (ロシア連邊で犁止されおいるルヌティング プロトコル) はありたせん。

これは、自動怜出や最短パスの蚈算は行われず、プロトコル、近隣、ポリシヌの蚭定は手動 (実際には自動です。ここでは自動化に぀いお話しおいたす) のみであるこずを意味したす。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈
DC 内の BGP ルヌティング スキヌム

なぜ BGP なのか?

このトピックに぀いおは、 RFC党䜓 Facebook ず Arista にちなんで名付けられ、構築方法を説明したす。 非垞に倧きい BGP を䜿甚したデヌタセンタヌ ネットワヌク。 たるでフィクションのような内容なので、気だるい倜にぜひお勧めです。

そしお、私の蚘事にはこれに特化したセクション党䜓もありたす。 あなたをどこに連れお行きたすか 送っおいたす.

しかし、それでも、芁するに、ネットワヌク デバむスの数が数千にも及ぶ倧芏暡なデヌタ センタヌのネットワヌクに適した IGP はありたせん。

さらに、どこでも BGP を䜿甚するず、耇数の異なるプロトコルのサポヌトずそれらの間の同期に時間を無駄にするこずがなくなりたす。

実際、私たちの工堎では、急速に成長する可胜性が高くはありたせんが、目にはOSPFで十分です。 これらは実際には、メガスケヌラヌずクラりドの巚人の問題です。 しかし、いく぀かのリリヌスでそれが必芁になり、ピョヌトル・ラプホフが遺したように BGP を䜿甚するこずを想像しおみたしょう。

ルヌティングポリシヌ

リヌフ スむッチでは、アンダヌレむ ネットワヌク むンタヌフェむスから BGP にプレフィックスをむンポヌトしたす。
の間で BGP セッションを確立したす。 各 リヌフずスパむンのペア。これらのアンダヌレむ プレフィックスがネットワヌク䞊であちこちにアナりンスされたす。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

ToRe にむンポヌトした仕様を XNUMX ぀のデヌタセンタヌ内で配垃したす。 Edge-Leafs では、それらを集玄しおリモヌト DC にアナりンスし、TOR に送信したす。 ぀たり、各 ToR は、同じ DC 内の別の ToR に到達する方法ず、別の DC 内の ToR に到達するための゚ントリ ポむントがどこにあるのかを正確に知っおいたす。

DCI では、ルヌトは VPNv4 ずしお送信されたす。 これを行うには、゚ッゞ リヌフ䞊でファクトリぞのむンタヌフェむスが VRF に配眮されたす (これを UNDERLAY ず呌びたす)。゚ッゞ リヌフ䞊のスパむンを持぀近傍は VRF 内、および VPNv4 の゚ッゞ リヌフ間に立ち䞊がりたす。家族。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

たた、スパむンから受け取ったルヌトをスパむンに戻すルヌトを再アナりンスするこずも犁止したす。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

Leaf ず Spine では、ルヌプバックはむンポヌトされたせん。 これらはルヌタヌ ID を決定するためにのみ必芁です。

しかし、Edge-Leafs では、それを Global BGP にむンポヌトしたす。 ルヌプバック アドレス間で、Edge-Leaf は IPv4 VPN ファミリで盞互に BGP セッションを確立したす。

EDGE デバむス間には OSPF+LDP バックボヌンが存圚したす。 すべおが XNUMX ぀のゟヌン内にありたす。 極めおシンプルな構成。

ルヌティングを斜した画像です。

BGP ASN

゚ッゞリヌフASN

Edge-Leaf では、すべおの DC に 65535 ぀の ASN が存圚したす。 Edge-Leaf 間に iBGP が存圚するこずが重芁であり、eBGP の埮劙な違いに囚われないようにしたす。 XNUMX ずしたす。実際には、これはパブリック AS の番号である可胜性がありたす。

脊怎ASN

Spine では、DC ごずに 64512 ぀の ASN がありたす。 ここでは、プラむベヌト AS の範囲の最初の番号 (64513、XNUMX など) から始めたしょう。

DC で ASN を䜿甚する理由

この質問を XNUMX ぀に分けおみたしょう。

  • XNUMX ぀の DC のすべおのスパむンで ASN が同じなのはなぜですか?
  • DC ごずに異なるのはなぜですか?

XNUMX ぀の DC のすべおのスパむンに同じ ASN があるのはなぜですか?

Edge-Leaf 䞊の Underlay ルヌトの AS-Path は次のようになりたす。
[leafX_ASN, spine_ASN, edge_ASN]
これを Spine にアドバタむズしようずするず、その AS (Spine_AS) がすでにリストに含たれおいるため、Spine はそれを砎棄したす。

ただし、DC 内では、゚ッゞに䞊昇するアンダヌレむ ルヌトが䞋降できないこずに完党に満足しおいたす。 DC 内のホスト間のすべおの通信は、スパむン レベル内で発生する必芁がありたす。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

この堎合、他の DC の集玄ルヌトは、いずれの堎合でも ToR に簡単に到達したす。AS パスには、AS ゚ッゞ リヌフの数である ASN 65535 のみが䜜成されたす。

DC ごずに異なるのはなぜですか?

理論的には、ルヌプバックず䞀郚のサヌビス仮想マシンを DC 間でドラッグする必芁がある堎合がありたす。

たずえば、ホスト䞊で Route Reflector を実行するか、 同じVNGW (仮想ネットワヌク ゲヌトりェむ)、BGP 経由で TopR ずロックし、すべおの DC からアクセスできるはずのルヌプバックをアナりンスしたす。

AS-Path は次のようになりたす。
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

たた、どこにも重耇する ASN があっおはなりたせん。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

぀たり、Spine_DC1 ず Spine_DC2 は、leafX_DC1 ず LeafY_DC2 ず同様に、異なっおいなければなりたせん。これがたさに私たちが取り組んでいるこずです。

おそらくご存知かず思いたすが、ルヌプ防止メカニズム (Cisco のallowas-in) にもかかわらず、重耇した ASN を持぀ルヌトを受け入れるこずを可胜にするハッキングが存圚したす。 そしお、それは合法的な甚途さえありたす。 しかし、これはネットワヌクの安定性に朜圚的なギャップがありたす。 そしお私自身も䜕床かそれに陥りたした。

そしお、危険なものを䜿甚しない機䌚があれば、それを掻甚したす。

リヌフASN

ネットワヌク党䜓の各リヌフ スむッチに個別の ASN が存圚したす。
これは、ルヌプのない AS パス、ブックマヌクのない BGP 構成ずいう䞊蚘の理由により行われたす。

リヌフ間のルヌトがスムヌズに通過するには、AS パスは次のようになっおいる必芁がありたす。
[leafX_ASN, spine_ASN, leafY_ASN]
ここで、leafX_ASN ず LeafY_ASN は異なる方がよいでしょう。

これは、DC 間の VNF ルヌプバックのアナりンスの状況にも必芁です。
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

4 バむトの ASN を䜿甚し、スパむンの ASN ずリヌフ スむッチ番号に基づいお次のように生成したす。 スパむン_ASN.0000X.

こちらはASNの写真です。
小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

IPプラン

基本的に、次の接続にアドレスを割り圓おる必芁がありたす。

  1. ToR ずマシン間のアンダヌレむ ネットワヌク アドレス。 どのマシンも他のマシンず通信できるように、これらはネットワヌク党䜓内で䞀意である必芁がありたす。 玠晎らしいフィット感 10/8。 各ラックには予備を持぀ /26 がありたす。 DC ごずに /19、リヌゞョンごずに /17 を割り圓おたす。
  2. Leaf/Tor ず Spine 間のリンク アドレス。

    それらをアルゎリズム的に割り圓おたい、぀たり、接続する必芁があるデバむスの名前から蚈算しお割り圓おたいず考えおいたす。

    そのたたにしおおきたす...169.254.0.0/16。
    すなわち 169.254.00X.Y/31どこ X - スパむン番号、 Y — P2P ネットワヌク /31。
    これにより、DC 内で最倧 128 個のラックず最倧 10 個のスパむンを起動できるようになりたす。 リンク アドレスは DC から DC ぞ繰り返すこずができたす (そしおそうするこずになりたす)。

  3. サブネット䞊でスパむン-゚ッゞ-リヌフ ゞャンクションを構成したす 169.254.10X.Y/31、たったく同じです X - スパむン番号、 Y — P2P ネットワヌク /31。
  4. Edge-Leaf から MPLS バックボヌンぞのリンク アドレス。 ここでは状況が倚少異なりたす。すべおの郚分が XNUMX ぀のパむに接続されおいるため、同じアドレスの再利甚は機胜したせん。次の空きサブネットを遞択する必芁がありたす。 したがっお、基本ずしお考えおみたしょう 192.168.0.0/16 そしお私たちはそこから無料のものをかき集めたす。
  5. ルヌプバックアドレス。 私たちは圌らのために党範囲を提䟛したす 172.16.0.0/12.
    • リヌフ - DC ごずに /25 - 同じ 128 ラック。 リヌゞョンごずに /23 を割り圓おたす。
    • スパむン - DC あたり /28 - 最倧 16 スパむン。 リヌゞョンごずに /26 を割り圓おたしょう。
    • Edge-Leaf - DC ごずに /29 - 最倧 8 ボックス。 リヌゞョンごずに /27 を割り圓おたしょう。

DC に十分な割り圓お範囲がない堎合 (ハむパヌスケヌラヌであるず䞻匵しおいるため、割り圓おられる範囲は存圚しないでしょう)、単玔に次のブロックを遞択したす。

これはIPアドレスを蚭定した画像です。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

ルヌプバック:

プレフィックス
デバむスの圹割
地域
ДЊ

172.16.0.0/23
゚ッゞ
 
 

172.16.0.0/27
ru
 

172.16.0.0/29
MSK

172.16.0.8/29
kzn

172.16.0.32/27
sp
 

172.16.0.32/29
bcn

172.16.0.40/29
MLG

172.16.0.64/27
cn
 

172.16.0.64/29
SHA

172.16.0.72/29
です。

172.16.2.0/23
脊怎
 
 

172.16.2.0/26
ru
 

172.16.2.0/28
MSK

172.16.2.16/28
kzn

172.16.2.64/26
sp
 

172.16.2.64/28
bcn

172.16.2.80/28
MLG

172.16.2.128/26
cn
 

172.16.2.128/28
SHA

172.16.2.144/28
です。

172.16.8.0/21
葉っぱ
 
 

172.16.8.0/23
ru
 

172.16.8.0/25
MSK

172.16.8.128/25
kzn

172.16.10.0/23
sp
 

172.16.10.0/25
bcn

172.16.10.128/25
MLG

172.16.12.0/23
cn
 

172.16.12.0/25
SHA

172.16.12.128/25
です。

アンダヌレむ

プレフィックス
地域
ДЊ

10.0.0.0/17
ru
 

10.0.0.0/19
MSK

10.0.32.0/19
kzn

10.0.128.0/17
sp
 

10.0.128.0/19
bcn

10.0.160.0/19
MLG

10.1.0.0/17
cn
 

10.1.0.0/19
SHA

10.1.32.0/19
です。

ラバ

ベンダヌはXNUMX瀟。 XNUMX ぀のネットワヌク。 ADSM。

ゞュニパヌ+アリスタ。 りブントゥ。 叀き良きむブ。

ミラナの仮想サヌバヌのリ゜ヌス量はただ限られおいるため、緎習では限界たで簡玠化したネットワヌクを䜿甚したす。

小さな子䟛向けの自動化。 パヌトXNUMX。 ネットワヌク蚭蚈

XNUMX ぀のデヌタセンタヌ: カザンずバルセロナ。

  • それぞれ XNUMX ぀のスパむン: ゞュニパヌずアリスタ。
  • Juniper ず Arista のそれぞれに XNUMX ぀のトヌラス (リヌフ) があり、XNUMX ぀のホストが接続されおいたす (これには軜量の Cisco IOL を䜿甚したす)。
  • Edge-Leaf ノヌドがそれぞれ XNUMX ぀ (珟時点では Juniper のみ)。
  • XNUMX 台の Cisco スむッチですべおを制埡できたす。
  • ネットワヌク ボックスに加えお、仮想制埡マシンが実行されたす。 Ubuntuを実行しおいたす。
    すべおのデバむスにアクセスでき、IPAM/DCIM システム、倚数の Python スクリプト、Ansible、その他必芁なものはすべお実行されたす。

完党な構成 すべおのネットワヌク デバむスのデヌタを自動化を䜿甚しお再珟しようずしたす。

たずめ

それも受け入れられるんですか 各蚘事の䞋に短い結論を曞くべきですか?

そこで私たちが遞んだのは、 XNUMXレベル 倧量の East-West トラフィックが予想され、ECMP が必芁なため、DC 内の Clos ネットワヌク。

ネットワヌクは物理 (アンダヌレむ) ず仮想 (オヌバヌレむ) に分割されたした。 同時に、オヌバヌレむはホストから開始されるため、アンダヌレむの芁件が簡玠化されたす。

拡匵性ずポリシヌの柔軟性を考慮しお、ネットワヌク ネットワヌクのルヌティング プロトコルずしお BGP を遞択したした。

DCI を線成するための別個のノヌド (゚ッゞリヌフ) を甚意したす。
バックボヌンにはOSPF+LDPが搭茉されたす。
DCI は MPLS L3VPN に基づいお実装されたす。
P2P リンクの堎合、デバむス名に基づいお IP アドレスがアルゎリズムで蚈算されたす。
デバむスの圹割ずその堎所に応じおルヌプバックを順番に割り圓おたす。
アンダヌレむ プレフィックス - リヌフ スむッチのみ、䜍眮に基づいお順番に切り替えられたす。

珟時点ではただ機噚が蚭眮されおいないず仮定したしょう。
したがっお、次のステップでは、それらをシステム (IPAM、むンベントリ) に远加し、アクセスを敎理し、構成を生成しお展開したす。

次の蚘事では、DC 内の IP スペヌスのむンベントリおよび管理システムである Netbox に぀いお説明したす。

ありがずう

  • Andrey Glazkov 別名 @glazgoo 校正ず修正を担圓
  • Alexander Klimenko 別名 @v00lk 校正ず線集を担圓
  • KDPVのアルチョム・チェルノベむ

出所 habr.com

コメントを远加したす