トップ «前の日記(2012-10-23) 最新 次の日記(2012-10-25)» 編集

muneda's diary


2012-10-24 曇り,上着がないと昼間でも肌寒い [長年日記]

_1 KVMゲストのDHCPアドレスが変わらないようにする方法

手元のマシン上で動いているscreenに再接続(attach)し,KVMゲストでの作業を継続しようとしたら

localhost% Write failed: Broken pipe

とだけ出ててセッションが切れてた.

で割り当てられているIPアドレスを確認すると一つ番号がズレていることに気付く.どうやらDHCPからのリース期間が終わったらしい*1

# cat /var/lib/libvirt/dnsmasq/default.leases
1351139962 aa:bb:cc:dd:ee:ff 192.168.122.183 * *

毎度変わるのは面倒なのでリース期間を伸ばすことにする.ググったところlibvirtはDHCPサーバーとしてdnsmasqを利用しているそうで,dnsmasqの設定方法を確認./etc/dnsmasq.confに

dhcp-range=[[net:]network-id,]<start-addr>,<end-addr>[[,<netmask>],<broadcast>][,<lease time>]

などのように書けばいいらしい.ずっとリースしっぱなしにするにはlease timeにinfiniteと設定するそうな.で設定をしようとしたが/etc/dnsmasq.confには何も設定されていないことが判明.じゃあ今動いているdnsmasqはどうやって192.168.122.のアドレスを配っているのか.

とおもむろにpsコマンドを叩いてみると

nobody    53665  0.0  0.0  12984   600 ?        S    Oct24   0:00
 /usr/sbin/dnsmasq --strict-order --bind-interfaces
 --pid-file=/var/run/libvirt/network/default.pid
 --conf-file= --except-interface lo --listen-address 192.168.122.1
 --dhcp-range 192.168.122.2,192.168.122.254
 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases
 --dhcp-lease-max=253 --dhcp-no-override
 --dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile (本当は一行)

となってて引数に直接渡してるらしいことが判明.--dhcp-rangeの引数にlease timeが設定されていないのでこの引数のもととなっているファイルを探し出しそこに設定すれば良いはず.

調べたところdnsmasqへの引数が設定されるファイルは/etc/libvirt/qemu/networks/default.xml.libvirtのページでNetwork XMLの仕様を調べてみるが,rangeはあるもののlease timeについての記述はない.設定できないようだ.これは困った.

ただこのページのAddressingの項目を見るとどうやらMACアドレスでIPアドレスを固定できることを知る.なんか悔しいが固定できればいいのでこれにしたがうことにする.

<host mac='aa:bb:cc:dd:ee:ff' ip='192.168.122.7' />

virsh net-editで設定ファイルを書き換え,virsh net-destoryでネットワークを止め,現在の払い出し情報が記述されているファイル(/var/lib/libvirt/dnsmasq/default.leases)を削除し*2,virsh net-startでネットワークを開始.

# ls /var/lib/libvirt/dnsmasq
default.hostsfile  default.leases

すると新しくdefault.hostsfileというファイルが作成され,先ほど設定した内容が記述されてた.leaseの状態を見てもIPアドレスが正しく払いだされていることが分かる.

# cat /var/lib/libvirt/dnsmasq/default.hostsfile
aa:bb:cc:dd:ee:ff,192.168.122.7
# cat /var/lib/libvirt/dnsmasq/default.leases
1351141374 aa:bb:cc:dd:ee:ff 192.168.122.7 * *

ということで当初のリース期間を長くするという方法はうまく行かなかったが,MACアドレスをキーに必ず同じアドレスを払い出すという方法で,KVMゲストに割り当てられるIPアドレスを固定することができた.

Tags: Linux

*1 でも/var/log/messagesを見るとリース期間は1hとなっており,もっと頻繁に変わるはずなんだが実際は変わらないのはなぜだろう

*2 このファイルを削除しないと古い内容を参照し以前払いだしたIPアドレスを再度払い出してしまった


過去の日記
2002|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|
トップ «前の日記(2012-10-23) 最新 次の日記(2012-10-25)» 編集