lb
7 Topicsirule for SMTP
Hi Everyone, we have an ongoing testing and this is the irule that we currently have. when CLIENT_ACCEPTED { log local0. "Client_ACCEPTED_HIT: IP address:[IP::client_addr]" TCP::respond "220\r\n" TCP::collect } when CLIENT_DATA { log local0. "Client_DATA_HIT: IP address:[IP::client_addr] Data: [TCP::payload]" if { [TCP::payload] contains "gmail.com" or [TCP::payload] contains "google.com" } { pool testtesttest log local0. "cdata_FOUND: IP address:[IP::client_addr] Dest IP:[server_addr]:[server_port] Data: [TCP::payload]" } TCP::release TCP::collect } the scenario is, when an email is sent using gmail, the traffic should go to testtesttest pool however, this does not work as based on the statistics, testtesttest statistics does not increase. It seems that the traffic goes to the default pool. Upon checking the /var/log/ltm directory, we can see this error: CLIENT_DATA> - no serverside connection established (line 4) invoked from within "server_addr" is this related to the irule why the traffic is not directed to the specified pool? are there any error with the script in the iRule? Any help will be very much appreaciated. Thank you.620Views0likes3CommentsLB for SMPP / SMSCs in NFV environment
Hi all, We are trying to use the LMT F5 (installed on Openstack) to be SMSC Getaway (Short Message Service Center – Getaway) for external messages Our installation is based on minimum 2 SMSCs, and Maximum 8 SMSCs So, if an external application will connect to the SMSCs, the F5 will get the connection request (bind) and will try to connect to all active SMSCs with the same bind connection For messages running on top the active connection (submit_sm), the F5 will do a round robin between all the active SMSCs. Connection from Client & message from SMSC: 1:: Client1 ---(bind)---> F5 1-1:: F5 ----(bind)----> SMSC1 1-2:: F5 ----(bind)----> SMSC2.... (max of 8 SMSCs) 1-1':: SMSC1 -----(bind_resp1)----->F5 1-2':: SMSC2 -----(bind_resp2)----->F5.... (max of 8 SMSCs) 2:: If (bind_resp1 = OK) or (bind_resp2 = OK) or (max 8 SMSCs); respond back to Client1 with OK 2:: Else; respond back with NOK 3:: SMSC1 ----(deliver_sm1)---->F5 [store sequence, use internal sequence] 3-1:: F5 ----(deliver_sm1)---->Client1 4:: SMSC2 ----(deliver_sm2)---->F5 [store sequence, use internal sequence] 4-1:: F5 ----(deliver_sm2)---->Client1 4-1':: Client1 ----(deliver_sm_resp2)---->F5 3-1':: Client1 ----(deliver_sm_resp1)---->F5 4-1'':: F5 ----(deliver_sm_resp2)---->SMSC2 [use original sequence] 3-1'':: F5 ----(deliver_sm_resp1)---->SMSC1 [use original sequence] Connection from Client & message from Client: 1:: Client1 ---(bind)---> F5 1-1:: F5 ----(bind)----> SMSC1 1-2:: F5 ----(bind)----> SMSC2.... (max of 8 SMSCs) 1-1':: SMSC1 -----(bind_resp1)----->F5 1-2':: SMSC2 -----(bind_resp2)----->F5.... (max of 8 SMSCs) 2:: If (bind_resp1 = OK) or (bind_resp2 = OK); respond back to Client1 with OK 2:: Else; respond back with NOK 3:: Client1 ----(deliver_sm1)---->F5 [store sequence, use internal sequence] 4-1:: F5 ----(deliver_sm1)---->SMSC using Round Robin [store sequence, use internal sequence] 4-1':: SMSC ----(deliver_sm_resp1)---->F5 [use original sequence] 3-1':: F5----(deliver_sm_resp1)---->Client1 [use original sequence]493Views0likes3CommentsCan I set up multiple backend connections to a single server for message-based load balancing
I'm using an iRule with message-based load balancing to partition messages on a single TCP connection into two groups. GroupA goes to poolA and GroupB goes to poolB. The LTM will create a backend connection to each server in the respective pool. For my particular application, I believe I could improve performance if I were able to create multiple connections to each server. Is there a way to do this? Ideally, the LTM would create a new backend connection each time I call LB::prime. Unfortunately, this didn't work for me. Any other ideas?398Views0likes2CommentsReselect member with new port
Hi, I am not sure if my rule is broken or there is some bug in v11.2.0 I have VS IP:8888 with pool containing members set to All ports IP:0 but backed server is listening on port 443. I need to change port from 8888 to 443 when connecting to backed server. I tired this iRule but always getting error like that: TCL error: /Common/http_to_https_one_vs - failed to find pool member (line 1) invoked from within "pool LAMP_110_all_pl member 10.128.30.110 443" when LB_SELECTED { pool LAMP_110_all_pl member 10.128.30.110 443 } I tried putting above command in HTTP_REQUEST event but error is the same. Tried to use /Common/LAMP_110_all_pl as well, no difference. However everything works OK when I switch to below code when LB_SELECTED { LB::reselect node 10.128.30.110 443 } I would prefer to use first one as second one seems to be messing up with LB a bit. By that I mean that before LB::reselect is used, LB::server name is returning /Common/PoolName 10.128.30.110 0 after reselect just 10.128.30.110 443 and in node command (don't know if it is realted to LB::reselect node as well) there is note: Since statistics and health monitoring are tied to pool membership, node status and statistics for this connection will not be available. So why pool LAMP_110_all_pl member 10.128.30.110 443 is returning error? Piotr326Views0likes2CommentsCan I set up multiple backend connections to a single server for message-based load balancing
I'm using an iRule with message-based load balancing to partition messages on a single TCP connection into two groups. GroupA goes to poolA and GroupB goes to poolB. The LTM will create a backend connection to each server in the respective pool. For my particular application, I believe I could improve performance if I were able to create multiple connections to each server. Is there a way to do this? Ideally, the LTM would create a new backend connection each time I call LB::prime. Unfortunately, this didn't work for me. Any other ideas?258Views0likes1CommentReselect member with new port
Hi, I am not sure if my rule is broken or there is some bug in v11.2.0 I have VS IP:8888 with pool containing members set to All ports IP:0 but backed server is listening on port 443. I need to change port from 8888 to 443 when connecting to backed server. I tired this iRule but always getting error like that: TCL error: /Common/http_to_https_one_vs - failed to find pool member (line 1) invoked from within "pool LAMP_110_all_pl member 10.128.30.110 443" when LB_SELECTED { pool LAMP_110_all_pl member 10.128.30.110 443 } I tried putting above command in HTTP_REQUEST event but error is the same. Tried to use /Common/LAMP_110_all_pl as well, no difference. However everything works OK when I switch to below code when LB_SELECTED { LB::reselect node 10.128.30.110 443 } I would prefer to use first one as second one seems to be messing up with LB a bit. By that I mean that before LB::reselect is used, LB::server name is returning /Common/PoolName 10.128.30.110 0 after reselect just 10.128.30.110 443 and in node command (don't know if it is realted to LB::reselect node as well) there is note: Since statistics and health monitoring are tied to pool membership, node status and statistics for this connection will not be available. So why pool LAMP_110_all_pl member 10.128.30.110 443is returning error? Piotr195Views0likes0Comments