- # $OpenBSD: ifstated.conf,v 1.6 2005/02/07 06:08:10 david Exp $
- # This is a sample config for a pair of firewalls with two interfaces
- #
- # carp0 and carp1 have ip addresses on 192.168.3.0/24 and 192.168.6.0/24
- # respectively.
-
- # net.inet.carp.preempt must be enabled (set to 1) for this to work correctly.
-
- # Uncomment one of the following lines to force primary/backup status.
- # init-state primary
- # init-state backup
-
- carp_up = "carp0.link.up && carp1.link.up"
- carp_down = "!carp0.link.up && !carp1.link.up"
- carp_sync = "carp0.link.up && carp1.link.up || \
- !carp0.link.up && !carp1.link.up"
-
- # The "net" addresses are other addresses which can be used to determine
- # whether we have connectivity. Make sure the hosts are always up, or
- # test multiple ip's, 'or'-ing the tests.
- net = '( "ping -q -c 1 -w 1 192.168.6.8 > /dev/null" every 10 && \
- "ping -q -c 1 -w 1 192.168.3.8 > /dev/null" every 10)'
-
- # The peer addresses below are the real ip addresses of the OTHER firewall
- peer = '( "ping -q -c 1 -w 1 192.168.6.7 > /dev/null" every 10 && \
- "ping -q -c 1 -w 1 192.168.3.7 > /dev/null" every 10)'
-
- state auto {
- if $carp_up
- set-state primary
- if $carp_down
- set-state backup
- }
-
- state primary {
- init {
- run "ifconfig carp0 advskew 10"
- run "ifconfig carp1 advskew 10"
- }
- if ! $net
- set-state demoted
- }
-
- state demoted {
- init {
- run "ifconfig carp0 advskew 254"
- run "ifconfig carp1 advskew 254"
- }
- if $net
- set-state primary
- }
-
- state promoted {
- init {
- run "ifconfig carp0 advskew 0"
- run "ifconfig carp1 advskew 0"
- }
- if $peer || ! $net
- set-state backup
- }
-
- state backup {
- init {
- run "ifconfig carp0 advskew 100"
- run "ifconfig carp1 advskew 100"
- }
- # The "sleep 5" below is a hack to dampen the $carp_sync when we come
- # out of promoted state. Thinking about the correct fix...
- if ! $carp_sync && $net && "sleep 5" every 10
- if ! $carp_sync && $net
- set-state promoted
- }
|