Есть ещё вот такая вот статья:
http://sdaver.ru/linux-router/.
Описано вполне конечное решение.
Только вот вопрос: как быть, если у нас на одном из интерфейсов DHCP, а не static?
И ладно бы просто стянуть адрес через цепочку grep|sed из ifconfig, но ведь динамический адрес с определенной периодичностью меняется...
Тогда что - запускать по cron? и будут ли маршруты меняться "на лету"? или надо дополнительно где-то что-то "передергивать" доп. командами, как например, при перенастройке сети?
И неизвестно, кстати, будет ли получен dhcp-адрес к моменту исполнения etc/rc.local ...