multiple qemu hosts

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

multiple qemu hosts

Matthias Pfeifer-4
Hello list

I am trying to get multiple qemu guests on
host machine running. Host and guests are running
openbsd 4.6 in sync with the patch brunch.

The Host IP is: 192.168.102.110
The guest should have: 192.168.102.111, 192.168.102.112 ..
and so on. All in the same network, using the same DNS server
and gateway.

I have read /usr/local/share/doc/qemu/README.OpenBSD
and tried the samples in the tap section. This works
fine for one host.

For example, this is working well for one host:

ifconfig tun0 link0
ifconfig bridge0 create
brconfig bridge0 add tun0 add rl0 up

qemu -net nic,macaddr=52:54:00:12:35:10 \
     -net tap,fd=3 \
     -name Host1 \
     -no-fd-bootchk \
     -hda Host1/system.img 3<>/dev/tun0


Then, I'd like to doing this:

ifconfig tun1 link0
ifconfig bridge1 create
brconfig bridge1 add tun1 add rl0 up

qemu -net nic,macaddr=52:54:00:12:35:11 \ ## MAC changed
     -net tap,fd=4 \   ## fd changed
     -name Host1 \
     -no-fd-bootchk \
     -hda Host2/system.img 4<>/dev/tun1  ## tun interface changed


But this fails. Is there a way to do something like this
without adding a real NIC?


Thanks in advance!

Matthias

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts

Vijay Sankar
Matthias Pfeifer wrote:

> Hello list
>
> I am trying to get multiple qemu guests on
> host machine running. Host and guests are running
> openbsd 4.6 in sync with the patch brunch.
>
> The Host IP is: 192.168.102.110
> The guest should have: 192.168.102.111, 192.168.102.112 ..
> and so on. All in the same network, using the same DNS server
> and gateway.
>
> I have read /usr/local/share/doc/qemu/README.OpenBSD
> and tried the samples in the tap section. This works
> fine for one host.
>
> For example, this is working well for one host:
>
> ifconfig tun0 link0
> ifconfig bridge0 create
> brconfig bridge0 add tun0 add rl0 up
>
> qemu -net nic,macaddr=52:54:00:12:35:10 \
>      -net tap,fd=3 \
>      -name Host1 \
>      -no-fd-bootchk \
>      -hda Host1/system.img 3<>/dev/tun0
>
>
> Then, I'd like to doing this:
>
> ifconfig tun1 link0
> ifconfig bridge1 create
> brconfig bridge1 add tun1 add rl0 up
>
> qemu -net nic,macaddr=52:54:00:12:35:11 \ ## MAC changed
>      -net tap,fd=4 \   ## fd changed
>      -name Host1 \
>      -no-fd-bootchk \
>      -hda Host2/system.img 4<>/dev/tun1  ## tun interface changed
>
>
> But this fails. Is there a way to do something like this
> without adding a real NIC?
>
>
> Thanks in advance!
>
> Matthias
>

NOTE: sudo calls closefrom(2).  In order to have more than one fd passed
         tap interface, a line to sudoers akin to:

                 Defaults closefrom_override

         then calling sudo via 'sudo -C 5 -u $USER qemu ..' is required.
         See sudoers(5) and sudo(8) for details.

--
Vijay Sankar, M.Eng., P.Eng.
ForeTell Technologies Limited
59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
Phone: (204) 885-9535, E-Mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts

Matthias Pfeifer-4
Hello

On Tue, 02 Feb 2010 05:35:28 -0600
Vijay Sankar <[hidden email]> wrote:

> Matthias Pfeifer wrote:
> > Hello list
> >
> > I am trying to get multiple qemu guests on
> > host machine running. Host and guests are running
> > openbsd 4.6 in sync with the patch brunch.
> >
> > The Host IP is: 192.168.102.110
> > The guest should have: 192.168.102.111, 192.168.102.112 ..
> > and so on. All in the same network, using the same DNS server
> > and gateway.
> >
> > I have read /usr/local/share/doc/qemu/README.OpenBSD
> > and tried the samples in the tap section. This works
> > fine for one host.
> >
> > For example, this is working well for one host:
> >
> > ifconfig tun0 link0
> > ifconfig bridge0 create
> > brconfig bridge0 add tun0 add rl0 up
> >
> > qemu -net nic,macaddr=52:54:00:12:35:10 \
> >      -net tap,fd=3 \
> >      -name Host1 \
> >      -no-fd-bootchk \
> >      -hda Host1/system.img 3<>/dev/tun0
> >
> >
> > Then, I'd like to doing this:
> >
> > ifconfig tun1 link0
> > ifconfig bridge1 create
> > brconfig bridge1 add tun1 add rl0 up
> >
> > qemu -net nic,macaddr=52:54:00:12:35:11 \ ## MAC changed
> >      -net tap,fd=4 \   ## fd changed
> >      -name Host1 \
> >      -no-fd-bootchk \
> >      -hda Host2/system.img 4<>/dev/tun1  ## tun interface changed
> >
> >
> > But this fails. Is there a way to do something like this
> > without adding a real NIC?
> >
> >
> > Thanks in advance!
> >
> > Matthias
> >
>
> NOTE: sudo calls closefrom(2).  In order to have more than one fd passed
>          tap interface, a line to sudoers akin to:
>
>                  Defaults closefrom_override
>
>          then calling sudo via 'sudo -C 5 -u $USER qemu ..' is required.
>          See sudoers(5) and sudo(8) for details.
>
> --
> Vijay Sankar, M.Eng., P.Eng.
> ForeTell Technologies Limited
> 59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
> Phone: (204) 885-9535, E-Mail: [hidden email]
>

I have added "Defaults closefrom_override" to /etc/sudoers.
So i am using the tun0 for the second qemu host:

sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:10 \
     -net tap,fd=3 -name DSB -no-fd-bootchk -hda host1/system.img 3<>/dev/tun0"

Working fine. Then the second:

sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:10 \
     -net tap,fd=4 -name DSB -no-fd-bootchk -hda host1/system.img 4<>/dev/tun0"


this gives me a " cannot create /dev/tun0: Device busy "

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts, typo

Matthias Pfeifer-5
On Tue, 2 Feb 2010 15:10:24 +0100
Matthias Pfeifer <[hidden email]> wrote:

> Hello
>
> On Tue, 02 Feb 2010 05:35:28 -0600
> Vijay Sankar <[hidden email]> wrote:
>
> > Matthias Pfeifer wrote:
> > > Hello list
> > >
> > > I am trying to get multiple qemu guests on
> > > host machine running. Host and guests are running
> > > openbsd 4.6 in sync with the patch brunch.
> > >
> > > The Host IP is: 192.168.102.110
> > > The guest should have: 192.168.102.111, 192.168.102.112 ..
> > > and so on. All in the same network, using the same DNS server
> > > and gateway.
> > >
> > > I have read /usr/local/share/doc/qemu/README.OpenBSD
> > > and tried the samples in the tap section. This works
> > > fine for one host.
> > >
> > > For example, this is working well for one host:
> > >
> > > ifconfig tun0 link0
> > > ifconfig bridge0 create
> > > brconfig bridge0 add tun0 add rl0 up
> > >
> > > qemu -net nic,macaddr=52:54:00:12:35:10 \
> > >      -net tap,fd=3 \
> > >      -name Host1 \
> > >      -no-fd-bootchk \
> > >      -hda Host1/system.img 3<>/dev/tun0
> > >
> > >
> > > Then, I'd like to doing this:
> > >
> > > ifconfig tun1 link0
> > > ifconfig bridge1 create
> > > brconfig bridge1 add tun1 add rl0 up
> > >
> > > qemu -net nic,macaddr=52:54:00:12:35:11 \ ## MAC changed
> > >      -net tap,fd=4 \   ## fd changed
> > >      -name Host1 \
> > >      -no-fd-bootchk \
> > >      -hda Host2/system.img 4<>/dev/tun1  ## tun interface changed
> > >
> > >
> > > But this fails. Is there a way to do something like this
> > > without adding a real NIC?
> > >
> > >
> > > Thanks in advance!
> > >
> > > Matthias
> > >
> >
> > NOTE: sudo calls closefrom(2).  In order to have more than one fd passed
> >          tap interface, a line to sudoers akin to:
> >
> >                  Defaults closefrom_override
> >
> >          then calling sudo via 'sudo -C 5 -u $USER qemu ..' is required.
> >          See sudoers(5) and sudo(8) for details.
> >
> > --
> > Vijay Sankar, M.Eng., P.Eng.
> > ForeTell Technologies Limited
> > 59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
> > Phone: (204) 885-9535, E-Mail: [hidden email]

Sorry, this is what i mean :)

 I have added "Defaults closefrom_override" to /etc/sudoers.
 So i am using the tun0 for the second qemu host:

 sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:10 \
      -net tap,fd=3 -name DSB -no-fd-bootchk -hda host1/system.img
3<>/dev/tun0"

 Working fine. Then the second:

 sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:11 \
      -net tap,fd=4 -no-fd-bootchk -hda host2/system.img 4<>/dev/tun0"


 this gives me a " cannot create /dev/tun0: Device busy "



--

--------------------------------------------------------------
Matthias Pfeifer <[hidden email]>
-  Technik   -

Finance Circle GmbH
Burgstrasse 3
31582 Nienburg / Weser
Tel. 05021-92196-25  //  Fax. 05021-92196-99

HRB 106525 // AG Hamburg //USt.ID: de204840463
Geschdftsf|hrer: Axel Schwiersch

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts

Vijay Sankar
In reply to this post by Matthias Pfeifer-4
Matthias Pfeifer wrote:

> Hello
>
> On Tue, 02 Feb 2010 05:35:28 -0600
> Vijay Sankar <[hidden email]> wrote:
>
>> Matthias Pfeifer wrote:
>>> Hello list
>>>
>>> I am trying to get multiple qemu guests on
>>> host machine running. Host and guests are running
>>> openbsd 4.6 in sync with the patch brunch.
>>>
>>> The Host IP is: 192.168.102.110
>>> The guest should have: 192.168.102.111, 192.168.102.112 ..
>>> and so on. All in the same network, using the same DNS server
>>> and gateway.
>>>
>>> I have read /usr/local/share/doc/qemu/README.OpenBSD
>>> and tried the samples in the tap section. This works
>>> fine for one host.
>>>
>>> For example, this is working well for one host:
>>>
>>> ifconfig tun0 link0
>>> ifconfig bridge0 create
>>> brconfig bridge0 add tun0 add rl0 up
>>>
>>> qemu -net nic,macaddr=52:54:00:12:35:10 \
>>>      -net tap,fd=3 \
>>>      -name Host1 \
>>>      -no-fd-bootchk \
>>>      -hda Host1/system.img 3<>/dev/tun0
>>>
>>>
>>> Then, I'd like to doing this:
>>>
>>> ifconfig tun1 link0
>>> ifconfig bridge1 create
>>> brconfig bridge1 add tun1 add rl0 up
>>>
>>> qemu -net nic,macaddr=52:54:00:12:35:11 \ ## MAC changed
>>>      -net tap,fd=4 \   ## fd changed
>>>      -name Host1 \
>>>      -no-fd-bootchk \
>>>      -hda Host2/system.img 4<>/dev/tun1  ## tun interface changed
>>>
>>>
>>> But this fails. Is there a way to do something like this
>>> without adding a real NIC?
>>>
>>>
>>> Thanks in advance!
>>>
>>> Matthias
>>>
>> NOTE: sudo calls closefrom(2).  In order to have more than one fd passed
>>          tap interface, a line to sudoers akin to:
>>
>>                  Defaults closefrom_override
>>
>>          then calling sudo via 'sudo -C 5 -u $USER qemu ..' is required.
>>          See sudoers(5) and sudo(8) for details.
>>
>> --
>> Vijay Sankar, M.Eng., P.Eng.
>> ForeTell Technologies Limited
>> 59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
>> Phone: (204) 885-9535, E-Mail: [hidden email]
>>
>
> I have added "Defaults closefrom_override" to /etc/sudoers.
> So i am using the tun0 for the second qemu host:
>
> sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:10 \
>      -net tap,fd=3 -name DSB -no-fd-bootchk -hda host1/system.img 3<>/dev/tun0"
>
> Working fine. Then the second:
>
> sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:10 \
>      -net tap,fd=4 -name DSB -no-fd-bootchk -hda host1/system.img 4<>/dev/tun0"
>
>
> this gives me a " cannot create /dev/tun0: Device busy "
>

Looks like you have the same MAC. I am not able to test this right now
but will try to see if I can repeat this error.

--
Vijay Sankar, M.Eng., P.Eng.
ForeTell Technologies Limited
59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
Phone: (204) 885-9535, E-Mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts, typo

Rogier Krieger
In reply to this post by Matthias Pfeifer-5
On Tue, Feb 2, 2010 at 15:27, Matthias Pfeifer <[hidden email]> wrote:
>  [...] Then the second:
<snip>
>  this gives me a " cannot create /dev/tun0: Device busy "

If I'm not mistaken, you need separate tun(4) devices per qemu
instance. The reason for that lies in the device being ready for
simultaneous use only by a single process.

To quote tun(4):
     Each device has the exclusive open property; it cannot be opened if it is
     already open and in use by another process.

If I misunderstood, feel free to correct me.

Regards,

Rogier

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts, typo

Todd T. Fries-2
You need a tun(4) device per qemu '-net tap' argument, sometimes multiple per
qemu instance, sometimes none per qemu instance..

Thanks,

Penned by Rogier Krieger on 20100202 16:51.31, we have:
| On Tue, Feb 2, 2010 at 15:27, Matthias Pfeifer <[hidden email]> wrote:
| >  [...] Then the second:
| <snip>
| >  this gives me a " cannot create /dev/tun0: Device busy "
|
| If I'm not mistaken, you need separate tun(4) devices per qemu
| instance. The reason for that lies in the device being ready for
| simultaneous use only by a single process.
|
| To quote tun(4):
|      Each device has the exclusive open property; it cannot be opened if it is
|      already open and in use by another process.
|
| If I misunderstood, feel free to correct me.
|
| Regards,
|
| Rogier

--
Todd Fries .. [hidden email]

 _____________________________________________
|                                             \  1.636.410.0632 (voice)
| Free Daemon Consulting, LLC                 \  1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com             \  1.866.792.3418 (FAX)
| 2525 NW Expy #525, Oklahoma City, OK 73112  \  sip:[hidden email]
| "..in support of free software solutions."  \  sip:[hidden email]
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                 
              37E7 D3EB 74D0 8D66 A68D  B866 0326 204E 3F42 004A
                        http://todd.fries.net/pgp.txt

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts, typo

Vijay Sankar
In reply to this post by Matthias Pfeifer-5
Matthias Pfeifer wrote:

> On Tue, 2 Feb 2010 15:10:24 +0100
> Matthias Pfeifer <[hidden email]> wrote:
>
>> Hello
>>
>> On Tue, 02 Feb 2010 05:35:28 -0600
>> Vijay Sankar <[hidden email]> wrote:
>>
>>> Matthias Pfeifer wrote:
>>>> Hello list
>>>>
>>>> I am trying to get multiple qemu guests on
>>>> host machine running. Host and guests are running
>>>> openbsd 4.6 in sync with the patch brunch.
>>>>
>>>> The Host IP is: 192.168.102.110
>>>> The guest should have: 192.168.102.111, 192.168.102.112 ..
>>>> and so on. All in the same network, using the same DNS server
>>>> and gateway.
>>>>
>>>> I have read /usr/local/share/doc/qemu/README.OpenBSD
>>>> and tried the samples in the tap section. This works
>>>> fine for one host.
>>>>
>>>> For example, this is working well for one host:
>>>>
>>>> ifconfig tun0 link0
>>>> ifconfig bridge0 create
>>>> brconfig bridge0 add tun0 add rl0 up
>>>>
>>>> qemu -net nic,macaddr=52:54:00:12:35:10 \
>>>>      -net tap,fd=3 \
>>>>      -name Host1 \
>>>>      -no-fd-bootchk \
>>>>      -hda Host1/system.img 3<>/dev/tun0
>>>>
>>>>
>>>> Then, I'd like to doing this:
>>>>
>>>> ifconfig tun1 link0
>>>> ifconfig bridge1 create
>>>> brconfig bridge1 add tun1 add rl0 up
>>>>
>>>> qemu -net nic,macaddr=52:54:00:12:35:11 \ ## MAC changed
>>>>      -net tap,fd=4 \   ## fd changed
>>>>      -name Host1 \
>>>>      -no-fd-bootchk \
>>>>      -hda Host2/system.img 4<>/dev/tun1  ## tun interface changed
>>>>
>>>>
>>>> But this fails. Is there a way to do something like this
>>>> without adding a real NIC?
>>>>
>>>>
>>>> Thanks in advance!
>>>>
>>>> Matthias
>>>>
>>> NOTE: sudo calls closefrom(2).  In order to have more than one fd passed
>>>          tap interface, a line to sudoers akin to:
>>>
>>>                  Defaults closefrom_override
>>>
>>>          then calling sudo via 'sudo -C 5 -u $USER qemu ..' is required.
>>>          See sudoers(5) and sudo(8) for details.
>>>
>>> --
>>> Vijay Sankar, M.Eng., P.Eng.
>>> ForeTell Technologies Limited
>>> 59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
>>> Phone: (204) 885-9535, E-Mail: [hidden email]
>
> Sorry, this is what i mean :)
>
>  I have added "Defaults closefrom_override" to /etc/sudoers.
>  So i am using the tun0 for the second qemu host:
>
>  sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:10 \
>       -net tap,fd=3 -name DSB -no-fd-bootchk -hda host1/system.img
> 3<>/dev/tun0"
>
>  Working fine. Then the second:
>
>  sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:11 \
>       -net tap,fd=4 -no-fd-bootchk -hda host2/system.img 4<>/dev/tun0"
>
>
>  this gives me a " cannot create /dev/tun0: Device busy "
>
>
>
> --
>
> --------------------------------------------------------------
> Matthias Pfeifer <[hidden email]>
> -  Technik   -
>
> Finance Circle GmbH
> Burgstrasse 3
> 31582 Nienburg / Weser
> Tel. 05021-92196-25  //  Fax. 05021-92196-99
>
> HRB 106525 // AG Hamburg //USt.ID: de204840463
> Geschdftsf|hrer: Axel Schwiersch
>

I was running three instances of Windows 2000 Server and one Windows
2003 server on a Dell 2900 -- two IIS servers, and two SQL Servers for
testing purposes a while ago. Here is some info on how I was doing it at
that time --

  9:55AM  up 106 days, 23:56, 6 users, load averages: 0.18, 0.17, 0.16
USER    TTY FROM              LOGIN@  IDLE WHAT
vsankar  C0 -                21Sep09106days xinit /etc/X11/xinit/xinitrc
-- /usr/X11R6/bin/X :0 -auth /home/vsankar/.serverauth.21200
vsankar  p0 :0.0             21Sep09106days qemu -net
nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F1 -net tap,vlan=0 -m
448 -no-fd-bootchk -localtime -hda w2k3.img -nographic
vsankar  p2 :0.0             21Sep09106days qemu -net
nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F2 -net tap,vlan=0 -m
384 -no-fd-bootchk -localtime -hda w2k.img -nographic
vsankar  p3 :0.0             21Sep09106days qemu -net
nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F3 -net tap,vlan=0 -m
384 -localtime -no-fd-bootchk -nographic -hda appint.img
vsankar  p4 :0.0             21Sep09106days qemu -net
nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F4 -net tap,vlan=0 -m
384 -no-fd-bootchk -localtime -hda appext.img -nographic

Each vm guest was started with a command similar to the following:

sudo env ETHER=bnx1 qemu \
-net nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:XX \
-net tap,vlan=0 -m 384 -no-fd-bootchk -localtime \
-hda whatever.img -nographic

XX was F1, F2, F3, and F4 w2k3, w2k, appint and appext images respectively

I used nographic because it was easier to use rdesktop and rdp from
other systems to access the vm guests instead of being at the console.

hope this helps,

Vijay
--
Vijay Sankar, M.Eng., P.Eng.
ForeTell Technologies Limited
59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
Phone: (204) 885-9535, E-Mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: multiple qemu hosts, typo

James Records
I have some of this left over from s similar project i was doing a while
back, I was setting up router images in a carp setup:


This builds the harness:

#!/bin/sh
#
# stupid script to start multiple qemus on a single box

SUDO=/usr/bin/sudo
USER=xxxxxx
MODE=ENABLE

usage() {
        echo "usage: $0 [-h harnesstype] [-d]" 1>&2
        exit 2
}

start() {
    echo MODE: $MODE
    if [ $MODE = "DISABLE" ]; then
        echo DeConfiguring ${HARNESS} Harness
        echo DeConfiguring tun0:
        echo ${SUDO} ifconfig tun0 destroy
        ${SUDO} ifconfig tun0 destroy
        echo DeConfiguring tun1:
        echo ${SUDO} ifconfig tun1 destroy
        ${SUDO} ifconfig tun1 destroy
        echo DeConfiguring tun2:
        echo ${SUDO} ifconfig tun2 destroy
        ${SUDO} ifconfig tun2 destroy
    else
        # make sure a tun interface is available
        echo Configuring ${HARNESS} Harness
        echo Configuring tun0:
        echo ${SUDO} ifconfig tun0 192.168.254.254 link0
        ${SUDO} ifconfig tun0 192.168.254.254 link0
        echo Configuring tun1:
        echo ${SUDO} ifconfig tun1 192.168.1.254 link0
        ${SUDO} ifconfig tun1 192.168.1.254 link0
        echo Configuring tun2:
        echo ${SUDO} ifconfig tun2 192.168.253.254 link0
        ${SUDO} ifconfig tun2 192.168.253.254 link0
    fi
}

args=`getopt d $*`

if [ $? -ne 0 ]; then
    usage
fi
    set -- $args
    while [ $# -gt 0 ]; do
        case "$1" in
        -d) MODE="DISABLE"
        echo "Disable Mode"
        ;;
        --) shift;
        break
        ;;
        esac
        shift
    done

        if [ $# -ne 1 ]; then
            usage
        fi

start $1


And this brings up the image 3 times:


#!/bin/sh
#
# stupid script to start multiple qemus on a single box

SUDO=/usr/bin/sudo
USER=jrecords

# qemu args
IMAGE=$1
MEMORY=128
FLAGS=" -nographic -serial telnet:127.0.0.1:1010,server,nowait
-no-fd-bootchk"

NICFLAGS="-net nic,vlan=\$id -net tap,vlan=\$id,ifname=\$id,fd=\$fd"


start() {
        for id in 0 1 2; do
                fd=$(($id + 3))
                tun=tun$(($id))

                eval "nics=\"$nics $NICFLAGS\""
                fds="$fds $fd<> /dev/$tun"

        done


        cmd="${SUDO} -C 5 qemu -m ${MEMORY} -hda ${IMAGE}${FLAGS}$nics$fds"
        echo Running: ${SUDO} sh -c "$cmd"
        ${SUDO} sh -c "$cmd"
}

start $1


You may have to do some tweaking its been months since I looked at this
stuff, the telnet won't work, you'll need to change the port that its
listening on dynamically, but this should help get you going in the right
direction, my intention was to scale this out so I could test 24 or 32
firewalls in a cluster on one box.


J

On Tue, Feb 2, 2010 at 9:09 AM, Vijay Sankar <[hidden email]> wrote:

> Matthias Pfeifer wrote:
>
>> On Tue, 2 Feb 2010 15:10:24 +0100
>> Matthias Pfeifer <[hidden email]> wrote:
>>
>>  Hello
>>>
>>> On Tue, 02 Feb 2010 05:35:28 -0600
>>> Vijay Sankar <[hidden email]> wrote:
>>>
>>>  Matthias Pfeifer wrote:
>>>>
>>>>> Hello list
>>>>>
>>>>> I am trying to get multiple qemu guests on
>>>>> host machine running. Host and guests are running
>>>>> openbsd 4.6 in sync with the patch brunch.
>>>>>
>>>>> The Host IP is: 192.168.102.110
>>>>> The guest should have: 192.168.102.111, 192.168.102.112 ..
>>>>> and so on. All in the same network, using the same DNS server
>>>>> and gateway.
>>>>>
>>>>> I have read /usr/local/share/doc/qemu/README.OpenBSD
>>>>> and tried the samples in the tap section. This works
>>>>> fine for one host.
>>>>>
>>>>> For example, this is working well for one host:
>>>>>
>>>>> ifconfig tun0 link0
>>>>> ifconfig bridge0 create
>>>>> brconfig bridge0 add tun0 add rl0 up
>>>>>
>>>>> qemu -net nic,macaddr=52:54:00:12:35:10 \
>>>>>     -net tap,fd=3 \
>>>>>     -name Host1 \
>>>>>     -no-fd-bootchk \
>>>>>     -hda Host1/system.img 3<>/dev/tun0
>>>>>
>>>>>
>>>>> Then, I'd like to doing this:
>>>>>
>>>>> ifconfig tun1 link0
>>>>> ifconfig bridge1 create
>>>>> brconfig bridge1 add tun1 add rl0 up
>>>>>
>>>>> qemu -net nic,macaddr=52:54:00:12:35:11 \ ## MAC changed
>>>>>     -net tap,fd=4 \   ## fd changed
>>>>>     -name Host1 \
>>>>>     -no-fd-bootchk \
>>>>>     -hda Host2/system.img 4<>/dev/tun1  ## tun interface changed
>>>>>
>>>>>
>>>>> But this fails. Is there a way to do something like this
>>>>> without adding a real NIC?
>>>>>
>>>>>
>>>>> Thanks in advance!
>>>>>
>>>>> Matthias
>>>>>
>>>>>  NOTE: sudo calls closefrom(2).  In order to have more than one fd
>>>> passed
>>>>         tap interface, a line to sudoers akin to:
>>>>
>>>>                 Defaults closefrom_override
>>>>
>>>>         then calling sudo via 'sudo -C 5 -u $USER qemu ..' is required.
>>>>         See sudoers(5) and sudo(8) for details.
>>>>
>>>> --
>>>> Vijay Sankar, M.Eng., P.Eng.
>>>> ForeTell Technologies Limited
>>>> 59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
>>>> Phone: (204) 885-9535, E-Mail: [hidden email]
>>>>
>>>
>> Sorry, this is what i mean :)
>>
>>  I have added "Defaults closefrom_override" to /etc/sudoers.
>>  So i am using the tun0 for the second qemu host:
>>
>>  sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:10 \
>>      -net tap,fd=3 -name DSB -no-fd-bootchk -hda host1/system.img
>> 3<>/dev/tun0"
>>
>>  Working fine. Then the second:
>>
>>  sudo sh -c " sudo -C 5 -u qemu qemu -net nic,macaddr=52:54:00:12:35:11 \
>>      -net tap,fd=4 -no-fd-bootchk -hda host2/system.img 4<>/dev/tun0"
>>
>>
>>  this gives me a " cannot create /dev/tun0: Device busy "
>>
>>
>>
>> --
>>
>> --------------------------------------------------------------
>> Matthias Pfeifer <[hidden email]>
>> -  Technik   -
>>
>> Finance Circle GmbH
>> Burgstrasse 3
>> 31582 Nienburg / Weser
>> Tel. 05021-92196-25  //  Fax. 05021-92196-99
>>
>> HRB 106525 // AG Hamburg //USt.ID: de204840463
>> Geschdftsf|hrer: Axel Schwiersch
>>
>>
> I was running three instances of Windows 2000 Server and one Windows 2003
> server on a Dell 2900 -- two IIS servers, and two SQL Servers for testing
> purposes a while ago. Here is some info on how I was doing it at that time
> --
>
>  9:55AM  up 106 days, 23:56, 6 users, load averages: 0.18, 0.17, 0.16
> USER    TTY FROM              LOGIN@  IDLE WHAT
> vsankar  C0 -                21Sep09106days xinit /etc/X11/xinit/xinitrc --
> /usr/X11R6/bin/X :0 -auth /home/vsankar/.serverauth.21200
> vsankar  p0 :0.0             21Sep09106days qemu -net
> nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F1 -net tap,vlan=0 -m 448
> -no-fd-bootchk -localtime -hda w2k3.img -nographic
> vsankar  p2 :0.0             21Sep09106days qemu -net
> nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F2 -net tap,vlan=0 -m 384
> -no-fd-bootchk -localtime -hda w2k.img -nographic
> vsankar  p3 :0.0             21Sep09106days qemu -net
> nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F3 -net tap,vlan=0 -m 384
> -localtime -no-fd-bootchk -nographic -hda appint.img
> vsankar  p4 :0.0             21Sep09106days qemu -net
> nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:F4 -net tap,vlan=0 -m 384
> -no-fd-bootchk -localtime -hda appext.img -nographic
>
> Each vm guest was started with a command similar to the following:
>
> sudo env ETHER=bnx1 qemu \
> -net nic,vlan=0,model=rtl8139,macaddr=AA:BB:CC:DD:EE:XX \
> -net tap,vlan=0 -m 384 -no-fd-bootchk -localtime \
> -hda whatever.img -nographic
>
> XX was F1, F2, F3, and F4 w2k3, w2k, appint and appext images respectively
>
> I used nographic because it was easier to use rdesktop and rdp from other
> systems to access the vm guests instead of being at the console.
>
> hope this helps,
>
> Vijay
> --
> Vijay Sankar, M.Eng., P.Eng.
> ForeTell Technologies Limited
> 59 Flamingo Avenue, Winnipeg, MB, Canada R3J 0X6
> Phone: (204) 885-9535, E-Mail: [hidden email]