Use the Linux machine. Setting a static route is the easiest way with this few machines. Put a second NIC in the Linux boxen and setup routing using zebra or routed(rowt'd).

Linux can handle that and more... I should probably stop here and not sat more as I dunno if you want to hear the way I'd do it...

Course you'd end up with one LAN and DHCP 'andled by the Linux machine with tons of DHCP options enabled... plus samba for Winbloze and netatalk for those of you running MACs and of course NFSv4 (No File Security v4) for *NIX(OSX included) machines.