6
7

More than 3 years have passed since last update.

VMware Playerでネットワークを学ぶ~①仮想ネットワーク~

Last updated at Posted at 2021-05-08

最近していたAWSの勉強の中で、「自分は全然ネットワークがわかってないな…」と思ったので、サーバの勉強のためにインストールしていたVMware Playerを使っていろいろいじってみました。その結果を3回くらいに分けてまとめようと思います。

初回は、仮想ネットワークについて実際に動作確認しながらまとめます。

<全3回でやろうと思っていること>
①VMware Playerの仮想ネットワーク設定 ←今回はこれです。
 (1) VMware Playerの仮想ネットワークの種類と設定方法
 (2) NAT接続
 (3) ブリッジ接続
 (4) ホストオンリー接続
 (5) カスタム接続(ホスト接続無し)
②VyOS1.4を使ったDNS,DHCP,NATなど
③VyOS1.4とAWS VPC間のSite-to-Site VPN接続

<環境>
ホストOS: Windows10 20H2
ハイパーバイザ: VMware WorkStation 16 Player
ゲストOS①: CentOS 8
ゲストOS②: CentOS 7
image.png

(1) VMware Playerの仮想ネットワークの種類と設定方法

VMWare Playerの「仮想マシン設定」を開くとネットワークアダプタの設定が可能。
種類は以下の4種類。

  • NAT・・・デフォルトはVMNet8。インターネット接続可能。
  • ブリッジ・・・デフォルトはVMNet0。インターネット接続可能。
  • ホストオンリー・・・デフォルトはVMNet1、インターネット接続不可。
  • カスタム・・・都度設定可能。今回はゲストOS間接続用のネットワークを作る(後述)。

<仮想マシン設定画面>
image.png

それぞれの設定は設定ファイルをいじることも可能だが、今回はGUIでネットワークを構成できる仮想ネットワークエディタ(vmnetcfg)を使って実施した。導入はVMware Workstation 15 Playerでvmnetcfgを使って仮想ネットワークを設定するを参考に実施。

<vmnetcfg.exe>
image.png

(2) NAT接続

特徴

ゲストOSからインターネット接続する際にNATをしてインターネットルータにアクセスしに行っている。そのため、インターネットルータからするとホストOSから接続しに来たように見えている。
なお、VMware Player上では全部で20のネットワークを構成できるが、NAT接続ネットワークは1つしか作れない。デフォルトではVMNet8がそれにあたる。

ネットワーク設定

仮想ネットワークエディタで、下記のように設定。
VMNet情報はNAT、ホスト接続有、DHCP有。
image.png

各OSのネットワーク設定は下記の通り。

ホストOS

ホストOSのネットワーク設定
PS C:\Users\flets> ipconfig

Windows IP 構成

~中略~

イーサネット アダプター VMware Network Adapter VMnet8:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: 192.168.159.1
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .:

Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: 192.168.11.8
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: 192.168.11.1

ゲストOS①

ゲスト①のネットワーク設定
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 8.3.2011
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.159.138  netmask 255.255.255.0  broadcast 192.168.159.255
        inet6 fe80::e358:76fb:5d91:148c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b7:82:18  txqueuelen 1000  (Ethernet)
        RX packets 9  bytes 1108 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 3678 (3.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ゲストOS②

ゲスト②のネットワーク設定
[root@akiravm01 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@akiravm01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.159.136  netmask 255.255.255.0  broadcast 192.168.159.255
        inet6 fe80::2c93:65ca:b799:e762  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d3:0e:16  txqueuelen 1000  (Ethernet)
        RX packets 3610  bytes 1854236 (1.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1386  bytes 182286 (178.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ネットワーク構成図

image.png

接続検証

ホストOS→ゲストOS①、ゲストOS①→インターネットとも接続可能であることを確認した。

ホストOS→ゲストOS①

PS C:\Users\flets> ping 192.168.159.138

192.168.159.138 に ping を送信しています 32 バイトのデータ:
192.168.159.138 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.159.138 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.159.138 からの応答: バイト数 =32 時間 =5ms TTL=64
192.168.159.138 からの応答: バイト数 =32 時間 =1ms TTL=64

192.168.159.138 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 5ms、平均 = 1ms

ゲストOS①→インターネット

[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=11.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=12.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=13.5 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=9.11 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 21ms
rtt min/avg/max/mdev = 9.109/11.696/13.498/1.685 ms
[root@localhost ~]#

(3) ブリッジ接続

特徴

仮想的に構成されたブリッジ経由で、ホストOSと横並びでネットワークに接続する。
その為、ホストOSにつながったインターネットルータからはホストOSと同等の1クライアントに見える形で接続されている。
デフォルトではVMNet0が相当。

ネットワーク設定

仮想ネットワークエディタで、下記のように設定。
VMNet情報はブリッジ、ホストOS接続やDHCP設定はブリッジ接続の為不要。
image.png

ちなみにブリッジ先は「自動」になっているが、以下のように選択肢がある。
image.png

Marvell AVASTARというのがブリッジしたい先のBaffaloAirstation。
これはipconfig /allした時の説明(Description)部分に該当。

ipconfig一部抜粋
PS C:\Users\flets> ipconfig /all

Windows IP 構成

   ホスト名. . . . . . . . . . . . . . .: akirapc-surface
   プライマリ DNS サフィックス . . . . .:
   ノード タイプ . . . . . . . . . . . .: ハイブリッド
   IP ルーティング有効 . . . . . . . . .: いいえ
   WINS プロキシ有効 . . . . . . . . . .: いいえ

イーサネット アダプター vEthernet (Default Switch):

   接続固有の DNS サフィックス . . . . .:
   説明. . . . . . . . . . . . . . . . .: Hyper-V Virtual Ethernet Adapter !!!!!!!!ここ!!!!!!!!
   物理アドレス. . . . . . . . . . . . .: XX-XX-XX-XX-XX-XX
   DHCP 有効 . . . . . . . . . . . . . .: いいえ
   自動構成有効. . . . . . . . . . . . .: はい
   リンクローカル IPv6 アドレス. . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx%xx(優先)
   IPv4 アドレス . . . . . . . . . . . .: xxx.xxx.xxx.xxx(優先)
   サブネット マスク . . . . . . . . . .: 255.255.240.0
   デフォルト ゲートウェイ . . . . . . .:
   DHCPv6 IAID . . . . . . . . . . . . .: xxxxxxxxxx
   DHCPv6 クライアント DUID. . . . . . .: xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx
   DNS サーバー. . . . . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx%xx
                                          xxxx:xxxx:xxxx:xxxx:xxxx:xxxx%xx
                                          xxxx:xxxx:xxxx:xxxx:xxxx:xxxx%xx
   NetBIOS over TCP/IP . . . . . . . . .: 有効



Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .:
   説明. . . . . . . . . . . . . . . . .: Marvell AVASTAR Wireless-AC Network Controller !!!!!!!!ここ!!!!!!!!
   物理アドレス. . . . . . . . . . . . .: XX-XX-XX-XX-XX-XX
   DHCP 有効 . . . . . . . . . . . . . .: はい
   自動構成有効. . . . . . . . . . . . .: はい
   IPv6 アドレス . . . . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(優先)
   一時 IPv6 アドレス. . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(優先)
   リンクローカル IPv6 アドレス. . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx%xx(優先)
   IPv4 アドレス . . . . . . . . . . . .: 192.168.11.8(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   リース取得. . . . . . . . . . . . . .: 2021年5月15日 2:13:24
   リースの有効期限. . . . . . . . . . .: 2021年5月18日 10:45:21
   デフォルト ゲートウェイ . . . . . . .: 192.168.11.1
   DHCP サーバー . . . . . . . . . . . .: 192.168.11.1
   DHCPv6 IAID . . . . . . . . . . . . .: 62686085
   DHCPv6 クライアント DUID. . . . . . .: xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx
   DNS サーバー. . . . . . . . . . . . .: 192.168.11.1
   NetBIOS over TCP/IP . . . . . . . . .: 有効

ホストOS

横並びなので、VMNet0などの記述は無し。

ホストOSのネットワーク設定
PS C:\Users\flets> ipconfig

Windows IP 構成

~中略~

Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: 192.168.11.8
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: 192.168.11.1

ゲストOS①

ゲスト①のネットワーク設定
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.23  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::4ce4:9122:72c0:4e21  prefixlen 64  scopeid 0x20<link>
        inet6 2409:11:1360:4f00:f7b7:331a:3820:2c42  prefixlen 64  scopeid 0x0<global>
        ether 00:0c:29:b7:82:0e  txqueuelen 1000  (Ethernet)
        RX packets 19659  bytes 17414476 (16.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5030  bytes 452455 (441.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ゲストOS②

ゲスト②のネットワーク設定
[root@akiravm01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.24  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 2409:11:1360:4f00:2c6e:7637:c292:38a  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::9a5d:5a44:c45c:cc78  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d3:0e:2a  txqueuelen 1000  (Ethernet)
        RX packets 21  bytes 2496 (2.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 5547 (5.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ネットワーク構成図

image.png

接続検証

ホストOS→ゲストOS①、ゲストOS①→インターネットとも接続可能であることを確認した。

ホストOS→ゲストOS①

PS C:\Users\flets> ping 192.168.11.23

192.168.11.23 に ping を送信しています 32 バイトのデータ:
192.168.11.23 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.11.23 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.11.23 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.11.23 からの応答: バイト数 =32 時間 =1ms TTL=64

192.168.11.23 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 1ms、平均 = 0ms
PS C:\Users\flets>

ゲストOS①→インターネット

[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=14.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=15.5 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=9.19 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=17.2 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 21ms
rtt min/avg/max/mdev = 9.192/13.998/17.153/2.973 ms
[root@localhost ~]#

(4) ホストオンリー接続

特徴

ホストOSとゲストOSとを接続するためのネットワークであり、ホストOSが接続している他のネットワークとは分離されている。
すなわち、ゲストOSはホストオンリー接続でホストOSとつながっていても、インターネットにはアクセスできない。
デフォルトではVMNet1が相当する。

ネットワーク設定

仮想ネットワークエディタで、下記のように設定。
VMNet情報はホストオンリー、ホスト接続有、DHCP有。
image.png

ホストOS

ホストOSのネットワーク設定
PS C:\Users\flets> ipconfig

Windows IP 構成


~中略~

イーサネット アダプター VMware Network Adapter VMnet1:

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::bd7f:17e8:83a0:dc6f%24
   IPv4 アドレス . . . . . . . . . . . .: 192.168.25.1
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .:

Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: 192.168.11.8
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: 192.168.11.1

ゲストOS①

ゲスト①のネットワーク設定
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.25.128  netmask 255.255.255.0  broadcast 192.168.25.255
        inet6 fe80::a8f:ac4:74a6:979a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b7:82:fa  txqueuelen 1000  (Ethernet)
        RX packets 3874  bytes 291957 (285.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2094  bytes 215543 (210.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ゲストOS②

ゲスト②のネットワーク設定
[root@akiravm01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.25.129  netmask 255.255.255.0  broadcast 192.168.25.255
        inet6 fe80::9a5d:5a44:c45c:cc78  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d3:0e:2a  txqueuelen 1000  (Ethernet)
        RX packets 231  bytes 20916 (20.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 62  bytes 9921 (9.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ネットワーク構成図

image.png

接続検証

ホストOS→ゲストOS①は接続できるが、ゲストOS①→インターネットは接続不可であることを確認した。

ホストOS→ゲストOS①

PS C:\Users\flets> ping 192.168.25.128

192.168.25.128 に ping を送信しています 32 バイトのデータ:
192.168.25.128 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.25.128 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.25.128 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.25.128 からの応答: バイト数 =32 時間 =1ms TTL=64

192.168.25.128 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 1ms、平均 = 0ms
PS C:\Users\flets>

ゲストOS①→インターネット

[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
61 packets transmitted, 0 received, 100% packet loss, time 596ms

[root@localhost ~]#

(5) カスタム接続(ホスト接続無し)

特徴

ゲストOS間を接続するためのネットワーク。
ホストOSとも接続しない設定。今回はVMNet2で設定を実施。

ネットワーク設定

仮想ネットワークエディタで、下記のように設定。
VMNet情報はホストオンリー、ホスト接続無、DHCP有。

image.png

ホストOS

VMnet2が設定されていないことを確認。

ホストOSのネットワーク設定
PS C:\Users\flets> ipconfig | grep VMnet2
PS C:\Users\flets>

ゲストOS①

ゲスト①のネットワーク設定
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.109.129  netmask 255.255.255.0  broadcast 192.168.109.255
        inet6 fe80::cf76:603f:326:2260  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b7:82:04  txqueuelen 1000  (Ethernet)
        RX packets 34  bytes 6834 (6.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 554  bytes 40480 (39.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ゲストOS②

ゲスト②のネットワーク設定
[root@akiravm01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.109.134  netmask 255.255.255.0  broadcast 192.168.109.255
        inet6 fe80::9a5d:5a44:c45c:cc78  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d3:0e:2a  txqueuelen 1000  (Ethernet)
        RX packets 235  bytes 22004 (21.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 97  bytes 16275 (15.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ネットワーク構成図

image.pngimage.png

接続検証

ホストOS→ゲストOS①、ゲストOS①→インターネットとも接続不可であることを確認した。
ゲストOS①→ゲストOS②は接続可能であることを確認した。

ホストOS→ゲストOS①

PS C:\Users\flets> ping 192.168.109.129

192.168.109.129 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

192.168.109.129 の ping 統計:
    パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
PS C:\Users\flets>

ゲストOS①→インターネット

[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.109.129 icmp_seq=1 Destination Host Unreachable
From 192.168.109.129 icmp_seq=2 Destination Host Unreachable
From 192.168.109.129 icmp_seq=3 Destination Host Unreachable
From 192.168.109.129 icmp_seq=4 Destination Host Unreachable
From 192.168.109.129 icmp_seq=5 Destination Host Unreachable
From 192.168.109.129 icmp_seq=6 Destination Host Unreachable
^C
--- 8.8.8.8 ping statistics ---
9 packets transmitted, 0 received, +6 errors, 100% packet loss, time 236ms
pipe 4
[root@localhost ~]#
```

ゲストOS①→ゲストOS②

[root@localhost ~]# ping 192.168.109.134
PING 192.168.109.134 (192.168.109.134) 56(84) bytes of data.
64 bytes from 192.168.109.134: icmp_seq=1 ttl=64 time=1.66 ms
64 bytes from 192.168.109.134: icmp_seq=2 ttl=64 time=1.52 ms
64 bytes from 192.168.109.134: icmp_seq=3 ttl=64 time=1.07 ms
64 bytes from 192.168.109.134: icmp_seq=4 ttl=64 time=1.15 ms
64 bytes from 192.168.109.134: icmp_seq=5 ttl=64 time=1.83 ms
^C
--- 192.168.109.134 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 20ms
rtt min/avg/max/mdev = 1.070/1.446/1.828/0.296 ms
[root@localhost ~]#

まとめ

なるべく自分で色々設定してみながら接続検証するのを今回の目的にしておりますが、ざっくりだとは思うものの外観がつかめて良かったです。
今回学んだことを前提に、次はオープンソースのルータであるVyOSを使ってまた色々試してみようと思います。

参考

ネットワーク接続の構成(VMware Docs)
VMware Workstation 15 Playerでvmnetcfgを使って仮想ネットワークを設定する

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7