Forum Discussion

muzammil_88686's avatar
muzammil_88686
Icon for Nimbostratus rankNimbostratus
May 26, 2013

Source Port Persistence

Dear Dev Team,

 

We have the below configuration on LTM.

 

VIP1: 10.1.1.1:80

 

Pool Member11: 192.168.1.1:80

 

Pool Member11: 192.168.1.2:80

 

LB Method: Round Robin

 

Persistence: Source Address

 

 

VIP2: 10.2.2.2:80

 

Pool Member21: 192.168.2.1:80

 

Pool Member22: 192.168.2.2:80

 

Pool Member23: 192.168.2.3:80

 

Pool Member24: 192.168.2.4:80

 

LB Method: Round Robin

 

Persistence: Source Address

 

 

When the client request for URL: www.test.com which is hosted behind VIP1, request will come to "Pool Member11 or Pool Member12" . Then the "Pool Member11 or Pool Member12" will initiate a connection to VIP2.

 

The problem here we are facing is always "Pool Member21 or Pool Member22" are getting utilized and we do not see any connections to "Pool Member23 or Pool Member24" which is leading to inefficiant distribution of load.

 

Is it a possible to have persistence based on the "Source IP" and "Source Port" when "Pool Member11 or Pool Member12" initiates connections to VIP2?

 

Could you pls suggest me an iRule which can overcome the above problem?

 

 

Best Regards,

 

 

1 Reply

  • e.g.

    [root@ve10:Active] config  b virtual bar list
    virtual bar {
       snat automap
       pool foo
       destination 172.28.19.252:80
       ip protocol 6
       rules myrule
    }
    [root@ve10:Active] config  b pool foo list
    pool foo {
       members {
          200.200.200.101:80 {}
          200.200.200.111:80 {}
       }
    }
    [root@ve10:Active] config  b rule myrule list
    rule myrule {
       when CLIENT_ACCEPTED {
       persist uie [IP::client_addr]:[TCP::client_port]
    }
    }
    
    [root@ve10:Active] config  b persist show all
    PERSISTENT CONNECTIONS
    |     Mode universal   Value 172.28.69.28:39089
    |        virtual 172.28.19.252:80   node 200.200.200.101:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39091
    |        virtual 172.28.19.252:80   node 200.200.200.101:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39093
    |        virtual 172.28.19.252:80   node 200.200.200.101:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39095
    |        virtual 172.28.19.252:80   node 200.200.200.101:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39097
    |        virtual 172.28.19.252:80   node 200.200.200.101:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39088
    |        virtual 172.28.19.252:80   node 200.200.200.111:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39090
    |        virtual 172.28.19.252:80   node 200.200.200.111:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39092
    |        virtual 172.28.19.252:80   node 200.200.200.111:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39094
    |        virtual 172.28.19.252:80   node 200.200.200.111:80   age 8sec
    |     Mode universal   Value 172.28.69.28:39096
    |        virtual 172.28.19.252:80   node 200.200.200.111:80   age 8sec