Маршрутизация на два интерфейса и кэширование - это две разные задачи.
Для выполнения первой используются встроенные средства ядра Linux и утилиты из набора iproute2, например,
так. Можно сделать маршрутизацию на основе адреса клиента и т.п.
Для выполнения второй (совершенно независимо от первой) используются кэширующие прокси, например squid.
Или вам нужна программа, в которой "поставил галочку в интерфейсе и все работает?"