Hi there,

how can you elegantly assign a static IP address to a NIC with a fixed MAC 
address in the latest kvm autotest module?

I need to set up a guest virtual machine with a fixed MAC and static IP 
address between tests.

The guest OS is configured with a static IP address. Initially I tried the 
nic_mac parameter, and it indeed sets the MAC properly, but the autotest 
framework just does not catch the corresponding IP address.

I get "Could not verify DHCP lease: 9a:75:34:e5:b8:79 --> 172.16.2.112" 
messages, the IP is always something that does not make any sense, 
although the IP is statically set in the guest to "172.16.1.127". During a 
test run I can ping the guest with this latter one.

The NIC parameters are:

nic_mode = tap
bridge = br0
run_tcpdump = yes
nic_mac = 9a:75:34:e5:b8:79


I figured out the following workaround:
1) Disabled tcpdump: "run_tcpdump = no"
2) Edited the "env" file in "autotest/client/tests/kvm/", namely: searched for 
my guest MAC and replaced one of the following lines, that contained an IP 
address to my static IP address

This way executing tests just work fine. But I still have the feeling that it 
should not be the right solution, and I did not find any IP address related 
paramaters.

I am not familiar with the code base, but I tried to check the git tree. It 
seems that previously kvm autotest had some kind of manual mapping 
mechanism along with a dynamic one, e.g. see:

2009-08-13 06:05:47 commit bc0e41f85fa55ed38d986f919486f198def36068 
(KVM test: add some MAC/IP address utilities to kvm_utils)

2009-08-13 06:12:19 commit 
bd45a92e7dd6fe6825d1a42cda767425122a9762 (KVM test: make VMs use a 
dynamic MAC-IP mapping generated by tcpdump)


Then later on the old code was removed:

2010-10-27 14:09:47 commit ccc7ac44337a3d2a7a86893876f91717e0c2f7f9 
(KVM test: simplify MAC address management)

2010-10-27 14:20:49 commit cfb012dd8ad7f0880d79ff9104acb5754f0e0a63 
(KVM test: VM.get_address(): fix handling of multiple NICs)

2010-10-27 14:29:00 commit 681a37be663607231a1fa8b4a644a90da129f711 
(KVM test: remove all code related to the old MAC address pool method)
-- The commit message here mentions: "Note that now running in TAP mode 
requires an external DHCP server that accepts *any* MAC address, because 
MAC addresses are randomly generated and cannot be manually 
configured."


But then the nic_mac setting is added:

2010-12-20 22:15:15 commit 6161e80bf9da191bfaebcc53776b438d0b0f0e16 
(KVM test: kvm_vm: Allow NIC MACs to be defined on config file)


And then the bridge setup was automatized:

2011-06-06 19:17:25 commit 
0e78eaac9942611dbe589978401b78b81e270661 (KVM test: Adding 
framework code to control bridge creation)


My questions here are the following:
- Why was this manual address mapping completely removed?
- What is the best way to enforce the framework to catch a previously 
provided IP address in the config files?


Thanks,

Kristóf
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to