ฉันมี VM หลายเครื่องที่ทำงานบน Ubuntu 9.10 ผ่านทาง KVM + libvirt ฉันต้องการที่จะสามารถที่จะหาที่อยู่ IP ที่ได้รับมอบหมายให้แต่ละพื้นที่โดยไม่ต้องเปิดทางร่างกายทางกายภาพ "คอนโซล" ifconfig
เพื่อแต่ละเครื่องและกล่าวอ้าง
พิจารณา:
rascher @ localhost: ~ $ virsh -c qemu: /// รายชื่อระบบ - ทั้งหมด กำลังเชื่อมต่อกับระบบ uri: qemu: /// รหัสชื่อรัฐ ---------------------------------- 1 เครื่องจักร 1 กำลังทำงาน 2 เครื่องจักร 2 ทำงาน - machine3 ปิด
การกำหนดค่าเครือข่ายของฉันดูเหมือนว่า:
<network>
<name>default</name>
<uuid>1be...</uuid>
<forward mode='route' dev="eth0"/>
<bridge name='virbr0' stp='on' forwardDelay='0' />
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254' />
</dhcp>
</ip>
</network>
ดังนั้นฉันจะได้รับรายชื่อซึ่งบอกว่า:
ที่อยู่ IP ของ machine1 = 192.168.122.16 ที่อยู่ IP ของ machine2 = 192.168.122.238 ...
ฉันเล่นกับarp
:
rascher @ localhost: ~ $ arp ที่อยู่ HWtype HWaddress Flags Mask Iface 192.168.122.238 อีเธอร์ 00: 16: 36: 00: 61: b0 C virbr0 192.168.122.16 ether 00: 16: 36: 52: e8: 9c C virbr0 ...
แต่นี่ไม่ได้จับคู่กับ ID ของเครื่องเสมือน
มีเครื่องมือ (ผ่านบรรทัดคำสั่งvirsh
หรือvirt-*
) ฉันสามารถตรวจสอบข้อมูลนี้ได้หรือไม่? หรือฉันต้องมีสคริปต์แฟนซีที่ทำงานบนแต่ละ VM ตรวจสอบ IP ของตัวเองและรายงานกลับไปยังโฮสต์ระบบปฏิบัติการ