SSH経由で接続できるKVM仮想マシンのIPアドレスをどのように見つけますか?

SSH経由で接続できるKVM仮想マシンのIPアドレスをどのように見つけますか?

私はこのガイドに従いました(Ubuntu 11.10でKVMを使用した仮想化)Ubuntu 11.10サーバーでKVM(仮想マシンソフトウェア)を設定します。ただし、VMを作成するときにVMのIPアドレスを設定せずに、代わりに次のものを使用しました。

vmbuilder kvm ubuntu --suite=oneiric --flavour=virtual --arch=amd64 --mirror=http://de.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=192.168.0.101 --gw=192.168.0.1 --part=vmbuilder.partition --templates=mytemplates --user=administrator --name=Administrator --pass=howtoforge --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/libvirt/images/vm1/boot.sh --mem=256 --hostname=vm1 --bridge=br0

私は以下を使用します。 (コマンドラインから「--ip=192.168.0.101 --gw=192.168.0.1」を削除しました)

vmbuilder kvm ubuntu --suite=oneiric --flavour=virtual --arch=amd64 --mirror=http://de.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --part=vmbuilder.partition --templates=mytemplates --user=administrator --name=Administrator --pass=howtoforge --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/libvirt/images/vm1/boot.sh --mem=256 --hostname=vm1 --bridge=br0

ガイドの指示に従ってブリッジを設定し、新しい仮想マシンのインターフェイスがブリッジに接続しました。

KVMがDHCPを介して自分のVMを割り当てると仮定しますが、新しいVMのIPアドレスに関する情報はありません。 VMのIPアドレスと新しいVMのSSHをどこで見つけることができますか?ありがとうございます。

[注:仮想マシンのIPアドレスがわからず、仮想マシンに正常にログインしました。使用」Xming + SSHとXグラフィックス配信しかし、私のVMにはDHCP IPアドレスが割り当てられていません。上記の問題に加えて、他に質問があります。 Xmingを使用して「仮想ビューア」を介してログインすると、少なくとも私の仮想マシンのIPアドレスを表示できるように、私のVMでDCHPを有効にする方法があります。 ]

答え1

この試み:

virsh net-list
virsh net-dhcp-leases <net-name>   <--- net-name from above command

MACアドレスがわかっている場合は、次の形式を使用することもできます。

virsh net-dhcp-leases <net-name> --mac <mac-address>

MAC アドレスは dumpxml コマンドで見つけることができます。バラよりkvmホストのどの仮想インターフェイスが仮想マシンに属しているかを確認する方法はありますか?

答え2

arp -n実行すると、VM の選択した IP を表示できます。これにより、ゲストVMにログインして入力する必要がなくなりますifconfig

次のブログでは、より詳細な情報を提供し、仮想マシンのアドレスを自動的に検索するPerlスクリプトが含まれています。

ヒント:仮想マシンのIPアドレスを見つける

答え3

これは古い質問のようですが、現在のバージョンでは、virshnatやブリッジされたプライベートネットワークを使用している場合、これははるかに簡単になります。steak(ルーティングされた)プライベートネットワーク(別名「NAT」)に名前が付けられた仮想マシンがあります。組み込みメカニズムによって割り当てられたIPを見つけるには、2つのコマンドのみが必要です。

$ sudo virsh list
 Id    Name                           State
----------------------------------------------------
 21    steak                          running

$ sudo virsh domifaddr steak
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet0      76:0c:28:ab:0e:ee    ipv4         10.14.1.1/24

eggs一般的なネットワーク(ハイパーバイザーホストのブリッジデバイスに接続されている)にブリッジされる別の仮想マシン()があります。 Libvirtはアドレスを割り当てずに、私のネットワークのDHCPサーバーからアドレスを取得します。私の場合、動的DNSも更新します。これは、対応する仮想マシンの出力がない場合にdomifadd可能です。したがって、基本的に他のシステムと同様にアドレスを見つける必要があります。 arpテーブルでアドレスを見つけるのはおそらく最も簡単です。つまりip neighbour、現在はarp廃止され、一部のディストリビューションには表示されなくなります。幸いにも、コレクションを追加してスペルを書くことができない人には、ip neighand ip n(またはip neighbor)などの短いバージョンを使用することもできます。 ;) 以下では、domiflistMAC アドレス(br0「ソース」列に接続されている)を検索し、arp テーブルで検索するために使用します。

$ sudo virsh domifaddr eggs
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------

$ sudo virsh domiflist eggs
Interface  Type       Source     Model       MAC
-------------------------------------------------------
vnet0      bridge     br0        virtio      52:54:00:2c:ac:ee

$ ip neigh | grep -i 52:54:00:2c:ac:ee
192.168.0.226 dev br0 lladdr 52:54:00:2c:ac:ee REACHABLE
$ host eggs
eggs.home.domain.com has address 192.168.0.226

答え4

仮想マシンのIPアドレスを表示するには、次の手順を実行します。

$ arp -n

システムにarpがインストールされていない場合は、パッケージをインストールするだけですnet-tools

関連情報