Your problem is related to udev : every reboot of VM, udev in VM checks the MAC address of the ethernet interface of the system to associate it with a static name (eth0, eth1...). If you change the MAC address of the Ethernet interface of your VM, it will detect a new interface and associate it with a new name (ethx+1). In order to avoid it : try not to change the MAC address of your VM ethernet device (you can fix it with libvirt xml), or deactivate this mecanism in the VM : search in /etc/udev/rules.d/70-persistent-net.rules : it calls /lib/udev/write_net_rules at every reboot, you could chmod -x this script in order to avoid it. Tanguy 2011/2/10 Marcela Castro León <mcastrol@xxxxxxxxx>: > Hello Laine: > I've revised the configuration and followed all your instructions. > I'll try to give you a better explain of my problem. > > a) I need a bridged (3) configuration, because I have to connect the guests > from each others. (via ssh and execute mpi). I've three hosts, each of one > has at least a guest. > I'll only explain about the configuration of one of them, because the > problem is only related a one configuration. > hostname=rionegro ip=192.168.1.4 > guest-name=rnompi1 > > b) I've configured host bridge following step by step ther instruction on > http://wiki.libvirt.org/page/Networking > this is the /etc/network/config > > # The loopback network interface > auto lo > iface lo inet loopback > > > auto br0 > iface br0 inet static > address 192.168.1.4 > netmask 255.255.255.0 > network 192.168.1.0 > broadcast 192.168.1.255 > gateway 192.168.1.10 > bridge_ports eth0 > bridge_stp on > bridge_fd 0 > bridge_maxwait 0 > > c) this is the xml guest configuration related to the network. > > <interface type='bridge'> > <source bridge='br0'/> > </interface> > > > d) But the guest doesn't get any IP automatically, and create an interface > with a variable name (eth4, eth5,etch6..). I don't know how to achieve the > guest don't behave like this and create always its network interface with a > fixed name, for example, eth0). > > Why I ask that? > > if the guest created an interface with a fixed name, I would configure and > static ip for the it. > I'm attaching a printscreen "rnompi1.jpg" that show what ifconfig ahow on > the guest (eth14 and without any IP). It doesn't get their host either. > > The only way I achieve to solve but "temporally" until reboot is configuring > the guest statically using the name of the interface that has just up.In > that case every works fine, and the guest can connect to all the other > guests on the lan and others can connect to it. > But this only works until reboot or reconfigure the guest, because each time > the name of interface change, and my configuration I had done of > /etc/network/interface didn't work any more because is related to another > interface. > > I hope I've explained better the problem I have. > > Thank you very much, you've already helped too much to better understand the > different cases of network configuration > > Regards. > > > > > 2011/2/10 Marcela Castro León <mcastrol@xxxxxxxxx> >> >> Hello Laine: >> Thank you very much. >> I've showed only one of the guest, each one have it's own ip address. >> Anyway, I'll follow your advise of revise all the configuration after >> reading the doc. >> Thank you very much again. >> Regards. >> >> 2011/2/8 Laine Stump <laine@xxxxxxxxx> >>> >>> (For future questions such as this, you may find you get a better >>> response (and lower signal-noise ratio) by asking on the recently -created >>> libvirt-users@xxxxxxxxxx list, as libvir-list has a very large volume of >>> patches and discussion about the internals of libvirt) >>> >>> On 02/08/2011 12:05 PM, Marcela Castro León wrote: >>> >>> Hello >>>> >>> I've a lan of virtual machine configured with bridge. I've a private lan >>> of 4 machine, but one of them have 2 lan-card with access to internet. >>> >>> Evertything works almost fine, except that I've configured on each guest >>> the static configuration of the bridge with the ip address, like this: >>> >>> auto lo >>> iface lo inet loopback >>> >>> auto eth6 >>> iface eth6 inet static >>> address 192.168.1.41 >>> network 192.168.1.0 >>> netmask 255.255.255.0 >>> gateway 192.168.1.10 >>> >>> >>> So are you saying that you're attempting to give each guest the *same* IP >>> address? There's no way that can possibly work, even if each is connected to >>> a separate virtual network or bridge. Since the host's IP stack can "see" >>> all of the guests' network traffic, regardless of the connection mode you >>> choose, each must have a unique IP address even if they can't see each >>> other. >>> >>> >>> >>> But each time I, for example, define the guest, it start with a ascending >>> number of interface: eth6,eth7, eth8, etc, Now is initializing with eth12. >>> >>> There must be a mixup in the explanation - I'm understanding that you put >>> the same config file in each guest, but each guest, when it starts, shows a >>> different ethernet interface in its ifconfig. That doesn't seem right, >>> because none of the guests know about each other. Or are you saying >>> something different? Where are you seeing the "eth6", "eth7", ... "eth12"? >>> In the guest XML config maybe? >>> >>> So, it doesn't get the manual configuration I've done on the >>> /etc/network/interfaces. >>> How can avoid this way of work of the number of ethernet interface the >>> guest start? >>> >>> Why are you doing a manual/static definition on the guest at all? It's >>> simpler to just leave the guest to automatically configure its eth0, and if >>> you really want a particular IP address for a particular guest, handle that >>> with a <host> element in the <dhcp> section of the virtual network the guest >>> is connected to (or, if you're using a pure bridging setup, then in the >>> static hosts config of the dhcp server on that network). >>> >>> >>> A way i'm trying to solve is configuring the interface trough the guest >>> xml definition, >>> >>> The guest xml interface configuration cannot be used to setup the IP >>> address, route, etc config of the guest. It is only used for two things: >>> >>> 1) configuring what kind of hardware appears on the guest (but not what >>> name the guest gives to it!) >>> >>> 2) configuring how that hardware is connected to the physical network >>> (usually either via an existing bridge interface on the host (in order for >>> the guest to appear as if its directly connected to the physical network), >>> or via a "virtual network" created by libvirt (which is really just a bridge >>> that's not directly connected to any physical interface, relying instead on >>> the host's IP stack to route packets from the guest out to the physical >>> network.) >>> >>> but the operation "define" on virsh accepted without error the xml i've >>> done, but the dumpxml doesn't show them, so, it doesn't work at all. >>> I've followed the instruction that said the manual "Application >>> development guide - a guide to application development with libvirt" on page >>> 71. >>> >>> >>> That document is targeted towards software developers writing >>> applications to manage virtual guests using the libvirt API, not for system >>> administrators who are configuring virtual guests manually (or, more likely, >>> by using software that uses the libvirt API, eg virsh or virt-manager). It >>> likely contains more detail and less overview than what you need, which is >>> probably what led to the confusion. I've included a pointer to a wiki page >>> below that is more the appropriate level of information (Justin, if the docs >>> you were working on are somewhere easily accessible, you can point to those >>> instead.) >>> >>> >>> The whole definition of the VM is attached, but the related to interface >>> is: >>> <interface type='bridge'> >>> <source bridge='br0'/> >>> <target dev='vnet0'/> >>> <protocol> >>> <ip address="192.168.1.41" prefix="24"/> >>> <route gateway="192.168.1.10"/> >>> </protocol> >>> <bridge stp="off" delay="0.01"> >>> <interface type="ethernet" name="eth12"> >>> <protocol> >>> <ip address="192.168.1.41" prefix="24"/> >>> <route gateway="192.168.1.10"/> >>> </protocol> >>> </interface> >>> </bridge> >>> </interface> >>> >>> >>> You are confusing the guest interface config (that is part of the guest's >>> XML config, and described above), and host physical interface config (that >>> is not in any way associated with guest config, but instead used to >>> configure the host's physical network interfaces, bridges, bonds, and vlan >>> interfaces; and nearly as important, is not supported on Ubuntu anyway). >>> >>> Actual guest interface config is *much* simpler than that. >>> >>> >>> >>> But after define, the dumpxml only show this part: >>> <interface type='bridge'> >>> <mac address='52:54:00:3c:92:9a'/> >>> <source bridge='br0'/> >>> </interface> >>> >>> >>> That's because everything else you've put in your guest config is not >>> actually a part of a valid guest interface config, and so is ignored. >>> >>> >>> >>> I would appreciate any help to solve the question. The problem I've is I >>> lost the access to the guest every time the libvirt change the name of the >>> interface eth1,2,3, etc. >>> >>> In this case I think it may be useful to start over. You've somehow been >>> tricked into misunderstanding the way that network configuration in libvirt >>> works, confusing host interface config with guest interface config, and the >>> resulting config bears little resemblance to what would actually work. >>> >>> == >>> The first step is to read this page: >>> >>> http://wiki.libvirt.org/page/Networking >>> >>> to get a basic overview. >>> >>> == >>> Second step: you should decide which of the three methods of connecting >>> to guests to the physical network you want to use: >>> >>> 1) NATed >>> 2) routed >>> 3) bridged >>> >>> The simplest is (1), and that will probably work just fine as long as 1) >>> you don't need incoming connections to the guests, and 2) you're not >>> concerned about getting the last fraction of an ounce of performance out of >>> the network. >>> >>> Depending on which of those 3 you decide to use: >>> >>> == >>> Third step: follow the instructions to either create a bridge interface >>> on the host connected to a physical network interface (for (3)), or to >>> create a libvirt virtual network using one of the two modes ((1) or (2) - >>> actually the stock libvirt config already has a "default" network that is >>> probably adequate for (1), and unless you understand IP routing very well, >>> you'll likely want to avoid (2)). >>> >>> Once the physical network is setup: >>> >>> == >>> Fourth step: define your guests. In each guest, you'll have an >>> <interface> element, but it will be much simpler than what you've previously >>> tried. For bridged mode, the interface section would look like this: >>> >>> <interface type='bridge'> >>> <source bridge='br0'/> >>> </interface> >>> >>> Depending on the guest, you may want to specify what type of hardware is >>> presented to the guest (default is rtl, which almost always works, but is >>> not the best perfrorming), in particular, if the guest supports virtio-net, >>> you'll want to add this into the <interface> element: >>> >>> <model type='virtio'/> >>> >>> For NATed or routed mode, the guest's interface definition would look >>> like this: >>> >>> <interface type='network'> >>> <source network='default'/> >>> </interface> >>> >>> (replace "default" with the name of the network you've defined, if you've >>> defined your own). In this case also, you can add a <model type='...'/> if >>> appropriate. >>> >>> Note that I don't put anything in the <interface> element about MAC >>> address, target device, or bus address. Those are all setup automatically by >>> libvirt the first time you start the guest, and it will make sure that the >>> guests don't interfere with each other. >>> >>> == >>> Fifth step: only if you need a particular guest to have a particular >>> fixed IP address, either 1) edit the network config file on the guest, 2) >>> add a static host to the libvirt virtual network definition (giving the MAC >>> address provided to the guest by libvirt during the initial guest startup) >>> with a <host> element added to the <dhcp> element of the network; details >>> are here: >>> >>> http://www.libvirt.org/formatnetwork.html >>> >>> or 3) if you're using the bridged method to connect to the physical >>> network, again either configure the guest's own config file, or add a static >>> host definition to the dhcp server running on your physical network. >>> >>> If you still have problems don't hesitate to send another mail (although, >>> as I said at the top, sending to libvirt-users@xxxxxxxxxx may yield better >>> results than libvir-list@xxxxxxxxxx). >> > > > _______________________________________________ > libvirt-users mailing list > libvirt-users@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvirt-users > -- ---------------------------------------- Tanguy ROZIER tanguy@xxxxxxxxx +33 6 07 26 46 68 ----------------------------------------