carp+devd+ifstated on master problem

peter knezel peter.knezel at gmail.com
Thu Feb 2 10:25:58 UTC 2012


Hello Damien,

of course, the tnewpass was my copy error - newpass is OK and is in
config files  everywhere.
And the carp interfaces' advskew, vhid and
pass are already in /etc/rc.conf.local.

What I simply would like to try is run scripts if carp interfaces change.
Actually my real aim is to synchronize file from slave server to
master if master reboots or slave becomes master due to carp problems
on the master.
Regards,
Peter


On 01/02/2012, Damien Fleuriot <ml at my.gd> wrote:
>
>
> 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.
>
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>


More information about the freebsd-questions mailing list