公司内网要求192.168.0.100以内的使用 10.0.0.1 网关上网 (电信),其他IP使用 20.0.0.1 (网通)上网




首先要在网关服务器上添加一个默认路由,当然这个指向是绝大多数的IP的出口网关。




ip route add default gw 20.0.0.1




之后通过 ip route 添加一个路由表




add table  3 via 10.0.0.1 dev ethX (ethx 是10.0.0.1所在的网卡,3 是路由表的编号)




之后添加 ip 




fwmark 3    table 3 (fwmark 3 是标记,table 3 是路由表3 上边。 意思就是凡事标记了 3 的数据使用table3 路由表)




之后使用iptables给相应的数据打上标记




-j MARK --set-mark 3




因为mangle的处理是优先于 nat 和 fiter表的,所以相依数据包到达之后先打上标记,之后在通过ip rule 规则,对应的数据包使用相应的路由表进行路由,最后读取路由表信息,将数据包送出网关。