NAT接続のままでは「外部のPCから仮想マシンに直接SSH接続する」「仮想マシンをWebサーバーとして一般公開する」といったことができません。
仮想マシンをホストサーバーと同じLANに参加させ、独自のIPアドレスを持たせるには「ブリッジ接続(Network Bridge)」の設定が必要です。
今回は、GUIを一切使わず、nmcli コマンドだけで完結する仮想ブリッジの構築手順を解説します。
⚠️ 作業前の重要注意(ネットワーク切断リスク)
リモート環境(SSH経由)でホストサーバーの物理ネットワーク設定を変更する場合、設定を間違えるとホストサーバー自体に二度と接続できなくなる(完全な通信遮断)リスクがあります。
- 可能な限り、ディスプレイとキーボードを直接繋いだローカル環境(コンソール環境)で作業してください。
- リモート環境で作業する場合は、タイマーを使って数分後に自動的に設定を元に戻す仕組み(
nmcli connection upの自動復旧を設定するなど)を用意するか、最悪の場合に備えてサーバーの強制再起動やシリアルコンソールが使える状態で行ってください。
1. 物理インターフェース名の確認
まずは、現在インターネットやLANに接続しているホストサーバーの「物理ネットワークインターフェース名(NIC名)」を確認します。
[root@almalinux ~]# nmcli device
DEVICE TYPE STATE CONNECTION
enp1s0 ethernet 接続済み enp1s0
lo loopback 管理外 --
virbr0 bridge 管理外 --- この例では、外部と通信している物理デバイス名は
enp1s0、そのコネクション名はenp1s0であることが分かります。 - ※環境によって
eth0やenp1s0f0など名前が異なりますので、自身の環境に合わせて読み替えてください。
2. 仮想ブリッジ(br0)の作成
新しく作成する仮想ブリッジの名前を br0 として定義します。
[root@almalinux ~]# nmcli connection add type bridge autoconnect yes con-name br0 ifname br0ブリッジ自体にホストサーバーのIPアドレスを引き継がせるため、ここで静的IPアドレス(固定IP)を割り当てます。
[root@almalinux ~]# nmcli connection modify br0 ipv4.addresses "192.168.10.100/24"
[root@almalinux ~]# nmcli connection modify br0 ipv4.gateway "192.168.10.1"
[root@almalinux ~]# nmcli connection modify br0 ipv4.dns "8.8.8.8"
[root@almalinux ~]# nmcli connection modify br0 ipv4.method manual- ※IPアドレス、ゲートウェイ、DNSの値は必ずお使いのルーター環境・ネットワークセグメントに合わせて変更してください。
3. 物理インターフェースをブリッジの配下に設定(スレーブ化)
既存の物理デバイス(例: enp3s0)を、先ほど作った仮想ブリッジ br0 の「子機(スレーブ)」として紐付けます。
[root@almalinux ~]# nmcli connection add type bridge-slave autoconnect yes con-name br0-slave ifname enp1s0 master br0ifname enp1s0の部分には、手順1で確認したご自身の物理デバイス名を入力してください。
4. ネットワーク設定の有効化(切り替え)
ここが最も通信切断のリスクが高いステップです。既存の物理コネクションを無効化し、新しく作成したブリッジコネクションを有効化します。
[root@almalinux ~]# nmcli connection down enp1s0 && nmcli connection up br0- 切り替えが成功すると、数秒後に通信が復旧します。
- 再度
nmcli deviceを実行し、物理デバイス(enp1s0)の接続先(CONNECTION)がbr0-slaveに変わっていることを確認してください。
5. KVM(libvirt)にブリッジネットワークを認識させる
OS側のブリッジ設定が完了したら、次はKVM(libvirt)側でこのブリッジを利用できるように定義ファイル(XML)を作成します。
① 定義ファイルの作成
適当な場所(例: /tmp/host-bridge.xml)に、以下の内容でファイルを作成します。
<network>
<name>host-bridge</name>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>② libvirtへネットワークを登録・有効化
作成したXMLファイルを使って、KVMに新しいネットワーク host-bridge を登録します。
# ネットワークの定義
[root@almalinux ~]# virsh net-define /tmp/host-bridge.xml
# ネットワークの自動起動設定
[root@almalinux ~]# virsh net-autostart host-bridge
# ネットワークの起動
[root@almalinux ~]# virsh net-start host-bridge正常にアクティブになっているか一覧を表示して確認します。
[root@almalinux ~]# virsh net-list --all
名前 状態 自動起動 永続
---------------------------------------------
default 動作中 はい (yes) はい (yes)host-bridge が 動作中 (active)、自動起動 (yes) になっていれば成功です!



コメント