LoginSignup
11
11

More than 3 years have passed since last update.

KVMの仮想ネットワークをブリッジモードにして、VMを物理ネットワークセグメントに参加させてみた

Last updated at Posted at 2018-06-23

libvirtを使用してVMを作成すると、デフォルトではNAT環境下に置かれます。
なので、ホストが接続しているネットワークセグメントには存在しておらず、NATを通して外部と通信することになります。
そこで今回はNATを通さなくても外部と通信でき、ホストと同一セグメント上にVMを作成する方法を書きたいと思います。

環境

  • HOST
    • CentOS 7.5 (CUI)
    • NIC eth0
    • bridge br0
    • virtual NIC vnet0
  • VM
    • CentOS 7.5
    • NIC eth0

完成図のイメージ

KVM.jpg

前提

  • 仮想化に必要な各種パッケージ(libvirtなど)はインストール済み
  • virt-installを使用してVMの作成した経験あり

上記に関係する説明は省略しますので、インストールがまだの人や不安な人は以下のページを参考にしてください。

ホストでブリッジを作成

まずはホストでブリッジを作成して、そのブリッジをeth0に接続してみたいと思います。

# nmcli con add type bridge ifname br0                     // ブリッジの作成
# nmcli con mod eth0 master bridge-br0 slave-type bridge   // eth0をbr0に接続
# systemctl restart network

// 以下確認
# nmcli con

NAME        UUID   TYPE      DEVICE  
bridge-br0  xxxxx  bridge    br0                    // br0が作成されました
eht0        xxxxx  ethernet  eth0

# brctl show
bridge name  bridge id    STP enabled   interfaces
br0          xxxxxxx         no           eth0             // eth0がbr0に接続されました

これでブリッジの作成は完了です。

VMの作成

virt-installを使用してVMを作成しましょう。

# virt-install --name demo --memory 1024 --vcpus 1 --disk size=20 --location /path/to/iso --graphics none --network bridge=br0 --extra-args 'console=tty0 console=ttyS0'

オプションのnetworkに作成したブリッジを指定すると、デフォルトのNATではなく、ホストと同一セグメント下にVMを作成
できます。インストール中にネットワーク設定をする際は、スタティックかDHCPサーバがあればDHCPを設定しましょう。

VMの作成が完了したら、ホストのブリッジに仮想インターフェースが接続されているか見てみましょう。

# brctl show
bridge name  bridge id    STP enabled   interfaces
br0          xxxxxxx         no           eth0
                                          vnet0           // 仮想インターフェース

このように正しくVMが作成できていれば、仮想インターフェースが増えていると思います。

これでVMをホストの同一セグメントに参加させることができました!

参考

11
11
1

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