From: Geoffroy <geo...@fr...> - 2006-03-31 00:25:50
|
Hey Bernard, I am used to setup a virtual network with the following pattern: LAN----hostOS----node1----------node2 =2D Virtual node 1 has two virtual nics, one to communicate with the physic= al=20 machine (tap) and one to communicate with the virtual LAN (all my virtual=20 machines are on this LAN) =2D Virtual node 2 has only one virtual nic attached to virtual LAN Before to start creating nodes, check that your /etc/qemu-ifup file is=20 something like:=20 /sbin/ifconfig $1 172.20.0.1 up To launch my first virtual node, i use the following command: qemu <image_node1> -net nic,macaddr=3D52:54:00:12:34:56 -net socket,listen= =3D:1234=20 =2Dnet nic -net tap The first part of the command (-net nic,macaddr=3D52:54:00:12:34:56 -net=20 socket,listen=3D:1234) create a virtual network interface which allows you = to=20 create a virtual LAN (listening for connections from other virtual nodes on= =20 the port 1234). The second part of the command will create a tap interface = to=20 communicate with the physical machine (the physical machine will have a tap= 0=20 interface w/ the IP address 192.168.0.1). To launch my second virtual node, i use the following command qemu <image_node2> -net nic,macaddr=3D52:54:00:12:34:52 -net=20 socket,connect=3D<address_virtual_node1>:1234 The virtual node will automatically join the virtual network created by the= =20 first node. You have now the following network (just with two virtual nodes): LAN----eth0:hostOS:tap0---- eth0:Node1:eth1----------eth0:node2=20 So now if you want to put your first node on the global network (local LAN)= ,=20 you have to create a bridge between the ethernet card of the HostOS and the= =20 tap interface. For that, execute the following commands:=20 brctl addbr br0 ifconfig eth0 promisc 0.0.0.0 ifconfig tap0 promisc 0.0.0.0 brctl addif br0 eth0 brctl addif br0 tap0 ifconfig br0 192.168.0.100 Then in your node 1, "ifconfig eth0 192.168.0.x". You should be able now to= =20 ping the bridge on the physical node from the node1, but also other machine= s=20 on your LAN (do not forget to set up default routes if needed). Most of the time, i just stop here but you should be able to add virtual=20 machines on the LAN creating a bridge on the node 1 between the two virtual= =20 nics. For that just proceed like on the real machine: create the bridge, ad= d=20 the two interfaces. Then set a new IP address on your second node (address= =20 for your NAT) and it should work. =46or information, a bridge is efficient and completely transparent because= at=20 the level 2 of the OSI network model. BTW, if you are using Qemu on a x86_64 machine with a 64 bits distribution,= =20 forget it, it will not work, there are too much bugs in the current Qemu=20 release. :-( But you can still use a 32 bits Linux distribution. I wrote that based on my memory, i hope i did not say stupid stuff. If it i= s=20 not working, let me know i can try to figure out making some real tests. My 2 cents, Le Mercredi 29 Mars 2006 00:43, Bernard Li a =E9crit=A0: > I'm trying to setup qemu such that its virtual network card can be on the > same network as the host OS. Eg. the system I'm running qemu's ip is > 192.168.0.2, I'd like the virtual machine to be able to get an ip address > of 192.168.0.3 - is that possible - if so any pointers on how to set it u= p? > > I've read that you're supposed to have an /etc/qemu-ifup but I see there > are many different versions of it and most of them requires setting up ip > masquerade. > > Thanks, > > Bernard =2D-=20 Geoffroy |