Configuring the TAP version of the HTTP server

Sven Fülster mx at ...19...
Mon Feb 22 11:25:59 CET 2010


Hi all,

if you're working with ubuntu, you could also setup bridge-utils 
(apt-get install bridge-utils) on your host and try the following scripts:

-- qemu-start-nw

! #!/bin/sh
! #
! # This script requires qemu 0.11.50 or newer and a host
! # system with bridge utils. Must be run as root.
!
! qemu-ifup tap0
!
! qemu -kernel $1 -serial stdio -m 1024 -usbdevice mouse -usbdevice 
keyboard -net nic,model=pcnet,macaddr=00:81:71:61:51:41 -net 
tap,ifname=tap0,script=no,downscript=no
!
! qemu-ifdown tap0


$1 would be the weaver.elf file. Don't make the first byte of the 
assigned mac address an odd number, because that would be a multicast 
mac address which might be ignored by some (linux-) peers.

-- qemu-ifup

! #!/bin/sh
! #
! # script to bring up the tun device in QEMU in bridged mode
! # first parameter is name of tap device (e.g. tap0)
!
! #
! # First take eth0 down, then bring it up with IP 0.0.0.0
! #
! /sbin/ifconfig eth0 down
! /sbin/ifconfig eth0 promisc up
!
! #
! # Bring up the tap device (name specified as first argument, by QEMU)
! #
! /usr/sbin/openvpn --mktun --dev $1 --user `id -un`
! /sbin/ifconfig $1 up
!
! #
! # create the bridge between eth0 and the tap device
! #
! /usr/sbin/brctl addbr br0
! /usr/sbin/brctl addif br0 eth0
! /usr/sbin/brctl addif br0 $1
! /sbin/ifconfig br0 up
!
! #
! # only a single bridge so loops are not possible, turn off spanning 
tree protocol
! #
! /usr/sbin/brctl stp br0 off


-- qemu-ifdown

! #!/bin/sh
! #
! # Script to bring down and delete bridge br0 when QEMU exits
! #
! # Bring down eth0 and br0
! #
! /sbin/ifconfig eth0 down
! /sbin/ifconfig $1 down
! /sbin/ifconfig br0 down
! #
! # Delete the bridge
! #
! /usr/sbin/brctl delbr br0
! #
! # bring up eth0 in "normal" mode
! #
! /sbin/ifconfig eth0 -promisc
! /sbin/ifconfig eth0 up
! #
! # delete the tap device
! #
! /usr/sbin/openvpn --rmtun --dev $1


Perhaps you must prevent local networking from using the bridged 
interface (for whatever reason, this does not seem to work in my case)

! route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
! route add -net 192.168.1.0 netmask 255.255.255.0 dev wlan0

Good luck

Sven


Christian Helmuth wrote:
> Hello Peter,
>
> On Mon, Feb 22, 2010 at 11:29:38AM +1030, Peter Nguyen wrote:
>   
>> Is anyone able to give me some pointers on how to set up the TAP version 
>> of the HTTP server? My knowledge on setting up such things is not that 
>> good. More specifically, I'm unsure as to what do for setting up the 
>> DHCP server step stated in the following link:
>> http://genode.org/documentation/release-notes/9.02#section-4
>>     
>
> I also discovered this deficiency in the documentation while writing a
> section of the release notes for Genode 10.02. The information
> regarding your question is:
>
>   [...] Therefore, the device has to be configured prior to running
>   Genode like the following.
>
>   ! sudo tunctl -u $$USER -t tap0
>   ! sudo ip link set tap0 up
>   ! sudo ip address add 10.0.0.1/24 brd + dev tap0
>
>   Give it a try with the lwIP example scenario. Please note that lwIP
>   is configured for DHCP and does not assign a static IP configuration
>   to its end of the wire. Hence, you should run a DHCP server on
>   tap0, e.g.
>
>   ! sudo /usr/sbin/dhcpd3 -d -f -cf /tmp/dhcpd.conf -pf /tmp/dhcpd.pid -lf /tmp/dhcpd.lease tap0
>
>   An example 'dhcpd.conf' may look like
>
>   ! subnet 10.0.0.0 netmask 255.255.255.0 {
>   !   range 10.0.0.16 10.0.0.31;
>   ! }
>
>   The DHCP server's log will show you that the driver fakes an
>   ethernet NIC with the MAC address 01:02:03:04:05:06.
>
> Happy Hacking
>   
--
Sven Fülster




More information about the users mailing list