WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-users

Re: [Xen-users] Networking trouble with routed /29

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-users] Networking trouble with routed /29
From: jez <jez@xxxxxxxxxx>
Date: Thu, 15 Mar 2007 19:37:17 +0100
Delivery-date: Thu, 15 Mar 2007 10:33:13 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <85aee1730703142008p1ad920cev8a00929e0210bcb8@xxxxxxxxxxxxxx>
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Mail-followup-to: xen-users@xxxxxxxxxxxxxxxxxxx
References: <85aee1730703142008p1ad920cev8a00929e0210bcb8@xxxxxxxxxxxxxx>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.13 (2006-08-11)
On Wed, Mar 14, 2007 at 11:08:49PM -0400, Russell Horn wrote:
> 
> My dom0 is connected to the outside world via eth1
> 
> I have a distinct /29 allocated to me which is routed to my eth1 IP
> xxx.yyy.82.76
> 
<snip/>
> I have set up a dummy0 interface as follows:
>
>        inet addr:xxx.yyy.93.105  Bcast:xxx.yyy.93.111 Mask:255.255.255.248
>


Hi Russell

The following is a configuration that should work on Debian Etch (and
probably on Sarge, and on Ubuntu also). If you're running some other
distro you might like to read through this stuff anyway and see if you
can adapt it to your needs. The key is that your distribution should
support the creation of briges in their network startup scripts. You
don't even actually need to use their startup scripts as you can just
create a brige yourself using "brctl addbr xbr0". Anyway, read on and
see what you think.

To make this simple for people who find this in the future, we will
assume that your hosting provider gave you the block 10.0.0.0 with a
netmask of 255.255.255.248 - in other words, they gave you 10.0.0.0/29. 
We'll also assume that the external ip that they gave you was 
172.16.82.76/24 with a gateway of 172.16.82.1 - but these external 
addresses don't matter for our purposes, they're just for illustration.

First you set up /etc/network/interfaces to create an anonymous bridge
(ie a bridge that doesn't presently have anything attached to it). We'll
call our bridge xbr0. Your interfaces config file should look like:

    # /etc/network/interfaces

    auto lo
    iface lo inet loopback

    # no config for eth0 yet

    auto eth1
    iface eth1 inet static 
        address 172.16.82.76
        netmask 255.255.255.0
        gateway 172.16.82.1

    auto xbr0
    iface xbr0 inet manual
        bridge_ports none
        up ip addr add 10.0.0.1/29 dev ${IFACE}

Now bring up the bridge by doing "ifup xbr0" and check the output 
of ifconfig to see that it's UP.

Okay, since we'll be routing you'll need to set up your Dom0 to 
forward traffic. Do this by:

    echo 1 > /proc/sys/net/ipv4/ip_forward

To make this setting permenant across reboots, edit /etc/sysctl.conf 
and make sure it contains:

    net.ipv4.conf.default.forwarding=1

Now change your /etc/xen/xend-config.sxp to look like:

    (network-script network-dummy)
    (vif-script vif-bridge)

No, this isn't a typo! :-) For those of you from non-debian distro's,
the network-dummy script does nothing, it just contains "exit 0".

You don't need anything special in your domain configuration files, the
following is fine:

    vif = [ '' ]

Okay, let's just check the state of the bridge before we start any
DomUs. You should see something like:

    $ brctl show
    bridge name     bridge id               STP enabled     interfaces
    xbr0            8000.000000000000       no

Notice the way it has no interfaces at the moment. Let's start a domain
and then look at the bridge again:

    # xm create yabba.cfg
    # brctl show
    bridge name     bridge id               STP enabled     interfaces
    xbr0            8000.feffffffffff       no              vif1.0

Now configure your DomU as you normally would, eg:
  
    ifconfig eth0 10.0.0.2 netmask 255.255.255.248

Then try and ping it, etc. If traffic isn't getting through, check the
firewall on Dom0. You're mostly interested in the FORWARD chain, and you
can watch it in real time to see if it's dropping packets using:

    # watch iptables -vnL

    or for just the FORWARD chain

    # watch iptables -vnL FORWARD

So, in summary, the xen vif-bridge script will add your DomU interfaces
to a bridge that *you* configured if such a bridge exists. Also, you
don't need a dummy interface because you have given an address to the
bridge itself.

Personally, I don't use a configuration like this because there are more
secure alternatives. The downside to this configuration from a security
point of view is that the DomU decides what address it wants to have.
This allows for spoofing of addresses on your bridge. However, the
main alternative is to use pure routing and this can be much more
complicated to set up - assuming you want your DomUs to be able to talk
to one another. I'm just a bit of a control freak, that's all.

Let us know how you get on. Also, if you run into difficulties just
shout as I may have overlooked a step here.

jez

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

<Prev in Thread] Current Thread [Next in Thread>