On 11 Jul 2013, at 06:26, Ville Mattila <[email protected]> wrote:

> Hi,
> 
> I have been working with tinc network where one host will provide the IP 
> addresses over DHCP to each connected node. Tinc runs in switch mode.
> 
> It seems that the HWaddr of the tinc interface is regenerated every time when 
> tinc is (re)started. As a result, DHCP server will assign a new IP for the 
> host. Is there any configuration variable we could use to avoid HWaddr 
> changing?
> 
> Currently, I have added a short snippet into tinc-up script that persists the 
> (once given) HWaddr to a file and tries to reset it before starting dhclient. 
> This works, but I feel it a bit hacky solution...
> 
> -- tinc-up --
> 
> #!/bin/sh
> set -e
> 
> MACFILE="/etc/tinc/mynet/mac"
> if [ -e $MACFILE ]; then
>   MAC=`cat $MACFILE`
>   ifconfig $INTERFACE hw ether $MAC
> fi
> 
> dhclient $INTERFACE &
> MAC=`ip link show mynet | awk '/ether/ {print $2}'`
> echo $MAC > $MACFILE

In my configuration we do:

        AWMAC1="$(printf '42:00:00:00:01:%02x' $AWSUBNET)"
        AWMAC2="$(printf '42:00:00:00:02:%02x' $AWSUBNET)"
        AWMAC3="$(printf '42:00:00:00:03:%02x' $AWSUBNET)"

AWSUBNET is a number in the range of 190  - 199 in our case. Notice how 42 sets 
b2 in top byte, the 'locally administered' bit (see 
http://en.wikipedia.org/wiki/MAC_address). Isn't it the answer to everything?

tinc-up looks like:

        /sbin/ifconfig $INTERFACE ether '@@AWMAC2@@'
        /sbin/ifconfig $INTERFACE up

Background: The culprit is not so much tinc as is the underlying OS that has to 
generate a globally unique MAC address. for generated interfaces The same 
problem occurs on bridges on FreeBSD (very annoying when trying to use static 
IP through DHCP there). I guess that we applied this approach for the same 
reason that you do, but not sure.

Nick


_______________________________________________
tinc mailing list
[email protected]
http://www.tinc-vpn.org/cgi-bin/mailman/listinfo/tinc

Reply via email to