0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

KVMでWindowsServer2016VMを作成してvncでつなぐまでのメモ

Last updated at Posted at 2020-01-07

意外にまとまった日本語に記事が無いのでメモ
ホストOSはCentos7です。

参考:
https://qiita.com/yoshiyasu1111/items/8d07a4fd55116fba07f7
↑ブリッジネットワークのところはほとんどそのままです!ありがとうございます!
https://2502.net/kvm-ubuntu-linux-18-04-windows-server-2016-headless-cli/
https://mseeeen.msen.jp/make-virtual-machine-with-kvm-in-centos-7/

1.まずKVMをインストール

yum -y install libguestfs libvirt libvirt-client python-virtinst qemu-kvm virt-manager virt-top virt-viewer virt-who virt-install bridge-utils

[root@localhost iso]# lsmod | grep kvm
kvm_intel             188644  0 
kvm                   621480  1 kvm_intel
irqbypass              13503  1 kvm

2.libvirtdの起動

[root@localhost iso]# systemctl start libvirtd
[root@localhost iso]# systemctl enable libvirtd

3.ブリッジネットワークの作成

ブリッジネットワークの作成
バックアップ
# cp /etc/sysconfig/network-scripts/ifcfg-enp10s0 /root

[root@localhost ~]# nmcli d s
DEVICE      TYPE      STATE         CONNECTION 
enp10s0     ethernet  connected     enp10s0    
virbr0      bridge    connected     virbr0     
enp11s0     ethernet  disconnected  --         
enp12s0     ethernet  disconnected  --         
enp13s0     ethernet  disconnected  --         
enp14s0     ethernet  disconnected  --         
enp15s0     ethernet  disconnected  --         
enp16s0     ethernet  disconnected  --         
enp17s0     ethernet  disconnected  --         
enp18s0     ethernet  disconnected  --         
enp9s0      ethernet  disconnected  --         
enp1s0f0    ethernet  unavailable   --         
enp1s0f1    ethernet  unavailable   --         
lo          loopback  unmanaged     --         
virbr0-nic  tun       unmanaged     --  

デバイス名br0というブリッジをnmcli c aコマンドで作成します。
作成した後nmcli c sコマンドで確認するとbridge-br0が追加されています。
作成したbridge-br0のスパニングツリーの設定を無効にします。
そして、bridge-br0のIPアドレスを先程調べたIPアドレス10.10.5.200/16に設定し、
ゲートウェイ、DNSサーバの設定をします。

[root@localhost ~]# nmcli c m virbr0 ipv4.method manual ipv4.addresses 10.10.5.200/16
[root@localhost ~]# systemctl restart network
[root@localhost ~]# 
[root@localhost ~]# ifup virbr0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)
[root@localhost ~]# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: enp10s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 10.10.2.141/16 brd 10.10.255.255 scope global noprefixroute enp10s0
       valid_lft forever preferred_lft forever
14: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    inet 10.10.5.200/16 brd 10.10.255.255 scope global noprefixroute virbr0
       valid_lft forever preferred_lft forever


# デバイス名br0というブリッジを作成
$ nmcli connection add type bridge ifname br0
接続 'bridge-br0' (ae86c45c-7740-4433-90f3-8e9f4354905b) が正常に追加されました。

# 接続情報の表示をすると、DEVICE名br0、接続名bridge-br0が追加されている。
[root@localhost ~]# nmcli connection add type bridge ifname br0
Connection 'bridge-br0' (6f9beae9-c703-4df4-bf2e-621d6b1c4b23) successfully added.
[root@localhost ~]# nmcli d s
DEVICE      TYPE      STATE                                  CONNECTION 
enp10s0     ethernet  connected                              enp10s0    
virbr0      bridge    connected                              virbr0     
br0         bridge    connecting (getting IP configuration)  bridge-br0

# bridge-br0のスパニングツリーが有効になっている
[root@localhost ~]# nmcli connection show bridge-br0 | grep bridge.stp
bridge.stp:                             yes

# bridge-br0のスパニングツリーを無効にする
[root@localhost ~]# nmcli connection modify bridge-br0 bridge.stp no

# bridge-br0のスパニングツリーが無効になっている
[root@localhost ~]# nmcli connection show bridge-br0 | grep bridge.stp
bridge.stp:                             no

# bridge-br0のIPアドレス、ゲートウェイ、DNSサーバの設定をします。
# IPアドレスは先程調べた値を指定します。
$ nmcli connection modify bridge-br0 ipv4.method manual ipv4.addresses "10.10.2.141/16" ipv4.gateway "10.10.0.254" ipv4.dns "8.8.8.8"


ブリッジbridge-br0に物理インターフェースenp10s0を追加します。
もともとenp10s0が接続していたenp10s0は削除してしまいます。

# ブリッジbridge-br0にデバイスenp10s0を接続タイプbridge-slaveとして追加する
[root@localhost ~]# nmcli connection add type bridge-slave ifname enp10s0 master bridge-br0
Connection 'bridge-slave-enp10s0' (32e616ed-f209-46b7-842c-92538f281787) successfully added.

# 接続の一覧表示。bridge-br0が追加されています。

[root@localhost ~]# nmcli c s
NAME                  UUID                                  TYPE      DEVICE  
bridge-br0            6f9beae9-c703-4df4-bf2e-621d6b1c4b23  bridge    br0     
enp10s0               bc1f0354-a0d4-4e41-91fc-3d420d6fd5db  ethernet  enp10s0 
virbr0                82b3ea70-e0cf-4b05-a709-c42f4b40c1ab  bridge    virbr0  
bridge-slave-enp10s0  32e616ed-f209-46b7-842c-92538f281787  ethernet  --      
enp11s0               cc812463-8cc9-43a2-9845-807e0318780a  ethernet  --      
enp12s0               4cc7705d-b94c-4ead-8673-922342d8fb24  ethernet  --      
enp13s0               fd0fdf28-2fc3-446a-9419-eb081486959b  ethernet  --      
enp14s0               eaa2d0ad-6332-481c-aa63-6fc92421c924  ethernet  --      
enp15s0               a92d0934-20d5-4b0b-ba9e-039b9f3b618f  ethernet  --      
enp16s0               2e914514-77bc-4a8f-925e-d4f4a71710c7  ethernet  --      
enp17s0               bf9421de-43fb-4e87-b433-86a9735f85ce  ethernet  --      
enp18s0               7cee26d1-1bcc-4bbb-85b4-70f169912f5e  ethernet  --      
enp1s0f0              6d8b2af8-d300-4fae-9daf-5d90c482dc4f  ethernet  --      
enp1s0f1              d36f84d1-2cb7-4d9f-bcb8-827e95306c61  ethernet  --      
enp9s0                fe4db18c-6d86-4a5e-aa0e-677a161800aa  ethernet  --

# 不要になったenp10s0を削除します。
[root@localhost ~]# nmcli connection delete enp10s0
Connection 'enp10s0' (bc1f0354-a0d4-4e41-91fc-3d420d6fd5db) successfully deleted.

# bridge-slave-enp7s0という接続が出来ていて、enp7s0が接続されています。
$ nmcli connection show 
NAME                 UUID                                  TYPE      DEVICE 
bridge-br0           ae86c45c-7740-4433-90f3-8e9f4354905b  bridge    br0    
bridge-slave-enp7s0  4686b212-a687-463f-ba8e-0f0d42bad827  ethernet  enp7s0 
virbr0               1244d4ca-0688-48ae-8bbf-bf199c197c1e  bridge    virbr0 

現在のゲストOSのインターフェースvnet0はvirtbr0に接続されています。
これをbr0に接続するように変更します。
[root@localhost ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.006bf16ff424       no              enp10s0
virbr0          8000.5254006164ca       yes             virbr0-nic



モジュールのインストール
ブリッジデバイス経由のパケットにiptablesの適用を行わない設定をします。
[root@localhost ~]# tail  /etc/sysctl.conf
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

[root@localhost ~]# modprobe br_netfilter
[root@localhost ~]# modprobe bridge
[root@localhost ~]# lsmod | grep bridge
bridge                151336  0 
stp                    12976  1 bridge
llc                    14552  2 stp,bridge
[root@localhost ~]# sysctl -p
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

4. WindowsVMインストール

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  79G     0   79G   0% /dev
tmpfs                     79G     0   79G   0% /dev/shm
tmpfs                     79G  571M   78G   1% /run
tmpfs                     79G     0   79G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G   13G   38G  25% /
/dev/sda1               1014M  151M  864M  15% /boot
/dev/mapper/centos-home  224G   33M  224G   1% /home
tmpfs                     16G     0   16G   0% /run/user/0
[root@localhost ~]# virt-install \
--name win2016 \
--ram 16384 \
--disk path=/home/win2016/win2016.img,size=50,sparse=true \
--vcpus 4 \
--os-type windows \
--network bridge=br0 \
--cdrom /var/lib/libvirt/images/Win2016.ISO \
--vnc \
--vncport=5901 \
--vnclisten=0.0.0.0

5.WindowsServerVMにつないでみる

先にVNCビュアーをダウンロードしておきます
https://www.realvnc.com/en/connect/download/viewer/

ポートフォワード
踏み台へ
ssh fumidai@xx.xx.xx.xx -L 59001:localhost:5901
HVへ
ssh root@[hostのip] -L 5901:localhost:5901

踏み台なくても接続できる場合は、直接5901番にポートフォワードしてください。

これで手元からWindowsVMへ接続できるようになる

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?