Forum Discussion

Chris_Phillips's avatar
Chris_Phillips
Icon for Nimbostratus rankNimbostratus
Aug 07, 2008

Per packet RR LB for next hop

Hi,

 

 

Does anyone know how to configure a forwarding vip to route all ip packets with per packet LB? Obviously it makes no sense within a normal vip / pool, but there's the nexthop command within iRules that suggests it should be possible to pick a next hop based on an iRule for straight forward RR rather than more complex methods of balancing. we have an LTM backing on to 10 encryption points which run over a fixed line to another site and want to load them as evenly as possible. I would have assumed a least used monitor outside of iRules would be better, but a signed off design mandates per packet rr, even with tcp, making me think an iRule is the only way to go about it.

 

 

Thanks

 

 

Chris

5 Replies

  • Hi,

    The LINK::nexthop command is read only you can not interact with it: Click here

    To load balance each packet you can try something like this:

     
     when CLIENT_ACCEPTED { 
     set first_bind 1 
     TCP::collect 
     } 
      
     when CLIENT_DATA { 
     if { $first_bind } { 
     set first_bind 0 
     } else { 
             LB::detach 
            } 
           TCP::release 
           TCP::collect 
     } 
      
     

    You should activate oneconnect at the same time.

    HTH

  • it wasn't LINK::nexthop i was referring to, but the global nexthop command - http://devcentral.f5.com/wiki/default.aspx/iRules/nexthop.html

     

     

    I think I can see the logic in that, lets have a bash at it. thanks.

     

     

    Ahh I tried, the irule requires a TCP profile, but this is to apply to an ip forwarding virtual, so can't have a TCP specific profile.
  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus
    is this tcp traffic? You're better off balancing by stream rather than packet by packet for TCP... That way the packets arrive in order and the endpoint doesn't have to buffer & process out of order tcp packets which can be detrimental. This is the main reason CISCO routers/switches will (By default) put a stream over one link of an etherchannel rather than separating the load packet by packet.

     

     

    It'll also be more economical on the F5 performance, since packet by packet won't use the ASIC (As you'll have na iRule on it).

     

     

    H
  • Personally I'm in favour of stream based ones, but it depends how the traffic really looks as to what would work best. We have a gig link with 10 x 100mb tunnels across it. So *IF* there is traffic which needs to push above 100mbps then if it's stream based that's never going to happen, and as is often the way, a document with a bunch of signatures on it states per packet.

     

     

    I can't see how per packet would be better, and i do have it going really well with standard observed lb, but ideally need at least a proof of concept if nothing else.

     

     

    btw, is there any information on how / if the load balancing methods change when a pool is being used for routing as opposed to a vip? things like observed and predictive methods don't feel as applicable.