SDNと最前線 — ネットワークを「プログラム」する
これまでの機器は「箱ごとに自分で考えて転送」していました。最前線の発想はその逆 — 頭脳(制御)と手足(転送)を切り離すこと。ソフトウェアで経路を計算し、スイッチには「こう転送せよ」という表を配るだけ。このSDNと、無数の並列経路を束ねるデータセンターネットワーク、そして仮想化という現在地を、動く図で見ていきます。
1. 頭脳と手足を分ける — 制御プレーンとデータプレーン
従来のルータは、経路を自分で計算し(制御プレーン)、実際にパケットを転送も行う(データプレーン)一体型でした。SDN はこれを分離します。コントローラが全体を見て経路を計算し、各スイッチのフローテーブルに「この宛先はこのポートへ」という規則を書き込む。スイッチは考えず、表のとおり転送するだけになります。
下で「フローを消去」すると、規則を失ったスイッチでパケットが止まります(テーブルミス)。「ルールを配信」を押すと、コントローラから規則が降りてきて、パケットが一気に流れ出します。
2. 障害を自動で迂回する — 集中制御の強み
分離の真価は障害時に出ます。リンクが切れると、各機器がバラバラに再計算していた従来と違い、SDN では全体を知るコントローラが最適な迂回路を即座に計算し、影響するスイッチだけに新しい規則を配り直します。
下のボタンでリンクを切ってみてください。コントローラが光って経路を再計算し、パケットの通り道が別ルートに切り替わります。切れる場所によって、選ばれる迂回路が変わります。
3. 無数の並列路を束ねる — データセンターとECMP
巨大データセンターの内部は、サーバ同士が超高速で通信し続けます。そこで使われるのがClos(リーフ・スパイン)型の網。どの2台の間にも等価な(同じホップ数の)経路が何本もあるよう作られています。
この並列路を活かすのがECMP(等価コストマルチパス)。各通信(フロー)をハッシュで別々の経路に散らし、全リンクを均等に使い切ります。下で ECMP を切ると全フローが1本に集中して真っ赤に、入れると綺麗に分散します。
4. 網そのものを仮想化する — 最前線
最後の潮流がネットワーク仮想化。1つの物理網の上に、独立した仮想ネットワーク(オーバーレイ)を何枚も重ねます。各テナント(利用者)は自分専用の網があるように見えますが、実体は共有された物理リンク。鍵はカプセル化 — テナントのパケットを外側のヘッダ(VXLAN の VNI など)で包み、物理網はその外側だけを見て運びます。
下では2つのテナント(青・桃)のパケットが、同じ物理パイプを通りながら混ざりません。入口で外側ヘッダに包まれ、出口で外されます。ボタンで片方だけ表示すると、論理的に分離されている様子が見えます。
5. まとめ — ネットワークはソフトウェアになった
- SDN(制御/データ分離):コントローラが経路を計算し、スイッチはフローテーブルどおり転送するだけ。網全体を1つのプログラムとして扱える。
- 集中制御の再プログラミング:障害時に全体最適な迂回路を即座に配布。ただしコントローラの冗長化が必須。
- Clos + ECMP:等価な並列経路を大量に用意し、フローをハッシュで散らして全リンクを均等利用。
- ネットワーク仮想化:カプセル化で1本の物理網に複数の論理網を重ね、テナントを分離する。