Setting up Xen 3.0.1 on Debian

A few people have asked what happened to my stack of Ultra 5’s and the Gentoo network servers. To be honest, I just didn’t have the time or drive! Although it was good fun at first, they were just so slow compiling source it got annoying. They’re still sat there and I occasionally play with them, but not much!

Xen Source server for virtual machinesInstead, I now have my new test server up and running based off my old Athlon XP 2800+. It’s powered by Debian at the moment rather than Gentoo as I found a wonderful guide on setting up Xen and creating your virtual machines. For those not familiar with Xen, it’s an open source server virtualisation system along the same lines as VMWare, though without all the pretty buttons to set everything up! It allows you run multiple operating systems at the same time from the one system, meaning you cut down on hardware + maintenance costs, and for situations like I’m running, means you can run multiple servers from the one machine 🙂

Now that I’ve got it up and running it’s actually very, very impressive. The documentation is clear and they have very good IRC channel (##xen on Freenode), but I still spent a good while trying to get the networking going which had everyone stumped. Am good at coming up with these things! I had dom0 setup, which is your host server, and had created a couple of domU’s, your virtual machines. But, I had no networking from the virtual machines. The idea is your host system handles the routing using virtual interfaces and a network bridge, but it wasn’t working. Whenever you tried to ping anything, it would return “Destination Host Unreachable“, indicating something at least was working.

Doh!After checking through various settings, re-building virtual machines, running tcpdump to monitor traffic, etc. I finally stumbled across the problem whilst trying to manually create the bridge using the ‘/etc/xen/network-bridge‘ script. The cause? Xen looks for, and only for, a physical connection on eth0. It sets up peth0 which seems to handle the virtual routing alongside xenbr0, your network bridge. I was using eth2, not eth0, so although everything appeared fine, peth0 had no link with eth2 and so all domU virtual machines would have no network connections. Switch yer cable into eth0, bring the interface up and everything works.

Very annoying, and possibly something catching quite a few people out since there’s a number of identical problems strewn across forums, message boards and blogs. Gonna check if a bug has been filed for this, as Xen should check for which eth is active and link peth0 with it. Now that it’s resolved, I’m finding it very impressive – you simply ssh into your virtual machines as normal and since you have a standard Debian install running, can do whatever you want. Will start building on the network services over the next few days and linking the virtual machines together simulating a virtual server rack to see how Xen handles it, but it’s certainly a very powerful tool


Senior Content Development for Microsoft writing about Azure Kubernetes Service (AKS). Model train nerd. Occasionally I play video games.

Leave a Reply

Your email address will not be published. Required fields are marked *