Forum Discussion

Michael_60521's avatar
Michael_60521
Icon for Nimbostratus rankNimbostratus
Dec 11, 2007

send to pool-member by port-range

I have an problem to get it to work right.

 

 

I have made an VL om port any, with an default pool.

 

 

some ports have to go to one server ande some ports have to go to the other server. I have made an iroule (paste belowe) but it only works evry 2. time. I am not sure the iroule have any effekt, it might only use the LB bye the VL ???

 

 

when CLIENT_ACCEPTED {

 

set srv_port [TCP::local_port]

 

if { $srv_port >= 6740 and $srv_port <= 6749 } {

 

pool mpapp-pool member 10.10.66.22 $srv_port

 

log local0. "Client sent to $srv_port"

 

} elseif { $srv_port >= 6830 and $srv_port <= 6839 } {

 

pool mpapp-pool member 10.10.66.21 $srv_port

 

log local0. "Client sent to $srv_port"

 

} elseif { $srv_port >= 6860 and $srv_port <= 6869 } {

 

pool mpapp-pool member 10.10.66.22 $srv_port

 

log local0. "Client sent to $srv_port"

 

} elseif { $srv_port >= 6880 and $srv_port <= 6889 } {

 

pool mpapp-pool member 10.10.66.21 $srv_port

 

log local0. "Client sent to $srv_port"

 

} elseif { $srv_port >= 7000 and $srv_port <= 7009 } {

 

pool mpapp-pool member 10.10.66.22 $srv_port

 

log local0. "Client sent to $srv_port"

 

} else {

 

log local0. "no match on port $srv_port"

 

}

 

}

 

5 Replies

  • The rule looks fine. What does the client see on the request which fails? What logging do you see for a failure?

     

     

    Aaron
  • I can see every 2. connection are LB to the other server (the wrong one), it seems for me that it is working with the default pool and not the iRoule.

     

     

    I have tryed to make an other iRoule (paste below), this one is working with no default pool, but the iroule might be written in an other way ..... : (the pools in this iroule have only one of the servers..)

     

     

    when CLIENT_ACCEPTED {

     

    set srv_port [TCP::local_port]

     

    switch $srv_port {

     

    6740 {

     

    pool mpapp2

     

    }

     

    6741 {

     

    pool mpapp2

     

    }

     

    6742 {

     

    pool mpapp2

     

    }

     

    6743 {

     

    pool mpapp2

     

    }

     

    6744 {

     

    pool mpapp2

     

    }

     

    6745 {

     

    pool mpapp2

     

    }

     

    6746 {

     

    pool mpapp2

     

    }

     

    6747 {

     

    pool mpapp2

     

    }

     

    6748 {

     

    pool mpapp2

     

    }

     

    6749 {

     

    pool mpapp2

     

    }

     

    6830 {

     

    pool mpapp1

     

    }

     

    6831 {

     

    pool mpapp1

     

    }

     

    6832 {

     

    pool mpapp1

     

    }

     

    6833 {

     

    pool mpapp1

     

    }

     

    6834 {

     

    pool mpapp1

     

    }

     

    6835 {

     

    pool mpapp1

     

    }

     

    6836 {

     

    pool mpapp1

     

    }

     

    6837 {

     

    pool mpapp1

     

    }

     

    6838 {

     

    pool mpapp1

     

    }

     

    6839 {

     

    pool mpapp1

     

    }

     

    6860 {

     

    pool mpapp2

     

    }

     

    6861 {

     

    pool mpapp2

     

    }

     

    6862 {

     

    pool mpapp2

     

    }

     

    6863 {

     

    pool mpapp2

     

    }

     

    6864 {

     

    pool mpapp2

     

    }

     

    6865 {

     

    pool mpapp2

     

    }

     

    6866 {

     

    pool mpapp2

     

    }

     

    6867 {

     

    pool mpapp2

     

    }

     

    6868 {

     

    pool mpapp2

     

    }

     

    6869 {

     

    pool mpapp2

     

    }

     

    6880 {

     

    pool mpapp1

     

    }

     

    6881 {

     

    pool mpapp1

     

    }

     

    6882 {

     

    pool mpapp1

     

    }

     

    6883 {

     

    pool mpapp1

     

    }

     

    6884 {

     

    pool mpapp1

     

    }

     

    6885 {

     

    pool mpapp1

     

    }

     

    6886 {

     

    pool mpapp1

     

    }

     

    6887 {

     

    pool mpapp1

     

    }

     

    6888 {

     

    pool mpapp1

     

    }

     

    6889 {

     

    pool mpapp1

     

    }

     

    7000 {

     

    pool mpapp2

     

    }

     

    7001 {

     

    pool mpapp2

     

    }

     

    7002 {

     

    pool mpapp2

     

    }

     

    7003 {

     

    pool mpapp2

     

    }

     

    7004 {

     

    pool mpapp2

     

    }

     

    7005 {

     

    pool mpapp2

     

    }

     

    7006 {

     

    pool mpapp2

     

    }

     

    7007 {

     

    pool mpapp2

     

    }

     

    7008 {

     

    pool mpapp2

     

    }

     

    7009 {

     

    pool mpapp2

     

    }

     

    default {

     

    drop

     

    }

     

    }

     

    }
  • this is workin without an default pool :-))

     

     

    when CLIENT_ACCEPTED {

     

    set srv_port [TCP::local_port]

     

    if { $srv_port >= 6740 and $srv_port <= 6749 } {

     

    pool mpapp2

     

    } elseif { $srv_port >= 6830 and $srv_port <= 6839 } {

     

    pool mpapp1

     

    } elseif { $srv_port >= 6860 and $srv_port <= 6869 } {

     

    pool mpapp2

     

    } elseif { $srv_port >= 6880 and $srv_port <= 6889 } {

     

    pool mpapp1

     

    } elseif { $srv_port >= 7000 and $srv_port <= 7009 } {

     

    pool mpapp2

     

    } else {

     

    log local0. "no match on port $srv_port"

     

    }

     

    }
  • That makes sense. A request which doesn't match any condition in the rule would be sent to the default pool of the VIP, if one is configured. If there isn't a default pool, the request will be dropped.

     

     

    Aaron