KVM (7) 完成

一週間前に,「ほぼ思った通りに」と書きましたが,その”ほぼ”に含まれない部分が実は重大でして,解決するのに一週間かかりました^^;

ホストのDNSサーバーにつながらないのです.解ってしまえば,どうってこと無いのですが,named.confのviewの設定でアクセスを”localnet”だけにするのが普通ですが,ホストから見たKVMのネットは,localnetに含まれません.そこで,

view "inside" {
        match-clients { localnet; 192.168.122.0/24; };

のようにする必要がありました.

あとは,得意のiptablesで,LAN内はIP NAT, 外向きには,IP Masqueradingでさくさくです^^;

ようやく,ゲストOSの本格的なセッティングに取りかかれます.

が,しばらくネットにつながらない^^;

eps2eps

今夜は,寺脇君の2時間ドラマを見ながら,QSLカードの印刷で悩みました.

QSLの記入面は,CSVの印刷データを,自作のPerlスクリプトで処理し,enscriptにかけてPS化し,さらにps2pdfや,Adobe DistillerでPDF化して,目視で確認した後,プリンターにかけます.

enscriptは多国語に対応してなくて,基本的にはASCIIのみ,なのですが,日本語などのできあいのEPSを固定の差し込みデータとして読み込むことができます.日本語は,住所氏名などの固定データだけですむので,Adobe Illustrator等であらかじめ作ったEPSを読み込んで印刷してました.

今夜,QSLカードを少々印刷をしたのですが,印刷してから,自分のホームページのURLが前のままになっていることに気がつきました.

そこで,読み込むべきEPSの編集をしたのですが,編集後のEPSファイルでは,enscriptがエラーを吐いてインクルードできず,PSを作ってくれません.

で,2時間ドラマを見ながらいろいろやったんですが,どうも,Illustratorの出力するEPSがバイナリーデータなので具合が悪いようです.ImageMagicのツール(convert)や,IllustratorでPSを保存して,それからEPSを作るようなことをしてみましたが,うまくいきません.

結論的には,eps2epsという,Ghostsriptに付属してるツールで,バイナリーのEPSをASCIIのみのEPSに変換してくれました.問題なくenscriptでインクルードできました.めでたしめでたし.

一言で,EPSといっても,バイナリーのものと,ASCIIのみのものがあるようです.以前のIllustratorはASCIIで保存するオプションがあったんだと思います.使えてましたから^^;

KVM (6) ほぼ思った通りに

やっと,ネットの方も思った通りの挙動をしてくれるようになりました.

libvirtdを起動してから,iptablesを再度定義し直すことで,iptables関係のトラブルを回避できるようになりました.こちらが書き換えたiptablesをlibvirtdが,元に戻すような粘着質だったらどうしようかと思いましたが,起動時だけiptablesコマンド群を発行するようです.

某所では最終的に,ホストとは別のグローバルipを仮想マシンが持つことになるので,ホストには,

ifconfig eth0:1 グローバルip2 -netmask 255.255.255.0 up

として,このグローバルip2を,DNAT, SNATでホストと通信するゲストのipアドレスを変換します.

KVM (5) ネットの設定難航

ネットが実にわかりにくいですね.

ゲストのネットアクセスをどうするか,KVMにはいくつかの方法が用意されていますが,私のところで唯一動いたのは,NATを利用する方法です.ゲストに仮想的なNICを装着させて,ホスト側では,それを仮想的なディバイスで受け止めます.まあ,P-Pのような接続形態になります(ゲスト同士ではlocalnet内としてつながるかもしれませんが,それまでは予定していません^^; ).

外界へはどう出るかとなると,NATなのです.KVM(qemu)を走らせるためのデーモン,libvirtdが,起動時に,iptablesを書き換えてくれます.

ありふれたLANの中に1つだけインターフェースを持ったWSが特にiptablesを使わずに動いているというありふれた場合には,大変ありがたい機能です.

しかし^^; 私の管理しているWSは,どれも,2つ以上のLANアダプターを装着し,別の仮想的なネットワーク用のポートがいくつか装着されています.当然,iptablesを駆使して,かなりいろんな設定をしています^^;

これで,libvirtdに書き換えられてしまうと,なかなか面倒です.ということで,どうすれば,libvirtdが起動するときに,余計なことをしてくれないように設定すれば良いのか,というところにぶち当たってます.

KVM (4) やっと起動

起動はしていたんですが,やっとコンソールがつながりました(コンソールがつながらなければ,起動していてもしょうがないです^^; ).

Spice関係のインストールで,Gtkを明示的に3.0と指定することで,動くようになりました.

あとは,ネットのセッティングができれば,完成となると思います.

20141116-vm 20141116-vm2 20141116-vm3