Forum Discussion
Kunal_Borkar_11
Mar 06, 2019Nimbostratus
ISO 8583 Load Balancing
we have below requirement for load Balancing of ISO 8583 traffic,
ISO messages require special handling to determine the start and end of the messages.
A message will have its first two bytes as...
Stanislas_Piro2
Cumulonimbus
You can try this code:
when CLIENT_ACCEPTED {
prevent first packet to be released to server before CLIENT DATA inspected (CLIENT_DATA Event)
TCP::collect
}
when CLIENT_DATA {
if {[binary scan [TCP::payload] S length] == 1 && [expr { ($length & 0xffff) +2 }] == [TCP::payload length]} {
log local0. "This packet length meets header length value : Header value : [expr { ($length & 0xffff) }] / Packet Length : [TCP::payload length]"
release packet to server... the data length equals the data header length value.
TCP::release
Allow to load balance per packet
TCP::notify request
prevent next packet to be released to server before CLIENT DATA inspected (loop on CLIENT_DATA Event)
TCP::collect
} else {
Packet length doesn't meet Header length value... this is not a valid ISO 8583 packet.
log local0. "This packet length doesn't meet header length value... this is not a valid ISO 8583 packet. reject the connection"
reject
}
}
when USER_REQUEST {
We don't expect a response, so let's just signal one
and detach to make oneconnect happy (message-based)
TCP::notify response
LB::detach
}
This code supports oneconnect profile assigned to the virtual server and load balance to server message-based and not connection-based.
wlopez
Oct 26, 2022Cirrocumulus
We tried this iRule on a virtual server with the oneconnect profile but it didn't work.
Does anyone have a working iRule and setup to load balance ISO8583 transactions that are received through a single tcp connection on the virtual server?
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