KVMで仮想マシンをホストマシンと同じネットワークに繋ぐ方法
概要
Linuxカーネルを使用した仮想環境にKVMがあります。
そのため、Linuxで仮想環境を使うのであればKVMを使うという選択肢があります。
ここでは、UbuntuでKVMを使い、仮想マシンから外のネットワークに接続する方法について説明します。
環境
- Ubuntu 18.04
- KVM
ブリッジの設定
KVMで仮想マシンから外のネットワークに繋ぐ方法として、ブリッジを使う方法があります。
ブリッジは、L2スイッチのようなもので、これを使うことで仮想マシンをホストのネットワークと同じ場所に接続することができます。
Ubuntuの場合、ブリッジを含めたネットワークの設定はnetplanを使って行うため、/etc/netplanディレクトリ以下にある設定ファイルを変更します。
ファイルは適切なものを使用しましょう。
network:
version: 2
renderer: NetworkManager
ethernets:
enp3s0:
dhcp4: yes
bridges:
br0:
interfaces:
- enp3s0
dhcp4: yes
mtu: 65536
parameters:
forward-delay: 0
stp: no
optional: true
ブリッジ名はbr0です。
ネットワークインターフェース名としてenp3s0を使用しています。
インターフェース名はifconfigなどで調べることができるため、適切な名前に変更してください。
mtuについて、大きな値にしてあります。理由としては、MTUによるパケットの分割を減らし、高速な通信をするためです。
もしホストマシンを固定IPアドレスにする場合は、次のようにします。
network:
version: 2
renderer: NetworkManager
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces:
- enp3s0
dhcp4: no
addresses:
- 192.168.0.2/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 192.168.0.1
mtu: 65536
parameters:
forward-delay: 0
stp: no
optional: true
設定として、dhcp4: no
とすることでDHCPによるネットワークの設定をやめて、それぞれ適切なIPアドレスやゲートウェイなどを記述します。
最後に、次のコマンドを実行して設定を反映させます。
# netplan apply
仮想マシンの設定
仮想マシンでは、作成したブリッジを使うようにする必要があります。
今回で言えば、ブリッジ名はbr0なので、仮想マシンが使用するネットワークインターフェースでbr0を指定します。
これで、仮想マシン上からインターネット通信ができるようになります。
さいごに
私は、KVMでサーバを構築しているのですがKVMの情報はあまり多くなく、つまづいた時に調べるのが大変です。
そのような悩みを抱えた人の助けになれれば幸いです。