A 50/50 mixture of vinegar and lemon juice eats rust very well, and quickly too. It also degreases the part for painting.
I use it all the time to clean old specialty hardware, inside rusty fuel tanks, break loose rust seized pistons, hinges, bearings, ect. You do not really need to worry much about it eating away at the origional base metal. It will do so, but you would have to leave the part in the solution for weeks on end for it to do any appreciable damage.
The best part is it is biodegradable. You can flush it down the toilet when you are done. It is waaaaay less harsh than any drain cleaner or toilet bowl cleaner.
For treating rust inside a frame tube, why not use Jasco metal prep?
Is is used in the marine industry for treating ship's hulls, ect before painting.
It converts rust into iron phosphate, a good rust proof coating. Any exposed clean metal gets converted as well, just not as thick of a coating as there is no rust previously there to convert.