Cisco / CCNA 200-301 v2.0

試験項目 1.2 · CCNA-008

Virtual Machineの構成とNetworking

Virtual Machine 役割, Guest OS, Virtual Hardware, VM 分離, vNIC, Virtual Switch, VM-to-Network Path, Same-Host VM Networking

このページのゴール

Virtual MachineがGuest OSとVirtual Hardwareを持つ論理的なComputerとしてどのように機能し、Hypervisorおよび基本的なVirtual Networkingとどのような関係を持つか説明できるようにする。

このページで学ぶこと

  • Virtual Machineの役割
  • Guest OS
  • Virtual Hardware
  • VM障害範囲
  • vNIC
  • Virtual Switch
  • VMから物理Networkまでの経路
  • 同一Host内VM通信

Page007では、ハイパーバイザー(Hypervisor)が物理ハードウェアリソースを管理し、仮想マシン(Virtual Machine:VM)へ利用可能なリソースを提供する役割を学びました。

Page008では視点をVM側へ移します。

ここで理解するのは、

  • 仮想マシンの役割
  • ゲストOS
  • 仮想ハードウェア
  • VM単位の障害範囲
  • vNIC
  • 仮想スイッチ
  • VMから物理ネットワークまでの基本経路
  • 同一ホスト内VM通信

です。

目標は、

仮想マシンがゲストOSと仮想ハードウェアを持つ論理的なコンピューターとしてどのように機能し、ハイパーバイザーおよび基本的な仮想ネットワークとどのような関係を持つか説明できること

です。

1. 仮想マシンは論理的なコンピューター

仮想マシンは、

物理コンピューターのようにOSやアプリケーションを実行できる、ソフトウェア上の論理的なコンピューター

です。

基本構造は、

物理ハードウェア
       ↓
ハイパーバイザー
       ↓
仮想マシン
       ↓
ゲストOS
       ↓
アプリケーション

となります。

VMは単なる1つのアプリケーションプロセスとして考えるのではなく、

独立したコンピューター環境

として理解します。

2. VMはハイパーバイザーからリソースを提供される

VM自身が物理CPUや物理メモリを直接所有しているわけではありません。

基本的には、

物理リソース
       ↓
ハイパーバイザー
       ↓
VMへ仮想ハードウェアとして提供

という関係です。

Page007ではハイパーバイザー側から、

リソースを管理・抽象化する

ことを見ました。

Page008ではVM側から、

仮想ハードウェアを利用する

関係を理解します。

3. VMを構成する主な要素

代表的なVMは、次のような要素を持ちます。

仮想マシン

├─ vCPU
├─ vRAM
├─ 仮想ディスク
├─ vNIC
└─ ゲストOS

これらは物理ホストのハードウェアそのものではなく、

VMから利用可能な仮想ハードウェア

です。

4. vCPU

vCPUは、VMから利用される仮想CPUリソースです。

概念的には、

物理CPU
      ↓
ハイパーバイザー
      ↓
vCPU
      ↓
ゲストOS

という関係になります。

ゲストOSからはCPUリソースとして利用できます。

ただしPage008では、

  • CPUスケジューリング
  • 予約
  • 上限
  • CPUオーバーコミット
  • NUMA

などの詳細な仮想化リソース管理までは扱いません。

5. vRAM

vRAMは、VMへ提供される仮想メモリリソースです。

物理メモリ
       ↓
ハイパーバイザー
       ↓
VMのvRAM
       ↓
ゲストOS

ゲストOSやアプリケーションは、VMへ割り当てられたメモリを利用します。

ここでも、

VM
=
物理メモリ全体

ではありません。

VMは割り当てられた仮想リソースを利用します。

6. 仮想ディスク

仮想ディスクは、VMからディスクとして利用されるストレージリソースです。

ゲストOSから見ると、

ディスク

として利用できます。

しかし物理側では、

物理 / 共有ストレージ
          ↓
仮想化レイヤー
          ↓
仮想ディスク
          ↓
ゲストOS

のような関係になります。

Page008では、

  • Datastore
  • SAN構成
  • シンプロビジョニング
  • シックプロビジョニング
  • 仮想ディスクのファイル形式

などの製品固有ストレージ設計は扱いません。

7. vNIC

vNIC(Virtual Network Interface Card:仮想ネットワークインターフェースカード)は、

VMからネットワークインターフェースとして見える仮想NIC

です。

ゲストOSから見ると、

ゲストOS
   ↓
ネットワークインターフェース

として利用できます。

しかし実際には、

ゲストOS
   ↓
vNIC
   ↓
仮想ネットワークレイヤー

となっています。

Ciscoの仮想化資料でも、vNICはVMを仮想スイッチへ論理的に接続し、VMがそのインターフェースを通じてトラフィックを送受信するものとして説明されています。

8. ゲストOS

ゲストOSは、VM内部で動作するオペレーティングシステムです。

構造を整理すると、

VM
├─ 仮想ハードウェア
│   ├─ vCPU
│   ├─ vRAM
│   ├─ 仮想ディスク
│   └─ vNIC
│
└─ ゲストOS
     ↓
 アプリケーション

です。

ゲストOSは、

VM内部の仮想ハードウェア

を利用して動作します。

9. VMごとにゲストOSを持てる

複数のVMが同じ物理ホスト上で動作していても、

VM-A
└─ ゲストOS A

VM-B
└─ ゲストOS B

VM-C
└─ ゲストOS C

のように、各VMは独立したゲストOS環境を持つ基本モデルです。

したがって、

1台の物理ホスト
      ↓
全VMが同じゲストOSインスタンスを共有

とは考えません。

コンテナとの違いはPage009で扱います。

10. 物理マシンとの違い

物理マシンでは、

物理ハードウェア
       ↓
オペレーティングシステム

という直接的な構造があります。

VMでは、

物理ハードウェア
       ↓
ハイパーバイザー
       ↓
仮想ハードウェア
       ↓
ゲストOS

です。

つまりゲストOSが利用するコンピューター環境が、

物理ハードウェアそのものではなく、ハイパーバイザーから提供された仮想マシン

になっています。

11. VMは物理サーバーと同じものではない

VMはコンピューターとして動作しますが、

VM
=
物理サーバー

ではありません。

VMは、

物理ホスト上に作られた論理的なコンピューター

です。

たとえば、

物理ホスト
       ↓
ハイパーバイザー
  ├─ VM-A
  ├─ VM-B
  └─ VM-C

という構成では、3台のVMがあっても物理ホストは1台です。

12. VMごとの論理的な分離

各VMは、通常それぞれ独立したゲストOSやアプリケーション環境を持ちます。

物理ホスト
      ↓
ハイパーバイザー
  ├─ VM-A
  │   ├─ ゲストOS A
  │   └─ アプリA
  │
  └─ VM-B
      ├─ ゲストOS B
      └─ アプリB

そのため、

VM-A内部のゲストOSが停止したからといって、VM-BのゲストOSも同じ理由で停止するとは限りません。

13. VM障害範囲

VM単位で障害を見ることは重要です。

たとえば、

VM-A
ゲストOSクラッシュ

VM-B
正常

VM-C
正常

なら、

最初に疑うべき範囲は、

VM-A内部

です。

この時点で、

物理ホスト全体が故障した

と判断する必要はありません。

14. ゲストOS障害とホスト障害を分ける

一方、

VM-A
停止

VM-B
停止

VM-C
停止

が同時に発生している場合、

VMごとに独立した障害だけでなく、

共通するハイパーバイザー
物理ホスト
共有基盤

も影響範囲として考えます。

つまり、

1 VMだけ異常

と、

同一ホスト上の複数VMが同時異常

では、調査範囲が異なります。

15. VM分離は「何が起きても他VMへ影響しない」という意味ではない

VMが論理的に分離されていても、

複数VMは、

物理ホスト
ハイパーバイザー
CPU
メモリ
ストレージ
ネットワークインターフェース

などの基盤を共有する場合があります。

したがって、

VMの分離
      ↓
他VMへ絶対に影響しない

という意味ではありません。

正しくは、

VMごとのゲストOS / アプリケーション環境は分離されるが、共有基盤の障害は複数VMへ影響し得る

と考えます。

16. VMネットワークの入口はvNIC

VMがネットワーク通信するとき、VM側のインターフェースになるのがvNICです。

アプリケーション
     ↓
ゲストOS
     ↓
vNIC
     ↓
仮想ネットワーク

です。

物理コンピューターでNICがネットワークインターフェースになるのと同じように、

VMではvNICがネットワークインターフェースとして機能します。

17. vNICと物理NICは別物

次の2つを区別します。

vNIC

と、

物理NIC

です。

vNICは、

VMに提供される仮想ネットワークインターフェース

です。

物理NICは、

物理ホストに実装されている実際のネットワークインターフェース

です。

概念的には、

VM
↓
vNIC
↓
仮想スイッチ
↓
物理NIC
↓
物理ネットワーク

という関係になります。

18. 1つのVMが複数vNICを持つこともできる

VMは必ず1つのvNICだけを持つわけではありません。

概念的には、

VM

├─ vNIC 1
└─ vNIC 2

のような構成も可能です。

それぞれを異なる仮想ネットワークへ接続する構成もあります。

ただし、

  • NICチーミング
  • 複数NICルーティング
  • 詳細なゲストOSのネットワーク設定

などはPage008の主目的ではありません。

重要なのは、

vNICがVMのネットワークインターフェースである

という点です。

19. 仮想スイッチ

仮想スイッチは、

VMのvNICや物理ネットワーク側を論理的に接続するソフトウェアベースのスイッチングレイヤーです。

基本構造は、

VM-A             VM-B
 vNIC             vNIC
   \               /
    \             /
     仮想スイッチ
           │
      物理NIC
           │
    物理ネットワーク

です。

Ciscoの資料でも、vNICと物理NICは仮想スイッチを介して接続され、仮想スイッチがvNICと物理アダプター間のトラフィックを転送する構造が説明されています。

20. 仮想スイッチはレイヤー2スイッチングを行える

仮想スイッチは、基本的にEthernetフレームを扱うスイッチングレイヤーとして機能します。

つまり、

VM-A
 ↓
vNIC
 ↓
仮想スイッチ
 ↓
VM-B

のように、接続条件が整っていれば、VM同士のトラフィックをスイッチングできます。

Ciscoの仮想化資料でも、同一仮想スイッチに接続されたVM間では仮想スイッチがレイヤー2スイッチングを直接行える構成が説明されています。

21. 仮想スイッチと物理スイッチは別物

仮想スイッチもスイッチングを行いますが、

仮想スイッチ
=
物理スイッチ

ではありません。

仮想スイッチは、

ハイパーバイザー / 仮想化環境内部のソフトウェアベースのスイッチングレイヤー

です。

物理スイッチは、

実際の物理ネットワーク上に存在するネットワーク機器

です。

22. 外部ネットワークへ出る基本経路

VMから物理ネットワーク上の機器へトラフィックを送る場合、基本的な考え方は、

VM
 ↓
vNIC
 ↓
仮想スイッチ
 ↓
物理NIC
 ↓
物理スイッチ
 ↓
物理ネットワーク

です。

Ciscoの仮想化資料でも、VMトラフィックはアプリケーションからVMのvNICへ進み、仮想ソフトウェアスイッチを通り、物理アダプターから外部LANへ送られる構成が説明されています。

23. 受信方向は逆になる

物理ネットワークからVMへトラフィックが届く場合は、

概念的には逆方向です。

物理ネットワーク
       ↓
物理スイッチ
       ↓
物理NIC
       ↓
仮想スイッチ
       ↓
vNIC
       ↓
VM

つまり仮想スイッチは、

VM内部の仮想インターフェースと物理ネットワークの間をつなぐ重要なレイヤー

になります。

24. 物理NICはアップリンクとして機能する

仮想スイッチから物理ネットワークへ接続するために、物理NICを利用する構成があります。

概念的には、

仮想スイッチ
      ↓
物理NIC
      ↓
物理ネットワーク

です。

この物理NIC側の接続を、

アップリンク

として表現する仮想化製品もあります。

Page008では設定方法までは扱いません。

25. VMごとに専用物理NICが必要とは限らない

次の理解は誤りです。

VM-A
→ 物理NIC A

VM-B
→ 物理NIC B

VM-C
→ 物理NIC C

必ず1:1

仮想化では、複数VMのトラフィックが仮想スイッチを介して同じ物理NIC側へ出る構成があります。

VM-A ─┐
VM-B ─┼→ 仮想スイッチ → 物理NIC
VM-C ─┘

Cisco資料でもvNICと物理NICの間に単純な1対1対応が必須ではないことが説明されています。

26. 同一ホスト内VM通信

同じ物理ホスト上に、

VM-A
VM-B

があるとします。

さらに両方が、

同じ仮想スイッチ上で相互に通信可能なネットワークへ接続

されているとします。

この場合、

VM-A
 ↓
vNIC
 ↓
仮想スイッチ
 ↓
vNIC
 ↓
VM-B

という形で、

物理NICや外部物理スイッチへトラフィックを送らずに、ホスト内部でスイッチングできる構成があります。

CiscoのVMwareのネットワーク資料でも、同じ仮想スイッチ上のVM間トラフィックは物理NICへ出ず、仮想スイッチ内部でスイッチングされる構成が説明されています。

27. 「同一ホストなら必ず物理スイッチを通らない」ではない

ここは重要です。

同じ物理ホスト
      ↓
必ずホスト内部だけで通信

とは限りません。

通信経路は、

  • 仮想スイッチへの接続
  • 仮想ネットワークの構成
  • ネットワークセグメント
  • ルーティングの必要性
  • 仮想化実装

などによって変わります。

Page008で覚えるのは、

同一ホスト・同一仮想スイッチングドメインなら、物理ネットワークへ出ずに通信できる構成がある

という基本概念です。

28. 仮想スイッチがなければvNICは物理ネットワークへ直接つながるとは限らない

概念図で、

VM
↓
vNIC
↓
物理NIC

と直接考えるのは不十分です。

一般的な仮想ネットワークでは、

VM
↓
vNIC
↓
仮想スイッチ
↓
物理NIC

というソフトウェアのスイッチングレイヤーが間に入ります。

そのためネットワーク経路を問われたら、

仮想スイッチの存在

を忘れないようにします。

29. 仮想ネットワーク経路を層で読む

ネットワーク通信を、

ゲスト側
仮想側
物理側

に分けると整理しやすくなります。

ゲスト側

ゲストOS
↓
vNIC

仮想側

vNIC
↓
仮想スイッチ

物理側

仮想スイッチ
↓
物理NIC
↓
物理ネットワーク

この3つをつなげると、

ゲストOS
↓
vNIC
↓
仮想スイッチ
↓
物理NIC
↓
物理ネットワーク

になります。

30. VMネットワークでMACアドレスは存在する

vNICはEthernetインターフェースとして機能するため、通常MACアドレスを持ちます。

そのため仮想スイッチは、VMのトラフィックをレイヤー2で扱うことができます。

ただしPage008では、

  • MACアドレス学習アルゴリズム
  • 転送テーブル内部
  • フラッディング詳細
  • STP
  • VLANタグ処理

などの仮想スイッチ内部実装までは扱いません。

ここでは、

vNICを接続してEthernetトラフィックをスイッチングする

という基本機能までです。

31. VLAN / Trunk設定はここでは扱わない

仮想スイッチには製品によって、

  • VLAN
  • ポートグループ
  • Trunk
  • セキュリティポリシー

などを設定できる場合があります。

しかしPage008では、

仮想スイッチ設定
ポートグループ設定
802.1Q設定

を扱いません。

物理スイッチ側のポート設定も別学習目標の責任です。

Page008では、

仮想ネットワークを構成する要素と基本経路を説明できること

に集中します。

32. VMネットワークと物理ネットワークを分離しすぎない

仮想ネットワークは物理ネットワークと無関係ではありません。

外部ネットワークへ出るトラフィックでは、

仮想ネットワーク
      ↓
物理NIC
      ↓
物理ネットワーク

が連続しています。

したがって、

VMのネットワーク
=
完全に物理ネットワークと独立

とは考えません。

仮想スイッチはソフトウェア上にありますが、その先で物理基盤へ接続できます。

33. VM内だけの問題かネットワーク経路全体の問題かを分ける

たとえば、

VM-Aのみ通信不能

VM-Bは正常

両方同じホスト

という状態なら、

まずVM-A固有の、

ゲストOS
vNIC
VMネットワーク設定

などを原因候補として考えることができます。

一方、

同じホスト上の全VMが
外部ネットワークへ通信不能

なら、

共有仮想スイッチ
物理NIC
物理ネットワーク側

などの共通経路も候補になります。

Page008では具体的なトラブルシューティング手順までは扱いませんが、

障害範囲をVM単位と共有ネットワーク経路で区別する

考え方は重要です。

34. 同一ホスト通信と外部通信を比較する

同一ホスト内でスイッチングできる場合

VM-A
 ↓
vNIC
 ↓
仮想スイッチ
 ↓
vNIC
 ↓
VM-B

物理NICを通らないことがあります。

外部ネットワークへ通信

VM-A
 ↓
vNIC
 ↓
仮想スイッチ
 ↓
物理NIC
 ↓
物理スイッチ
 ↓
宛先

この違いを理解すると、

すべてのVM通信が必ず物理スイッチを通るわけではない

ことが分かります。

35. VMとハイパーバイザーの責任を分ける

Page007とPage008の境界を整理します。

ハイパーバイザー側

物理リソースを管理
リソースを抽象化
VMへリソースを提供
VMを実行

VM側

仮想ハードウェアを利用
ゲストOSを実行
アプリケーションを実行
vNICを通じて通信

つまり、

ハイパーバイザー
→ リソースを提供する側

VM
→ 提供されたリソースを使う側

です。

36. VMとコンテナを混同しない

Page009ではコンテナを扱います。

ここでは境界だけ押さえます。

VMの基本構造は、

VM-A
└─ ゲストOS A

VM-B
└─ ゲストOS B

です。

つまりVMでは、

VMごとに独立したゲストOS環境を持つ基本モデル

を理解します。

コンテナのカーネル共有やコンテナエンジンの構造はPage009へ残します。

37. よくある誤判断

「VMは単なるアプリケーションプロセス」

誤りです。

VMは仮想ハードウェアとゲストOSを持つ論理的なコンピューター環境です。

「vCPUは物理CPUそのもの」

誤りです。

vCPUはVMへ提供される仮想CPUリソースです。

「ゲストOSはハイパーバイザーと同じ」

誤りです。

ゲストOSはVM内部で動作します。

ハイパーバイザーはVMを実行する基盤です。

「VMが3台なら物理サーバーも3台必要」

誤りです。

1台の物理ホスト上で複数VMを実行できます。

「1台のVMがクラッシュしたら同じホストの全VMも必ずクラッシュする」

誤りです。

VMは論理的に分離されています。

ただし物理ホストやハイパーバイザーなど共有基盤の障害は複数VMへ影響し得ます。

「vNICと物理NICは同じインターフェース」

誤りです。

vNICはVM側の仮想インターフェース、物理NICはホスト側の物理インターフェースです。

「各VMには必ず専用物理NICが必要」

誤りです。

複数VMが仮想スイッチを介して物理NICを共有する構成があります。

「VMから外部ネットワークへはvNICから直接物理スイッチへ行く」

誤りです。

基本的には、

VM
↓
vNIC
↓
仮想スイッチ
↓
物理NIC
↓
物理ネットワーク

という経路で考えます。

「同じホストのVM同士でも必ず物理スイッチを通る」

誤りです。

同じ仮想スイッチ上で通信可能なVM同士なら、ホスト内部でスイッチングできる構成があります。

「同じホストならどのVM同士でも必ずホスト内部だけで通信する」

誤りです。

仮想ネットワーク構成やルーティング要件などによって経路は異なります。

38. CCNAでの判断ポイント

問題でVM構成図が提示されたら、

次の順に整理します。

① 物理ホスト
② ハイパーバイザー
③ VM
④ 仮想ハードウェア
⑤ ゲストOS
⑥ vNIC
⑦ 仮想スイッチ
⑧ 物理NIC
⑨ 物理ネットワーク

特にネットワーク経路では、

VM
↓
vNIC
↓
仮想スイッチ
↓
物理NIC

という順序を識別できるようにします。

39. 障害範囲の判断ポイント

次のように考えます。

1 VMだけ異常

VM-A ×
VM-B ○
VM-C ○

→ VM-A固有の範囲を考える

同じホストの複数VMが同時異常

VM-A ×
VM-B ×
VM-C ×

→ 共有ハイパーバイザー / 物理ホスト / 共有ネットワーク経路等も考える

ただし、

複数VM異常
=
必ずハイパーバイザー障害

ではありません。

あくまで障害範囲から候補を広げます。

40. ネットワーク経路の判断ポイント

外部ネットワークへの通信

VM
↓
vNIC
↓
仮想スイッチ
↓
物理NIC
↓
物理ネットワーク

同一ホストで内部スイッチングできる場合

VM-A
↓
vNIC
↓
仮想スイッチ
↓
vNIC
↓
VM-B

この2つの違いを説明できるようにします。

41. Page008で覚える基本パターン

パターンA

VM
├─ vCPU
├─ vRAM
├─ 仮想ディスク
├─ vNIC
└─ ゲストOS

→ VMは仮想ハードウェアとゲストOSを持つ論理的コンピューター

パターンB

物理リソース
↓
ハイパーバイザー
↓
仮想ハードウェア
↓
VM

→ VMはハイパーバイザーから提供されたリソースを利用

パターンC

1 VMだけゲストOSクラッシュ
他VM正常

→ そのVM固有の障害範囲を優先

パターンD

同一ホスト上の複数VMが同時停止

→ 共有基盤も原因候補

パターンE

VM
↓
vNIC
↓
仮想スイッチ
↓
物理NIC
↓
物理ネットワーク

→ 外部ネットワークへの基本経路

パターンF

VM-A
↓
仮想スイッチ
↓
VM-B

同一ホスト・同一仮想ネットワーク。

→ 物理NICへ出ずに内部スイッチングできる構成がある

パターンG

vNIC
=
物理NIC

→ 誤り

まとめ

仮想マシンは、

ハイパーバイザーから提供された仮想ハードウェア上でゲストOSとアプリケーションを動作させる論理的なコンピューター

です。

代表的な構成要素には、

vCPU
vRAM
仮想ディスク
vNIC
ゲストOS

があります。

複数VMが同じ物理ホスト上で動作していても、各VMは独立したゲストOS環境として論理的に分離されます。

そのため、

1 VMだけの障害

と、

物理ホスト / ハイパーバイザーなど
共有基盤の障害

では影響範囲が異なります。

ネットワークでは、vNICがVM側のインターフェースになり、仮想スイッチがvNIC同士や物理ネットワーク側を接続します。

外部ネットワークへの基本経路は、

VM
↓
vNIC
↓
仮想スイッチ
↓
物理NIC
↓
物理ネットワーク

です。

一方、同一ホスト上で同じ仮想スイッチングドメインへ接続されたVM同士なら、

VM-A
↓
vNIC
↓
仮想スイッチ
↓
vNIC
↓
VM-B

のように、物理NICや外部物理スイッチへ出ずに通信できる構成があります。

Page008で最も重要なのは、

VM・ゲストOS・仮想ハードウェア・vNIC・仮想スイッチ・物理NICの役割を区別し、VMが物理ネットワークへ到達する基本経路とVM単位の障害範囲を説明できること

です。

理解確認

このページの内容を12問で確認します。

理解確認12問へ →