Hyper-V内部ネットワーク設定(固定IP)


初めに

・Hyper-Vにおける内部の仮想ネットワーク設定方法
・IPはcentos内のifcfg(インターフェース設定ファイル)で固定
・サンプルのOSはCentOS7とUbuntu(20.04 desktop)
・多分もっと良い方法はあるかと

ざっくり

  1. 内部の仮想スイッチを作成
  2. 作成したスイッチをホストのネットワークと連携(内部からのネットワーク接続を可能とするため)
  3. 仮想マシンにネットワークアダプターとして、スイッチを設定
  4. インターフェース設定ファイルに記述し、設定再起動

詳細(ざっくりに沿って)

1.内部の仮想スイッチを作成

1.1. ツールバーの操作から「仮想スイッチ マネージャー」を選択

1.2. 左側で「新しい仮想ネットワークスイッチ」、右側で「内部」を選択し、「新しい仮想スイッチの作成」のボタンを押す

1.3. 名前にスイッチの名称を設定(ここではvsw-internal)し、「適用」ボタン⇒「OK」ボタンを押す

2. 作成したスイッチをホストのネットワークと連携

2.1. インターネットに接続しているしているネットワークのプロパティを開き、共有タブから作成したスイッチの接続を許可する


※コンパネからの「ネットワーク接続」等から表示できるはず
※ホスト再起動したら、毎回オンオフをやらないといけないっぽい

3. 仮想マシンにネットワークアダプターとして、スイッチを設定

3.1. Hyper-VマネージャーのOSの設定を開き、ネットワークアダプターに作成したスイッチを設定し、「適用」⇒「OK」を押す


※仮想環境を右クリックすれば「設定」を選択し、ウィンドウを表示できる

4. インターフェース設定ファイルに記述し、設定再起動

4.1. ホスト側で「ipconfig」等を行い、作成したスイッチのIPv4とサブネットの設定を確認する


※こちらで試したサンプルではこのような感じ

4.2. OS内からインターフェースファイルを編集する

4.2.1. CentOS

cd /etc/sysconfig/network-scripts
vi ifcfg-eth0
編集内容
-ONBOOT=no
+ONBOOT=yes

-BOOTPROTO=dhcp
+BOOTPROTO=static

+IPADDR=[IPV4の先頭3つ].[任意で設定]
+DNS1=[IPV4]
+NETMASK=[サブネットのIP]
+GATEWAY=[IPV4]
設定例(上記ipconfig時における例)
IPADDR=192.168.137.55
DNS1=192.168.137.1
NETMASK=255.255.255.0
GATEWAY=192.168.137.1

4.2.2. Ubuntu

cd /etc/netplan
sudo vi 10-network-manager.yaml

※10-network-manager.yamlは新規作成

設定例(上記ipconfig時における例)
10-network-manager.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.137.55/24]
      gateway4: 192.168.137.1
      nameservers:
        addresses: [192.168.137.1]

4.3. ネットワークインターフェースの再起動

4.3.1. centos

ifdown ifcfg-eth0
ifup ifcfg-eth0

4.3.2. ubuntu

sudo netplan apply

ネットの確認方法

  1. pingでgoogle.comなどにつないで、ネット接続、名称解決ができているかの確認
  2. TeraTerm 等でIPADDRの接続先にssh接続確認できるかを確認 とか、、

現在調査中

ホストを再起動した場合は、2.1 の画面で、一旦チェックを外して設定後、再度チェックを入れて設定しないと、接続できないみたい、、、なんか良い方法を模索中、、、