第34回 Open vSwitchで作るDockerのネットワーク(OVSを知る編)古賀政純の「攻めのITのためのDocker塾」(1/3 ページ)

Dockerのネットワークを構成するには、さまざまな方法があります。今回からは、OpenStackなどクラウド基盤ソフトウェアでも広く採用されている「Open vSwitch」(OVS)を利用した方法を取り上げます。OVSの紹介から始めましょう。

» 2017年02月01日 07時30分 公開

 連載の第32回第33回で、Linux OSが標準で提供するブリッジ・インタフェースを使い、マルチホストのコンテナ間通信を実現する方法を紹介しました。今回は、オープンソースのクラウド基盤ソフトウェアでも広く採用されている「Open vSwitch」を使って、コンテナとホストOSを同一LANセグメントに所属させるフラットなネットワークを構築します。

Open vSwitchを知る

 Open vSwitch(Open Virtual Switch、通称「OVS」)は、ソフトウェア定義型ネットワーク(SDN)を実現する仮想スイッチです。複数の物理サーバやハイパーバイザ型の仮想マシン、コンテナ間のトラフィックを細かく制御でき、大規模な仮想化基盤およびクラウド基盤にも対応できるよう設計されています。2009年のリリース以降、現在までコミュニティーによる開発が精力的に続けられ、Apache 2.0ライセンスのオープンソース・ソフトウェアとして無償利用できます。移植性の高いC言語で記述され、Linux以外に、FreeBSDやNetBSDなどのBSD系のOSでも動作します。

 採用範囲は、一般的なLinux OSやハイパーバイザ型の仮想化基盤ソフトウェア、オープンソースベースのクラウド基盤ソフトウェア上で稼働するソフトウェア・スイッチなど幅広く、特にOpenStackでは、テナント(OpenStackの世界では「プロジェクト」と呼ばれます)内の仮想マシン(インスタンス)が所属する仮想的なプライベート・ネットワーク上で通信を行うための仮想スイッチを実現するために利用されています。通常のLinux OS上にインストールすれば、簡単に仮想スイッチを実現できます。

Dcoker Open vSwitchの概要

 KVMやVirtualBox、XenServerなどハイパーバイザ型の仮想化ソフトウェアが流行した背景には、物理サーバの統合ニーズがありました。物理サーバの統合で非常に重要な点は、ハードウェアレイヤの抽象化といえます。ハイパーバイザ型の仮想化ソフトウェアは、ゲストOSに対して抽象化した計算資源、つまり仮想マシンを提供します。仮想マシンによって、1台の物理サーバのハードウェア上で複数のゲストOSを同時に稼働させることができます。

 仮想マシンには仮想のCPU、メモリ、HDD、NICなどが搭載されています。仮想マシンの仮想NIC(Virtual NIC=vNICと呼ぶ場合もあります)は、さらにハイパーバイザ型仮想化ソフトウェアが提供する仮想スイッチによって、ネットワークを柔軟に構成することができます。これが「ネットワークの仮想化」です。

 OVSは、ハイパーバイザ型の仮想化環境やコンテナ環境では仮想スイッチを形成し、物理スイッチ、仮想マシン、コンテナの通信路を実現します。仮想マシンやコンテナは、仮想NICを持っており、仮想スイッチが提供する仮想インタフェースと接続されます。OVSが提供する仮想スイッチと接続された仮想マシンやコンテナは、レイヤ2の仮想ネットワークを形成し、仮想スイッチ経由で仮想マシン同士、またはコンテナ同士の通信を行えます。

Dcoker Open vSwitchによるネットワーク構成例
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ