Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 Feb 2012 12:44:22 +0100
From:      Damien Fleuriot <ml@my.gd>
To:        freebsd-questions@freebsd.org
Subject:   Re: carp+devd+ifstated on master problem
Message-ID:  <4F292596.2090000@my.gd>
In-Reply-To: <CAAwfu_nrrqod80kg2qO28-LBuubiZe_BV--PoNxqjn_OUrV=hg@mail.gmail.com>
References:  <CAAwfu_nrrqod80kg2qO28-LBuubiZe_BV--PoNxqjn_OUrV=hg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2/1/12 12:12 PM, peter knezel wrote:
> Hello all,
> 
> I have configured devd and ifstated on a master FreeBSD server (slave
> not changed so far) on which carp was configured with three
> carp0,carp1 and carp2 virtual addresses.
> 
> When I as root do ifconfig carp0 down and up, the corresponding
> testdown.sh and testup.sh
> scripts are run (defined in ifstated.conf).
> The status of carp0 interface changes to INIT then to MASTER (after
> ifconfig carp0 up).
> 
> However this is not valid when doing the same with carp1 or carp2.
> It goes to INIT+testdown.sh executed but then immediately afterwards
> it goes to MASTER+testup.sh executed.
> 
> What can be the problem?
> 
> cd /usr/local/etc
> cat ifstated.conf
> init-state one
> 
> net = '( "ifconfig -a -u |grep carp0 > /dev/null" every 3 && "ifconfig -a -u
> |grep carp1 > /dev/null" every 3 && "ifconfig -a -u |grep carp2 > /dev/null"
> every 3)'
> 
> state one {
>         if ( ! $net ) {
>                 run "/sbin/ifconfig_carp0 vhid 1 pass newpass 192.xx.xx.1/24"
>                 run "/sbin/ifconfig carp1 vhid 2 pass newpass 192.xx.xx.2/24"
>                 run "/sbin/ifconfig carp2 vhid 3 pass newpass 192.xx.xx.3/24"
>                 run "/usr/local/testdown.sh"
>                 set-state two
>         }
> }
> 
> state two {
>         if ( $net ) {
>                 run "/sbin/ifconfig carp0 vhid 1 advskew 100 pass
> tnewpass 192.xx.xx.1/24"
>                 run "/sbin/ifconfig carp1 vhid 2 advskew 100 pass
> newpass 192.xx.xx.2/24"
>                 run "/sbin/ifconfig carp2 vhid 3 advskew 100 pass
> newpass 192.xx.xx.3/24"
>                 run "/usr/local/testup.sh"
>                 set-state one
>         }
> }
> 
> In addition I had to configure devd.conf to have ifdown.sh and ifup.sh
> scripts executed when reboot is done on the master.
> 
> notify 30 {
> match "system" "IFNET";
> match "subsystem" "carp0";
> match "type" "LINK_UP";
> action "/usr/local/etc/rc.d/ifdown.sh";
> };
> 
> notify 30 {
> match "system" "IFNET";
> match "subsystem" "carp0";
> match "type" "LINK_DOWN";
> action "/usr/local/etc/rc.d/ifup.sh";
> 
> Thanks for any suggestion in advance.
> 
> Ardi

I'm not sure I get what you're trying to do here.

Is there a reason you do not set your carp interfaces' advskew, vhid and
pass in /etc/rc.conf ?

Also, I notice in state 2 your password for carp0 is tnewpass, while the
other ones are newpass.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F292596.2090000>