|
看到论坛上已经有网友利用TOMATO实现是双WAN宽带叠加,也提供了教程可惜都是基于静态ip的
我也不懂! 幸好有boy516 这位DX的指点 勉强实现了! 稳定还是不行!尤其断线以后的问题
本文在belkin7231路由上 测试成功
首先到http://www.right.com.cn/forum/vi ... &extra=page%3D1 下载 已经编译好的TOMATO 刷上路由 后再复一下位
1.在WEB上 设置第一条 PPP0E线路 这个不多说了
2.telnet上路由 输入一下内容:
nvram set vlan0ports="1 2 3 5*"
nvram set vlan3ports="0 5*"
nvram set vlan3hwname="et0"
nvram commit
reboot
路由会自动重启
3.在WEB页面上 Administration ----->Scripts----->WAN Up 输入以后内容 ADSL的帐号密码按实际修改 (如帐号:gzdslxxxx 密码:123456789) 保存重启
ifconfig vlan3 up
pppoecd vlan3 -u gzdslxxxx -p 123456789 -r 1492 -t 14
#!/bin/sh
#-------------------------------
# Created by Tommy.Liu
# eijiliu@hotmail.com
#-------------------------------
#------------自行修改-----------
wan1_if=ppp0
wan1_ipaddr=$(ifconfig $wan1_if|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
wan1_gateway=$(ifconfig $wan1_if|grep "inet addr"|awk -F ":" '{print $3}'|awk -F " " '{print $1}')
wan2_if=ppp1
wan2_ipaddr=$(ifconfig $wan2_if|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
wan2_gateway=$(ifconfig $wan2_if|grep "inet addr"|awk -F ":" '{print $3}'|awk -F " " '{print $1}')
#-------------------------------
echo "Wan1 IP:$wan1_ipaddr"
echo "Wan1 Gateway:$wan1_gateway"
echo "Wan2 IP:$wan2_ipaddr"
echo "Wan2 Gateway:$wan2_gateway"
echo "Set adv routing..."
#设定策略路由
ip rule flush
ip rule add lookup main prio 32766
ip rule add lookup default prio 32767
ip rule add from $wan1_ipaddr table 100 prio 100
ip rule add fwmark 0x100 table 100 prio 101
ip rule add from $wan2_ipaddr table 200 prio 200
ip rule add fwmark 0x200 table 200 prio 201
ip route flush table 100
ip route flush table 200
for TABLE in 100 200
do
ip route | grep link | while read ROUTE
do
ip route add table $TABLE to $ROUTE
done
done
ip route add table 100 default via $wan1_gateway
ip route add table 200 default via $wan2_gateway
echo "Set PREROUTING..."
#清除PREROUTING
iptables -t mangle -F PREROUTING
#所有wan1进入的包(NEW)都标记为0x100,走Wan1策略路由(101)
iptables -t mangle -A PREROUTING -i $wan1_if -m state --state NEW -j CONNMARK --set-mark 0x100
#所有wan2进入的包(NEW)都标记为0x200,走Wan2策略路由(201)
iptables -t mangle -A PREROUTING -i $wan2_if -m state --state NEW -j CONNMARK --set-mark 0x200
#所有LAN进入并且已经建立连接的包,恢复MARK
iptables -t mangle -A PREROUTING -i br0 -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark
echo "Set POSTROUTING..."
#清除POSTROUTING
iptables -t mangle -F POSTROUTING
#所有WAN1出去的包
iptables -t mangle -A POSTROUTING -o $wan1_if -m state --state NEW -j CONNMARK --set-mark 0x100
#所有WAN2出去的包
iptables -t mangle -A POSTROUTING -o $wan2_if -m state --state NEW -j CONNMARK --set-mark 0x200
#DNS默认走WAN1(应为双线的线路如果不是同一个ISP,那么DNS就不能混用,只能指定一个)
iptables -t mangle -A POSTROUTING -p udp --dport 53 -j CONNMARK --set-mark 0x100
echo "Set QOS..."
#QOS
iptables -t mangle -F OUTPUT
iptables -t mangle -A OUTPUT -o $wan1_if -j QOSO
iptables -t mangle -A OUTPUT -o $wan2_if -j QOSO
iptables -t mangle -F FORWARD
iptables -t mangle -A FORWARD -o $wan1_if -j QOSO
iptables -t mangle -A FORWARD -o $wan2_if -j QOSO
echo "Set Nat..."
echo "Set default gateway..."
#负载平衡
ip route change default equalize nexthop via $wan1_gateway nexthop via $wan2_gateway
echo "finished."
4.重启后TELNET上路由运行:ip rout
查看ppp0 和 PPP1
看到类似的提示第1,2行能获取公网IP 代表已经成功
# ip rout
218.19.168.1 dev ppp1 proto kernel scope link src 218.19.173.212
116.22.151.1 dev ppp0 proto kernel scope link src 116.22.151.61
192.168.2.0/24 dev br0 proto kernel scope link src 192.168.2.1
127.0.0.0/8 dev lo scope link
default equalize
nexthop via 116.22.151.1 dev ppp0 weight 1
nexthop via 218.19.168.1 dev ppp1 weight 1
default via 116.22.151.1 dev ppp0
这时你可以使用迅雷下载测试一下速度 在WEN页面上看看WAN (ppp0) 和WAN (ppp1)的流量
ps:实际使用中还是有很多问题的,只能等那位DX能找到一个更好的解决方法! 运行脚本后 必须要手动设置IP 不能自动获取! DNS最好也自己设置一下!
看起来还是很麻烦,现成的MOD版固件才是正道!!!{closedeyes:] |
|