KNOWLEDGE - COLUMN ナレッジ - コラム

【エバンジェリスト・ボイス】ソフトウェアによるネットワーク管理(SDN)

データ・マネージメント・サービス第1部

エバンジェリスト 上坂 明

 

こんにちは。データ・マネージメント・サービス、エバンジェリストの上坂です。

本日は「Software Defined Networking(SDN)」についてお話します。

SDNとは、ソフトウェアによって仮想的なネットワークを作り上げる技術全般を指しています。

近年では SD-WAN が注目されていますが、これは SDN の技術を WAN に適用したものであり、 WAN 環境全体をソフトウェアで管理することを目的としています。

SD-WANが注目され始めた背景に「パブリッククラウドの利用拡大」、「 Web 会議・テレワークの利用拡大」があります。閉域網で「本社と各拠点」を接続し、インターネットへの出入口を 1 カ所に集約する従来のセンター集約型の WAN は、セキュリティ対策が取りやすく、 WAN 構成のデファクトスタンダードでした。

しかし、この構成ではトラフィック集中による帯域不足や、クラウドサービス利用時に必要となるセッション数が多い場合、プロキシのセッション数不足が原因によるパフォーマンス低下につながる等の様々な課題が浮上してきました。(下段 図1 参照)                                            
コラム_SDN_1_566x260
          <図1.センター集中型 WAN

この課題に対し、 SD-WAN を利用することで、テレビ会議などのリアルタイム性が高い通信は、利用する WAN 経路を分けるなどのアプリケーションレベルの経路制御と、「ローカルブレークアウト」と呼ばれるアクセス制御を行うことで、 WAN 回線・インターネット回線の品質の最適化が可能となります。

ちなみにローカルブレークアウトとは、全てのトラフィックを本社経由とするのではなく、特定のトラフィック(特定のクラウドサービスへのアクセス等)を拠点からインターネットへとダイレクトにアクセスする許可を与える機能です。
例えば大容量ファイルの送受信を行うファイル共有サービスを、ローカルブレークアウトの対象とする等の設定が挙げられます。(下段 図 2 参照) 

                             
コラム_SDN_2_520x306
        <図2.ローカルブレークアウトによる経路制御>

ただし、この機能を利用する場合、拠点からインターネットへの出入口にセキュリティ対策をとる必要があり、クラウド型のインターネットゲートウェイサービス( Zscaler 等)の導入や、ファイヤウォールの実装を検討する必要があります。
このように、 SD-WAN では IT 環境の変化に応じてネットワーク構成の変更が可能となる、柔軟な WAN 環境を構築することができます。

話を戻し、 SDN について概要をご説明します。

まず、従来のネットワーク構成は、各ネットワーク機器( Switch Router Firewall 等)毎に専用のハードウェア、専用の OS ・ソフトウェアが搭載されており、それぞれ用途に応じて準備する必要がありました。また、設定・管理についても個別に行う必要があり、柔軟な変更が行いにくい構成でした。(下段 図 参照)                                 
コラム_SDN_3_561x253
         <図 3 .従来型のネットワーク構成と管理>

そして SDN ですが、 SDN を実現させる技術の一つとして、 OpenFlow と呼ばれる技術があります。以下は OpenFlow によるネットワーク制御を例とした内容です。
OpenFlowではネットワーク機器を、データ伝送機能を行う「データプレーン( OF スイッチ)」と伝送データの制御を行う「コントロールプレーン( OF コントローラ)」に分離し、管理者はコントローラからデータプレーンを一元管理します。制御方法についてはユーザが自由にプログラミング可能であり、高い自由度を持ちます。

一方データプレーンは、パケット転送に特化した動作を行い、フローテーブルと呼ばれるパケットの処理内容に従いパケットを転送します。コントローラは、このフローテーブルの情報を追加・更新・削除を行うことで、データプレーンを制御します。(下段 図 4 参照)  コラム_SDN_4_567x270
          <図 4 OpenFlow によるネットワーク制御>

このように SDN はコントローラをネットワーク機器から分離し、各ネットワーク機器の設定を個別に行うのではなくネットワーク全体をコントローラで一括して設定および管理することが可能であるため、運用 / 管理が容易となります。

また、同じくネットワークの仮想化技術として、ネットワーク機器の機能 ( ソフトウェア ) を、汎用サーバ上に構成された仮想化基盤上でソフトウェア ( 仮想マシン ) として実装する方式である、 NFV Network Functions Virtualization )があります。 NFV はサーバ仮想化の応用であり、従来の物理アプライアンスとして提供されたネットワーク機器の機能を仮想アプライアンスとしてソフトウェア利用するという技術です。

ちなみに近年この SDN NFV を活用し、ネットワークの完全仮想化を行った企業が、 CM でもよく見かける楽天モバイルです。(詳細は以下参考ページの内容をご参照下さい) 
※外部サイト 【参考】:楽天モバイルネットワーク、世界初のエンドツーエンドの完全仮想化クラウドネイティブネットワークにおいて実証実験に成功

少し脱線しますが、「 SDN 」と「 OpenFlow 」は IPA 主催の情報処理試験で頻出のキーワードとなっており、基本情報から高度試験まで幅広く登場します。例を挙げると平成 30 年ネットワークスペシャリスト試験では、午後Ⅰの問 1 、午後Ⅱの問 2 の2つの主題として扱われるという SDN 漬けと言って良い程の試験内容でした。(流石にやり過ぎたのか、翌年は午後試験の主題としては全く出てきませんでしたが)

来年春に開催されるネットワークスペシャリスト試験では、テレワークの増大によりネットワークエッジ(ネットワークの末端)ロケーションの変化や、トラフィック増大による課題と対策、 VPN SD-WAN 比較等をテーマとした問題が出題される可能性が高いと感じています。

ここまで SDN の特徴を読んで気になった方がいらっしゃると思いますが、 SDN はソフトウェア(プログラミング)によるネットワークの管理です。従ってプログラミングスキルが不要であったネットワークエンジニアにもプログラミング能力が求められることとなります。(運用フェーズ後は運用管理者も必要)

実際、ネットワークエンジニアの初級資格である CCNA 2020 2 月に改定されましたが、改定後の試験範囲に「 Automation and Programmability (自動化とプログラマビリティ)」が含まれており、プログラミング知識の重要性が上昇しています。

プログラミングも出来るネットワークエンジニアの需要は上がり続けており、ネットワークエンジニアの仕事に携わっている方は、是非とも Python を習得することをお勧めします。
理由についてですが、先ほど例に挙げました OpenFlow は、 Python SDN 開発をする際、「 Ryu SDN Framework POX SDN Controller 」 といったフレームワークを使用し、開発を行うことが可能となるためです。

また、 Python はネットワーク管理の作業(設定前後のログ取得の自動化等)をプログラミングで自動化することが可能であり、通常の管理作業の省力化も可能です。

機械学習やビックデータ解析などの他分野でも Python は需要が高く、ネットワークエンジニア以外としての市場価値を高めることも可能となります。

パブリッククラウド利用が基本の現在、ネットワーク機器の管理よりもそちらの需要の方が高いという現状もありますので、興味を持たれた方は是非チャレンジしてみてはいかがでしょうか。

当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。

エバンジェリストによるコラムやセミナー情報、
IDグループからのお知らせなどをメルマガでお届けしています。

メルマガ登録ボタン

上坂 明

株式会社IDデータセンターマネジメント テクニカルスペシャリスト

この執筆者の記事一覧

関連するナレッジ・コラム

地味に見えて優秀!マネージドプレフィックスリストでアドレス管理を効率化

DockerでJupyterLabの環境を作ろう

残された攻撃の痕跡を追え! ~Post-Exploitationで起きていること~