[Dibbler] multiple Cisco relays to Dibbler server

Tomasz Mrugalski thomson at klub.com.pl
Sun Nov 29 12:44:42 CET 2009


On Sat, 28 Nov 2009 somebody known as Karl Auer wrote:
> Just to be sure I understand, lets say I have different interfaces,
> configured with:
>
>   int1  2001:db8:0:1::/64
>   int2  2001:db8:0:2::/64
>   int3  2001:db8:0:3::/64
>
> Then I set up this server configuration:
>
>   # server.conf
>   guess-mode
>   iface relay1 {
>      relay eth0
>      class {
>         pool 2001:db8:0:1::/64
>         pool 2001:db8:0:2::/64
>         pool 2001:db8:0:3::/64
>      }
>   }
>
> Now a request comes in from the relay on int1. What I need is for the
> server to respond with an address from 2001:db8:0:1::/64.
>
> Similarly, if a request comes in from the relay on int2, the server
> should respond with an address from 2001:db8:0:2::/64. And for int3, the
> address should come from 2001:db8:0:3::/64.
>
> Is that what will happen?
No. This configuration defines support for just one relay. Server is 
configured to handle addresses from 3 pools. Every time request is 
received, server chooses one pool *randomly* and assigns one address from 
it.

I'm confused, where you have those 3 interfaces? In the server? So your 
look like option A below?

OPTION A
                        server
                       +------+
link1------relay1---int1     |
                       |      |
link2------relay2---int2     |
                       |      |
link3------relay3---int3     |
                       +------+

If that is the case, here's your config:
# server.conf
guess-mode
iface relay1 {
    relay int1 # name of your interface
    class {
        pool 2001:db8:0:1::/64
     }
}
iface relay2 {
    relay int2 # name of your interface
    class {
        pool 2001:db8:0:2::/64
     }
}
iface relay3 {
    relay int3 # name of your interface
    class {
        pool 2001:db8:0:3::/64
     }
}

Relay1 traffic will be incoming over int1 interface, relay2 over int2 and 
so on. If you are using Linux systems, the more probable interface names 
would be eth0, eth1, etc rather than int1, int2, but that's just a minor 
detail. Dibbler will attempt to use any interface you specify, be it eth0 
or int1. (Side note: if interface name contains spaces double qoute is 
require, like "Local network connection 1" under Vista).

OPTION B
By saying "I have differnt interfaces" you actually meant: there are 
several links and the network looks like this:

                        server
                       +------+
link1------relay1--   |      |
                    \  |      |
link2------relay2---int1     |
                    /  |      |
link3------relay3--   |      |
                       +------+

In this case, your config will look very similar, but there are some minor 
tweaks. As all relays use single physical interface, you can't use 
guess-mode as all requests would get configuration intended for relay1.
To make this work you have to make sure that each relay will use different 
interface-id. Without this, server has no way to differentiate between 
relays. Make sure that defined interface-id value really matches value of 
the interface-id option added by the relay.

# server.conf
guess-mode
iface relay1 {
    relay int1 # the same physical interface for all relays
    interface-id "cisco1"
    class {
        pool 2001:db8:0:1::/64
     }
}
iface relay2 {
    relay int1 # the same physical interface for all relays
    interface-id "cisco2"
    class {
        pool 2001:db8:0:2::/64
     }
}
iface relay3 {
    relay int1 # the same physical interface for all relays
    interface-id "cisco3"
    class {
        pool 2001:db8:0:3::/64
     }
}

I'm wondering if that is the first time this code is actually being used 
(except my tests during development). Cool. :)

Regards,
Tomek



More information about the Dibbler mailing list