« 第20回東京Redmine勉強会の感想 #redmineT | トップページ | astahとPlantUMLを行き来できるastah* PlantUML Pluginが面白い »

2021/05/25

SDNアーキテクチャの本質は巨大な仮想L3スイッチを実現したことではないか

SDNアーキテクチャの例として、Cisco SD-AccessとかCisco ACIがある。
単純に、ネットワーク設計を3階層のレイヤモデルで実現したことに過ぎないだろう、と思っていた。
しかし、UdemyのCCNA講座を見て、自分の理解が浅いことに気づいた。
ラフなメモ。

【参考】

新CCNA(200-301)完全未経験からの合格講座(上) | Udemy

新CCNA(200-301)完全未経験からの合格講座(下) | Udemy

新CCNA(200-301)完全未経験からの合格講座(コンプリート版) | Udemy

SDNアーキテクチャの本質は巨大な仮想L3スイッチを実現したことではないか。

たとえば、「インフラ/ネットワークエンジニアのためのネットワーク・デザインパターン 実務で使えるネットワーク構成の最適解27」を読むと、オンプレでスイッチやルータを駆使してネットワーク設計する時、L2ループになりやすいので、STPを取り入れて、ループ構造にせず、ツリー構造になるようなトポロジーを作る話がたくさん出てくる。
実際、パケットはTTLがあるから、無駄なパケットも時間が経てば消える。
しかし、L2レイヤーのフレームはTTLがないから、延々と流れ続けて、帯域を圧迫して、最終的にはルータやスイッチに負荷をかけてしまう。

だから、3階層モデルとして、コア層・ディストリビューション層・アクセス層にレイヤ化し、ルータやスイッチを配置する。
その構造は、ツリー構造なので、L2ループは発生しない。
しかし、エンドポイント同士の通信では、ツリー構造を辿って最上部のルータを経由するから、経路が長くなるし、無駄な冗長化設計になっている。

一方、SDNアーキテクチャでは、インフラストラクチャ層で、SpineスイッチとLeafスイッチでファブリック構造をなす。
ファブリック構造にしたのは単に冗長化のためだけだろう、と理解していたが、理解が浅かった。

実際は、エンドポイント同士の通信は、ファブリック構造になっているので、Leaf→Spine→Leafのルートだけで通信できるので、経路は短い。

しかし、エンドポイントのサブネットが異なると、たとえサーバーを仮想環境にしても、IPアドレスがそのまま使えないから、リソースのやり取りは面倒になる。
そこで、VXLANを導入すれば、L3ネットワーク上に仮想L2ネットワークを構築することができる。
つまり、異なるセグメントであっても、同じL2ネットワークにあたかもいるように仮想化されるので、サーバーのリソースをやり取りできるようになる。

「L3ネットワーク上に仮想L2ネットワークを構築する」というイメージは、巨大な仮想L3スイッチと同じだ。
つまり、ファブリック構造の中で、Leafスイッチは仮想L3スイッチのアクセスポート、Spineスイッチ仮想はL3スイッチのSVIとみなせば、ファブリック構造を持つインフラストラクチャ層全体を巨大な仮想L3スイッチとみなせるわけだ。

これが意味するのは、数多くのスイッチやルータの集合体を一つのオブジェクトに仮想化することで、一つの仮想的なL3スイッチや仮想ルータ、仮想スイッチとしてソフトウェア的に実現できること。
そう思えば、エンドポイントの端末から見れば、仮想スイッチのアクセスポートや仮想ルータのインターフェイスに単につないでいるだけ、とみなせるわけだ。

最近、インフラ基盤の仮想化の話が熱い。
では、仮想化の対象はどこに焦点を当てているのか?

一つは、物理的なネットワーク機器。ルータ、スイッチ、ファイアーウォールとか。
もう一つは、物理的なLAN、WANなどのネットワーク。

つまり、SDNアーキテクチャが巨大な仮想L3スイッチを実現したことは、物理的なLAN構造を仮想化したことと同じ。

同様に、MPLSとかVPNなどのトンネリングプロトコルは、物理的なWAN構造を仮想化して、一つの巨大な仮想ルータで実現したのと同じように思える。
実際、サイト間でVPNやMPLSを仮想的なL3層のプロトコルでつないで、パケットを安全に通信するわけだが、その機能は、ルータ内で、入力IFから受信したパケットをカプセル化して出力IFへ転送して送信するのと同じだから。

Dockerでも、複数のVMの通信を束ねる仮想スイッチが実現されていた。

そんなことを考えると、昨今のコンピューティングパワーが強大になったことで、物理的なネットワーク機器だけでなく、ネットワークそのものの仮想化できるレベルになり、ソフトウェアで制御しやすくなってきた背景があるのだろう。

仮想化によって、レイヤ化されたネットワーク設計では、各層を丸めて、仮想ルータや仮想L3スイッチ、仮想L2スイッチにみなせるようになった。
つまり、仮想化により、より抽象化した一つのネットワーク機器として擬似的に扱えるレベルになったわけだ。
たぶんそこがネットワーク技術の大きな技術進化なのだろう。

この辺りは奥が深いと思うので、思考を深める。

【追記】
VXLANによって、L2 over L3が実現されたイメージは、下記の記事が参考になる。

コラム - クラウド時代のオープンソース実践活用 | 第64回 いまさら聞けない? VXLANの仕組みとVTEPの役割|CTC教育サービス 研修/トレーニング

コラム - クラウド時代のオープンソース実践活用 | 第65回 Flannelが実現するKubernetesの仮想ネットワーク|CTC教育サービス 研修/トレーニング

Cisco ACI とは何なのか(1) 「ACIをシンプルにL2/L3スイッチとして考えてみる」

コラム - クラウド時代のオープンソース実践活用 | 第64回 いまさら聞けない? VXLANの仕組みとVTEPの役割|CTC教育サービス 研修/トレーニングでは、「図1 VXLANによるオーバーレイネットワーク」が分かりやすい。
東京、大阪、福岡の3拠点のサーバーがルーターで相互接続されていて、別々のサブネットに配置されていても、VXLAN対応スイッチによって、あたかも仮想的に、各サーバーは、L2スイッチで直結されたかのように、同一サブネット(この例では「10.1.0.0/16」)のIPアドレス(例:東京:10.1.1.0, 大阪:10.1.2.0、福岡:10.1.3.0)で通信が可能になる。

コラム - クラウド時代のオープンソース実践活用 | 第65回 Flannelが実現するKubernetesの仮想ネットワーク|CTC教育サービス 研修/トレーニングによれば、VXLANによる仮想ネットワーク、すなわち、「L2 over L3」のオーバーレイネットワークを実現する仕組みは、既に、実は、現在のLinuxカーネルには、すでにVXLANの機能が組み込まれていて、「Flannel」として実現されているとのこと。

つまり、VXLANは、データセンター向けの特別な技術ではなく、既に当たり前の技術になっている。

|

« 第20回東京Redmine勉強会の感想 #redmineT | トップページ | astahとPlantUMLを行き来できるastah* PlantUML Pluginが面白い »

ネットワーク・クラウド」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 第20回東京Redmine勉強会の感想 #redmineT | トップページ | astahとPlantUMLを行き来できるastah* PlantUML Pluginが面白い »