Por ahora no tengo como ensayar pero me comenta como le fue
primero creamos las nuevas tablas editando el archivo
/etc/iproute/rt_tables
para agregar estas rutas debemos enumerarlas desde 2 hasta 252 y nombrarlas como ejemplo quedaria asi el archivo
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
10 red1
11 red2
Como ven inicio desde 10 pero es por costumbre

luego podemos ver que estas tablas estan limpias usando el comando
ip route show table red1
ip route show table red2
ahora agregamos la ruta que define como llegaran los paquetes a las diferentes tablas, suponemos que la interface del servidor eth0 tiene las ip 192.168.1.1 y la 192.168.1.17
ip route add 192.168.1.0/28 dev eth0 src 192.168.1.1 table red1
ip route add 192.168.1.16/28 dev eth0 src 192.168.1.17 table red2
ahora cada tabla tiene una puerta de enlace
ip route add default dev ppp0 table red1
ip route add default dev ppp1 table red2
entonces le decimos al sistema que todos los paquetes con destino y fuente de cada subred sea dirigido a una tabla diferente
ip rule add from 192.168.1.0/28 table red1
ip rule add to 192.168.1.0/28 table red1
ip rule add from 192.168.1.16/28 table red2
ip rule add to 192.168.1.16/28 table red2
Con esto deberan quedar dos redes dos rutas y dos salidas a internet separadas cada una, ahora si en cada terminal la puerta de enlace es la maquina servidor, por ultimo en ip
tables la regla mas simple seria
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE