View Single Post
  #3   (View Single Post)  
Old 28th May 2012
gessler gessler is offline
New User
 
Join Date: Apr 2012
Posts: 8
Default

You need ifstated or relayd, here is my ifstated.conf (I use 3 different pf.conf, 1 Dual Wan conf, and 1 gw1 conf and 1 gw2 conf):
Code:
net1 = '"ping -q -c1 -w1 10.1.1.1 >/dev/null" every 5'
net2 = '"ping -q -c1 -w1 10.222.222.222 >/dev/null" every 5'

init-state one

state one {
    init {
        run "route delete default 10.1.1.1"
        run "route delete default 10.222.222.222"
        run "route add -mpath default 10.1.1.1"
        run "route add -mpath default 10.222.222.222"
    }
    if ! $net1 {
    if $net2
       set-state two
    }
    if ! $net2 {
    if $net1
       set-state three
    }
}

state two {
    init {
        run "route delete default 10.1.1.1"
        run "route delete default 10.222.222.222"
        run "route add -mpath default 10.222.222.222"
        run "pfctl -f /etc/pf.conf.gw2"
    }
    if $net1 {
    if $net2
       set-state four
    }
    if ! $net2 {
    if $net1
       set-state three
    }
}

state three {
    init {
        run "route delete default 10.1.1.1"
        run "route delete default 10.222.222.222"
        run "route add -mpath default 10.1.1.1"
        run "pfctl -f /etc/pf.conf.gw1"
    }
    if $net1 {
    if $net2
       set-state four
    }
    if ! $net1 {
    if $net2
       set-state two
    }
}

state four {
    init {
        run "route delete default 10.1.1.1"
        run "route delete default 10.222.222.222"
        run "route add -mpath default 10.1.1.1"
        run "route add -mpath default 10.222.222.222"
        run "pfctl -f /etc/pf.conf"
    }
    if ! $net1 {
    if $net2
       set-state two
    }
    if ! $net2 {
    if $net1
       set-state three
    }
}

Last edited by ocicat; 28th May 2012 at 09:52 PM. Reason: Please use [code] & [/code] tags when posting file contents.
Reply With Quote