KVMのネットワーク設定

2/14/2026

Ubuntu

仮想マシンのIPアドレスがホストマシンとは異なっているようだったので、ホストマシンと同じネットワークに接続できるようにブリッジ接続を設定。

ChatGPT生成画像

ゴール

宅内LANのネットワーク(192.168.11.1)に仮想マシンを直接接続する。

設定前後:

  • NAT(仮想マシンをとりあえず作成するとNATで接続される)
    → ゲストは外に出られるが、外からは見えにくい

  • ブリッジ接続
    → ホストのNICを仮想スイッチ化し、ゲストも同じLANに参加

物理NIC ←→ Linux bridge ←→ ゲストNIC、という構造

手順

初期状態の確認

参考にしたサイトやChatGPTアドバイスに一貫性はなかったが、とにかく元の有線接続のNICを調べておく必要がある。有線接続であれば「enp3s0」、Wifiは「wlp2s0」の様になっている。

# ネットワークデバイスの確認
~$ nmcli device 
DEVICE  TYPE      STATE            CONNECTION 
enp3s0  ethernet  接続済み         有線接続   
lo      loopback  接続済み (外部)  lo         
virbr0  bridge    接続済み (外部)  virbr0     
wlp5s2  wifi      利用不可         --         
# ネットワーク接続の確認
~$ nmcli connection show 
NAME      UUID          TYPE      DEVICE 
有線接続  ac34a057-...  ethernet  enp3s0 
lo        5386bba5-...  loopback  lo     
virbr0    429508a2-...  bridge    virbr0 
# IP Addressの確認
~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether e0:3f:49:81:99:85 brd ff:ff:ff:ff:ff:ff
    altname enxe03f49819985
    inet 192.168.11.22/24 brd 192.168.11.255 scope global dynamic noprefixroute enp3s0
       valid_lft 172389sec preferred_lft 172389sec
    inet6 fe80::10ac:eeb:cab1:79de/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: wlp5s2: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:11:09:5a:de:26 brd ff:ff:ff:ff:ff:ff
    altname wlx0011095ade26
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:d6:e1:41 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

IP Addressについては固定IPに設定しない限りは必須ではない。(ifconfigが使い慣れていたが現在では非推奨となりipを使うべきなようだ。ifconfigを使用するには、net-toolsをインストールする必要あり)

ブリッジの作成

作成を始めると元々の有線接続が遮断されるので注意が必要。
# ブリッジ接続「br0」を作成
~$ nmcli connection add type bridge ifname br0
接続 'bridge-br0' (fdf7ddf1-5e18-48b6-b61d-314f0cbc7d23) が正常に追加されました。

# デバイス「br0」が追加された
~$ nmcli device 
DEVICE  TYPE      STATE                     CONNECTION 
enp3s0  ethernet  接続済み                  有線接続   
br0     bridge    接続中 (IP 設定を取得中)  bridge-br0 
lo      loopback  接続済み (外部)           lo         
virbr0  bridge    接続済み (外部)           virbr0     
wlp5s2  wifi      利用不可                  --    

# 接続「bridge-br0」が追加
~$ nmcli connection show 
NAME        UUID                                  TYPE      DEVICE 
有線接続    8af73a14-4fe2-4eed-b040-1c02c82cd06f  ethernet  enp3s0 
bridge-br0  49aac0a4-1c51-4715-941a-3851dfc87546  bridge    br0    
lo          083084dc-665f-474f-80e4-ee358eb50982  loopback  lo     
virbr0      e0180d45-dc27-473f-8cfa-8516b156cfbf  bridge    virbr0 

KDEのネットワーク設定でもブリッジに「bridge-br0」が追加された
追加はされるものの、この時点では接続できない状態。

スパニングツリー無効化

ブリッジはデフォルトではスパニングツリーという設定が有効になっている。これは複数のネットワークにおいて、通信がループしてしまうのを防ぐためのプロトコルという(わかったようなわからないような)ものだが、とりあえず今回のような構成では余計な通信が発生するようなので無効にする。

# スパニングツリー無効化
~$ nmcli connection modify bridge-br0 bridge.stp no     
# 設定の確認
~$ nmcli connection show bridge-br0 | grep bridge.stp
bridge.stp:                             いいえ

物理NICをブリッジポートに接続する

# ブリッジ「br0」にデバイス「enp3s0」をbridge-slaveとして接続
~$ nmcli connection add type bridge-slave ifname enp3s0 master br0
接続 'bridge-slave-enp3s0' (8efda771-dba9-4e6f-8de5-eae1d6f3de69) が正常に追加されました。
この時点でもまだネットは切れたまま。
# 接続に「bridge-slave-enp3s0」が追加された
~$ nmcli connection show NAME UUID TYPE DEVICE 有線接続 8af73a14-4fe2-4eed-b040-1c02c82cd06f ethernet enp3s0 bridge-br0 49aac0a4-1c51-4715-941a-3851dfc87546 bridge br0 lo 083084dc-665f-474f-80e4-ee358eb50982 loopback lo virbr0 e0180d45-dc27-473f-8cfa-8516b156cfbf bridge virbr0 bridge-slave-enp3s0 e6982b8a-cafb-46bb-a34f-e7720f888c3b ethernet --

旧NIC設定を無効化してブリッジを有効化

# 元の「有線接続」を無効化
~$ nmcli connection down 有線接続
接続 '有線接続' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
# 「bridge-br0」を有効化
~$ nmcli connection up bridge-br0
接続が正常にアクティベートされました (controller waiting for ports) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/6)
参考サイトでは、有線接続自体を削除するとなっていたが、上記のdownのみで問題なさそう。以上でホスト側の設定は完了。

仮想マシンのネットワーク設定

最後に仮想マシンの接続を、NATからブリッジ「br0」へ変更すれば完了。これにて全て完了。ゲストOS側でIP Addressを確認すると、192.168.11.71となっていた。
ネットワークソース: ブリッジデバイス
デバイス: br0、モデル:vertio

速度について

実際の速度は変わったのか、体感だけではわかりにくいので計測。

バーチャルブリッジ「virbr0」の時

途中処理が増えるからかホストに対して半分程度

今回作成したブリッジ接続「bridge-br0」

Down側はほぼホストと同じ

ホスト側

ホスト側も計測。複数回実施するとこちらのほうがやはり安定感はある

速度は早くなることが確認できた。元々の速度も対して遅くはないためあまり体感は変わらない。おそらく非力なCPUで少々重めのWindows 11を動かしていることのほうがボトルネック。

参考にしたサイト

人気の投稿

ラベル

Outdoor (23) 3D Printer (12) Raspberry Pi (10) Learning (9) Movie (7) Ubuntu (7) Pico (6) FreeCAD (5) Game (5) Blog (4) MSFS (4) Python (4) Gadget (1) Unity (1)

About

思い付きで始めた様々なコトをやった感想やメモ、Web上で見つけた後々役立ちそうなコトなどをまとめてます。 万人の役に立つコンテンツではなく自分用メモ的な内容ですが、何かの役に立てば幸いです

このブログを検索

連絡フォーム

名前

メール *

メッセージ *

QooQ