Hyper-Vのネットワーク設定についての覚え書き

この記事は、[Fujitsu Advent Calender 2枚目](http://qiita.com/advent-calendar/2016/fujitsu_ext)の 3日目の記事（※）です。
（※3日目が空いていたので12/24に書き込んでいます）

##はじめに
以下は、会社・組織を代表するものではなく、個人の意見です。

筆者は会社にて、ソフトウェア・サービス企画とか
自社他社比較（ベンチマーク）とかを行っています。
また、趣味でいろんなクラウドのウォッチをしてます。

今回は、Windows10でHyper-Vの設定をしたときに、
「仮想マシンがインターネットに繋がらない！？」というトラブルにあったので
Hyper-Vのネットワーク設定がどういう概念なのかと、
仮想マシンのインターネットへの接続方法を簡単に書きます。
個人の勝手な理解と解説ですから、
間違っていたりするかもしれませんのであしからず。

##結論
・Hyper-Vを利用する際に意識すべきネットワークの概念は3つ
　　(a)仮想スイッチを作成する
　　(b)仮想NICを作成する
　　(c)物理NICを仮想スイッチにバインドする
・Hyper-Vのネットワーク設定は大きく分けて以下の4種類
　　(1)外部ネットワーク＋管理オペレーティングシステムにネットワークアダプタの共有を許可する
　　(2)外部ネットワーク＋管理オペレーティングシステムにネットワークアダプタの共有を許可しない
　　(3)内部ネットワーク
　　(4)プライベートネットワーク
・仮想マシンをインターネットに直接接続する場合は(1)か(2)の設定をしましょう。

##検証環境（うちのマシン）
OS（ホスト）：Windows 10 Pro
OS（仮想マシン）：CentOS 6.7
ハイパーバイザー：Hyper-V

CPU：Intel Corei5-6500T @ 2.5GHz（4コア/4スレッド、TDP35W）
メモリ：16GB（DDR3L 1600MHz SoDIMM 8GB✕2）
SSD：500GB（2.5インチ、SATA）
NIC：2個（1000BASE-T✕2）
その他：筐体はshuttleの1.3Lスリムベアボーン「DH170」

うちのPCにはなぜか物理NICが2つあります。
ちなみに、ホストOSの
「ネットワークと共有センター＞アダプターの設定の変更」
から見えてるネットワークアダプターはこんな感じ。
![Capu041.png](https://qiita-image-store.s3.amazonaws.com/0/154954/2439f952-e4d7-820a-ce52-35fc035b9438.png)

ネットワーク接続を図にするとこんな感じです。
![01.png](https://qiita-image-store.s3.amazonaws.com/0/154954/33e1b5e5-003a-f5cd-f21d-97ef9eff7317.png)

###余談：うちのPC自慢
  「省電力・小さい・サクサク」というコンセプトで選びました。
  省電力：i5-6500T、DDR3L、SSD
  小さい：DH170
  サクサク：SSD
  「3Dゲームをしない」、「重いデータは外付けHDDへ保存」と割り切って、
  使い回しのいい母艦に仕上げました。
  実測20～30Wでキビキビ動いてくれてお気に入りです。

このPCの反省点
・GPU刺せない：こんなにAIが流行ると思ってなかった。
・ファンがある：ファンレスにしたかったなぁ。（大きさ・スペックとの兼ね合い）
・次回はM.2 SSDに挑戦したい。
***

##Hyper-Vのネットワーク設定概要
Hyper-Vを利用する際に意識すべきネットワークの概念は以下の3つです。
（ニュアンスは後ろの絵から読み取ってください。）

(a)仮想スイッチを作成する
　　仮想スイッチを作成します。
(b)仮想NICを作成する
　　ホストOSに接続するための仮想NICを作成し、仮想スイッチに接続します。
(c)物理NICを仮想スイッチにバインドする
　　ホストOSと物理NICの接続を切り、仮想スイッチと物理NICへ接続しなおします。

「Hyper-Vマネージャ」では、
「Hyper-Vマネージャ＞仮想スイッチマネージャ」で仮想スイッチを作成する際に、
上の3つのネットワークをどのように構成するかを選択・設定します。
この際に設定できるのは以下の4通りの方法です。

(1)外部ネットワーク＋管理オペレーティングシステムにネットワークアダプタの共有を許可する
(2)外部ネットワーク＋管理オペレーティングシステムにネットワークアダプタの共有を許可しない
(3)内部ネットワーク
(4)プライベートネットワーク

それぞれの設定について解説します。

###(1)外部ネットワーク＋管理オペレーティングシステムにネットワークアダプタの共有を許可する
![Capu035.png](https://qiita-image-store.s3.amazonaws.com/0/154954/081d4fc9-ddb0-3f18-00fa-d51fe916d547.png)

仮想スイッチの作成時に、
接続の種類で「外部ネットワーク」を選択し、
「管理オペレーティングシステムにこのネットワークアダプタの共有を許可する」のチェックを入れると、
(a)と(b)と(c)が実行されます。
![02.png](https://qiita-image-store.s3.amazonaws.com/0/154954/9d8cc8b4-d9b1-e333-2942-014d6ffb2ae4.png)

後に仮想マシン用スイッチを作成し、
仮想スイッチと接続することで、
仮想スイッチを介して
ホストOSと仮想マシンと物理NICを接続することができます。
1つの物理NICで、外部とホストOSと仮想マシンの通信を行えるようになります。
![03.png](https://qiita-image-store.s3.amazonaws.com/0/154954/e8af71b9-4f61-c2a2-edc2-7e2818c4fbcb.png)

###(2)外部ネットワーク＋管理オペレーティングシステムにネットワークアダプタの共有を許可しない
![Capu036.png](https://qiita-image-store.s3.amazonaws.com/0/154954/4f58c776-dbed-97f2-c5b0-5b033a54cf2b.png)

仮想スイッチの作成時に、
接続の種類で「外部ネットワーク」を選択し、
「管理オペレーティングシステムにこのネットワークアダプタの共有を許可する」のチェックを外すと、
(a)と(c)が実行されます。
![04.png](https://qiita-image-store.s3.amazonaws.com/0/154954/b543e2f4-4a3e-a0a8-29a3-81d674bd7ae7.png)

後に仮想マシン用スイッチを作成し、
仮想スイッチと接続することで、
仮想スイッチを介して
仮想マシンと物理NICを接続することができます。
ホストOSの通信と仮想マシン系の通信を分ける場合はこの設定を行います。
![05.png](https://qiita-image-store.s3.amazonaws.com/0/154954/4f06b1b0-b184-66b0-9e52-32e5eef4f593.png)

###(3)内部ネットワーク
![Capu037.png](https://qiita-image-store.s3.amazonaws.com/0/154954/9ec7f0dd-8cce-2f2e-a7c9-1524f7ff82fe.png)

仮想スイッチの作成時に、
接続の種類で「内部ネットワーク」を選択すると、
(a)と(b)が実行されます。
![06.png](https://qiita-image-store.s3.amazonaws.com/0/154954/f0a19c03-208a-d461-4e8b-b5b1b41d5954.png)

後に仮想マシン用スイッチを作成し、
仮想スイッチと接続することで、
仮想スイッチを介して
ホストOSと仮想マシンを内部接続することができます。
ホストOSは外部につなぎたいけれど、
仮想マシンは外部につなぎたくない場合はこの設定を行います。
![07.png](https://qiita-image-store.s3.amazonaws.com/0/154954/a9c89f7a-a7fa-27d4-44b4-b87695908bd8.png)

###(4)プライベートネットワーク
![Capu039.png](https://qiita-image-store.s3.amazonaws.com/0/154954/13468054-4a87-b32f-5e35-322d78b2601d.png)

仮想スイッチの作成時に、
接続の種類で「プライベートネットワーク」を選択すると、
(a)のみが実行されます。
![08.png](https://qiita-image-store.s3.amazonaws.com/0/154954/78fcc873-d113-1ecc-b568-a3d1e21ab38b.png)

後に仮想マシン用スイッチを作成し、
仮想スイッチと接続することで、
仮想マシン系のみの独立したネットワークを作成することができます。
![09.png](https://qiita-image-store.s3.amazonaws.com/0/154954/35b10a9b-ae48-04d2-94e7-bdd69ecf5afa.png)

##最後に
なんとなくうちのマシン環境に引きずられて、
ネットワークの図を物理NIC✕2で書いたけれど、
物理NIC✕1で書いたほうが分かりやすかったかも。
まぁいいや。