Forum Discussion

J_46981's avatar
J_46981
Icon for Nimbostratus rankNimbostratus
Aug 02, 2007

Loadbalancing TFTP requests

We are attempting to build some fault-tolerance into our PXE environment. One item I wanted to review would be the use of BigIP to abstract a number of TFTP servers , but not require us to manage that list via DHCP options.

 

 

Does anyone have any experience w using SNAT or other solution w/in BigIP to successfully manage those requests?

 

 

Thanks,

 

 

J
  • Deb_Allen_18's avatar
    Deb_Allen_18
    Historic F5 Account
    I just dug up this iRule & posted it to the codeshare, should be the solution you're looking for: Click here

     

     

    HTH

     

    /deb
  • I have added an iRule for 9.4.3 since the one provided here didn't work on this specific version:

     

    http://devcentral.f5.com/wiki/default.aspx/iRules/TFTP_Load_Balancing.html

     

     

    Jos
  • I have added ths irule to load balance two TFTP servers, It hasn't worked. At server side we reveice the answer but making a tcpdump I didn't see this at client side.

     

     

    Without the irule I get answer but with the real IP of the TFTP server.

     

     

    I have test it with and without SNAT. the bigip version is 10.0.1

     

     

    thanks,

     

     

     

  • it works fine for me, Marcos : check your configuration. Here is mine :

     

     

    virtual V_TFTP_NAT_VS {

     

    destination 10.6.62.10:tftp

     

    snatpool V_QC_SNAT

     

    ip protocol udp

     

    pool V_TFTP_NAT_POOL

     

    rule irule_TFTP_Server

     

    }

     

    monitor V_TFTP_MONITOR {

     

    defaults from udp

     

    }

     

    pool V_TFTP_NAT_POOL {

     

    monitor all V_TFTP_MONITOR

     

    member 10.6.12.20:tftp

     

    member 10.6.12.21:tftp

     

    }

     

    rule irule_TFTP_Server {

     

    when SERVER_CONNECTED {

     

    listen {

     

    proto 17

     

    timeout 60

     

    bind [LINK::vlan_id] [IP::local_addr] [peer {UDP::client_port}]

     

    server [peer {client_addr}] [peer {UDP::client_port}]

     

    allow [IP::server_addr]

     

    }

     

    }

     

    }