Node selection for non-HTTP traffic
I've setup a standard VS with no HTTP profile applied, only TCP. The protocol I'd like to load balance is custom and TCP-based.
There's 1 iRule applied which I've based on this: https://devcentral.f5.com/codeshare/proxy-protocol-receiver
The application sends the correct PROXY header information which is confirmed in the logging.
I want to be able to route the TCP connection / data based on the client's source IP. I've tried adding the following 2 commands (not at the same time of course) under the "TCP::release" command to direct at a specific pool member:
pool Test_Pool member $dstaddr 2626
node "$dstaddr:2626"
I've added additional logging when certain events are triggered. The number after the event name is randomly generating when a client connects to track each connection. A session ID basically.
The issue is the node/port in the LB_SELECTED event, which is the correct one, doesn't match the SERVER_CONNECTED event and the connection fails.
: 57527607 CLIENT_ACCEPTED: 192.168.2.96:59381
: 57527607 TCPVER: TCP4 - SRCIP: 192.168.3.16 - DSTIP: 192.168.2.104 - SRCPORT: 64566 - DSTPORT: 2727
: 57527607 LB_SELECTED: 192.168.2.104:2626
: 57527607 SERVER_CONNECTED: 192.168.2.137:2626
The server should connect back to itself but on a different port. This is because I'll be doing further manipulation of the TCP data in the future but just trying to get the basic load balancing working for now.
Any ideas what might be going on here?
Cheers.