路由模式下的vlan绑定需要通过策略路由来发往wan端,刚好看到一篇文章讲策略路由,Mark一下。
网上搜寻的例子:
内网要求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 添加一个路由表
ip route add table 3 via 10.0.0.1 dev ethX
(ethX是10.0.0.1所在的网卡,3 是路由表的编号)
之后添加 ip rule 规则
ip rule add fwmark 3 table 3
(fwmark 3是标记,table 3 是路由表3 上边。 意思就是凡是标记了 3 的数据使用table3 路由表)
之后使用iptables给相应的数据打上标记:
iptables -A PREROUTING -t mangle -i eth0 -s 192.168.0.1 -192.168.0.100 -j MARK --set-mark 3
因为mangle的处理是优先于 nat 和fiter表的,所以相应数据包到达之后先打上标记,之后再通过ip rule规则。对应的数据包使用相应的路由表进行路由,最后读取路由表信息,将数据包送出网关。