I'm looking to establish a virtual server for TFTP (for boot file retrievai via DHCP option 66/67). The examples given all depict an iRule that sets up a separate listening port for the "meet me" port that is returned after the initial exchange on port 69.
My question is - why is that necessary? Why can't you just create a virtual server that listens on any port, without doing port translation (and with persistence based on e.g. source IP)? Wouldn't the following exchange be handled cleanly by that?
Client UDP -> VIP:69 -> ServerA:69 (returns "meet me on port 50000")
Client UDP -> VIP:50000 -> ServerA:50000
Is the concern that two servers might pick the same meet-me port? If so, would it work with priority group activation set such that only 1 server was accessed? (that wouldn't provide for load balancing, but would handle redundancy requirements).
Ahh ... read the RFC, and the scales fell from my eyes. The initial request specifies the port the ephemeral port the client will expect replies to - and even the initial reply does not come back to the initial sending port. Never mind!