KVMですでに運用しているHyper-V Server2019のようなものを作ってみようと思い、Ubuntu 24.04LTS+Cockpitでサーバーを構築しました。
しかしデフォルトの状態だと、ゲストのがNAT越しでの接続となり、セグメントが分かれることが気に入らなかったので、ホストと同じセグメントで接続されるようなネットワーク構成を作ることにしました。
現状まだ完璧に理解が追いついておらず、至らぬ点等ありましたらコメントいただければと思います。
ちなみに前回の記事はコチラ。

現状把握
下記コマンドでネットワークデバイスの確認をしていきます。
nmcli device

ネットワークデバイスが多いため以下の通り整理しました。
enp1s0 | 物理LANポート。実際にLANケーブルが接続されているポート。 |
fake0 | Cockpitのソフトウェア更新エラー対策のダミーポート。今回は無視。 |
lo | ループバックポート。今回は無視。 |
virbr0 | デフォルトで作成された仮想ブリッジ。NAT構成。最終的には削除する。 |
wlp2s0 | WiFi搭載機ですが今回は利用しないため無視。 |
p2p-dev-wlp2s0 | 同上 |
enp3s0 | 物理LANポートの二本目。LANケーブルもつながっていないため今回は無視。 |
IPアドレスなども確認しておきます。
ip a

既設のブリッジデバイスも確認します。
brctl show

仮想ブリッジの作成・接続
既設のブリッジをどうこうするより、新しく作る方法がスタンダードのようですので則っていきます。
Hyper-V畑育ちなので、ブリッジという名前よりも仮想スイッチという名前で呼びたくなるので、ブリッジデバイスをvsw0という名前で追加していきます。文化や思想より自分の理解優先。
sudo nmcli con add type bridge ifname vsw0 con-name vsw0

作成したブリッジを確認します。
brctl show

物理ポートenp1s0を作成したブリッジvsw0のメンバーにします。これでポートがスイッチの1ポートになり下がるイメージです。
sudo nmcli con add type ethernet ifname enp1s0 master vsw0

コネクションを確認します。
nmcli con

ホストに振りたいIPアドレスをコネクションに定義します。ここも理解に苦しんだ部分ですが、コネクションとは接続定義を指す概念のようです。特にレスポンスなく終わります。
sudo nmcli con modify vsw0 ipv4.addresses 192.168.10.240/24
sudo nmcli con modify vsw0 ipv4.gateway 192.168.10.1
sudo nmcli con modify vsw0 ipv4.dns 192.168.10.1
sudo nmcli con modify vsw0 ipv4.method manual
ここで、既存のコネクションを削除していきます。ターミナル等で接続していた場合は接続が切れますのでご注意ください。
sudo nmcli con delete "Wired connection 1"
作成したブリッジの接続を有効にします。
sudo nmcli con up vsw0
定義したIPアドレスで接続できればOKです。
今後ゲストはvsw0に接続をすることで、NATを回避したブリッジ接続ができます。
NATのリソースももったいないので削除していきます。
sudo virsh net-destroy default
sudo virsh net-autostart --disable default
sudo virsh net-undefine default
ブリッジの削除を確認します。
brctl show

総括
今までHyper-Vでは「外部スイッチ」という名称で作成していたものを、Linuxで表現した格好です。ゲストはホストと同じセグメントで接続され、ルーターからDHCPでIPを振られます。
ゲストのIPアドレス等はゲストのネットワークマネージャーなどで設定していけば、固定IPももちろん可能です。
今回理解に苦しんだ部分は、コネクションという「接続定義」がデバイスとは独立していることと、ホストのIPをブリッジに定義するという2点でした。Hyper-Vであればこれらは1対として考えるため別々で管理されておらず直感的です。その分柔軟性がないということにはなりますが。
Hyper-Vで構成されているものにさらに近づけることも可能ですが、若干手間も増えたりしますので、これらを補足して図で説明できるように理解したころに記事を上げたいと思います。
ちなみに、今回使用した機材はコチラ。教材として十分であるにもかかわらず、小型で安価な点が気に入っています。
コメント