Welcome to the new location of Alien's Wiki, sharing a single dokuwiki install with the SlackDocs Wiki.

Welcome to Eric Hameleers (Alien BOB)'s Wiki pages.

If you want to support my work, please consider a small donation:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
slackware:vde [2006/04/07 10:07] – created alienslackware:vde [2006/04/11 07:28] alien
Line 16: Line 16:
  
 The solution is a small but powerful piece of software called [[http://vde.sourceforge.net/ | VDE]] - which stands for //Virtual Distributed Ethernet//. You can see VDE as the software incarnation of a hardware network switch plus attached cables. Using the //vde_switch// and //vde_plug// programs you are able to create quite complex virtual analogies of a network that can span several hosts, even across the Internet. Read the documentation if you want to know more about this exciting product. For our limited purpose of enhancing the network capabilities of the QEMU Virtual Machines, I will just point out that VDE configures a //virtual// network for your QEMU Guests, and uses a single tap device to set it all up. You configure the tap device as root (typically during the boot stage of your computer) after which no further root access is required for the Virtual Machines to connect to the VDE "switch".\\ The solution is a small but powerful piece of software called [[http://vde.sourceforge.net/ | VDE]] - which stands for //Virtual Distributed Ethernet//. You can see VDE as the software incarnation of a hardware network switch plus attached cables. Using the //vde_switch// and //vde_plug// programs you are able to create quite complex virtual analogies of a network that can span several hosts, even across the Internet. Read the documentation if you want to know more about this exciting product. For our limited purpose of enhancing the network capabilities of the QEMU Virtual Machines, I will just point out that VDE configures a //virtual// network for your QEMU Guests, and uses a single tap device to set it all up. You configure the tap device as root (typically during the boot stage of your computer) after which no further root access is required for the Virtual Machines to connect to the VDE "switch".\\
 +
 +=== Getting a VDE package ===
 +
 +I have created a Slackware package for VDE that you'll find in my [[http://www.slackware.com/~alien/slackbuilds/vde/ | SlackBuilds repository]]. The package by the way installs a version of the example [[#example_scripts | rc.vdenetwork]] script in it's //doc// directory.
 +
  
 ==== DNSMasq ==== ==== DNSMasq ====
Line 23: Line 28:
 Dnsmasq is targeted at home networks using NAT and connected to the internet via a modem, cable-modem or ADSL connection but would be a good choice for any small network where low resource use and ease of configuration are important." Dnsmasq is targeted at home networks using NAT and connected to the internet via a modem, cable-modem or ADSL connection but would be a good choice for any small network where low resource use and ease of configuration are important."
  
-I could not have said it better myself. We will use dnsmasq to compensate for the loss of the QEMU-internal DHCP Server (because we abandon user-mode networking). Note that Slackware comes with a dnsmasq package and a ''/etc/rc.d/rc.dnsmasq'' init script is installed automatically, although it is not executable by default. If your machine already runs dnsmasq, you will have to look at the ''rc.vdenetwork'' script in the [[#example_scripts | last section]] and integrate the dnsmasq related configuration into your existing setup. If you're //not// already running dnsmasq, you don't have to worry about this ''rc.dnsmasq'' file that Slackware installed - we won't be using it.+I could not have said it better myself. We will use dnsmasq to compensate for the loss of the QEMU-internal DHCP Server (because we abandon user-mode networking). Note that Slackware full-install contains a dnsmasq package already, and a ''/etc/rc.d/rc.dnsmasq'' init script is installed automatically, although it is not executable by default. If your machine already runs dnsmasq, you will have to look at the ''rc.vdenetwork'' script in the [[#example_scripts | last section]] and integrate the dnsmasq related configuration into your existing setup. If you're //not// already running dnsmasq, you don't have to worry about this ''rc.dnsmasq'' file that Slackware installed - we won't be using it.
  
 Dnsmasq will pick up any existing network configuration information of your computer, by reading ''/etc/hosts'' and ''/etc/resolv.conf'' and will use that information when it sends DHCP configuration to the QEMU Guest. If your computer has a functioning network connection to the LAN and/or the Internet, your QEMU Guest(s) will enjoy the same functionality. Furthermore, by examining your computer's message log ''/var/log/messages'' you will be able to determine what IP address the QEMU Guest picks up, and you can use that knowledge to ''ssh'' into the Virtual Machine or point a web browser to a running Apache server inside the VM - or connect to whatever other network service that you enabled on your VM. Dnsmasq will pick up any existing network configuration information of your computer, by reading ''/etc/hosts'' and ''/etc/resolv.conf'' and will use that information when it sends DHCP configuration to the QEMU Guest. If your computer has a functioning network connection to the LAN and/or the Internet, your QEMU Guest(s) will enjoy the same functionality. Furthermore, by examining your computer's message log ''/var/log/messages'' you will be able to determine what IP address the QEMU Guest picks up, and you can use that knowledge to ''ssh'' into the Virtual Machine or point a web browser to a running Apache server inside the VM - or connect to whatever other network service that you enabled on your VM.
Line 237: Line 242:
 </code> </code>
  
-A script that you can use to start QEMU, connect it to the vde_switch, and have sound in the VM is presented here. Note that if you run more than one QEMU session, the Virtual Machines will see each other on the network privided by the VDE +A script that you can use to start QEMU, connect it to the vde_switch, and have sound in the VM is presented here. Note that if you run more than one QEMU session, the Virtual Machines will see each other on the network provided by the VDE switch. This means that all of them must have unique MAC addresses. Since QEMU will assign the //same// MAC address to each VM by default, we will have to pass each QEMU instance it's own MAC Address. So, for running multiple QEMU powered VM's, you'll have to create multiple copies of the following script (or think up some magic to generate unique MAC addresses). Actually, I also provide this same example script on the [[slackware:qemu | QEMU Wiki page]]. The example assumes you want to run Windows XP, so that explains the comments and the naming of the various files used. You can run anything you want inside the QEMU VM or course, QEMU won't care. <code>
-switch. This means that all of them must have unique MAC addresses. Since QEMU will assign the //same// MAC address to each VM by default, we will have to pass each QEMU instance it's own MAC Address. So, for running multiple QEMU powered VM's, you'll have to create multiple copies of the following script (or think up some magic to generate unique MAC addresses). Actually, I also provide this same example script on the [[slackware:qemu | QEMU Wiki page]]. The example assumes you want to run Windows XP, so that explains the comments and the naming of the various files used. You can run anything you want inside the QEMU VM or course, QEMU won't care. <code>+
 #!/bin/sh #!/bin/sh
 # #
 A networking powerhouse ()
SlackDocs