1.伪装:
iptables -A POSTROUTING -t nat-s 192.168.0.0/24 -o ppp0 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o ppp1 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o pppN -j MASQUERADE
2.修改网关
ip route replace default scope global nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
说明:
如果有n条线路,那么继续在其中增加 nexthop dev ppp2(ppp3……);
用replace的原因是当原来没有网关时会增加这个网关,当已经存在网关时,会修改原来的网关.
用add 也可以,但是当已经存在默认网关时就要先delete再add.
两个weight 1的意思是这两条链路的权值是相等的,两条链路承担的网络流量是相等的。
有一点是需要说明的,因为路由表是基于缓存的,所以在实际中两条链路并不能100%的平分流量
nexthop NEXTHOP 设置多路径路由的下一跳地址。NEXTHOP比较复杂,它的语法和以下高层参数类似:
via ADDRESS–表示下一跳路由器;
dev NAME–表示输出设备;
weight NUMBER–在多路由路径中,这个元素的权重。表示相对带宽或者服务质量。
3.刷新路由
ip route flush cache
4.用tcpdump 分别监察两条线路,用下面命令:
tcpdump -i ppp0
tcpdump -i ppp1
tcpdump -i pppN(有多条的话)
5.为了每次启动时自动启动,把命令写在启动脚本里面,在 /etc/rc.local 后面增加:
ifup ppp0
ifup ppp1
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp1 -j MASQUERADE
ip route replace default scope global nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
ip route flush cache