Contents
1. Xen Networking Examples
1. Single Physical Public - Single Virtual Backend
1. Justification
2. Network Layout
3. dom0 (xend)
4. domU
2. Template
1. Justification
2. Network Layout
3. dom0 (xend)
4. domU
Xen Networking Examples
This page is here because I found it difficult to find information on what I felt was a relatively simple networking case. However it should not be limited by that case - it could become a good reference point for most common networking layouts.
Single Physical Public - Single Virtual Backend
Justification
At Hetzner (a German hosting company - also available in SA) their root servers typically have a single ethernet connection, allowing multiple addresses. I also wanted to have a private network to allow home directory sharing and other such things between various functional Xen domains (www/mail...).
Network Layout
My IP and most of my /29 subnet are avaiable directly on the single ethernet interface provided. The first subnet address is the subnet gateway and is provided by my hosting provider.
Hosting Switch
|
|
|
peth0
|
xenbr0 xenbr1
| - PubIP - dom0 - RFC1918 - |
| - PubIP - domU - RFC1918 - |
...
dom0 (xend)
I run debian as a dom0, and chose to use 172.16.16.0/24 as my RFC1918 range, so I did the following (as root):
modprobe dummy
echo dummy >> /etc/modules
cat <
# Xen Backend
auto dummy0
iface dummy0 inet static
address 172.16.16.1
broadcast 172.16.16.255
netmask 255.255.255.0
EOF
ifup dummy0
cat <
#!/bin/sh
dir=$(dirname "$0")
"$dir/network-bridge" "$@" vifnum=0 netdev=eth0 bridge=xenbr0
"$dir/network-bridge" "$@" vifnum=1 netdev=dummy0 bridge=xenbr1
EOF
chmod +x /etc/xen/scripts/my_network_script
Don't forget to make the new script executable
Then edit /etc/xen/xend-config.sxp to have the following two lines of config:
(network-script my_network_script)
(vif-script vif-bridge)
And restart xend
/etc/init.d/xend restart
If you run ifconfig now you should see the following interfaces:
* lo
* eth0 (Your public IP address)
* dummy0 (172.16.16.1 - or other RFC1918 address)
* xenbr0
* xenbr1
domU
Configure your domU as normal - but edit the cfg file to have the following entry (substitute your public IP and an available private IP):
vif = [ 'ip=
When you boot it up - set the two interfaces up in /etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address x.y.z.2
gateway x.y.z.1
netmask 255.255.255.248
auto eth1
iface eth1 inet static
address 172.16.16.2
netmask 255.255.255.0
Template
Justification
Network Layout
dom0 (xend)
domU