KVMにDHCPで固定IPを設定する

ローカルのネットワーク内であっても、たくさんのVMを建てていると固定IPを割り振りたくなります。

今回はKVMでのDHCPの設定をしていきます。

手順の確認

次のような手順で行っていきます。

  1. VMの準備
  2. MACアドレスを調べる
  3. DHCPの設定
  4. ネットワーク設定の反映
  5. 動作確認

VMを用意しよう

まずは固定IPを振るVMをいくつか準備しましょう。

作成方法についてはこちらで説明しています。

KVMを使ってみよう!(作成編)

MACアドレスを調べよう

DHCPで固定IPを振るためにはサーバーのMACアドレスが必要です。

まずはドメイン名を確認しておきましょう。

virsh list --all
 Id    名前                         状態
----------------------------------------------------
 4     ubuntu1404                     実行中

ubuntu1404というのがわかりましたので、次のコマンドでサーバーの設定値を表示します。

virsh dumpxml ubuntu1404

たくさん情報が出てきますが、mac addressのところだけを注目します。

<mac address='52:54:00:40:b4:a9'/>

後ほど設定に使うため、52:54:00:40:b4:a9の値を控えておきます。

DHCPの設定を行う

次にDHCPの設定を行っていきます。

まずはネットワークの確認です。

virsh net-list
 名前               状態     自動起動  永続
----------------------------------------------------------
 default              動作中  はい (yes)  はい (yes)

KVMをインストールすると初期値としてdefaultという名前のネットワークが作成されます。

次にこのdefaultの編集を行います。

virsh net-edit default

次のような編集画面に変わります。

<network>
  <name>default</name>
  <uuid>a7dc16db-8704-408a-bc6e-3b936b236ce8</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:32:de:19'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
      <host mac='52:54:00:40:b4:a9' name='ubuntu1404.kvm.local' ip='192.168.122.2'/>
    </dhcp>
  </ip>
</network>

ここでは以下の行を追加しました。

 <host mac='52:54:00:40:b4:a9' name='ubuntu1404.kvm.local' ip='192.168.122.2'/>

macには先ほど控えたMACアドレスを指定します。

nameの値は空でも構いません。

ipに設定したいIPアドレスを指定します。

設定できるアドレスの範囲はrange start=” end=”で決定します。

<range start='192.168.122.2' end='192.168.122.254'/>

2~254の間であれば、どの範囲を指定しても構いませんが、1と255だけは含めることができませんので注意してください。

ネットワークの反映

先ほど設定したネットワークの設定を反映させます。

まずはネットワークを強制終了させます。

virsh net-destroy default

そして開始させます。

virsh net-start default

これでネットワークの反映は完了です。

もしVMを起動している場合は再起動を行い、VM側のIPアドレスの反映を行いましょう。

動作確認

VMに接続して動作確認を行います。

次のコマンドでIPアドレスの確認を行います。

ifconfig
eth0      Link encap:Ethernet  HWaddr 52:54:00:40:b4:a9
          inet addr:192.168.122.2  Bcast:192.168.122.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe40:b4a9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:726 errors:0 dropped:0 overruns:0 frame:0
          TX packets:531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:54396 (54.3 KB)  TX bytes:60788 (60.7 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

IPアドレスが反映されているのでOKです。

inet addr:192.168.122.2  Bcast:192.168.122.255  Mask:255.255.255.0

まとめ

これでvirsh consoleコマンドを使わなくてもSSHができるようになりますね。

次回はDNSの設定について書いてみたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です