1. はじめに
KVMを用いて仮想環境を構築するまでは前の記事で書いた1。 Nessusを用いる際に各VMのIPアドレスを固定したいと思ったので、ここではその方法についてまとめる。
2. サブネットの追加
ここでは、Virtual Machine Manager を用いて仮想ネットワークを作成する2。 Connection Details メニューの Virtual Networks タブを開き、"Add Network" ボタン (左下の+ボタン) をクリックする。
そして、名前、モード、ネットワークアドレス、DHCPの範囲などを指定して、Finish ボタンを押す。
3. 静的IPアドレスの設定
ここでは、仮想マシンのUbuntu20.04 に対して静的IPアドレスを設定する3。 ここでは、コマンドラインの操作をホストの物理マシンで行う。
3.1 ゲスト XML 設定ファイルの確認
virsh domiflist [guestname]
コマンドをroot権限で実行し、ゲストのネットワーク設定を表示する。私の環境の場合、
tcbn@tcbn-N14xZU:~$ sudo virsh domiflist ubuntu20.04 [sudo] password for tcbn: Interface Type Source Model MAC --------------------------------------------------------------------- vnet0 network default virtio 52:54:00:b2:8d:75 vnet1 network virtual_network virtio 52:54:00:e7:56:40
だった。今回は、virtual_network
側のIPアドレスの固定を例に説明する。
3.2 DHCP範囲の確認
参考にしたサイトによると、設定するIPアドレスはネットワークのDHCPの範囲内で設定する必要があるとのことなので、DHCPの範囲とすでに使用されているアドレスを以下のコマンドをroot権限で実行することで確認する。
virsh net-dumpxml default | egrep 'range|host\ mac'
私の環境の場合、
tcbn@tcbn-N14xZU:~$ sudo virsh net-dumpxml virtual_network | egrep 'range|host\ mac' <range start='192.168.100.128' end='192.168.100.254'/>
だった。
3.3 静的IPの設定
ホストマシンで以下のコマンドをroot権限で実行する。
virsh net-update [network name] add ip-dhcp-host '<host mac=[mac address] ip=[ip address]/>' --live --config
--live
オプションは、この変更を即座に有効にし、--config
オプションは変更を永続化する。例えば、192.168.100.131
に固定する場合は以下。
tcbn@tcbn-N14xZU:~$ sudo virsh net-update virtual_network add ip-dhcp-host '<host mac="52:54:00:e7:56:40" ip="192.168.100.131"/>' --live --config Updated network virtual_network persistent config and live state
3.4 インタフェースの再起動
ゲスト仮想マシンが実行中の場合、ゲスト仮想マシンにDHCPアドレスの再要求を強制する必要がある。インタフェースの再起動のためには、以下のコマンドをroot権限で実行する。
virsh domif-setlink [guestname] [mac address] down sleep 10 virsh domif-setlink [guestname] [mac address] up
sleep 10
(これは一般ユーザ権限でも実行化) としたのは、DHCPクライアントに古いIPアドレスを忘れさせるため。これでうまく反映されなかったら、仮想マシンの電源を一度落として再度起動すると良い。
私の環境の場合、以下のようになった。
tcbn@tcbn-N14xZU:~$ sudo virsh domif-setlink ubuntu20.04 52:54:00:e7:56:40 down Device updated successfully tcbn@tcbn-N14xZU:~$ sleep 10 tcbn@tcbn-N14xZU:~$ sudo virsh domif-setlink ubuntu20.04 52:54:00:e7:56:40 up Device updated successfully
ここまでを実行した上で仮想マシンで ifconfig
を実行すると以下のようになり、IPアドレスが固定されていることがわかる。