IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第26回 SDN(Software Defined Network)の定義を考える (中井悦司) 2013年8月

はじめに

 冒頭から宣伝で恐縮ですが、今年の年初から執筆していた書籍がついに完成して、出版が決まりました。「独習Linux専科・サーバ構築/運用/管理――あなたに伝えたい技と知恵と鉄則」というタイトルで、「Linuxの仕組みを本格的に知りたい、自分で試しながら機能を根底から理解したい!」、そんな初学者を対象にした書籍です。筆者のBlogで各章概要を紹介していますので、ぜひご参照ください。
 さて、前回は、最近の「はやり言葉」の1つ、「クラウドOS」について考えてみました。今回はもう1つのはやり言葉、「SDN」についてちょっと真面目に考えてみます。

SDNの定義ってなんだ?

 数年前、IT業界で「クラウド」という言葉が流行りはじめた当初、エンジニアの間で「クラウドの定義は何だ?」という議論が交わされていた事を覚えているでしょうか? 当時は、誰もがクラウドを構成する技術要素への興味が高く、「XXという技術を使っているのがクラウドだ」「XXの機能がなければクラウドじゃない」という感じで、技術要素や個別機能の観点で議論されることが多かったように思います。
 そして、今、「SDN(Software Defined Network)」で同じことが起きているようです。Webを検索してみると、技術的な側面でSDNの定義を紹介するものが散見されます。しかしながら、SDNが提供するネットワーク環境を利用する立場から見ると、少し違う見方もできる気がします。そもそも、SDNの利用形態には、大きく2つの種類が考えられます。

既存ネットワークの集中管理技術としてのSDN

 1つは、データセンタ内の既存のネットワーク環境を集中管理するために、SDNを利用するパターンです。私の知り合いに、「ネットワークは生き物」と呟いたネットワークエンジニアがいますが、規模の大小に関わらずネットワークの構成は、日々、変更が繰り返されていきます。
 これまでのネットワークアーキテクチャでは、それぞれの機器が自立分散型で連携動作するようにできていますので、ネットワーク全体の整合性を保ちながら、個々の機器を設定変更したり、新しい機器を追加していくのは、それなりに大変でした。このような場合、多数のネットワーク機器を集中管理する仕組みがあると、確かに便利になる気がします。この観点では、「ネットワーク全体の構成をソフトウェア的に集中管理するもの」としてSDNを定義するのがしっくりきます。
 例えば、米Google社は、データセンタ間のプライベートなネットワーク接続をOpenFlowで集中管理していることを公表しています。こちらのWeb記事によると、世界各国にまたがるネットワークを集中管理することで、管理者の人手を減らして、管理コストを下げることを目指しているようです。
 ただし、管理者の人手を減らすことは、「管理を簡単にする」ことと同じではありません。これだけの規模のネットワークを集中管理するには、相当に複雑なロジックが必要です。適切なロジックを考えて実装するのも大変ですし、想定外の問題が発生した場合、ロジックのどの部分に原因があるのかを調査するには、超人的なスキルが要求されるはずです。集中管理型に特有のスケーラビリティの問題に対処する知見も必要です。「SDNはネットワーク管理を簡単にする技術」という紹介記事を目にすることもありますが、これには、違和感を感じることもあります。

仮想ネットワーク構成技術としてのSDN

 もう1つの利用形態は、マルチテナントのIaaS型クラウドにおいて、テナントごとに独立した仮想ネットワークを構成するためにSDNを利用する場合です。以前の記事で紹介しましたが、OpenStackの環境では、各テナントのユーザは、API経由で指示を出すことにより、「仮想ルータ」や「仮想スイッチ」などの仮想的なネットワーク機器を構成することができます。このように、物理的なネットワーク環境をベースとして、その上に仮想的なネットワークを構成していく事、これもSDNによって実現できる事の1つです。
 この観点では、SDNとは、「API経由で仮想ネットワークを構成するもの」と言えるでしょう。仮想ネットワークを構成する具体的な技術要素は、SDNの定義そのものとは関係ありません。実際、仮想ネットワークを実現する方法には、複数の手法が考えられますし、それぞれで利用される技術要素は異なります。特定の技術要素にこだわってSDNを捉えてしまうと、SDNを利用する目的が置き去りにされる恐れがあります。SDNについて議論する際は、「何のためにSDNを使うのか」という観点を念頭におくことが必要です。

次回予告

 本文で出てきたOpenFlow、みなさんはどのような技術か理解できているでしょうか? 「SDN」はやや抽象的な言葉で定義も曖昧ですが、OpenFlowは、かっちりと定義されたパケット制御のプロトコルです。ぜひ一度、(*1)などの書籍で正しく理解しておくことをお勧めします。
 次回は、本文で触れた「仮想ネットワークを実現する方法」を整理してみたいと思います。

参考資料

*1)「クラウド時代のネットワーク技術 OpenFlow実践入門」高宮 安仁, 鈴木 一哉. 技術評論社 (2013)

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes