Forum Discussion

dragonflymr's avatar
dragonflymr
Icon for Cirrostratus rankCirrostratus
Mar 27, 2017

Source address persistence troubleshooting

Hi,

 

I am looking a way to find out if source address persistence is working correctly. There are two VS (Standard TCP IP:any and Standard UDP IP:any both with pools pointing to the same nodes) with attached profile:

 

ltm persistence source-addr lamp_persist_match_vs {
    app-service none
    defaults-from source_addr
    description none
    hash-algorithm default
    map-proxies enabled
    map-proxy-address none
    map-proxy-class none
    mask none
    match-across-pools disabled
    match-across-services disabled
    match-across-virtuals enabled
    mirror disabled
    override-connection-limit disabled
    partition Common
    timeout 32400
}

match-across-virtuals is enabled so after first client connection to any of VSs following connections should go to the same node for at least 32400 s.

 

I am looking a way to find out if it is working like that. So I need to figure out if given client IP is for at least defined timeout ONLY directed to the same IP. In other words I need to catch exception when given client IP is rebalanced to other IP during timeout period.

 

Any ideas how to do that?

 

I was thinking about using iRule with iStats but I am not so good with iStats stuff. My first approach was to create code like that:

 

when LB_SELECTED {
    set node_sel [LB::server addr]
    log local0. "Selected node is $node_sel"
    ISTATS::incr "ltm.virtual [virtual name] node $node_sel client.ip [IP::client_addr] c balanced" 1
    ISTATS::incr "ltm.virtual [virtual name] c [IP::client_addr]-${node_sel}" 1
    ISTATS::incr "ltm.virtual [virtual name] c count_it" 1
    log local0. "Currents counter is: [ISTATS::get "node $node_sel client.ip [IP::client_addr] c balanced"]"
}

Tried different syntax but I am not really sure if that's a way to go. Goal is to be able to collect all nodes given client IP connected during timeout period.

 

If there is not persistence issue just one entry should be created listing client IP and selected node, if there is issue I expect that two entries will be created (pool contains two pool members).

 

Piotr

 

No RepliesBe the first to reply