Forum Discussion
krisdames
Cirrus
Mar 11, 2013iRule to test tcp availability
I have a group of servers (currently six of them) that each host some number of Java applications. There are around 100 total applications spread out among these servers. Each application only...
nitass
Employee
Mar 12, 2013what about this one?
[root@ve10:Active] config b virtual bar list
virtual bar {
snat automap
pool foo
destination 172.28.19.252:any
ip protocol 6
rules myrule
}
[root@ve10:Active] config b pool foo list
pool foo {
members {
200.200.200.101:any {}
200.200.200.102:any {}
200.200.200.111:any {}
200.200.200.112:any {}
}
}
[root@ve10:Active] config b rule myrule list
rule myrule {
when CLIENT_ACCEPTED {
set c 1
log local0. "--"
log local0. "\[table lookup tbl[TCP::local_port]\] [table lookup tbl[TCP::local_port]]"
if { [table lookup tbl[TCP::local_port]] ne "" } {
node [table lookup tbl[TCP::local_port]]
log local0. "node [table lookup tbl[TCP::local_port]]"
}
}
when LB_SELECTED {
log local0. "\[LB::server addr\] [LB::server addr]"
}
when LB_FAILED {
if { $c < [active_members foo] } {
LB::reselect pool foo
log local0. "LB::reselect pool foo"
incr c
}
}
when SERVER_CONNECTED {
table set "tbl[TCP::remote_port]" [IP::remote_addr]
log local0. "table set \"tbl[TCP::remote_port]\" [IP::remote_addr]"
log local0. "connection [IP::client_addr]:[TCP::client_port] > [clientside {IP::local_addr}]:[clientside {TCP::local_port}] > [IP::remote_addr]:[TCP::remote_port]"
}
}
1st request: load balance and save successful pool member
Mar 12 22:17:36 local/tmm info tmm[4950]: Rule myrule : --
Mar 12 22:17:36 local/tmm info tmm[4950]: Rule myrule : [table lookup tbl80]
Mar 12 22:17:36 local/tmm info tmm[4950]: Rule myrule : [LB::server addr] 200.200.200.101
Mar 12 22:17:36 local/tmm info tmm[4950]: Rule myrule : table set "tbl80" 200.200.200.101
Mar 12 22:17:36 local/tmm info tmm[4950]: Rule myrule : connection 172.28.19.251:43695 > 172.28.19.252:80 > 200.200.200.101:80
2nd request: send request to the pool member previously saved
Mar 12 22:17:44 local/tmm info tmm[4950]: Rule myrule : --
Mar 12 22:17:44 local/tmm info tmm[4950]: Rule myrule : [table lookup tbl80] 200.200.200.101
Mar 12 22:17:44 local/tmm info tmm[4950]: Rule myrule : node 200.200.200.101
Mar 12 22:17:44 local/tmm info tmm[4950]: Rule myrule : [LB::server addr] 200.200.200.101
Mar 12 22:17:44 local/tmm info tmm[4950]: Rule myrule : table set "tbl80" 200.200.200.101
Mar 12 22:17:44 local/tmm info tmm[4950]: Rule myrule : connection 172.28.19.251:43696 > 172.28.19.252:80 > 200.200.200.101:80
3rd request: if server is changed to another pool member (i.e. 200.200.200.101:80 is no longer availabe), load balance and save new successful pool member
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : --
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : [table lookup tbl80] 200.200.200.101
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : node 200.200.200.101
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : [LB::server addr] 200.200.200.101
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : LB::reselect pool foo
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : [LB::server addr] 200.200.200.111
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : table set "tbl80" 200.200.200.111
Mar 12 22:18:02 local/tmm info tmm[4950]: Rule myrule : connection 172.28.19.251:43697 > 172.28.19.252:80 > 200.200.200.111:80
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects