As we have more and more machines, we use up the allocated IP addresses quickly. To mitigate the problem, I set up a Linux router for an intranet. I have tried quite a few distributions for Linux router, the one I picked is called floppyfw.
The setup for floppyfw is not difficult. For most people, you only have to modify the config file and you are good to go. When I set it up, I ran into a problem when a machine in the inside network tried to access a Windows share on the outside network. It just did not work. I looked at the firewall.ini file and found that the firewall is dropping packets related to NetBIOS and Samba. To get around this, I just commented the related firwall rules. Here is the part of the firewall.ini file after editing.
# # We don't like the NetBIOS and Samba leaking.. # #iptables -t nat -A PREROUTING -p TCP --dport 135:139 -j DROP #iptables -t nat -A PREROUTING -p UDP --dport 137:139 -j DROP #iptables -t nat -A PREROUTING -p TCP --dport 445 -j DROP #iptables -t nat -A PREROUTING -p UDP --dport 445 -j DROP