tonocchoのメモ

軽い気持ちで

SDNをお勉強する

学校で、何これ面白そうで取ったSDN (Software Defined Network)の授業、そもそもネットワークのバックグラウンドもないのに取っているので、いまいちわかりにくい(昔小悪魔女子大生の本を読んだので用語が全く分からずというとこまでは置いてかれてないにせよ)。なんにしても理解したことをアウトプットしていきつつ勉強してみたい。

SDNとは

まずこのSDNという言葉は、どうもいろいろあってまちまちらしいのだけど、最も根本的なことはというと、「これまではネットワーク機器にログインしてアレヤコレヤ設定していた部分をコントローラというコンポーネントに分離して、そこでやっていきましょう」という話のようだ。

仕事をしているとネットワーク担当者のCISCOスペシャリストな人たちがスイッチにシリアルケーブル刺してログインしてアレヤコレヤコンフィグしているのをみたことがあるが、このアレヤコレヤコンフィグするのを今後はネットワーク機器にではなく、分離されたコントローラに対して行いましょう、というのがその流れのようです。

これによって、これまでは、データ転送と通信制御を一手に担っていたネットワーク機器から通信制御の部分を切り離せるので、柔軟なネットワークの管理ができるとか、あとは、コントローラと機器の通信に使うプロトコルはOpenFlowという標準化されたものなので、機器を取り替えても問題がないということのようですね。

どういう風に動くか

ではSDNはどういう風に動くかというと、SDN(というか OpenFlow)に対応したネットワーク機器は、通信パケットを受け取ると、そのパケットをどうするかをルーティングテーブルをルックアップして、あればそれに従ってデータを転送する、ない場合は、前述のコントローラに問い合わせてどうするかを決めてルーティングテーブルを更新する、ということのようです。

何かにつけて「ようです」と言っているのは、全部授業で聞いたことをまとめていて、何一つ実践していないからですね。

メリット

メリットは、ネットワークの制御が柔軟になる、という点でしょう。これまでは、ネットワーク機器の設定が静的であったが故の問題もあったかと思います。例えば、「日中はこういう感じ、夜間はこういう感じで行きたい」というようなことはできたのかは知りませんが、きっとできなかったに違いありません。でも、Controllerというパケットの転送制御をソフトウェア化することで、今言ったみたいなこととか、例えば、これからビデオ会議するから、転送量増やしてねとか、そういうのもできそうです。

あとは、ネットワーク技術者がいちいち現地に行って機器をいじくり回したりしなくていいので、セキュアかもしれませんし、標準化されたものを使うので、技術を他に転用しやすいというのもあるでしょう。

デメリット

デメリットとしては、コントローラの設定や配備をしくじるとネットワークが崩壊しそうだなという点です。なので、この辺の設計にはかなりの経験値が要求されそうですね。

仮想化と相性良さそう

こうやって柔軟にネットワークの設定を変えていけるというのは、クラウドなんかで、例えば、「ちょっといまから新しいネットワークにインスタンス100個ぶら下げて用意してね!」とかにも対応しやすそうですね。