Problem : I'm facing to a problem with TFTP server and Cisco 79XX IP phones. When on a local network, everything is working fine, but when the TFTP server is on a public server (and phones inside a private network - behind NAT/firewall), the phones can contact the TFTP on UDP 69 but cannot retreive any file/data (timeout).
Reason : "According to RFC 1350, the server sends to the client (from a random port) DATA TFTP packet. However, firewall rejects this packet because it cannot find the existing connection between the chosen server port and the client’s port in the table of translation."
Possible solution : I need to make TFTP server use port 69 not only to receive requests, but also to send the answers to the clients. "In this case firewall will correctly transmit the answers to the client according to the record from the table of translation." Also, some VoIP providers solved the problem by writing their own TFTP server.
Question : I cannot found any specific option/configuration in linux atftp server which defines the port(s) used for replies to clients. Is there any such option or another free/open source linux TFTP server which can handle this ?