分123はじめに前回は,昨今注目されているネットワーク制御技術「OpenFlow」の動向や基本動作,仮想化が抱える課題について説明しました。今回は,より進んだOpenFlowの活用方法について説明します。OpenFlowによるパケット制御方式OpenFlowはネットワークの動作をプログラムで制御できます。具体的に言えば,OpenFlowを利用すると,パケット(注1)の任意の部分を書き換えて,パケットを任意のノードに転送(注2)できます。パケットのどこを書き換え,どこに転送するか(以後「パケットの制御方法」と表記します)は,すべてOpenFlowコントローラが決定します。OpenFlowスイッチはOpenFlowコントローラから指示を受けて動作します。OpenFlowスイッチが独自の判断で動作することは基本的にありません。未知のパケットを受信した場合,OpenFlowスイッチはOpenFlowコントローラにパケットの制御方法について問い合わせをします。OpenFlowには3種類のパケット制御方法があります。その3種類の制御方式についてそれぞれ説明します。注1)本稿ではパケットという言葉をレイヤ3通信で定義される意味ではなく,単にデータを送る単位の意味で使用します。注2)パケットを破棄することも可能です。制御方式1制御方式1(図1)は,OpenFlowの最も基本的な制御パターンです。この制御方式は次のように動作します。(1)サーバ1はサーバ2に対してパケットを送信する(2)OpenFlowスイッチはサーバ1からパケットを受け取り,受信したパケットに対応する制御ルール(注3)を自身が保持していないか確認する(3)受信したパケットに対応する制御ルールを保持している場合,OpenFlowスイッチは制御ルールに従ってパケットを書き換え,転送を行う(4)OpenFlowスイッチから転送されたパケットがサーバ2に届く制御方式1では,パケットの任意の個所を書き換えることはできません。書き換え可能な個所は,OpenFlowバージョン1.0の場合はヘッダフィールドに設定可能な12種類になります(詳細は前回を参照ください⁠)⁠。パケット制御方式1(OpenFlowの基本的なパターン)注3)正式には「フローエントリ」と呼びます。制御方式2制御方式2(図2)は,OpenFlowを用いてネットワークを構築した直後によく発生するパターンです。この制御方式は以下のように動作します。(1)サーバ1はサーバ2に対してパケットを送信する(2)OpenFlowスイッチはサーバ1からパケットを受け取り,受信したパケットに対応する制御ルールを自身が保持していないか確認する(3)受信したパケットに対応する制御ルールを保持していない場合,OpenFlowスイッチは受信したパケットをバッファに一時保存し,OpenFlowコントローラにパケットの制御方法を問い合わせる(4)OpenFlowコントローラは,OpenFlowスイッチが受信したパケットに関する情報を受け(注4⁠)⁠,パケットの制御方法を決定する(5)OpenFlowコントローラは,OpenFlowスイッチにパケットの制御方法を指示する。同時に,OpenFlowスイッチに制御ルールを書き込む(6)OpenFlowスイッチはOpenFlowコントローラの指示に従い,OpenFlowスイッチのバッファに一時保存されているパケットを書き換え,サーバ2にパケットを転送する上記の処理を行うと,OpenFlowスイッチに制御ルールが書き込まれます。その状態で再びサーバ1から同様のパケットを受信すると,今度はOpenFlowスイッチに制御ルールが書き込まれているため,OpenFlowスイッチはOpenFlowコントローラに問い合わせることなく,制御方式1と同じ要領でパケットを転送します。制御方式2ではOpenFlowスイッチでパケットを書き換えるため,パケットを書き換えることができる個所は制御方式1と同様に12種類になります。パケット制御方式2(OpenFlowを用いたネットワーク構築後に発生するパターン)注4)OpenFlowスイッチは,受信したパケットにOpenFlowヘッダを付加し,OpenFlowコントローラに送信します。制御方式3制御方式3(図3)は制御方式2の応用になります。この制御方式は次のように動作します(⁠(⁠1⁠)⁠~(⁠4)は制御方式2と同様です⁠)⁠。スイッチに制御ルールを書き込みません。よって,サーバ1から同様のパケットを受信した場合,OpenFlowスイッチはパケットの制御方法がわからないため,前回と同様にOpenFlowコントローラにパケットの制御方法を問い合わせます。制御方式3はサーバ側でパケットの書き換えを行います。よって,この制御方式ではパケットのあらゆる場所を書き換え可能です。場合によってはパケットを新規に生成し,サーバ1から送信されたパケットとはまったく異なるパケットをサーバ2に届けることも可能です。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。業務を改善する情報共有の仕掛け~DevOpsの実現,RPAの導入に向けて~ソフトウェア開発の業務改善をテーマに,DevOps実現の手順やそれを助けるツールとの連携,RPAによる社内ドキュメントの管理や効率化について解説します。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。