SDNは,ソフトウェアによりネットワークのパケットフローの制御を行う仕組みであり,OpenFlowあるいはProgrammable Flow が代表的な技術である.通常のネットワークスイッチは,L2スイッチでのブリッジやVLAN処理,L3スイッチでの IPヘッダによるルーティング,L4での
ネットワークアドレス変換
(NAT)やロードバランサなど,ネットワークのそれぞれのレイヤにおいて定められたパケット処理が行われるだけだが,SDNでは,L2, L3, L4など様々なレイヤを統合して扱い,それらの転送のためのルールをSDNコントローラで定義・制御する.各スイッチはSDNコントローラで定義されたルールを読み込み,それに従いパケット転送を行う.またコントローラとスイッチは,互いにフロールールや転送可否の問い合わせをOpenFlow などのプロトコルを用いてやりとりする.OpenFlow の場合,これらのルールはプログラミングを用いて定義するが,その言語としてCやRuby が用いられている.SDNを用いることで,VLAN 数の限界の克服,仮想サーバが大規模かつ複雑に存在するような場合における複雑なロードバランサの構築,複雑なマイグレーションなどが,フロールールを定義することで行えるようになる.また,知能化の観点からはソフトコンピューティングなどを適用した複雑な転送ルールを定義することも可能であろう.
抄録全体を表示