KVM の仮想ブリッジの IP アドレスはホストへの SSH 接続に使えるのか試してみた
はじめに
KVM の仮想ブリッジの IP アドレスに SSH 接続するとホストマシンへ接続できるのでしょうか。
本記事では、KVM のネットワーク設定と共に SSH 接続の検証結果を共有します。
検証結果
仮想ブリッジ(br0)の IP アドレスでホストマシンに SSH 接続できました。
検証環境
項目 | 内容 |
---|---|
ホストOS | Ubuntu 24.04 |
仮想化基盤 | KVM |
ネットワーク | 仮想ブリッジ(br0)を使用 |
VM | DataSync-Agent(稼働中) |
KVM の初期設定は以下の記事を参照してください。
ネットワーク構成
本環境のネットワーク構成です。手元の検証機には有線 LAN ポートが 1 つしかなかったため、無線 LAN で代替えします。便宜上、物理 NIC が 2 つある想定で説明します。
-
物理インターフェース:
- 無線 LAN(wlp2s0):192.168.20.221/24
- 有線 LAN(enp3s0):br0 の仮想ブリッジに使用
-
仮想ネットワーク:
- 仮想ブリッジ(br0):192.168.20.160/24
- VM 接続用(vnet0):br0 にブリッジ接続
ネットワークインターフェースの状態
IPv4 アドレスの割り当て状況を確認します。ホストマシンへの SSH 接続は、無線 LAN(wlp2s0)を使用しています。br0 は仮想マシン用のネットワークブリッジとして IP アドレスが割り当てられています。
# IPv4アドレスの確認
$ ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.20.221/24 brd 192.168.20.255 scope global dynamic noprefixroute wlp2s0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.20.160/24 brd 192.168.20.255 scope global noprefixroute br0
仮想ブリッジの接続状態
仮想ブリッジの設定状態を確認します。
# ブリッジの状態確認
$ sudo brctl show
bridge name bridge id STP enabled interfaces
br0 8000.4ac2659af54c no enp3s0
vnet0
物理 NIC(enp3s0)と VM 用の仮想インターフェース(vnet0)が br0 に接続されています。
# ブリッジのリンク詳細確認
$ bridge link show
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 2
Netplan の設定
以下が仮想ブリッジ(br0)の設定内容です。
- 物理 NIC(enp3s0)は DHCP を無効化
- 仮想ブリッジ(br0)に固定 IP(192.168.20.160/24)を割り当て
- デフォルトゲートウェイを 192.168.20.1 に設定
- DNS サーバーとして Cloudflare と Google のパブリック DNS を使用
# Netplanの設定確認
$ sudo cat /etc/netplan/1_kvm.yaml
network:
version: 2
ethernets:
enp3s0:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [enp3s0]
addresses: [192.168.20.160/24]
routes:
- to: default
via: 192.168.20.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
parameters:
stp: false
dhcp4: false
dhcp6: false
ルーティングテーブルの確認
システムのルーティング設定を確認します。
- 物理 NIC(enp3s0)、仮想ブリッジ(br0)ともに同じデフォルトゲートウェイです
# ルーティングテーブルの確認
$ ip route show
default via 192.168.20.1 dev br0 proto static metric 425
default via 192.168.20.1 dev wlp2s0 proto dhcp src 192.168.20.221 metric 600
192.168.20.0/24 dev br0 proto kernel scope link src 192.168.20.160 metric 425
192.168.20.0/24 dev wlp2s0 proto kernel scope link src 192.168.20.221 metric 600
SSH サービスの状態確認
SSH サービスの稼働状態を確認します。無線 LAN(wlp2s0)の IP アドレス宛に SSH 接続しているので当然起動しています。
# SSHサービスのステータス確認
$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Active: active (running) since Sun 2025-01-12 07:38:36 JST; 10h ago
Server listening on :: port 22.
仮想ブリッジの IP アドレスへ SSH 接続
ホストマシンに問題なく接続できました。
$ ssh ohmura@192.168.20.160
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
Expanded Security Maintenance for Applicationsが無効化されています。
0のアップデートはすぐに適用されます。
8個の追加のセキュリティアップデートが、ESM Appsによって適用できます。
ESM Appsの有効化方法についてはこちらを参照してください: at https://ubuntu.com/esm
DataSync Agent の仮想マシンが起動していることが確認できます。
$ sudo virsh list --all
Id Name State
--------------------------------
1 DataSync-Agent running
まとめ
検証の結果、仮想ブリッジ br0(今回は Netplan の YAML の設定ファイルで割り当てた IP アドレス)宛に接続するとホストマシンへ SSH 接続が可能でした。
おわりに
めったに設定する機会がないため検証した結果を残しておきました。